修正する

修正する

Waylandに切り替える前に、次のコマンドを使用してすべてのGNOME Shellウィンドウを最小化します。

wmctrl -k on

...しかし、両方ともX11専用のアプリケーションwmctrlです。xdotoolGNOME Shell / Waylandセッションですべてのウィンドウを最小化するには、どのCLIコマンドを使用できますか?

引用:

答え1

修正する

残念ながら、セキュリティ上の理由で、Gnome 41では動作しなくなりました。

Looking Glassで実行すると、global.context.unsafe_mode = true機能は再び有効になりますが、一時的にのみ可能です。

元の答え

のように私の他の答えはwmctrlgdbusGnomeでGJSを使用してこれを行うことができます。

gdbus call \
  --session \
  --dest org.gnome.Shell \
  --object-path /org/gnome/Shell \
  --method org.gnome.Shell.Eval \
  "global.get_window_actors().forEach(w=>w.meta_window.minimize())"

答え2

私はPlayground ManjaroシステムとGNOME3 / Waylandで動作する解決策を説明します。他のディストリビューションでは、プロセスが若干異なる場合があります。

それほど完璧ではありません。私が想像したようにしかし、うまくいきます。

簡単なマルチツール

この方法では簡単なマルチツール。 ~から読む.md:

ydotoolはxdotoolとは異なる動作をします。 xdotoolはXイベントをXサーバーに直接送信しますが、ydotoolはLinuxカーネルのuinputフレームワークを使用して入力デバイスをシミュレートします。

  1. インストールするディストリビューションに応じて -尿素尿の割合Ubuntuダーバンなど
  2. 正しく行う必要があるかもしれません。アクセス権の設定/dev/uinputユーザーがデバイスにアクセスできるようにします。この場合、ユーザーをusersグループに追加し、udevルールファイルを作成します。

ユーザーグループに自分を追加:

usermod -a -G users $USER

/etc/udev/rules.d/80-uinput.rulesファイルの作成次のコンテンツが含まれています。

KERNEL=="uinput", GROUP="users", MODE="0660", OPTIONS+="static_node=uinput"
  1. あなたはする必要があります/usr/bin/ydotooldソケットリスナーの起動。テスト目的で手動で起動しますが、必要な場合もあります。自動起動これログインするとき

  2. GNOME 3では、「すべての一般的なウィンドウを隠す」のキーボードショートカットを設定できます。移動gnome-control-centerキーボードショートカット、航海、すべての一般的なウィンドウを隠す。たとえば、このショートカットをSuper+に設定しますD

  3. すべてが期待どおりに機能したら、次のコマンドを使用してすべてのGNOME / Waylandウィンドウを最小化できます。

ydotool key Super+D

タイプ

別のアプローチは次のとおりです。タイプ。他のアプローチを使用し、キーボードイベントをシンセサイザに直接提供するようです。問題は、GNOMEのネイティブシンセサイザーを使用してこれを行うことができないことです。つぶやく。おそらく制限事項に関連している可能性がありますXウェイランドしかし、私はそれについて確信していません。私が得るのはエラーだけです。

シンセサイザーは仮想キーボードプロトコルをサポートしていません。

答え3

TL; DRはまだできます。

xdotoolX11 APIを使用しているため、Waylandでは実行できませんが、デスクトップwmctrl環境自体と対話することは可能です。したがって、X11 APIを必要とするコマンドが機能しなくても、wmctrlWaylandセッションではまだ多くのコマンドを使用できます-k on

GNOME Shell 3.30.2および1.07を使用してwmctrlArch Linuxでテストされました。

関連情報