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

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

我知道gsettingsdconf,但我找不到任何关于活动配置文件的提及。似乎您只能列出配置文件,而不知道当前配置文件是什么。

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

答案1

问题已在评论中修改:如何获取背景颜色?为此,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-terminal 窗口和选项卡的信息,每个窗口和选项卡可能使用单独的配置文件。然后我们仍然需要能够以某种方式识别要查找哪一个。

    2. 他们只能在本地工作,不能跨越sussh

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

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

答案2

一些聪明的人说了这个命令

导出 DCONF_PROFILE=/home/user/mydconfprofile

我的邮件一直被删除,这很烦人

相关内容