.xsession. .xinitrc, xmonad et lightdm

16

Permettez-moi de faire précéder ma question de ce qui suit: je suis à peu près sûr que je peux pirater ensemble une solution en modifiant /usr/share/xsessions/somesessionfile.desktop et en l'exécutant / etc / X11 / Xsession, et le faire fonctionner de cette façon , mais je voudrais quand même clarifier certaines choses.

Installation: 12.04, installation complètement nouvelle (peut-être 3 heures). Vous voulez utiliser xmonad comme ma WM. Configuration à double tête.

Ma question: je suis complètement, ou plutôt complètement, confus quant au programme qui fait quoi, concernant X, l'unité, les gestionnaires de connexion (ou peu importe comment ils s'appellent) et les gestionnaires de fenêtres. J'utilise xmonad comme gestionnaire de fenêtres, j'en sais beaucoup. Et lorsque je me connecte, ou peut-être même plus tôt, je veux que mes deux moniteurs soient correctement configurés à l'aide d'un script qui exécute xrandr (que je possède déjà). Tous ceux à qui je parle ou dont j'ai lu les questions en ligne parlent de xinitrc, ~ / .xsession ou / etc / X11 / xsession, mais aucun de ces fichiers n'est en cours d'exécution. Les fichiers dans / usr / share / xsesssions semblent être les seuls fichiers qui sont en cours d'exécution, et je ne peux pour la vie de trouver aucune documentation à ce sujet.

Où est la cohérence de ce système? Que dois-je faire exactement si je veux le faire correctement? Certains gestionnaires de fenêtres semblent faire cela (KDE et gnome semblent avoir quelque chose qui s'appelle simplement «démarrage automatique»). Suis-je censé laisser mon gestionnaire de fenêtres gérer cela, X ou lightdm? Je comprends qu'il y a probablement des dizaines de fichiers dans le processus de démarrage dans lesquels je pourrais éventuellement mettre cela, mais je demande la convention appropriée. Quelle est la solution, pour quelque chose comme ça?

TL; DR; Existe-t-il un moyen cohérent d'exécuter un script automatiquement pour chaque gestionnaire de fenêtres qui s'exécute au-dessus de X, ou cela dépend-il entièrement de la combinaison des gestionnaires de fenêtres et des gestionnaires de connexion que j'utilise?

foobarbaz
la source

Réponses:

11

Je pense que vous constaterez que cela fonctionnera pour vous. Il proviendra du script de tiret / usr / sbin / lightdm-session qui exécutera plus tard l'exec pour le gestionnaire de fenêtres.

En supposant que ceci est juste pour vous, et parce qu'il est lié à X, je suggère de le mettre dans ~ / .xprofile. S'il s'applique à tous les utilisateurs du système, / etc / xprofile peut être plus approprié.

Créez un fichier ~ / .xprofile et modifiez-le pour qu'il contienne quelque chose de votre commande xrandr (similaire à l'élément de test suivant):

xrandr - sortie LVDS - mode 1280x854

Vous pouvez trouver plus d'informations sur Que se passe-t-il sous les couvertures pour me connecter et démarrer Unity ou une autre interface utilisateur graphique? . Il couvre une partie de ce qui se passe pour les gestionnaires de fenêtres non unitaires.

John S Gruber
la source
3

Merci beaucoup pour le lien "Que se passe-t-il sous la couverture ...", à lire absolument!

~ / .xprofile se produit trop tôt, les paramètres xrandr sont perdus.

Une solution consiste à créer un script et à l'exécuter dans les "applications au démarrage". Cependant, puisque nautilus est déjà lancé et qu'il décidera d'afficher les icônes sur le moniteur secondaire (après la commande xrandr), j'ai ajouté à la fin:

killall -1 nautilus
nautilus -n

Sale mais fonctionne. J'espère que cela t'aides.

jissouille
la source