~ / .xinitrc non exécuté

14

Je ne peux pas exécuter mes scripts ~/.xinitrc( ~/.xsession) lorsque je me connecte à mon ordinateur. J'utilise Xubuntu 12.10 avec vanilla lightgm comme gestionnaire de connexion. Ces deux fichiers ont la bonne autorisation (exécutable). J'ai dans mon ~/.xinitrc, ce qui suit:

#!/usr/bin/env bash 

# read ~/.Xmodmap if it exists
if [[ -f "${HOME}/.Xmodmap" ]]; then
    xmodmap "${HOME}/.Xmodmap"
fi

# read ~/.Xresources if it exists
if [[ -f "${HOME}/.Xresources" ]]; then
    xrdb -load "${HOME}/.Xresources"
fi

# use gnome-keyring-daemon to manage keys
/usr/bin/gnome-keyring-daemon --start --components=gpg
/usr/bin/gnome-keyring-daemon --start --components=ssh

Aucune autre commande (comme date >> "$HOME/did_start") n'est également en cours d'exécution.

Maintenant, apparemment, même si je supprime mes fichiers ~/.xinitrcet ~/.xsession, xmodmapsemble être en train de lire ~/.Xmodmap, et ~/.Xresourcesest également partiellement lu. J'ai vérifié /etc/X11/Xsessionpour voir s'il y avait des commandes qui le faisaient lire ces deux fichiers et n'en ai trouvé aucun. Que pourrait-il se passer?

EDIT: depuis que Gilles a demandé, j'utilise une session personnalisée lors de la connexion via lightdm ( /usr/share/xsessions/custom.desktop):

[Desktop Entry]
Name=Xsession
Exec=/etc/X11/Xsession

Mais apparemment, cela démarre toujours XFCE via startxfce4même si je ne l'ai pas dans mon ~/.xinitrc.

Et comme Ulrich Dangel l'a souligné, il y a une ligne dans /usr/xdg/xfce4/xinitrclaquelle lit ~/.Xmodmapet ~/.Xresources, et ce script est exécuté par startxfce4. Alors ce "mystère" est maintenant résolu. Mais encore une fois, les couleurs (pour xterm, urxvtetc.) de ne ~/.xinitrcsont toujours pas chargées.

metwarp
la source
Comment se passe votre processus de connexion? Quelles sessions sont disponibles (le cas échéant)?
tijagi
Quel type de session choisissez-vous dans lightdm?
Gilles 'SO- arrête d'être méchant'
@Gilles J'utilise une session personnalisée. J'ai mis à jour ma question avec plus d'informations à ce sujet.
metwarp

Réponses:

6

Pour votre première question, cela dépend généralement de votre session, c'est-à-dire que le fichier dans votre exemple n'est pas nécessairement suffisant car il ne démarre pas votre WM / DE. Normalement , ~/.xsessionou ~/.xinitrccommencer à tout l'environnement et sont non seulement utilisés pour lancer automatiquement des programmes, à savoir qu'ils devraient contenir une ligne comme , exec x-window-managermais le global xsessionpeut simplement inclure le fichier.

Pour votre autre question, Debian (et probablement Ubuntu) en a /etc/X11/Xsession.dpar exemple qui se charge ~/.Xresources. Ces fichiers sont également responsables du chargement et de la recherche du gestionnaire de fenêtres par défaut.

Pour déboguer vos problèmes, vous devriez jeter un œil dans ~/.xsession-errorsou démarrer le xserver à partir d'une console et y voir les messages d'erreur directement, c'est-à-direstartx -- /etc/X11/Xsession

Ulrich Dangel
la source
Pour la première partie, même si je n'ai pas de exec startxfce4ligne dans mon ~/.xinitrc, XFCE démarre (c'est bizarre, autre chose doit arriver). Pour la deuxième partie, oui, ce que vous avez dit semble être le cas. Le /etc/xdg/xfce4/xinitrcscript a provoqué la lecture des deux fichiers.
metwarp
@metwarp ok a mis à jour le commentaire
Ulrich Dangel