Jakie środowisko pulpitu działa Startx i jak mogę je zmienić?


18

Z wielu dokumentów przeczytałem, że startxuruchamia LXDE w systemie operacyjnym Raspbian. Jestem trochę zmieszany.

Czy zawsze startxuruchomi GUI LXDE?

Widziałem też przykład z użyciem startlxdepolecenia. Jak to inna komenda i dlaczego startxi startlxdeużywasz tego samego GUI (LXDE)? A może uruchamia go, ponieważ jest to domyślny GUI?

Jak wybrać domyślny interfejs GUI, jeśli mam wiele?

Czy możesz wyjaśnić więcej szczegółów dotyczących GUI w systemach Linux?

Odpowiedzi:


27

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

Jestem na Debianie 9. Moja maszyna uruchamia się na tty1. Z mojego logowania startxuruchamia się domyślna sesja Xfce4. Z konta użytkownika mojej żony zaloguj się na tty1 lub tty2. Jej startxpolecenie 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ź!
jbrock

10

Nie: startxmożna konfigurować. Według strony podręcznika :

Aby określić klienta do uruchomienia, startxnajpierw szuka pliku wywoływanego .xinitrcw katalogu osobistym użytkownika. Jeśli nie zostanie znaleziony, wykorzystuje plik xinitrcw xinitkatalogu biblioteki.

startxto nie jedyny sposób na uruchomienie X (jak widać z startlxde). Strona startxpodręcznika pomaga ponownie:

Skrypt startx jest nakładką na xinit (1), która zapewnia nieco ładniejszy interfejs użytkownika do uruchamiania pojedynczej sesji systemu X Window. Często jest uruchamiany bez argumentów.

Z drugiej strony, jeśli chcesz wybrać GUI (KDE, LXDE, etc), a następnie xdmi sobowtórów takie jak kdm, gdmalbo LightDMsłużą do wyboru różne rodzaje pulpitu. Na Debianie zwykle używam kdm, ponieważ pozwala to na różne typy komputerów. Programy pakujące gdmnie obsługują większości typów komputerów stacjonarnych, co czyni je nieodpowiednimi do moich potrzeb.

xdmużywa innego zestawu skryptów do uruchomienia, np. ~/.xsessionskryptu wraz ze skryptami systemowymi. Podobni do siebie mogą to zignorować i używać własnych skryptów. Ale to jest punkt wyjścia.


Gdzieś w plikach conf jest napisane, aby na przykład uruchomić LXDE?
CuriousGuy,

.xinitrcto skrypt, dzięki czemu można go konfigurować. Mógłby uruchomić LXDE bezpośrednio, jeśli jest do tego zakodowany.
Thomas Dickey,

1
startlxdenie jest nakładką na xinit, to program uruchamiający menedżera sesji LXDE. To nie jest zamiennik startx, jest to coś, co można wykonać ~/.xinitrc.
Gilles „SO- przestań być zły”

Potem potrzebuje dokumentacji. Poważnie, dobra odpowiedź wskazuje OP raczej na dokumentację niż na próbę jej sformułowania (chyba że ktoś ma komentarz do dokumentacji, żeby lepiej to zrozumieć).
Thomas Dickey,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.