startxuruchamia, xinitktóry uruchamia serwer X i sesję klienta. Sesja klienta jest ~/.xinitrcobecna, 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/xinitrcbiegnie /etc/X11/Xsessionco 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-emulatorw 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 ~/.xsessionalbo ~/.xinitrc. Plik ~/.xsessionjest również używany, jeśli logujesz się na menedżerze wyświetlania (tj. Jeśli wpiszesz hasło w oknie GUI). Plik ~/.xinitrcjest specyficzny dla xiniti startx. Korzystanie ~/.xsessionprzebiega /etc/X11/Xsessiontak, ż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 ~/.xinitrcdo określenia, co zostanie wykonane po uruchomieniu startxlub xinitjest uniwersalne.
Niezależnie od tego, czy używasz, ~/.xinitrcczy ~/.xsessionten 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 execna końcu skryptu, aby zastąpić skrypt menedżerem sesji lub menedżerem okien.
Twój system prawdopodobnie pełni /usr/bin/startlxderolę 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 ~/.xsessionpliku:
#!/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ć . ~/.profileu 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. startxProgram posiada dziwactwo: trzeba użyć pełnej ścieżki do programu.
startx /usr/bin/startkde
startxKomenda 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
startxuruchamia się domyślna sesja Xfce4. Z konta użytkownika mojej żony zaloguj się na tty1 lub tty2. Jejstartxpolecenie jest ustawione na uruchamianie Cinnamon (określone w~/.xsession). W przypadku drugiego serwera X nie muszę podawać informacji podanych$DISPLAYw ostatniej części odpowiedzi. Chociaż to z pewnością działa. To automatycznie czyni go drugim$DISPLAYitd. 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ź!