Czy istnieje polecenie przejścia do określonego obszaru roboczego?


22

Próbuję utworzyć szybką listę w programie uruchamiającym Switcher Workspace, który pozwala na szybkie przełączenie do określonego obszaru roboczego. (Mój przyjaciel czasami korzysta z mojego komputera i po prostu nie lubi skrótów klawiaturowych, więc chcę mu pomóc.)

Czy istnieje więc polecenie, które można wpisać w terminalu, które zmusiłoby do skoncentrowania się na określonym obszarze roboczym?


Istnieje również możliwość ustawienia skrótu klawiaturowego w ustawieniach systemu5 dla kwin (zmień pulpit lub inny) lub innego menedżera ustawień pulpitu. następnie użyj xdotool do symulacji klawiszy skrótu, takich jak xdotool key ctrl + alt + b;
intika

Odpowiedzi:


34

Możesz użyć wmctrl .

Podstawowe polecenia:
wmctrl -daby wyświetlić wszystkie obszary robocze.
wmctrl -s <workspace_name>aby przejść do określonego obszaru roboczego.

Jeśli korzystasz z Compiz, będziesz musiał zrobić sztuczkę, ponieważ „obszary robocze” Compiz są w rzeczywistości rzutniami pojedynczego obszaru roboczego.

Sztuczki Instrukcje

Sprawdź dane wyjściowe na wmctrl -dprzykład, moja to:

0  * DG: 4098x2304  VP: 1366,0  WA: 0,23 1366x745  N/A  

Oznacza to, że faktycznie mam jeden obszar roboczy o wymiarach 4098 x 2304 zamiast tego, co „myślę”, że mam (dziewięć „obszarów roboczych”, 3 x 3).
Byłem w miejscu, które miało być „obszarem roboczym” 2, ale tak naprawdę byłem w obszarze wyświetlania (VP) 1366,0 (4098/3 = 1366), jak pokazano na powyższym wyjściu.

Tak to działa: bierzemy cały obszar roboczy i dzielimy na liczbę „obszarów roboczych”, które „myślimy”, że mamy. W moim przypadku: 4098/3 = 1366 i 2304/3 = 768.

Jeśli chcę przejść do mojego „obszaru roboczego” 1, polecenie brzmi:

wmctrl -o 0,0

Następnie, jeśli chcę przejść do mojego „obszaru roboczego” 4, polecenie brzmi:

wmctrl -o 0,768

Jeśli chcę przejść do mojego „obszaru roboczego” 8, polecenie brzmi:

wmctrl -o 1366,1536

Jeśli chcę przejść do mojego „obszaru roboczego” 9, polecenie brzmi:

wmctrl -o 2732,1536

Rozumiem? ;-)

The -oFlag „obcięte” ich wartości. Innymi słowy, zmienia „obszar roboczy”, do którego należy rzeczywisty piksel. Następujące są równoważne:

wmctrl -o 0,0
wmctrl -o 1365,767

1
Czy istnieje sposób, aby przejść do „bieżącego pulpitu + 1”?
xjcl

9

Pięknie łatwo jest osiągnąć to, co chcesz xdotool, dzięki wielu opcjom zarządzania różnymi obszarami roboczymi (zwanymi również w dokumentacji programu „pulpitami”). Uważam, że bardzo interesujące i kreatywne może być łączenie ze sobą poleceń man xdotool; polecenia, które sformułowałem poniżej, mogą być przydatne w skryptach.

Uwaga: W przypadku niektórych menedżerów okien lub jeśli używasz compiz, może być konieczne użycie xdotoolpoleceń takich jak set_desktop_viewporti get_desktop_viewport. Być może będziesz musiał określić polecenia w inny sposób, jak sugeruje to desgua powyżej, ale dla mnie polecenia set_desktopi set_desktop_for_windowokazały się najbardziej przydatne w systemie innym niż compiz.)

( Rozwiązanie jest najbardziej przydatne dla użytkowników Xubuntu / Lubuntu lub tych, którzy nie korzystają z Compiz itp. )

Aby wyświetlić liczbę bieżących obszarów roboczych, wprowadź

xdotool get_num_desktops

Następujące polecenia będą działać tylko wtedy, gdy masz co najmniej 1 inny obszar roboczy.

Aby zmienić fokus na obszar roboczy 1, wystarczy wejść

xdotool set_desktop 1 

Następnie, aby powrócić do domyślnego obszaru roboczego, wprowadź

xdotool set_desktop 0

Obszar roboczy musi zostać określony jako ostatnia wartość w poleceniu (1 lub 2 lub 3 itd.).

Aby znaleźć numer obszaru roboczego, w którym aktualnie się znajdujesz, możesz użyć

xdotool get_desktop

Te polecenia mogą być używane w skryptach i powinny być bardzo przydatne do osiągnięcia tego, co masz.

Aby dowiedzieć się, jak przełączać aplikacje na konkretny pulpit, zobacz moją odpowiedź tutaj:

Więcej przydatnych opcji dostępnych do przełączania przestrzeni roboczej znajduje się w man xdotool.


Podoba mi się ta odpowiedź bardziej niż zaakceptowana, dziękuję. Użyłem tego, aby ustawić dwa gorące rogi, aby łatwo przełączać się między dwoma obszarami roboczymi.
harmonogram

Przydatne również: przełącz się na następny pulpit w lewo / prawo, używając flagi względnej:xdotool set_desktop --relative -- -1
xjcl


0

Na wiki compiz znajduje się skrypt o nazwie compiz-send.py, który częściowo odnosi się do twojego pytania: nie jest to konkretny obszar roboczy, ale możesz przejść do następnego.

Dzięki temu możesz wydać polecenie
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
i sprawić, aby rzutnia przesunęła się 1 w lewo lub w prawo.


0

Przechodzenie do określonego obszaru roboczego i wykonywanie działań można zaimplementować za pomocą Pythona i biblioteki pyautogui , która umożliwia skryptom Python wykonywanie kliknięć myszą, naciśnięć klawiszy itp.

Na forum dla Peppermint OS napisałem krótki samouczek na temat uruchamiania aplikacji w określonym miejscu pracy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.