startx
uruchamia, xinit
który uruchamia serwer X i sesję klienta. Sesja klienta jest ~/.xinitrc
obecna, a poza tym /etc/X11/xinit/xinitrc
(lokalizacja może się różnić w zależności od dystrybucji). To, co robi ten skrypt, różni się w zależności od dystrybucji. Debiana (w tym pochodne, takie jak Raspbian), /etc/X11/xinit/xinitrc
biegnie /etc/X11/Xsession
co z kolei rozciąga skryptów /etc/X11/Xsession.d
. Skrypty Debiana szukać sesji użytkownika w innych plikach ( ~/.xsession
, ~/.xsessionrc
, ~/.Xsession
), a jeżeli żadne ustawienie użytkownik może mieć zastosowanie, biegnie x-session-manager
(spada z powrotem x-window-manager
, jeśli nie [menedżer sesji] jest zainstalowany, sięgnięcie do x-terminal-emulator
w mało prawdopodobnym przypadku, że żaden menedżer okien jest zainstalowany).
Jeśli chcesz kontrolę nad tym co zostanie zrealizowane, można utworzyć jedną z plików użytkownika, albo ~/.xsession
albo ~/.xinitrc
. Plik ~/.xsession
jest również używany, jeśli logujesz się na menedżerze wyświetlania (tj. Jeśli wpiszesz hasło w oknie GUI). Plik ~/.xinitrc
jest specyficzny dla xinit
i startx
. Korzystanie ~/.xsession
przebiega /etc/X11/Xsession
tak, że konfiguruje takie metody, jak metody wprowadzania, zasoby, agenci haseł itp. Jeśli używasz .xinitrc
, musisz wykonać je wszystkie ręcznie. Po raz kolejny opisuję tutaj Debiana, inne warianty Uniksa mogą inaczej wyglądać. Zastosowanie ~/.xinitrc
do określenia, co zostanie wykonane po uruchomieniu startx
lub xinit
jest uniwersalne.
Niezależnie od tego, czy używasz, ~/.xinitrc
czy ~/.xsession
ten plik (zwykle skrypt powłoki, ale nie musi tak być, jeśli naprawdę chcesz użyć czegoś innego), musisz przygotować wszystko, co trzeba przygotować (np. Ustawienia klawiatury, zasoby, aplety, które nie zostały uruchomione przez menedżera okien itp.), a następnie na końcu uruchom program zarządzający sesją. Po zakończeniu skryptu sesja kończy się. Zazwyczaj używasz exec
na końcu skryptu, aby zastąpić skrypt menedżerem sesji lub menedżerem okien.
Twój system prawdopodobnie pełni /usr/bin/startlxde
rolę domyślnego menedżera sesji w całym systemie. W Debianie i pochodnych możesz sprawdzić dostępnych menedżerów sesji za pomocą
update-alternatives --list x-session-manager
lub uzyskaj bardziej szczegółowy opis wskazujący, który jest aktualny
update-alternatives --display x-session-manager
Jeśli LXDE nie był domyślnym systemem i chcesz ustawić go jako domyślny dla swojego konta, możesz użyć następującego ~/.xsession
pliku:
#!/bin/sh
exec startlxde
W niektórych wariantach uniksowych działałoby to tylko w przypadku graficznych loginów, a nie w celu startx
, więc musisz również stworzyć identyczny ~/.xinitrc
. (Lub nie identyczne: w ~/.xsession
, możesz chcieć robić inne rzeczy, ponieważ jest to pierwszy plik wykonywany w sesji graficznej; na przykład możesz umieścić . ~/.profile
u góry, aby ustawić niektóre zmienne środowiskowe.)
Jeśli chcesz wypróbować inne środowiska jako jednorazowe, możesz określić inny program do uruchomienia w wierszu poleceń startx
. startx
Program posiada dziwactwo: trzeba użyć pełnej ścieżki do programu.
startx /usr/bin/startkde
startx
Komenda pozwala także określić argumenty przekazywane do serwera. Na przykład, jeśli chcesz uruchomić wiele sesji GUI jednocześnie, możesz przekazać za każdym razem inny numer wyświetlacza. Przekaż argumenty serwera po --
w wierszu polecenia startx
.
startx /usr/bin/startkde -- :1
startx
uruchamia się domyślna sesja Xfce4. Z konta użytkownika mojej żony zaloguj się na tty1 lub tty2. Jejstartx
polecenie jest ustawione na uruchamianie Cinnamon (określone w~/.xsession
). W przypadku drugiego serwera X nie muszę podawać informacji podanych$DISPLAY
w ostatniej części odpowiedzi. Chociaż to z pewnością działa. To automatycznie czyni go drugim$DISPLAY
itd. Konfiguracja jest jednak świetna. Nie ma logowania i wylogowywania z sesji graficznej, wystarczy skrót klawiaturowy do przełączania profili użytkowników. Dzięki za tę pomocną odpowiedź!