Zum Beispiel:

Zum Beispiel:

Ich liebe Transparenz und Minimalismus... sehr sogar. So sehr, dass ich am Ende einen Desktop wie diesen habe:

Desktop

Das Problem ist, dass ich meine Terminalfenster transparent gemacht habe, um einen coolen Effekt zu erzielen. Das sieht größtenteils ziemlich gut aus, abgesehen von der Tatsache, dass ich nichts sehen kann, wenn es über anderen Fenstern liegt. Hier ist ein Beispiel:

Terminalproblem

Ich würde gerne wissen, ob es eine Möglichkeit gibt, das Profil des Terminals automatisch zu ändern, wenn es sich über einem anderen Fenster befindet, also in etwas Sichtbareres. Und es dann automatisch wieder zurück zu ändern, wenn sich unter dem Terminal keine Fenster befinden (auch Conky inbegriffen).

Antwort1

Das ist eine tolle Idee, aber ich glaube, es wäre ziemlich schwierig. Mal sehen ...

Wir können dieses Problem in ein Grafikproblem umwandeln, bei dem Sie eine Kollisionserkennung zwischen Fenstern finden und den Kollisionsbereich entsprechend farblich kennzeichnen müssen.

Ich würde damit beginnen, Informationen über das Fenster abzurufen, beispielsweise die Position und die Größe:Position, Größe und Aktivität von Fenstern.

Sie können diese Informationen sowohl auf das Fenster des transparenten Terminals als auch auf die Hintergrundfenster anwenden. Sobald Sie die Positionen und Größen kennen, sollten Sie problemlos eine einfache Berechnung durchführen können, um festzustellen, ob irgendwelche Quadrate kollidieren.

Zum Beispiel:

Terminal: Position=[X,Y] Größe=[A,B]

Fenster: Position=[x,y] Größe=[a,b]

//here's a rough draft of a code

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

Hoffe, das hilft. Bitte posten Sie Ihren Code, wenn Sie fertig sind. Danke =)

verwandte Informationen