在gnome-terminal中的配置文件之间切换的命令行


20

我为gnome-terminal创建了一个新的配置文件,可以在“隐式”配置文件和新创建的配置文件之间切换,如下图所示:

在gnome终端中的配置文件之间切换

现在,我想知道如何使用命令行/脚本或使用快捷方式在配置文件之间切换。

注意:解决方案如:

gnome-terminal --tab-with-profile=Implicit && exit 

被排除在外是因为在更改个人资料的过程中,我不想关闭并打开另一个终端或获取另一个终端窗口。


1
使用gconftool-2可以设置立即更改的配置文件。您是否检查过-> stackoverflow.com/questions/660442/…–
Stormvirux

@Stormvirux否...那么您能解释一下如何使用gconftool或gconftool-2切换配置文件吗?我在那里看不到好的答案/解释。
RaduRădeanu13年

Answers:


9

要切换到“隐式”配置文件:

xdotool key Alt+t p Return

要切换到第二个配置文件:

xdotool key Alt+t p Down Return

xdotool 安装xdotool 在Ubuntu中默认情况下未安装该工具,因此必须首先安装它。

当然,可以为这些命令添加自定义键盘快捷键


那不是捷径。您仅在模拟按键,仅是应用程序的助记符。
Braiam 2013年

1
@Braiam是的,我知道这不是捷径。就像我问的那样,这是一个命令行(请参阅man xdotool参考资料),它按我的意愿工作,并且我对这个答案感到满意,直到出现更好的情况为止。;)
RaduRădeanu13年

您应该认真考虑在
bugtracker中

@Braiam正如我告诉您的那样,我对这种解决方案还可以,它就像一种魅力。关于您的建议,从2002年开始有一个这样的建议(在2010年进行了修改:“ 如果我能精确地使用两次击键来打开我选择的个人资料,那就太好了。 ”-参见此评论)。那么,为什么您认为我应该添加一个新的呢?你喜欢重复吗?
RaduRădeanu13年

不幸的是,它不再起作用
RobAu

5

已经有很多不错的答案,但是我想使用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。

  • 我在个人资料名称前加上数字,这样,如果我添加一个新的个人资料名称,由于个人资料菜单的字母顺序,该名称不会转移其他所有名称


......在终端设置中启用只是一张纸条,上面这种方法需要在菜单快捷键>通用
brotherJ4mes

仅供参考,我的xdotool --clearmodifiers需要紧随其后key
lilydjwg

4

没有快捷方式,您可以在不使用GUI的情况下更改终端内的配置文件(而无需按注释中所述导航菜单)。引用手册(稳定版开发版3.9):

通过从“终端”▸“更改配置文件”中选择一个配置文件,可以在当前“终端”选项卡或窗口中更改配置文件。

(您可以在错误跟踪器中提出建议)


实际上,有一个快捷键:Alt + T,然后按P向上箭头向下箭头,然后按Enter。但这有点长...
RaduRădeanu13年

@RaduRădeanuAlt + T在我的终端机3.8.3中不起作用:/
Braiam

1
@RaduRădeanu我猜alt + t 实际上在使用GUI,只是不使用鼠标。
moon.musick

@Braiam如果您使用的是非英语版本的gnome-terminal,请按alt并查看突出显示您的“ Terminal”语言版本的字母(这是我的波兰语版本的第5个项目,在“ Help”的左侧),然后使用该字母与alt
moon.musick

@ moon.musick我正在使用Debian版本的gnome-terminal 3.8.3,并且似乎它没有Alt修饰符来访问菜单。
Braiam

3

我一直想做同样的事情,最后使脚本工作,将其放在GitHub上

就像我在README.md中解释的那样,它实际上并没有切换,而是将一个配置文件配置加载到Default配置文件中。为此,每个配置文件的配置在脚本第一次运行时都保存到文件中。该脚本使您好像在配置文件之间切换,这对我来说已经足够了。希望它能帮助任何人...


2

根据您的目的,您可能会发现此脚本很有用:https : //github.com/xyrix/gnome-terminal-profile-switcher

它执行某种猴子补丁程序,并为每个终端生成一个新的配置文件,然后设置一些环境变量以公开用于切换当前终端配置文件主题的程序。

希望示例safe_ssh脚本可以使事情变得清晰:-)。我使用它已有一年多了,它可以帮助我避免破坏公司的实时数据库^ _ ^


2

如果您有一个经常访问的服务器列表,我相信最简单的解决方案是仅针对该框的会话调用第二个窗口。

首先,为您经常使用的每个远程位置创建一个单独的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

...但是您失去了为该框定义登录用户名的灵活性。我将脚本的其他功能留给读者练习。


感谢您为我提供这个想法。:-)我想补充一点,您可以轻松地编写一个.desktop文件,通过这种方式(双击)打开您喜欢的位置。
Hinz

1

我刚刚注意到我的原始解决方案已在问题中被拒绝。尽管似乎没有简单的方法可以更改配置文件,但是可以使用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个人资料无效。可能是因为&不是有效字符,因此在命名配置文件时请记住这一点。


0

我最终使用的非常丑陋的解决方案是

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

这是做什么的:

  1. 查找当前窗口的左上角坐标(例如,正在使用的gnome终端)。
  2. 将鼠标移到该终端上
  3. 右键单击并浏览上下文菜单以选择第二个配置文件。

您将需要安装xdotool sudo apt install xdotool

终端本身不允许通过终端进行配置的非同寻常!


0

gnome-terminal最好提供“下一个配置文件”命令和快捷方式;不幸的是,事实并非如此。

对于那些已Alt+T禁用(编辑>首选项>启用助记符-未选中)的人,一种解决方法是:F10 left left down right并选择配置文件。哎哟。


值得注意的是,这需要菜单栏可见。
Gauthier '18

0

这是一篇比较老的文章,但是由于在我寻求解决同一问题时它不断出现,所以我想我会发布我的解决方案。

这涉及一个小的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键选择它们时识别它们。

终端窗口示例

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.