GNOME 3 でワークスペースを循環するショートカットを作成するにはどうすればよいですか?

GNOME 3 でワークスペースを循環するショートカットを作成するにはどうすればよいですか?

Ubuntu 18.04 を使用しています。ワークスペース 1、2 などに移動するキーボード ショートカットを変更するオプションは見つかりますが、ウィンドウを切り替えるalt+のように、既存のワークスペースを循環して「次のワークスペース」に移動するオプションはないようです。tab

+「キーボード ショートカット」ウィンドウの「」ボタンをクリックしてカスタム ショートカットを作成すれば、おそらくうまくいくでしょう。しかし、どのようなコマンドを使用すればよいのかわかりません。

答え1

ワークスペーススイッチラップアラウンドGNOME Shell拡張機能はサイクリングを可能にします。公式にGNOME Shell v3.32 までサポートされていますが、実際には Ubuntu 20.04 LTS (Focal Fossa) でも動作します。

2022 年 6 月更新: 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())

楽しむ!

関連情報