我知道gsettings
和dconf
,但我找不到任何关于活动配置文件的提及。似乎您只能列出配置文件,而不知道当前配置文件是什么。
我想查询背景颜色以便在 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 中无法查询当前配置文件。为什么?
读取
gsettings
或dconf
无法工作有两个原因:它们包含 gnome-terminal 的静态配置(设置),而不是运行时信息。即使它们包含运行时信息,它们也必须包含所有打开的 gnome-terminal 窗口和选项卡的信息,每个窗口和选项卡可能使用单独的配置文件。然后我们仍然需要能够以某种方式识别要查找哪一个。
他们只能在本地工作,不能跨越
su
或ssh
。
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
我的邮件一直被删除,这很烦人