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?
Odpowiedzi:
Możesz użyć wmctrl .
Podstawowe polecenia:
wmctrl -d
aby 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 -d
przykład, moja to: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:
Następnie, jeśli chcę przejść do mojego „obszaru roboczego” 4, polecenie brzmi:
Jeśli chcę przejść do mojego „obszaru roboczego” 8, polecenie brzmi:
Jeśli chcę przejść do mojego „obszaru roboczego” 9, polecenie brzmi:
Rozumiem? ;-)
The
-o
Flag „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:źródło
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życiexdotool
poleceń takich jakset_desktop_viewport
iget_desktop_viewport
. Być może będziesz musiał określić polecenia w inny sposób, jak sugeruje to desgua powyżej, ale dla mnie poleceniaset_desktop
iset_desktop_for_window
okazał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ź
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ść
Następnie, aby powrócić do domyślnego obszaru roboczego, wprowadź
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ć
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
.źródło
xdotool set_desktop --relative -- -1
Wdrożyłem skrypt, który robi to, co chcesz. Oto on: https://github.com/norswap/wmov/blob/master/wmov.sh
Działa naprawdę tak, jak opisano w poście desgua. Umożliwia także wysyłanie okien do innych obszarów roboczych.
źródło
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.
źródło
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.
źródło