Wie kann ich einen Schlüssel binden, um zwischen Arbeitsbereichen zu wechseln?

7

Ich verwende derzeit zwei Arbeitsbereiche und möchte diese mit einer einzigen Verknüpfung durchlaufen können. Im Moment kann ich Ctrl+ Alt+ tun Right, um zu Arbeitsbereich 2 zu wechseln, und Leftzu 1 wechseln , aber ich möchte, dass ein einzelner Schlüssel (oder eine Tastenkombination) zu dem Arbeitsbereich wechselt, in dem ich mich gerade nicht befinde. Auf diese Weise würde ich nur diese Verknüpfung benötigen und nicht zwei.

Ich verwende Ubuntu auf einem alten Computer, und das hindert mich daran, Compiz überhaupt zu aktivieren. Ich habe versucht, ein Skript mit beiden wmctrlund zu schreiben xdotool, aber keines funktioniert ordnungsgemäß (egal was ich mache, beide wechseln nur zu Arbeitsbereich 1 und nie zu Arbeitsbereich 2).

Irgendwelche Vorschläge?

Malabarba
quelle

Antworten:

5

Hier ist ein Skript, das zum nächsten Arbeitsbereich wechselt und zum ersten nach dem letzten zurückkehrt. Beachten Sie, dass Arbeitsbereiche von 0 nummeriert sind. Vielleicht haben Sie dies beim Versuch, ein Skript zu schreiben, geworfen.

#!/bin/sh
total=$(wmctrl -d | wc -l)
current=$(wmctrl -d | sed -n 's/^\([0-9]\+\) *\*.*/\1/p')
if [ -z "$total" ] || [ -z "$current" ]; then
  echo 1>&2 "$0: Could not obtain workspace information!"
  exit 2
fi
target=$(($current+1))
if [ $target = $total ]; then
  target=0
fi
wmctrl -s $target
Gilles 'SO - hör auf böse zu sein'
quelle
Tatsächlich. Ich habe tatsächlich versucht, den Namen jedes Arbeitsbereichs (D1 und D2) anstelle seiner Nummern (0 und 1) zu verwenden. Sollte weiter unten in der Manpage gelesen haben. =)
Malabarba
Schönes Skript - es funktioniert für eine beliebige Anzahl von Arbeitsbereichen. Gutes Zeug! ... wie man dieses Skript mit einem Tastendruck verbindet?
pbr
3
Speichern Sie es an einer beliebigen Stelle als Textdatei und markieren Sie es als ausführbar ( chmod +x filename). Gehen Sie zu "System -> Einstellungen -> Tastaturkürzel". Erstellen Sie in diesem Menü eine neue Verknüpfung, geben Sie einen beliebigen Namen ein und verweisen Sie auf Ihre gespeicherte Datei. Wenn Sie beispielsweise die Datei als "script.sh" in Ihrem Home-Ordner speichern, müssen Sie in das Eingabefeld "Command" Folgendes schreiben: "/home/yourusername/script.sh".
Malabarba
Genial. Vielen Dank, Bruce, dass Sie die verbleibenden Schritte dazu dokumentiert haben.
pbr
ps Ich bleibe beim Einfügen von ausführbaren Dateien in ~ / bin, damit ich auch eine Verknüpfung zu diesem Speicherort herstellen kann.
pbr
2

Ich weiß, dass dies alt ist, aber hier sind meine Versionen:

Für mehrere Arbeitsbereiche (wie in Gilles 'Antwort):

wmctrl -s `wmctrl -d | awk '$2=="*"{cur=NR} END{print cur % NR}'`

Für mehrere Ansichtsfenster:

wmctrl -o `wmctrl -d | awk '{gsub(/[^0-9]/," ",$0);x = ($4 + $6 + $8) % $2; if( 
x == 0 ) y = ($5 + $7 + $9) % $3; else y = $5; print x","y}'`
Palindrom
quelle