如果此桌面上不存在用于打开新终端的键盘快捷键。否则,聚焦当前的一个

如果此桌面上不存在用于打开新终端的键盘快捷键。否则,聚焦当前的一个

我想创建一个键盘快捷键,仅当当前桌面上不存在时才会打开新的终端窗口。否则,当前现有的将成为焦点。我刚刚从 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。毫不奇怪,它的输出从不包含现有终端窗口的名称。问题似乎是xdotoolFedora 25 中不再识别 gnome-terminal,因此上述脚本将始终创建一个新终端。

编辑: 此外,xdotool getwindowfocus getwindowname在终端中运行会返回:

xdo_get_focused_window_sane failed (code=1)
xdo_focus_window reported an error

因此,xdotool 似乎无法再识别gnome-terminal

相关内容