.xsession. .xinitrc, xmonad und lightdm

16

Lassen Sie mich meine Frage mit folgendem vorwegnehmen: Ich bin mir ziemlich sicher, dass ich eine Lösung hacken kann, indem ich /usr/share/xsessions/somesessionfile.desktop ändere und veranlasse, dass sie / etc / X11 / Xsession ausführt und auf diese Weise funktioniert , aber ich möchte noch ein paar Dinge klären.

Setup: 12.04, komplett neu installiert (vielleicht 3 Stunden alt). Willst du xmonad als meine WM verwenden. Dual-Head-Setup.

Meine Frage: Ich bin gründlich oder ziemlich verwirrt darüber, welches Programm was macht, in Bezug auf X, Unity, Login-Manager (oder wie auch immer sie genannt werden) und Window-Manager. Ich benutze xmonad als Fenstermanager, ich weiß so viel. Und wenn ich mich anmelde, oder vielleicht sogar früher, möchte ich, dass meine Dual-Monitore ordnungsgemäß mit einem Skript eingerichtet werden, das xrandr ausführt (das bereits funktioniert). Jeder, mit dem ich spreche oder dessen Fragen ich online lese, spricht über xinitrc, ~ / .xsession oder / etc / X11 / xsession, aber keine dieser Dateien wird ausgeführt. Die Dateien in / usr / share / xsesssions scheinen die einzigen Dateien zu sein, die ausgeführt werden, und ich kann für mein ganzes Leben keine Dokumentation darüber finden.

Wo ist die Konsistenz in diesem System? Was genau soll ich tun, wenn ich das richtig machen will? Einige Fenstermanager scheinen dies zu tun (KDE und Gnome haben anscheinend etwas, das nur "Autostart" genannt wird). Soll ich meinen Fenstermanager damit umgehen lassen, X oder lightdm? Ich verstehe, es gibt wahrscheinlich Dutzende von Dateien im Startprozess, in die ich dies möglicherweise einfügen könnte, aber ich frage nach der richtigen Konvention. Was ist die Lösung für so etwas?

TL; DR; Gibt es eine einheitliche Möglichkeit, ein Skript automatisch für jeden Fenstermanager auszuführen, der auf X ausgeführt wird, oder hängt dies vollständig von der Kombination der von mir verwendeten Fenstermanager und Anmeldemanager ab?

Foobarbaz
quelle

Antworten:

11

Ich glaube, Sie werden feststellen, dass dies für Sie funktionieren wird. Es wird vom Dash-Skript / usr / sbin / lightdm-session bezogen, das später die ausführbare Datei für den Fenstermanager ausführt.

Angenommen, dies ist nur für Sie und weil es mit X zusammenhängt, würde ich vorschlagen, es in ~ / .xprofile zu setzen. Wenn dies für jeden Benutzer des Systems zutrifft, ist / etc / xprofile möglicherweise geeigneter.

Erstellen Sie eine Datei ~ / .xprofile und bearbeiten Sie sie so, dass sie Ihren xrandr-Befehl enthält (ähnlich dem folgenden Testelement):

xrandr --output LVDS - mode 1280x854

Weitere Informationen finden Sie unter Was geschieht unter dem Deckblatt, um mich einzuloggen und Unity oder eine andere grafische Benutzeroberfläche zu starten? . Es wird einiges behandelt, was bei Fenstermanagern außerhalb von Unity passiert.

John S Gruber
quelle
3

Vielen Dank für den Link "Was passiert unter der Decke ...", ein Muss!

~ / .xprofile passiert zu früh, die xrandr-Einstellungen gehen verloren.

Eine Lösung besteht darin, ein Skript zu erstellen und es in den "Anwendungen beim Start" auszuführen. Da nautilus bereits gestartet ist und die Symbole auf dem sekundären Monitor angezeigt werden (nach dem Befehl xrandr), habe ich am Ende hinzugefügt:

killall -1 nautilus
nautilus -n

Dreckig aber funktioniert. Hoffe das hilft.

Jissouille
quelle