Wenn ich versuche, wmctrl (z. B. wmctrl -l) von einem TTY außerhalb von X (z. B. tty1) auszuführen, erhalte ich die Meldung „Anzeige kann nicht geöffnet werden.“
Ich habe versucht, die Variablen $DISPLAY und $XAUTHORITY auf die Werte zu setzen, die ich von einem Terminalemulator in X erhalte, aber es ändert sich nichts.
Antwort1
Das Setzen von DISPLAY reicht nicht aus; die Variable wird nur innerhalb der Shell gesetzt. Um in Programmen zu arbeiten, die von der Shell aufgerufen werden, muss sie exportiert werden.
export DISPLAY=:0
Oder Sie rufen wmctrl folgendermaßen auf:
DISPLAY=:0 wmctrl