Hallo Volker,
Volker Weißmann schrieb am Dienstag, den 29.10.2013 um 10:10:
On 28.10.2013 20:14, Volker Weißmann wrote:
Hallo,
ich bin momentan daran ein Programm in C zu Programmieren.
Das Programm soll an einer Stelle ein bestimmtes Programm im
Vordergrund rücken ( also wie bei alt+tab), Programme minimieren,
und Programme auf eine andere Arbeitsfläche verschieben.
Leider konnte ich auch durch Google nicht herausfinden wie dies
funktioniert.
Könnte mir jemand die Befehle/Codezeilen sagen, mit dem man das
machen kann?
Weißmann
Ich glaub meine Frage wurde nicht ganz verstanden.
Mein Programm hat weder eine Grafische Oberfläche, noch interagiere
ich mit ihm über die Konsole.
Ich starte es, und dann bleibt es offen bis zum nächsten
herunterfahren (wenn ich es zwischendurch beenden will, kann ich es
im Zweifel auch abschießen).
2 ANDERE Programme(nicht von mir geschrieben) sind auch offen. Mein
Programm soll erst herausfinden welches im Vordergrund ist, dann
dieses auf eine andere Arbeitsfläche verschieben.
Aber die beiden anderen Programme laufen in einer grafischen
Oberfläche mit mehreren Arbeitsflächen, weil sonst würdest Du
die Frage nicht so stellen. Richtig? Welche grafische Oberfläche?
Welcher Fenster-Manager wird benutzt?
Debian Linux bietet dafür eine Vielzahl von verschiedenen
Möglichkeiten an. Der Standard schreibt nicht vor, wie die
Window-Manager die Stapel-Anordnung und virtuelle Arbeitsflächen
realisieren:
Layered stacking order
Some window managers keep the toplevel windows not in a single
linear stack, but subdivide the stack into several layers. There
is a lot of variation among the features of layered stacking order
implementations. The number of layers may or may not be fixed. The layer
of a toplevel window may be explicit and directly modifiable or derived
from other properties of the window, e.g. the type of the window. The
stacking order may or may not be strict, i.e. not allow the user to
raise or lower windows beyond their layer.
Quelle: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#idp3324160
Vielleicht hilft es dir, wenn Du Dir das Programm „wmctrl“ anschaust,
um zu sehen, ob Du damit Dein Ziel erreichst?
Mit wmctrl -l bekommst Du eine Liste aller Fenster mit ihrer id.
Mit wmctrl -r <WIN> -t <DESK> kannst Du ein Fenster auf eine andere
Arbeitsfläche verschieben. (Dazu musst Du natürlich die Nummern
von Fenster und Arbeitsfläche kennen, um sie in dieses Kommando
einsetzen zu können)