如何获取当前的 GNOME 终端配置文件?

use*_*095 6 gnome-terminal gsettings dconf

我知道gsettingsdconf,但我找不到任何提及活动配置文件的内容。似乎您只能在不知道当前配置文件是什么的情况下列出配置文件。

我想查询背景颜色以在 Vim 中适当地设置背景。

egm*_*ont 6

评论中修改了问题:How to get the background color? 为此,xtermcontrol --get-bg可以使用该命令。

这个特定的命令依赖于支持 OSC 11 转义序列的终端仿真器,它通常与 OSC 12(前景;xtermcontrol --get-fg)、OSC 4(调色板颜色;xtermcontrol --get-color0.. --get-color15)和其他一些一起使用。一些流行的终端仿真器实现了这些,而其他一些流行的则没有,所以这些命令在任何地方都不起作用。VTE 小部件,以及基于 VTE 的终端仿真器,例如gnome-terminal确实支持这些。

当这些转义序列用于查询颜色而不是设置颜色时,这些转义序列非常棘手:终端仿真器完全像来自键盘一样注入响应,也就是说,就好像用户键入它一样。xtermcontrol读取此输入,然后作为输出打印,隐藏此技术细节。(如果你真的愿意,你可以xtermcontrol通过从键盘手动输入一个错误的答案来愚弄,哈哈。)


回到最初的问题:

无法在 gnome-terminal 中查询当前配置文件。为什么?

  • 阅读gsettingsdconf无法工作的原因有两个:

    1. 它们包含 gnome-terminal 的静态配置(设置),而不是运行时信息。即使它们包含运行时信息,它们也必须包含所有打开的 gnome 终端窗口和选项卡的信息,每个窗口和选项卡都可能使用单独的配置文件。然后不知何故,我们仍然需要能够确定要寻找哪一个。

    2. 它们只能在本地工作,不能跨例如 asussh

  • gnome-terminal 可以在打开窗口或选项卡时初始化环境变量,但如果配置文件发生更改,则无法随后更新它。(参见有关的讨论$COLORFGBGhttps://bugzilla.gnome.org/show_bug.cgi?id=733423。)

  • 它可以报告当前配置文件作为对某些转义序列的响应,就像用户从键盘输入它一样(类似于前面提到的 OSC 4、10、11)。但是,对此没有标准,它甚至会产生安全隐患(请参阅https://bugzilla.gnome.org/show_bug.cgi?id=151260),而且该xtermcontrol实用程序可能在未来很多年都没有支持(见鬼它甚至还不支持 256 色)。