我经常使用终端,
所以我想知道是否有一种方法可以让Ctrl++聚焦现有终端Alt(T如果有),否则创建一个新的终端?
答案1
创建一个可以启动 GNOME 终端的小脚本:
echo 'xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)'> ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh
或者如果您想检查终端是否已运行,请使用:
echo -e $'if ps aux | grep "[g]nome-terminal" > /dev/null\n then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)\n else gnome-terminal &\nfi' > ~/raiseterminal.sh && chmod +x ~/raiseterminal.sh
这将创建包含以下内容的脚本 ~/raiseterminal.sh:
if ps aux | grep "[g]nome-terminal" > /dev/null
then xdotool windowactivate $(xdotool search --onlyvisible --class gnome-terminal)
else gnome-terminal&
fi
打开偏好设置以设置自定义键盘快捷键并将命令设置为/home/$USER/raiseterminal.sh
,但一定要更改$用户更改为您的实际用户名。
如果您只想在特定的屏幕或桌面上调出终端,请参阅xdotool search --help
有关如何执行此操作的更多信息。
还有各种其他方法与其他窗口管理器配合得更好。
答案2
为什么不试试tilda
或者guake
,两者都可以在 ubuntu 存储库中找到。虽然它们没有具体实现你想要的功能,但我确信它们就是你在寻找但不知道它存在的东西。;)
编辑:好的,我有点模糊,更多信息如下:
从维基百科:
Tilda 是一款 GTK+ 终端模拟器。其设计灵感来自 Quake 等电脑游戏中的控制台,当按下某个键(通常是波浪符号)时,控制台会从屏幕顶部向下滑动,而当再次按下该键时,控制台又会向上滑动。
运行 Tilda 比使用键盘快捷键启动新终端更快,因为该程序已经加载到内存中;它对于那些经常打开和关闭终端执行奇怪任务的人来说很有用。
guake
实际上是一回事,我注意到的唯一区别是我无法通过 ctrl+click 打开 http 链接,这让我很烦
答案3
我的版本(=
运行/启动任何应用程序的脚本:
PID=$$
xdotool search --class $1 | while read line
do
echo "$line"
if [ `xdotool windowactivate $line 2> /dev/stdout | grep -c fail` -eq 0 ]
then
kill $PID
exit
fi
done
## Launch the program if we reach here
$1 & disown
例如
sh ~/raise.sh chromium
您可以在以下位置获取更新、功能更强大的版本https://github.com/010penetrator/dotfiles/blob/master/sh/raise.sh
答案4
还有另一种选择:启动或切换。该脚本依靠 wmctrl 来检查窗口是否已打开。如果是,则脚本切换到现有窗口,优先考虑当前桌面上的现有窗口。否则,将启动一个新窗口。此脚本是由 Vaughn Dickson 出版。
#!/bin/sh
terminal_wm_class="gnome-terminal"
terminal_exec="gnome-terminal"
# no terminal started, so start one
if [ -z "`wmctrl -lx | grep gnome-terminal`" ]; then
$terminal_exec &
else
# search for existing terminals on current desktop
current_desk=`wmctrl -d | grep '*' | cut -d ' ' -f 1`
term_on_this_desk=`wmctrl -lx | grep "$current_desk[ ]*$terminal_wm_class" | cut -d ' ' -f 1`
if [ -n "$term_on_this_desk" ]; then
wmctrl -i -a $term_on_this_desk
else
# no terminals on current desktop, so just open the first one we find
wmctrl -x -a $terminal_wm_class
fi;
fi;
将此脚本放在主文件夹中的 bin 文件夹中并使其可执行。然后在键盘快捷键(设置 - 键盘)下,禁用“启动器”部分下“启动终端”的现有热键:单击它,然后按 Backspace 键以禁用当前分配。然后,在“自定义快捷方式”部分中,通过单击 + 图标创建一个新的自定义快捷方式。将脚本的名称填写为“命令”,并为其分配Ctrl+ Alt+t快捷方式。