Ich habe 2 Displays auf meinem PC - eine IDE ist in einem Display im Vollbildmodus und Firefox in einem anderen Display im Vollbildmodus geöffnet.
Da ich meistens die Tastatur benutze, ist es ärgerlich, die Maus greifen zu müssen, um den Fokus ständig auf Firefox und zurück zur IDE zu schalten.
Gibt es eine Verknüpfung, mit der ich den Fokus auf "größtes Fenster" auf Anzeige 2 schalten könnte, wenn sich der Fokus irgendwo in Anzeige 1 befindet und umgekehrt?
Heute habe ich eine positive Bewertung für diese Frage erhalten, daher veröffentliche ich meine Lösung, die ich seit mehr als einem Jahr ständig verwende und mit der ich sehr zufrieden bin.
Schritt 1: Erstellen Sie ein Bash-Skript (z. B. schreiben Sie es ~/swap.shund machen Sie es ausführbar), um den Fokus auf ein Fenster zu setzen, das sich in der Mitte der anderen Anzeige befindet:
#!/bin/bash
getwindowat() {
# move mouse to coordinates provided, get window id beneath it, move mouse back
eval `xdotool mousemove $1 $2 getmouselocation --shell mousemove restore`
echo $WINDOW
}
# get active app
active=`xdotool getactivewindow`
# get coordinates of an active app
eval `xdotool getwindowgeometry --shell $active`
# if left border of an app is less than display width
# (e.g. one display is 1920px wide, app has x = 200 - means it's 200px to the right from the left border of left monitor
# if it has x = 1920 or more, it's on the right window), it's on screen 0, and we need to focus to screen 1, otherwise to screen 0
(( $X >= $WIDTH )) && focustoscreen=0 || focustoscreen=1;
# get coordinates of the middle of the screen we want to switch
searchx=$[ ($WIDTH / 2) + $focustoscreen * $WIDTH ]
searchy=$[ $HEIGHT / 2 ]
# get window in that position
window=`getwindowat $searchx $searchy`
# activate it
xdotool windowactivate $window
Schritt 2: Fügen Sie eine Tastenkombination hinzu, um dieses Skript aufzurufen Super-Tab
Schritt 3: Verwenden Sie die Verknüpfung, um Anzeigen wie bei einem Chef zu wechseln
Dies hilft sehr, aber die Maus wird nicht auf den anderen Bildschirm bewegt, was großartig wäre, wenn dies der Fall wäre.
Samarth
2
@samarth Sie können dies erreichen, indem Sie das mousemove restoreaus dem eval entfernen , so dass es "eval` xdotool mousemove $ 1 $ 2 getmouselocation --shell` "
Fluffy
Ich habe Schritt 1 ausprobiert und dann ausgeführt sh swap.sh. Ich erhalte die Fehlermeldung: swap.sh: 17: swap.sh: 288: nicht gefunden swap.sh: 20: swap.sh: Syntaxfehler: "(" unerwartet , Text erstellen Datei mit = als Titel und nichts Irgendeine Idee? Danke!
Matifou
@ Matifou versuchenbash swap.sh
Fluffy
Das ist hilfreich; Gibt es eine Möglichkeit zu erkennen, wann ein Display gedreht wird? Ich habe meinen linken Monitor gedreht (mit xrandr --rotate), aber xdotool verwendet die Drehung nicht und ich weiß nicht, wie ich sie erkennen soll. Wenn der Fokus in der gedrehten Anzeige liegt, muss ich den Tastenanschlag zweimal statt einmal verwenden.
GTK
0
Sie können AltTabzwischen Fenstern wechseln.
AltTabErinnert sich auch daran, zwischen welchen beiden Fenstern Sie zuletzt gewechselt haben. Wenn Sie zu einem Fenster wechseln (mit den Pfeiltasten navigieren) und dann zurückschalten, AltTabkönnen Sie durch einfaches Drücken ohne weitere Navigation zwischen diesen wechseln .
Ich möchte die Anzeige im Dual-Monitor-Setup wechseln, nicht in Windows. Ich habe mehrere Anwendungen geöffnet und möchte die Alt-Tab-Taste nicht oft drücken, bis ich die auf dem anderen Display erreiche.
Sie platzieren das linke Skript focus_changer.py an einer festen Stelle (z. B. / opt) und fügen dann die Tastenkombination / Verknüpfung / Hotkey in Ihren Einstellungen hinzu
python3 /opt/focus_changer.py left # Fokus nach links
python3 /opt/focus_changer.py rechts # Fokus nach rechts
mousemove restore
aus dem eval entfernen , so dass es "eval` xdotool mousemove $ 1 $ 2 getmouselocation --shell` "sh swap.sh
. Ich erhalte die Fehlermeldung: swap.sh: 17: swap.sh: 288: nicht gefunden swap.sh: 20: swap.sh: Syntaxfehler: "(" unerwartet , Text erstellen Datei mit = als Titel und nichts Irgendeine Idee? Danke!bash swap.sh
xrandr --rotate
), aber xdotool verwendet die Drehung nicht und ich weiß nicht, wie ich sie erkennen soll. Wenn der Fokus in der gedrehten Anzeige liegt, muss ich den Tastenanschlag zweimal statt einmal verwenden.Sie können AltTabzwischen Fenstern wechseln.
AltTabErinnert sich auch daran, zwischen welchen beiden Fenstern Sie zuletzt gewechselt haben. Wenn Sie zu einem Fenster wechseln (mit den Pfeiltasten navigieren) und dann zurückschalten, AltTabkönnen Sie durch einfaches Drücken ohne weitere Navigation zwischen diesen wechseln .
quelle
Dieses Repository kann Ihnen helfen
https://github.com/Eitol/screen_focus_changer
Sie platzieren das linke Skript focus_changer.py an einer festen Stelle (z. B. / opt) und fügen dann die Tastenkombination / Verknüpfung / Hotkey in Ihren Einstellungen hinzu
python3 /opt/focus_changer.py left # Fokus nach links
python3 /opt/focus_changer.py rechts # Fokus nach rechts
quelle