如何从命令行最小化所有 GNOME/Wayland 窗口?

lof*_*ops 16 wayland gnome-shell gnome3

在切换到 Wayland 之前,我会使用以下命令最小化所有 GNOME Shell 窗口:

wmctrl -k on
Run Code Online (Sandbox Code Playgroud)

......但两者wmctrlxdotool是X11-只应用。我可以使用什么 CLI 命令来最小化 GNOME Shell/Wayland 会话中的所有窗口?

参考:

Zim*_*biX 5

更新

遗憾的是,出于安全原因,这不再适用于 Gnome 41

在 Looking Glass 中运行global.context.unsafe_mode = true会重新启用该功能,但只是暂时的。

原答案

正如我在其他关于 的回答wmctrl中一样,我们可以在 Gnome 中使用 GJSgdbus来执行此操作:

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())"
Run Code Online (Sandbox Code Playgroud)


Non*_*ose 0

TL;DR 你仍然可以这样做

虽然xdotool使用 X11 API,因此无法在 Wayland 上运行,但wmctrl可以与桌面环境本身交互。因此,虽然其需要 X11 API 的命令不起作用,但您仍然可以wmctrl在 Wayland 会话中使用许多命令(-k on包括)。

使用 GNOME Shell 3.30.2 和wmctrl1.07 在 Arch Linux 上进行测试。

  • 它仅适用于 X windows,不支持 Wayland 本机应用程序(已列出)。 (8认同)