我为gnome-terminal创建了一个新的配置文件,可以在“隐式”配置文件和新创建的配置文件之间切换,如下图所示:
现在,我想知道如何使用命令行/脚本或使用快捷方式在配置文件之间切换。
注意:解决方案如:
gnome-terminal --tab-with-profile=Implicit && exit
被排除在外是因为在更改个人资料的过程中,我不想关闭并打开另一个终端或获取另一个终端窗口。
我为gnome-terminal创建了一个新的配置文件,可以在“隐式”配置文件和新创建的配置文件之间切换,如下图所示:
现在,我想知道如何使用命令行/脚本或使用快捷方式在配置文件之间切换。
注意:解决方案如:
gnome-terminal --tab-with-profile=Implicit && exit
被排除在外是因为在更改个人资料的过程中,我不想关闭并打开另一个终端或获取另一个终端窗口。
Answers:
要切换到“隐式”配置文件:
xdotool key Alt+t p Return
要切换到第二个配置文件:
xdotool key Alt+t p Down Return
xdotool
在Ubuntu中默认情况下未安装该工具,因此必须首先安装它。
当然,可以为这些命令添加自定义键盘快捷键。
man xdotool
参考资料),它按我的意愿工作,并且我对这个答案感到满意,直到出现更好的情况为止。;)
已经有很多不错的答案,但是我想使用xdotool添加一个不需要菜单栏可见的其他变体...
组合键shift + F10将打开一个弹出菜单(等效于在终端上单击鼠标右键),然后可以在其中更改配置文件。
例如xdotool key shift+F10 r 3
进入第三个人资料
我还发现该方法不需要为xdotool设置延迟(我发现这对于菜单栏方法是必需的),因此它的速度要快一些。
我倾向于对配置文件进行很多更改,因此将其包装为一个函数:
function chp(){
xdotool --clearmodifiers key Shift+F10 r $1
}
因此我可以致电chp N
切换到第N个配置文件。
我的设置的更多提示和特质:
通过向chp
我的.bashrc 添加命令,我可以强制新选项卡始终切换到默认配置文件
我根据主机对ssh会话进行了颜色编码,但我不喜欢ssh别名打开新标签页或窗口,并且我希望在退出ssh时将配置文件更改回默认值。我的解决方案:
alias somehost="chp 2; ssh user@somehost; chp 1"
我给xdotool标记,--clearmodifiers
以便如果我碰巧按住修改键(打开选项卡/窗口,退出ssh等)时,它不会干扰xdotool。
我在个人资料名称前加上数字,这样,如果我添加一个新的个人资料名称,由于个人资料菜单的字母顺序,该名称不会转移其他所有名称
--clearmodifiers
需要紧随其后key
。
没有快捷方式,您可以在不使用GUI的情况下更改终端内的配置文件(而无需按注释中所述导航菜单)。引用手册(稳定版,开发版3.9):
通过从“终端”▸“更改配置文件”中选择一个配置文件,可以在当前“终端”选项卡或窗口中更改配置文件。
(您可以在错误跟踪器中提出建议)
gnome-terminal
,请按alt
并查看突出显示您的“ Terminal”语言版本的字母(这是我的波兰语版本的第5个项目,在“ Help”的左侧),然后使用该字母与alt
。
根据您的目的,您可能会发现此脚本很有用:https : //github.com/xyrix/gnome-terminal-profile-switcher
它执行某种猴子补丁程序,并为每个终端生成一个新的配置文件,然后设置一些环境变量以公开用于切换当前终端配置文件主题的程序。
希望示例safe_ssh脚本可以使事情变得清晰:-)。我使用它已有一年多了,它可以帮助我避免破坏公司的实时数据库^ _ ^
如果您有一个经常访问的服务器列表,我相信最简单的解决方案是仅针对该框的会话调用第二个窗口。
首先,为您经常使用的每个远程位置创建一个单独的gnome-terminal配置文件。然后,在每个配置文件中,指定终端应对该框而不是普通外壳执行SSH登录命令。
ssh alice@athena
最后,编写一个简短的脚本以在给定配置文件ID的情况下启动新的远程窗口。
#!/bin/bash
if [[ $# -ne 1 ]] ; then
echo "Give me a server/profile name!"
exit 1
fi
gnome-terminal --window-with-profile=$1
exit 0
使用此策略,您可以“无限”改变每个框的终端窗口的外观,并从单个“控制”终端启动它们。例如,如果我们将此脚本称为“ rlv”,则可以通过简单地使用配置文件名称调用脚本来生成远程窗口。
>> rlv athena
如果您曾经用过一个主机名,或者忽略了为该主机设置配置文件的操作,那么您只会在本地框中看到另一个默认配置文件窗口。有一种方法可以通过将登录名放入脚本本身而不是gnome-terminal来编写脚本来避免这种情况:
#!/bin/bash
if [[ $# -ne 1 ]] ; then
echo "Give me a server/profile name!"
exit 1
fi
gnome-terminal --window-with-profile=$1 -e "ssh $1"
exit 0
...但是您失去了为该框定义登录用户名的灵活性。我将脚本的其他功能留给读者练习。
我刚刚注意到我的原始解决方案已在问题中被拒绝。尽管似乎没有简单的方法可以更改配置文件,但是可以使用setterm
命令更改背景/前景色。
因此,这setterm -term linux -background black -foreground green
将为您提供黑色背景和绿色文本。唯一的问题是ls具有彩色输出,因此您可能想要关闭ls彩色。否则,它将重置为以前的配色方案
原始帖子:有一种解决方法。从man gnome-terminal:
--window-with-profile = PROFILENAME
Open a new window containing a tab with the given profile. More than one of these options can be provided.
这是我机器上的示例。我有三个配置文件:B&G(绿色上的黑色),ForPrinting(黑色字体,白色背景)和默认值。所以我要做的是当前窗口类型gnome-terminal --window-with-profile=ForPrinting
。然后,我可以从命令行杀死旧窗口,也可以切换并以图形方式关闭它。
B&G个人资料无效。可能是因为&不是有效字符,因此在命名配置文件时请记住这一点。
我最终使用的非常丑陋的解决方案是
unset x y
eval $(xwininfo -id $(xdotool getactivewindow) |
sed -n -e 's/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p' \
-e 's/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p')
xdotool mousemove $(($x + 50)) $(($y + 50))
xdotool click 3; xdotool key --repeat 3 Up; xdotool key Right; xdotool key --delay 50 Down; xdotool key --delay 50 Return
(这将选择第二个配置文件,但是您可以通过将第二个“ key Down”命令更改为来将其更改为htir配置文件xdotool key --delay 50 --repeat 2 Down
。
这是做什么的:
您将需要安装xdotool sudo apt install xdotool
。
终端本身不允许通过终端进行配置的非同寻常!
gnome-terminal最好提供“下一个配置文件”命令和快捷方式;不幸的是,事实并非如此。
对于那些已Alt+T
禁用(编辑>首选项>启用助记符-未选中)的人,一种解决方法是:F10 left left down right
并选择配置文件。哎哟。
这是一篇比较老的文章,但是由于在我寻求解决同一问题时它不断出现,所以我想我会发布我的解决方案。
这涉及一个小的python脚本,并重新映射CTRL + ALT + T按钮以运行该脚本,而不是简单地启动终端。
创建一个文本文件,我命名为mine terminal.py并确保其可执行。将以下代码放入其中。这将依次使用所有可用的配置文件打开终端窗口,确保标记为“默认”的是列表中的第一个。
#!/usr/bin/python
#
# Launch a gnome-terminal window trying to assign each new window
# to a different profile.
#
import json
import os
import commands
profiles=[]
try:
profileList = commands.getoutput("gsettings get org.gnome.Terminal.ProfilesList list").replace("'",'"')
profileDefault = commands.getoutput("gsettings get org.gnome.Terminal.ProfilesList default").replace("'",'"')
profiles.append(json.loads(profileDefault))
ls = json.loads(profileList)
ls.remove(profiles[0])
profiles+=ls
# find the next available terminal number
# when terminals are closed, gaps in the numbers can happen
# terminals are numeric and the lowest slot is filled first
terminals = commands.getoutput("ls /dev/pts/ | grep -E '^[0-9]+$'").split("\n")
next = 0
try:
while terminals.index(str(next))>=0:
next += 1
except:
pass
# determine the profile to use
prof = next % len(profiles)
# launch the terminal with the specific profile
cmd="gnome-terminal --window-with-profile='%s'" % (profiles[prof])
os.system(cmd)
except:
# if anything fails, launch a default terminal
print("error")
os.system("gnome-terminal")
使用键盘设置实用程序为该脚本分配新的快捷方式。对我来说,我重新分配了CTRL + ALT + T,因为这是我用来打开终端窗口的快捷方式。
确保在终端中创建多个配置文件。该脚本将使用您的所有配置文件。因此,您创建的内容越多,就可以访问更多的Windows版本。除了背景色外,我有几个其他的都一样。这有助于我在按Alt键选择它们时识别它们。