我想知道是否有任何方法可以定义快捷方式以最大化/聚焦最后打开的终端?Ctrl + Shift + T 打开一个新终端,我想跳转到最后打开的终端。
答案1
是的,如果您使用 Xorg。
安装xdotool
:
sudo apt install xdotool
要激活最后使用的 gnome-terminal(如果存在),请使用以下命令添加自定义快捷方式:
bash -c "xdotool windowactivate $(xdotool search --class 'Gnome-terminal' | tail -1)"
要激活最后使用的 gnome-terminal 或启动一个新的(如果不存在),请使用以下命令:
bash -c "xdotool windowactivate $(xdotool search --class 'Gnome-terminal' | tail -1) || gnome-terminal &"
如果您想知道为什么我在第二次调用时使用命令替换xdotool
:
从人xdotool:
xdotool 支持在一次调用中运行多个命令。通常,您将从搜索命令开始(请参阅“WINDOW STACK”),然后对这些结果执行一组操作。
要查询窗口堆栈,可以使用特殊符号“%N”,其中 N 是数字或“@”符号。如果给出 %N,则会从窗口堆栈中选择第 N 个窗口。 通常,您只需要第一个窗口或所有窗口。请注意,窗口堆栈中的窗口顺序与窗口堆叠顺序相对应,即最底部的窗口将首先报告(参见 XQueryTree(3))。
就你的情况而言,你想要最后的窗口,但是没有办法使用 xdotool 的符号来引用它,所以我们让它打印所有窗口 id 并将它们通过管道传输到尾部以便仅检索最后一个窗口的 id。
上面的第二个命令有效,因为如果没有运行 gnome-terminal,命令替换的结果将为空字符串。结果命令xdotool windowactivate
以非零状态退出(因为没有给出窗口 ID),并导致执行||
(逻辑或)运算符的右侧。