导航到网页或编辑器后,是否可以将所有打开的终端恢复到其原始位置?单击终端图标,然后分别将每个图标带回,这有点麻烦。
谢谢!
例:
- 预捷径:
- 快捷方式:
导航到网页或编辑器后,是否可以将所有打开的终端恢复到其原始位置?单击终端图标,然后分别将每个图标带回,这有点麻烦。
谢谢!
例:
Answers:
您可以按Alt+ TabWindows和Linux之间进开关Alt+ Shift+ Tab切换回窗口之间。该快捷方式适用于几乎所有图形操作系统。您还可以出于相同目的使用Super+ W和箭头键。
将一个终端窗口置于最前面之后,按Alt+ ~将所有其他终端窗口一一置于最前面:
要自动将所有打开的终端显示在前面(不是我之前描述的一个一个),您需要为以下脚本添加键盘快捷键(脚本取自Adobe的答案,并考虑到该脚本的版本不起作用而进行了改进为了我):
#!/bin/bash
if [ $# -ne 1 ];then
echo -e "Usage: `basename $0` PROGRAM_NAME\n
For example:\n\t
'`basename $0` gnome-terminal' for Terminal\n\t
'`basename $0` firefox' for Firefox\n\t
'`basename $0` chromium-browser' for Chromium\n\t..."
exit 1
fi
pids=" $(pidof $@) "
if [ "$pids" = " " ]; then # the string " " contain two spaces
echo "There is no program named '$@' opened at the moment."
exit 1
fi
wmctrl -lp | while read identity desktop_number PID window_title; do
if [ "${pids/ $PID }" != "$pids" ]; then
wmctrl -ia $identity
fi
done
不要忘记使脚本可执行:
chmod +x /path/to/script/script_name
在终端中测试脚本之后,必须看到:
这是一个小的bash脚本,它将标题与ARG匹配的所有窗口置于最前面:
bring-all-windows.bash ARG
剧本:
#!/bin/bash
Program=$@
wmctrl -l | while read Window; do
if [[ "$Window" == *"$Program"* ]]; then
echo "DEBUG: I bring $Window"
code=`echo "$Window" | cut -f 1 -d " "`
wmctrl -i -a $code
fi
done
你可以绑定
bring-all-windows.bash Terminal
到热键(不要忘记将脚本放入登录shell PATH或为其编写完整路径)。
该脚本需要wmctrl
安装。
编辑:
要从终端运行某些内容,请导航至放置脚本的目录,然后
chmod +x bring-all-windows.bash
./bring-all-windows.bash Terminal
当您确定它可以在终端上正常工作时,请尝试将其绑定到热键,以提供完整路径。当您确定它与热键以及脚本的完整路径一起使用时,请尝试将其目录添加到登录Shell PATH中,然后查看它是否可以那样工作。
wmctrl
and bash
:很自然。
另一种方法是使用xdotool
。您应该先安装它,这sudo apt-get install xdotool
是强制性的。
xdotool search --class "terminal" windowactivate %@
xdotool search --name "braiam@bt" windowactivate %@
第一个查找任何称为*terminal*
的二进制文件,第二个查找具有标题的任何窗口*braiam@bt*
。然后,如果将其放入bash脚本中:
#!/bin/bash
set -e
program=$@
xdotool search --class '$program' windowactivate %@
xdotool search --name '$program' windowactivate %@
您可以在xdotool
手册中了解更多信息。