如果任何终端已打开,则按 Ctrl-Alt-T 打开终端选项卡

如果任何终端已打开,则按 Ctrl-Alt-T 打开终端选项卡

如果您已经有一个打开的终端,那么有没有办法让Ctrl++打开终端选项卡,而不是另一个终端窗口?AltT

我已经将我的偏好设置为在选项卡中打开新终端。(如果没有打开终端,我仍然希望按键绑定可以打开一个终端。)

答案1

这是我所做的并且效果非常好。

  1. gnome-terminal如果您已更改首选项,请将其更改为默认首选项。
    因此,将Ctrl+ Shift+设置t为打开新选项卡的快捷方式。

    在此处输入图片描述

  2. 我们需要xdotool(大约 30KB)通过以下方式安装它:

    sudo apt install xdotool
    
  3. 现在创建一个文件(例如,在您的主目录中名为.custom-terminal-key.sh),并在其中输入以下几行(感谢 Jacob Vlijm):

    #!/bin/bash
    
    if [[ "$(xprop -id "$(xdotool getactivewindow)" WM_CLASS)" == *"gnome-terminal"* ]]; then
      sleep 0.1
      xdotool key ctrl+shift+t
    elif ! pgrep 'gnome-terminal'; then
      gnome-terminal
    fi
    

    每次运行它时,如果有任何打开的话gnome-terminal,它将模拟一个Ctrl++键绑定,否则它会运行。Shifttgnome-terminal

  4. Ctrl最后,我们改变++的默认行为,而不是每次按下这些键时都打开终端,Alt而是t运行我们的脚本。

    gsettings set org.gnome.desktop.default-applications.terminal exec '/home/USER/.custom-terminal-key.sh'
    

    USER用你的真实改变用户名

  5. 不要忘记赋予我们的脚本可执行位:

    chmod +x ~/.custom-terminal-key.sh
    

我们完了。


回滚

每当你改变主意时只需运行:

gsettings set org.gnome.desktop.default-applications.terminal exec 'gnome-terminal'

删除我们的脚本rm ~/.custom-terminal-key.sh并且xdotoolsudo apt remove xdotool


获取活动窗口名称

答案2

这是一个在 Ubuntu 22 上对我有用的简单方法:

  1. wm-ctrl使用以下方式安装依赖项sudo apt install wmctrl
  2. 编写一个脚本.custom-terminal-key.sh并将其放在您的主目录下~
#!/bin/bash

win_id=$(wmctrl -l | grep "Terminal" | awk '{print $1}')

if [ -n "$win_id" ]; then
    wmctrl -ia "$win_id"
else
    gnome-terminal &
fi
  1. 允许使用以下方式执行文件
chmod +x .custom-terminal-key.sh
  1. 打开“设置”>“键盘”>“查看和自定义快捷方式”>“自定义快捷方式”(滚动到底部) 导航至自定义快捷方式

  2. 添加任意名称的快捷方式,命令/home/USER/.custom-terminal-key.sh,并将其绑定到Ctrl-Alt-T 添加终端快捷方式

相关内容