我想创建一个键盘快捷键,仅当当前桌面上不存在时才会打开新的终端窗口。否则,当前现有的将成为焦点。我刚刚从 Fedora 24 升级到 Fedora 25。在升级之前,我将以下脚本绑定到ctrl-alt-t
:
desktop="$(xdotool get_desktop)" # Get number of current desktop
#Check if there is an open terminal on the current desktop.
output="$(xdotool search --onlyvisible --class --desktop $desktop gnome-terminal)"
if [[ -n "$output" ]]
then xdotool windowactivate $output #If there is, then move focus to it.
else gnome-terminal & #Otherwise, open a new terminal.
fi
然而,更新似乎破坏了脚本,它不再正常运行;无论现有终端是否存在,总是会打开一个新终端。作为一项测试,我尝试运行这个班轮desktop="$(xdotool get_desktop)" && for i in $(xdotool search --desktop $desktop --class ".*"); do xdotool getwindowname $i; done
。毫不奇怪,它的输出从不包含现有终端窗口的名称。问题似乎是xdotool
Fedora 25 中不再识别 gnome-terminal,因此上述脚本将始终创建一个新终端。
编辑:
此外,xdotool getwindowfocus getwindowname
在终端中运行会返回:
xdo_get_focused_window_sane failed (code=1)
xdo_focus_window reported an error
因此,xdotool 似乎无法再识别gnome-terminal