Xterm não carregando esquemas de cores

6

Eu trabalho muito com o vim e decidi mudar para a versão cli, eu escolhi xterm porque é o único terminal que eu conheço que reconhece corretamente os atalhos Alt (e eu tenho muitos desses ligados no vim).

Meu problema é que xterm não carrega o arquivo de configuração na inicialização. Eu tenho isso no arquivo .Xresources no meu diretório home (eu também tentei mover o conteúdo dele para .Xdefaults mas sem sucesso). Quando digito xrdb .Xresources , ele carrega todas as configurações normalmente, e também digitar xrdb -query -all mostra as configurações apropriadas do terminal. Eu tentei incluir essa linha no arquivo .xinitrc e autorun do Openbox (eu trabalho no Crunchbang distro onde é o gerenciador de janelas principal) mas ele também não funciona.

Alguém pode me apontar na direção certa sobre como consertar isso?

Meu arquivo .Xresources é assim:

!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
    
por user47118 14.09.2013 / 07:49

2 respostas

4

Verifique quais arquivos xterm processam quando você os executa. Normalmente, estes incluem:

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

Verifique a saída de strace xterm para obter uma lista completa do seu sistema.

Meu palpite é que você precisa de ln -s ~/.Xdefaults ~/.Xdefaults-$(hostname) .

Você também pode querer arrumar seu arquivo .Xdefaults de duas maneiras:

  1. escolha um estilo de maiúsculas e mantenha-o sempre
  2. use prefixos como xterm* ou VT100* em todas as configurações

Uma boa ideia também pode estar criando um arquivo .Xdefaults simples, continuando apenas #includes para Xresources por aplicativo, ou seja:

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

desde que seja melhor.

    
por 14.09.2013 / 09:56
3

Uma configuração como *background: #181818 se aplica a todas as cores de fundo em todos os widgets em todos os aplicativos que usam recursos do X. No entanto, se um aplicativo tiver uma configuração explícita para seus widgets em algum lugar, essa configuração mais específica substituirá a configuração geral *background . Na prática, uma configuração geral como *background não é útil.

Todas as entradas em ~/.Xresources devem começar com o nome da classe do aplicativo. Este é geralmente o nome do programa com limites iniciais. Para o xterm (incluindo xterm com suporte a Unicode, a menos que você esteja executando uma antiguidade), o nome da classe é XTerm . Então mude seu ~/.Xresources para

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

Se isso ainda não tiver efeito, tente uma configuração mais específica que relacione explicitamente o widget que você deseja alterar:

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

Se você usar xterm (minúsculas) em vez de XTerm , as configurações serão aplicadas somente quando você executar um programa (xterm ou qualquer outro) com o nome da instância xterm , mas não quando for executado, xterm -name foo .

Ah, e não defina loginShell : que executa um shell de login em cada terminal, o que causa mais problemas do que resolve. Suas variáveis de ambiente precisam ser definidas para toda a sessão de qualquer maneira, não em cada terminal.

    
por 17.09.2013 / 02:10