使用 `Ctrl-Alt-T` 快捷键聚焦现有终端

使用 `Ctrl-Alt-T` 快捷键聚焦现有终端

我经常使用终端,

所以我想知道是否有一种方法可以让Ctrl++聚焦现有终端AltT如果有),否则创建一个新的终端?

答案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快捷方式。

相关内容