Xterm 未加载配色方案

Xterm 未加载配色方案

我经常使用 vim 工作,并决定切换到 cli 版本,我选择它是xterm因为它是我所知道的唯一可以正确识别Alt快捷方式的终端(而且我有很多绑定在 vim 中的终端)。

我的问题是xterm启动时不加载配置文件。我将其保存.Xresources在我的主目录中的文件中(我也尝试将其内容移至.Xdefaults但无济于事)。当我输入时,xrdb .Xresources它会正常加载所有设置,输入也会xrdb -query -all显示正确的终端设置。我尝试在文件和 Openbox 自动运行中包含该行.xinitrc(我在 Crunchbang 发行版中工作,它是主窗口管理器),但它也不起作用。

谁能指出我如何解决这个问题的正确方向?

我的.Xresources文件如下所示:

!XTerm*termName: xterm-256color
!UXTerm*termName: xterm-256color

! Colors

*background: #181818
*foreground: #c0c0c0
*cursorColor: #93a1a1

!! black dark/light
*color0: #121212
*color8: #2e3436

!! red dark/light
*color1: #a35b66
*color9: #ab6b74

!! green dark/light
*color2: #99ab6f
*color10: #acb972

!! yellow dark/light
*color3: #ca9733
*color11: #ccaa69

!! blue dark/light
*color4: #495d6e
*color12: #687987

!! magenta dark/light
*color5: #825969
*color13: #977381

!! cyan dark/light
*color6: #839191
*color14: #98a4a4

!! white dark/light
*color7: #e0e0e0
color15: #e5e5e5

!-------------------------------------------------------------------------------
*multiClickTime: 500
! Use a nice truetype font and size by default... 

! Every shell is a login shell by default (for inclusion of all necessary environment variables)
xterm*loginshell: true

! I like a LOT of scrollback...
xterm*savelines: 16384
UXTerm*faceSize: 8
UXTerm*cursorBlink: true
! double-click to select whole URLs :D
xterm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48

! right hand side scrollbar...
xterm*rightScrollBar: false
xterm*ScrollBar: false

! stop output to terminal from jumping down to bottom of scroll again
xterm*scrollTtyOutput: false

答案1

检查xterm运行时处理哪些文件。通常这些包括:

$HOME/.Xdefaults-`hostname`
{$HOME,/etc/X11/app-defaults}/{<locale-full>,<locale-lang>,}/XTerm{,-color}

检查输出strace xterm以获得系统的完整列表。

我的猜测是你需要这样做ln -s ~/.Xdefaults ~/.Xdefaults-$(hostname)

您可能还想通过两种方式整理 .Xdefaults 文件:

  1. 选择帽子样式并保持一致
  2. 在整个设置中使用类似xterm*或 的前缀VT100*

一个好主意也可能是为每个应用程序的 Xresources创建一个简单的.Xdefaults文件,即:#includes

#include <path/to/XTerm.xresources>
#include <path/to/UXTerm.xresources>
#include <path/to/whatever_else.xresources>

因为它的扩展性更好。

答案2

类似的设置*background: #181818适用于使用 X 资源的所有应用程序中所有小部件中的所有背景颜色。但是,如果应用程序在某处对其小部件有显式设置,则此更具体的设置将覆盖常规设置*background。在实践中,像这样的一般设置*background是没有用的。

中的所有条目~/.Xresources都应以应用程序的类名开头。这通常是带有首字母大写的程序名称。对于 xterm(包括支持 Unicode 的 xterm,除非您运行的是古董),类名称是XTerm。所以将你的更改~/.Xresources

XTerm*background: #181818
XTerm*foreground: #c0c0c0
XTerm*cursorColor: #93a1a1

如果这仍然不起作用,请尝试更具体的设置,明确列出您要更改的小部件:

XTerm.VT100.background: #181818
XTerm.VT100.foreground: #c0c0c0
XTerm.VT100.cursorColor: #93a1a1

如果您使用xterm(小写) 而不是XTerm,则这些设置仅在您使用实例名称运行程序(xterm 或任何其他)时应用xterm,但在运行例如时则不适用xterm -name foo

哦,还有不设置loginShell:在每个终端中运行一个登录 shell,这会导致比它解决的问题更多的问题。无论如何,您需要为整个会话设置环境变量,而不是在每个终端中设置。

相关内容