我习惯在使用 Ubuntu (GNOME) 时按Ctrl+ Alt+T来显示终端。一段时间后,我打开了过多的终端窗口,而我真正需要的只是一个。
我怎样才能让Ctrl++不一定打开一Alt个T新的终端窗口,但显示我已经打开的窗口?
逻辑应该是这样的:如果已经打开了终端,则显示它。如果没有打开终端,则打开一个新终端(相当于默认行为)。
答案1
将其保存为脚本,但将所有出现的更改xfce4-terminal
为您的常规终端名称:
#!/bin/bash
if [[ $(pgrep -x xfce4-terminal) ]]; then xdotool windowactivate `xdotool search --pid $(pgrep -x xfce4-terminal) | tail -1`; else xfce4-terminal; fi
并添加执行该脚本的快捷方式。这可能会因您的操作系统而异。
在 Xubuntu 上,您可以将脚本的路径输入到键盘/应用程序快捷方式中。
xdotool
如果尚未安装,则可能需要安装:
sudo apt install xdotool
在我的测试中,这会打开您执行最后一条命令的终端。
答案2
选项 1:通过按键激活固定图标
任何标准 Ubuntu 桌面(无论运行在 Xorg 还是 Wayland 上)都适用的一种方法是将一个额外的键绑定到内置功能以切换到仪表板上的固定图标。默认情况下,Super+1会激活(如果尚未运行,则启动)首先固定的应用程序。
假设您的终端被固定为 Dock 上的第四个图标。默认情况下,您可以按Super+切换4到它。要使用Control+ Alt+切换到它T,首先停用默认绑定(“设置”、“键盘”、“键盘快捷键”、“启动器”下的“启动终端”)。然后使用 dconf-editor 添加一个键,或者使用终端:
gsettings set org.gnome.shell.keybindings switch-to-application-4 "['<Super>4','<Control><Alt>t']"
选项 2:使用 Gnome Shell 扩展运行或输入
使用维护良好的 Gnome Shell 扩展,可以对运行或提升进行更多控制配置,并且不受仪表板中图标顺序的影响通过 e2rd 运行或加注。
对于默认 Gnome Shell 的用户:它还允许将单个窗口置于前面,而前一个选项的行为就像您单击仪表板上的图标一样,即将应用程序的所有窗口置于前面。
选项 3(仅限 Xorg)
对于在 Xorg 上运行的系统,经典的 Xorg 工具继续发挥其出色的作用。删除默认的键绑定以启动终端(参见上文)并创建自定义版本,分配命令:
sh -c "wmctrl -x -a Gnome-terminal || gnome-terminal"
第一部分检查是否存在“Gnome-terminal”类窗口并激活它。如果失败(||
),则尝试执行第二条命令,即启动终端。
对于相同但更强大的功能,你可以使用优秀的 bash 脚本跳转应用而是使用wmctrl
底层,但允许通过反复按下快捷键在不同的打开窗口之间循环,解决窗口关闭但后台进程仍运行一段时间的情况等。(我正在看着你,nautilus......)
如Natan 的回答,也xdotool
可以使用。另外该选项仅适用于 Xorg。
答案3
我目前在 Manjaro Gnome 42 Wayland 中执行此操作。
没有理由它不能在基于 Ubuntu 的衍生产品中运行。
这是为了有一个快捷方式,它将聚焦当前的 gnome 终端,否则它将产生一个新实例。
加载此扩展 https://extensions.gnome.org/extension/5185/toggle-window/
使用以下内容创建键盘快捷键。是的,这只有一行。
bash -c "pgrep -x gnome-terminal- >/dev/null && gdbus call --session --dest org.gnome.Shell --object-path /cn/extensions/toggleWindow --method cn.extensions.toggleWindow.ToggleWindowByWMClassName 'gnome-terminal' || gnome-terminal"
我还没有找到其他可以可靠地适用于 Wayland 和 Gnome 41+ 的方法,所以我想在某个地方分享一下。使用 wmctrl 等的其他方法在 Wayland 上不起作用。
答案4
我尝试按照顶部答案的建议使用xdotool
,但它不起作用gnome-terminal
(我不断收到各种错误;顺便说一句,它在其他一些窗口上有效)。我不想安装任何扩展,所以我只是安装了蒂利克斯它看起来非常相似,gnome-terminal
并且有一个选项可以聚焦于偏好设置中的现有窗口,而不是打开新窗口。然后我tilix
在自定义快捷方式中分配了一个快捷方式来运行命令。