根据这个答案,我可以激活或最小化窗口: 如何使用键盘快捷键调出 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
我经常使用xdotool
withxprop
和xev
。它们都为您提供了大量窗口信息。
您可以编写一个简单的脚本,使用xprop
或获取有关窗口的信息xev
并实现您编写的 if-else 块。这也许是最通用的解决方案,不仅适用于您描述的任务,还适用于所有窗口管理。
另一个用于修改窗口管理器的好工具是wmctrl
。它相信无需脚本就可以完成您想要的操作:wmctrl -r "My window name (or id)" -b toggle,hidden
我发现手册页非常简洁此 wmctrl 用户文档更具有说明性。
请注意,这在很大程度上取决于您使用的窗口管理器。这些工具是急性肺水肿兼容,但窗口的图标化、隐藏、粘贴、移动到其他桌面等方面可能会有很大差异。