Есть ли команда для перехода в конкретное рабочее пространство?

17

Я пытаюсь сделать быстрый список на панели запуска Workspace Switcher, которая позволяет быстро переключаться на определенную рабочую область. (Мой друг иногда использует мой компьютер и просто не любит сочетания клавиш, поэтому я хочу помочь ему.)

Итак, есть ли команда, которую можно было бы ввести в терминал, который бы сфокусировал определенное рабочее пространство?     

задан Leron 07.05.2011 в 23:58
источник

4 ответа

26

Вы можете использовать wmctrl .

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

Если вы используете Compiz, вам нужно будет сделать трюк, потому что «рабочие области» Compiz - это фактически видовые экраны для одной рабочей области.

Инструкции Trick

Проверьте выход wmctrl -d Например, мой:

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

Это означает, что на самом деле у меня есть одно Рабочее пространство 4098 x 2304 вместо того, что я «думаю» у меня (девять «рабочих пространств», 3 x 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
    
ответ дан desgua 08.05.2011 в 03:34
источник
6

Совершенно просто добиться того, чего вы хотите с xdotool , который имеет несколько опций для управления разными рабочими пространствами (также называемыми "рабочими столами" в документации по программе). Я считаю, что может быть очень интересно и творчески объединять команды из man xdotool ; команды, которые я сформулировал ниже, могут быть полезны в сценариях.

Примечание. . При использовании некоторых оконных менеджеров или использования compiz вам может потребоваться использовать команды xdotool , такие как set_desktop_viewport и get_desktop_viewport . Возможно, вам придется указывать команды по-другому, например, desgua , но для меня set_desktop и set_desktop_for_window команды оказались наиболее полезными в системе без компиляции.)

( Решение наиболее полезно для пользователей Xubuntu / Lubuntu или тех, кто не выполняет компиляцию и т. д. )

Чтобы указать количество текущих рабочих пространств, введите

xdotool get_num_desktops

Следующие команды будут работать, только если у вас есть хотя бы 1 другое рабочее пространство.

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

xdotool set_desktop 1 

Затем, чтобы вернуться в рабочую область по умолчанию, введите

xdotool set_desktop 0

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

Чтобы найти номер рабочей области, в которой вы сейчас находитесь, вы можете использовать

xdotool get_desktop

Эти команды могут использоваться в сценариях, и они должны быть очень полезны для достижения того, что вам нужно.

Как переключить приложения на конкретный рабочий стол, см. мой ответ здесь:

  • как переносить приложения из рабочего пространства 1 до 2 с помощью команды

Для более полезных параметров, доступных для переключения рабочей области, обратитесь к man xdotool .

    
ответ дан user76204 12.01.2013 в 20:46
1

Я реализовал скрипт, который делает то, что вы хотите. Вот он: Ссылка

Это действительно работает, как описано в сообщении desgua. Это также возможность отправки окон в другие рабочие области.

    
ответ дан Norswap 12.01.2013 в 19:21
0

Существует сценарий под названием compiz-send.py в вики-сборнике , который частично затрагивает ваш вопрос: это не конкретное рабочее пространство, но вы можете добраться до него рядом с ним.

С этим вы можете выдать команду
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
и окно просмотра будет идти 1 влево или вправо.

    
ответ дан Rinzwind 08.05.2011 в 00:14