Например:

Например:

Я люблю прозрачность и минимализм... очень. Настолько, что в итоге у меня получился такой рабочий стол:

Рабочий стол

Проблема в том, что для придания крутого эффекта я сделал окна терминала прозрачными. Что по большей части выглядит довольно хорошо, за исключением того, что я ничего не вижу, когда оно находится поверх других окон. Вот пример:

Проблема с терминалом

Я хотел бы узнать, есть ли способ автоматически менять профиль терминала, когда он находится над другим окном, чтобы, скажем, что-то более заметное. А затем автоматически менять его обратно, когда под терминалом нет окон (включая также conky).

решение1

Это отличная идея, но я думаю, что это будет довольно сложно. Посмотрим...

Мы можем превратить эту задачу в графическую задачу, в которой нужно обнаружить столкновение между окнами и соответствующим образом закодировать область столкновения.

Я бы начал с получения информации об окне, такой как положение и размер:положение, размер и активность окон.

Вы можете применить эту информацию как к окну прозрачного терминала, так и к фоновым окнам. Как только у вас будут и позиции, и размеры, вы должны легко выполнить простой расчет, чтобы увидеть, есть ли у них какие-либо сталкивающиеся квадраты.

Например:

Терминал: Позиция=[X,Y] Размер=[A,B]

Окно: Положение=[x,y] Размер=[a,b]

//here's a rough draft of a code

    if(X<x)
    {
        if(Y<y)
    {
        ChangeColor(A-a,B-b)
    }
    else
    {
    }
}

Надеюсь, это поможет. Пожалуйста, опубликуйте свой код, когда закончите. Спасибо =)

Связанный контент