Чи є команда перейти до певної робочої області?


22

Я намагаюся зробити список швидкого перегляду на запуску робочого перемикача робочої області, який дозволяє швидко перейти на певну робочу область. (Мій друг іноді використовує мій комп'ютер і просто не користується комбінаціями клавіш, тому я хочу йому допомогти.)

Отже, чи є команда, на яку можна ввести термінал, яка змусить зосередити певну робочу область?


Також є можливість встановити комбінацію клавіш на системних налаштуваннях5 для kwin (комутатор робочого столу чи інше) або інший менеджер налаштувань робочого столу. потім використовуйте xdotool для імітації клавіш швидкого доступу, таких як xdotool ключ ctrl + alt + b;
intika

Відповіді:


34

Ви можете використовувати wmctrl .

Основи команд:
wmctrl -dпоказати всі ваші робочі простори.
wmctrl -s <workspace_name>щоб змінити конкретну робочу область.

Якщо ви використовуєте Compiz, вам доведеться зробити трюк, оскільки "робочі простори" Compiz - це фактично Viewports однієї робочої області.

Інструкції з трюку

wmctrl -dНаприклад, перевірити вихід :

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

Це означає, що насправді у мене є одна робоча область розміром 4098 x 2304 замість того, що я "думаю", що є (дев'ять "робочих просторів", 3 х 3).
Я був у тому, що повинно було бути "робочим простором" 2, але насправді я був у вікні перегляду (VP) 1366,0 (4098/3 = 1366), як показав вихідний результат.

Ось так воно і працює: ми беремо весь робочий простір і ділимо на кількість "робочих просторів", які ми "думаємо" у нас. У моєму випадку: 4098/3 = 1366 і 2304/3 = 768.

Якщо я хочу перейти до своєї "робочої області" 1, команда:

wmctrl -o 0,0

Потім, якщо я хочу перейти до своєї "робочої області" 4, команда:

wmctrl -o 0,768

Якщо я хочу перейти до своєї "робочої області" 8, команда:

wmctrl -o 1366,1536

Якщо я хочу перейти до своєї "робочої області" 9, команда:

wmctrl -o 2732,1536

Зрозумів? ;-)

В -oпрапор «усікає» їх значення. Іншими словами, він змінює "робочу область", до якої належить фактичний піксель. Наступні:

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

1
Чи є спосіб дістатися до "поточного робочого столу + 1"?
xjcl

9

Домогтися того, що ви хочете, дуже просто xdotool, що має кілька варіантів управління різними робочими просторами (також відомий як "настільні комп'ютери" в документації на програму). Я вважаю, що може бути дуже цікаво та креативно поєднувати команди з man xdotool; команди, які я сформулював нижче, можуть бути корисними у сценаріях.

Примітка. З деякими менеджерами вікон, або якщо ви використовуєте compiz, можливо, вам доведеться використовувати xdotoolкоманди, такі як set_desktop_viewportі get_desktop_viewport. Можливо, вам доведеться вказувати команди по-іншому, як пропонує desgua вище, але для мене команди set_desktopта set_desktop_for_windowкоманди виявилися найбільш корисними в системі, що не відповідає програмі.)

( Рішення є найбільш корисним для користувачів Xubuntu / Lubuntu або тих, хто не працює compiz тощо ).

Щоб перелічити кількість поточних робочих просторів, введіть

xdotool get_num_desktops

Наступні команди працюватимуть лише у тому випадку, якщо у вас є принаймні 1 інша робоча область.

Щоб змінити фокус на робочу область 1, просто введіть

xdotool set_desktop 1 

Потім, щоб повернутися до робочої області за замовчуванням, введіть

xdotool set_desktop 0

Робочу область просто потрібно вказати як останнє значення в команді (1 або 2 або 3 тощо).

Щоб знайти номер робочої області, на якій ви зараз перебуваєте, ви можете використовувати

xdotool get_desktop

Ці команди можна використовувати в сценаріях, і вони повинні бути дуже корисними для досягнення того, що ви.

Про те, як переключити програми на певний робочий стіл, дивіться мою відповідь тут:

Щоб отримати більше корисних варіантів перемикання робочої області, проконсультуйтеся man xdotool.


Мені подобається ця відповідь краще, ніж прийнята, дякую. Я використовував це для встановлення двох гарячих кутів, щоб легко переходити між двома робочими місцями.
час

Також корисно: Перейдіть на наступний робочий стіл вліво / вправо, використовуючи відносний прапор:xdotool set_desktop --relative -- -1
xjcl

1

Я реалізував сценарій, який робить все, що ви хочете. Ось це: https://github.com/norswap/wmov/blob/master/wmov.sh

Це справді працює так, як описано в дописі Десгуа. Це також можливість відправки Windows на інші робочі місця.


1
Примітка: не працює для кількості віртуальних робочих столів> 9.
j6m8

0

Існує скрипт називається compiz-send.py на Compiz вікі , що частково АДРЕСА ваше запитання: це не конкретне робоче місце , але ви можете отримати на один поруч з ним.

За допомогою цього ви можете випустити команду
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
і перейти до області перегляду 1 вліво або вправо.


0

Перехід до певної робочої області та виконання там дій може бути реалізований за допомогою Python та бібліотеки pyautogui , що дозволяє сценаріям Python виконувати клацання миші, натискання клавіш тощо.

Я написав на форумі короткий підручник для ОС Peppermint про запуск програми на певному робочому місці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.