Estou executando o XMonad com o XQuartz em um MacBook Prop Retina de 11,3. Minhas .xinitrc
parece como segue:
[[ -f ~/.Xdefaults ]] && xrdb -load ~/.Xdefaults
export LANG="en_CA.UTF-8"
xmodmap /Users/xxxxxxx/.xmodmarc
cd $HOME
/Users/xxxxxxxx/Library/Haskell/bin/xmonad
Eu notei que tanto o LANG
exportação e o xmodmap
estão sendo chamados, mas seus efeitos não estão persistindo. Se eu jogar alguns env >> tmp.txt
lá eu vejo que é um ambiente diferente do que quando finalmente chego a um terminal, e suspeito que talvez até um usuário diferente esteja chamando xinit
.
Minhas perguntas
- qual usuário ou ambiente está realmente chamando
xinit
quando você inicia o XQuartz? - onde é o local apropriado para colocar
xmodmap
de modo que é chamado uma vez, e apenas uma vez, quando o XQuartz é iniciado? - Como obtenho o
LANG
definir uma vez, e apenas uma vez, como uma variável de ambiente quando eu inicio o XQuartz (eu preciso disso para suporte unicode)
Obrigado!
cd $HOME
na tua~/.xinitrc
? Se sim, remova essa linha. Além disso, coloqueexec
na frente de sua chamada paraxmonad
, como isso:exec .../bin/xmonad
. Além disso, observe queexport
altera apenas o ambiente do processo atual e processos filhos do processo atual. Não tem efeito em processos já em execução, como outra instância do terminal.Respostas:
O que o usuário / env está realmente chamando
xinit
quando você inicia o XQuartz?No Linux, esse seria o usuário com o qual você efetuou login; Eu suspeito que é provavelmente o mesmo para o Mac OS X. Quanto ao ambiente, seja qual for o ambiente atual é quando você executa
xinit
, esse será o ambiente queXQuartz
executa com, com exceção das alterações feitas no ambiente em um dos arquivos queXQuartz
lê quando inicia.Onde devo colocar
xmodmap
de modo que é chamado uma vez, e apenas uma vez, quando o XQuartz é iniciado?Para criar seu próprio mapa / tabela customizado e armazená-lo em um arquivo de configuração, execute:
Faça as alterações desejadas para
~/.Xmodmap
e, em seguida, teste a nova configuração com:Para ativar sua tabela personalizada ao iniciar o Xorg, isto é, XQuartz, adicione o seguinte ao seu
~/.xinitrc
Como faço para obter o LANG definido uma vez, e apenas uma vez, como uma variável de ambiente quando eu inicio o XQuartz (eu preciso disso para suporte unicode)
Pôr
LANG
, basta adicionar um dos seguintes ao seu~/.xinitrc
fonte
.xinitrc
já com código semelhante. Eu acredito que o problema está relacionado de alguma forma com o ambiente em quexinit
está sendo chamado. Se eu correrwhoami
em.xinitrc
Eu recebo o usuário correto. No entanto, se eu olhar$ENV
dentro.xinitrc
(Correndoecho "$ENV" >> /Users/.../tmp.txt
) Eu vejo um ambiente diferente do que quando eu finalmente aterrizei na casca.