Как создать сочетание клавиш для переключения между рабочими пространствами в GNOME 3?

Как создать сочетание клавиш для переключения между рабочими пространствами в GNOME 3?

Я использую Ubuntu 18.04. Я могу найти опцию изменения сочетаний клавиш для перехода к рабочему пространству 1, 2 и т. д., но, похоже, нет опции перехода к «следующему рабочему пространству», циклического переключения между существующими рабочими пространствами, как я бы сделал с помощью alt+ tabдля переключения между окнами.

Нажав на «+' кнопка в окне 'сочетания клавиш' для создания пользовательского сочетания клавиш, вероятно, сработает. Но я не знаю, какую команду мне придется использовать.

решение1

TheПереключатель рабочего пространства WraparoundРасширение GNOME Shell позволяет переключаться между режимами. Оноофициальноподдерживает GNOME Shell до версии 3.32, но на практике работает даже на Ubuntu 20.04 LTS (Focal Fossa).

Обновление от июня 2022 г.: также отлично работает на Ubuntu 22.04 LTS.

решение2

Переключение между рабочими пространствами

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

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

ПримечаниеДинамические рабочие пространства должны быть настроены наfalse

Сценарий

Используя Wnck, мы можем получить информацию как о (списке) рабочих пространств, так и о текущем. Впоследствии мы можем перейти к любому другому из перечисленных рабочих пространств организованным образом.

Убедитесь, Wnckчто установлено:

sudo apt install python3-gi gir1.2-wnck-3.0

Затем скопируйте скрипт ниже в пустой файл, сохраните его как cycle_workspaces.py,сделать его исполняемыми запустите его с помощью ярлыка по вашему выбору. (запуск: /path/to/cycle_workspaces.py)

#!/usr/bin/env python3
import gi
gi.require_version("Wnck", "3.0")
gi.require_version("Gtk", "3.0")
from gi.repository import Wnck, Gtk

scr = Wnck.Screen.get_default()
scr.force_update()

# list existing workspaces
workspaces = scr.get_workspaces()
# get the (index of) current one
currws = workspaces.index(scr.get_active_workspace())
# since first in list has index 0, subtract 1, if index is last,
# move to first index of the list (workspaces)
if currws == len(workspaces) - 1:
    next_workspace = workspaces[0]
# else pick the next in list
else:
    next_workspace = workspaces[currws + 1]
# and activate it...
next_workspace.activate(Gtk.get_current_event_time())

Наслаждаться!

Связанный контент