2 votes

XQuartz: utilisateur / environnement lors de l'exécution de xinit ? (XMonad, xmodmap, etc.)

Je cours XMonad avec XQuartz sur un Macbook Pro Retina 11,3. Mon .xinitrc ressemble à ceci :

[[ -f ~/.Xdefaults ]] && xrdb -load ~/.Xdefaults
export LANG="en_CA.UTF-8"
xmodmap /Users/xxxxxxx/.xmodmarc
cd $HOME
/Users/xxxxxxxx/Library/Haskell/bin/xmonad

J'ai remarqué que à la fois l'exportation de LANG et l'appel de xmodmap sont effectués, mais leurs effets ne persistent pas. Si j'ajoute env >> tmp.txt, je peux voir qu'il s'agit d'un environnement différent de celui que j'obtiens finalement dans un terminal, et je soupçonne peut-être même qu'un utilisateur différent appelle xinit.

Mes questions

  • quel utilisateur ou environnement appelle réellement xinit lorsque vous démarrez XQuartz ?
  • où est le bon endroit pour mettre xmodmap pour qu'il soit appelé une seule fois, et une seule fois seulement, lorsque XQuartz est lancé ?
  • Comment puis-je définir une seule fois, et une seule fois seulement, la variable d'environnement LANG lorsque je lance XQuartz (j'en ai besoin pour le support Unicode) ?

Merci !

2voto

Alexej Magura Points 1902

Quel utilisateur/env appelle réellement xinit lorsque vous démarrez XQuartz?

Sous Linux, il s'agirait de l'utilisateur avec lequel vous vous êtes connecté ; je soupçonne que c'est probablement la même chose pour Mac OS X. En ce qui concerne l'environnement, quoi que soit l'environnement actuel lorsque vous exécutez xinit, c'est cet environnement que XQuartz utilisera, à l'exception des modifications apportées à l'environnement à l'intérieur des fichiers lus par XQuartz au démarrage.

Où devrais-je mettre xmodmap pour qu'il soit appelé une fois, et une seule fois, lorsque XQuartz démarre?

Pour créer votre propre map/table personnalisée et la stocker dans un fichier de configuration, exécutez :

xmodmap -pke > ~/.Xmodmap

Effectuez les modifications souhaitées dans ~/.Xmodmap puis testez la nouvelle configuration avec :

xmodmap ~/.Xmodmap

Pour activer votre table personnalisée au démarrage de Xorg, c'est-à-dire XQuartz, ajoutez ce qui suit à votre ~/.xinitrc

[ -s ~/.Xmodmap ] && xmodmap ~/.Xmodmap # vous pouvez également essayer d'utiliser `[[ -s ~/.Xmodmap ]] && xmodmap ~/.Xmodmap`

Comment puis-je définir LANG une fois, et une seule fois, en tant que variable d'environnement lorsque je démarre XQuartz (j'en ai besoin pour la prise en charge de l'unicode)

Pour définir LANG, ajoutez simplement l'un des éléments suivants à votre ~/.xinitrc

[[ -z "$LANG" ]] && LANG= # définit uniquement LANG, si LANG est vide
LANG= # définit LANG indépendamment qu'il soit vide ou non

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X