切换窗口的键盘快捷键(激活/最小化)

切换窗口的键盘快捷键(激活/最小化)

根据这个答案,我可以激活或最小化窗口: 如何使用键盘快捷键调出 keepassX 窗口?

xdotool search --onlyvisible --name "My window name" windowactivate
xdotool search --onlyvisible --name "My window name" windowminimize

我将这些命令分配给两个键盘快捷键,例如 Ctrl+Shift+K 和 Ctrl+Shift+M。

但我只想有一个用于切换窗口的键盘快捷键,这意味着:

if minimalized:
   activate 
else:
   minimalize

我在 xdotool 中没有看到任何“切换”选项: http://manpages.ubuntu.com/manpages/trusty/man1/xdotool.1.html

操作系统:Ubuntu,用户界面:Unity

答案1

我在 X11 KDE plasma 上实现了这个功能:

toggle-window-org-agenda.sh

#!/usr/bin/env sh

if [[ $(xdotool getactivewindow) -eq $(xdotool search --name "Org Agenda") ]]; then
    xdotool windowminimize $(xdotool getactivewindow)
else
    xdotool windowactivate $(xdotool search --name "Org Agenda" || emacsclient -e '(progn (org-agenda nil "o") (evil-goto-first-line))' --create-frame && xdotool search --name "Org Agenda")
fi

将其保存到您的 /home/ user/bin 文件夹并调用它(例如在 KDE 上它是“自定义快捷方式>全局命令”):

/usr/bin/sh /home/<USERNAME>/bin/toggle-window-org-agenda.sh

将所有(三次)出现的“Org Agenda”替换为更好的内容

答案2

我经常使用xdotoolwithxpropxev。它们都为您提供了大量窗口信息。
您可以编写一个简单的脚本,使用xprop或获取有关窗口的信息xev并实现您编写的 if-else 块。这也许是最通用的解决方案,不仅适用于您描述的任务,还适用于所有窗口管理。

另一个用于修改窗口管理器的好工具是wmctrl。它相信无需脚本就可以完成您想要的操作:
wmctrl -r "My window name (or id)" -b toggle,hidden

我发现手册页非常简洁此 wmctrl 用户文档更具有说明性。

请注意,这在很大程度上取决于您使用的窗口管理器。这些工具是急性肺水肿兼容,但窗口的图标化、隐藏、粘贴、移动到其他桌面等方面可能会有很大差异。

相关内容