如何通过脚本或 Shell 命令将焦点切换到 Gnome 终端选项卡
How to Switch Focus to a Gnome Terminal Tab via Script or Shell Command
我目前正在编写脚本以在 gnome-terminal 中打开多个选项卡并设置它们的标题。我可以打开多个选项卡,但我需要将焦点更改到这些选项卡(以编程方式)以便从我的脚本中设置它们的标题。
我交替使用 zsh 和 bash,所以任何 bash 命令都应该可以正常工作。我开始熟悉 xdotool
和 wmctrl
,但不确定将焦点切换到打开的选项卡的命令组合。
我可以从 gnome-terminal CLI 对 "switch to next open tab" 或 "switch to tab N" 使用什么命令?
为了从 Bash Shell 发送信号,请使用 xdotool
:
sudo apt install xdotool
在您的脚本中发出此命令:
xdotool key Control+Page_Up
您可以在打开标签时设置标签的标题:
gnome-terminal --geometry=80x25+0+0 --window --working-directory=<Firtst Tab Dir> \
--title='<First Tab Title>' --command="bash" \
--tab --working-directory=<Second Tab Dir> --title='<Second Tab Title>' \
--command="bash" and so on...
我本来可以作为评论发表的,但还没有足够的声誉,但是
我用 xdotool
解决了这个问题
在一行中,首先,使用 key
命令打开一个新选项卡。默认行为是将焦点切换到此选项卡。然后,使用 type
命令在新选项卡中 运行 函数、脚本或其他程序。最后,使用 key
命令 "press enter." 重复 N 多个选项卡!
# inside a file loaded by .bashrc which contains all my functions:
function setupterm() {
# run a command, like set a title, in the current window/tab
customCommandOne
# do the needful as described above
xdotool key Control+Shift+t && xdotool type customCommandTwo && xdotool key Return
# repeat for n-many tabs
xdotool key Control+Shift+t && xdotool type customCommandThree && xdotool key Return
# return focus to first tab
xdotool key Control+Page_Down
}
我目前正在编写脚本以在 gnome-terminal 中打开多个选项卡并设置它们的标题。我可以打开多个选项卡,但我需要将焦点更改到这些选项卡(以编程方式)以便从我的脚本中设置它们的标题。
我交替使用 zsh 和 bash,所以任何 bash 命令都应该可以正常工作。我开始熟悉 xdotool
和 wmctrl
,但不确定将焦点切换到打开的选项卡的命令组合。
我可以从 gnome-terminal CLI 对 "switch to next open tab" 或 "switch to tab N" 使用什么命令?
为了从 Bash Shell 发送信号,请使用 xdotool
:
sudo apt install xdotool
在您的脚本中发出此命令:
xdotool key Control+Page_Up
您可以在打开标签时设置标签的标题:
gnome-terminal --geometry=80x25+0+0 --window --working-directory=<Firtst Tab Dir> \
--title='<First Tab Title>' --command="bash" \
--tab --working-directory=<Second Tab Dir> --title='<Second Tab Title>' \
--command="bash" and so on...
我本来可以作为评论发表的,但还没有足够的声誉,但是
我用 xdotool
解决了这个问题在一行中,首先,使用 key
命令打开一个新选项卡。默认行为是将焦点切换到此选项卡。然后,使用 type
命令在新选项卡中 运行 函数、脚本或其他程序。最后,使用 key
命令 "press enter." 重复 N 多个选项卡!
# inside a file loaded by .bashrc which contains all my functions:
function setupterm() {
# run a command, like set a title, in the current window/tab
customCommandOne
# do the needful as described above
xdotool key Control+Shift+t && xdotool type customCommandTwo && xdotool key Return
# repeat for n-many tabs
xdotool key Control+Shift+t && xdotool type customCommandThree && xdotool key Return
# return focus to first tab
xdotool key Control+Page_Down
}