Czy istnieje proste polecenie linux, które powie mi, jaki jest mój menedżer wyświetlania?
Używam Xfce. Czy różne środowiska pulpitu są zwykle powiązane z różnymi menedżerami wyświetlania?
command-line
display-manager
ptrcao
źródło
źródło
Odpowiedzi:
Niestety konfiguracja różni się dla każdej dystrybucji:
Debian / Ubuntu
RedHat (powinien również dotyczyć Fedory)
OpenSuSe
źródło
cat
./usr/bin/xdm
- Czy to znaczy, że xdm jest moim menedżerem wyświetlania?Nie ma Menedżer wyświetlania niekoniecznie jest powiązany z niczym innym, co działa na tym samym serwerze X. Menedżer wyświetlania działa przed zalogowaniem; jest wybrany przez administratora systemu. Wszystko inne (menedżer okien, menedżer sesji, środowisko pulpitu, ...) jest wybierane przez użytkownika. Menedżer wyświetlania nie musi nawet istnieć: jeśli zalogujesz się w trybie tekstowym i uruchomisz interfejs GUI
startx
, nie jest zaangażowany żaden menedżer wyświetlania.Możesz sprawdzić, który menedżer wyświetlania jest domyślny w twoim systemie . To da właściwą odpowiedź tylko przy pewnych wspólnych, ale nie uniwersalnych założeniach. Jeśli z jakiegokolwiek powodu ręcznie uruchomiłeś innego menedżera, ta metoda ci nie powie.
Dobrym rozwiązaniem jest znalezienie identyfikatora procesu serwera X: jego proces nadrzędny jest prawdopodobnie menedżerem wyświetlania, jeśli taki istnieje. Wymaga to, aby klienci działali na tym samym komputerze co serwer X.
lsof /tmp/.X11-unix/X${DISPLAY#:}
pokaże proces serwera X (zakładając, że gniazda X są włączone/tmp/.X11-unix
).(Objaśnienie:
lsof -F ''
wypisuje dane wyjściowe jakp1234
. Ta-F
opcja oznacza format wyjściowy analizowany maszynowo i''
oznacza wydrukowanie tylko PID, z literąp
przed nim.x=${x#p}
Usuwa początkową literęp
. Ostatni wiersz otrzymuje PID rodzica serwera X (ps -o ppid -p $x
) i wezwaniaps
do wyświetlenia informacji o tym procesie nadrzędnym).Niektóre dystrybucje umożliwiają instalację wielu menedżerów wyświetlania. Będzie działał tylko jeden, chyba że masz system wielostanowiskowy. Aby wyświetlić listę wszystkich zainstalowanych pakietów menedżera wyświetlania w obszarze Debian i pochodne:
lub
źródło
Jeśli używasz dystrybucji systemowej . To polecenie podaje nazwę aktualnie skonfigurowanego menedżera wyświetlania, ponieważ może być zainstalowany więcej niż jeden menedżer wyświetlania.
WYJŚCIE będzie coś podobnego
Wygląda na to, że używam menadżera wyświetlania mennicy.
źródło
grep '/usr/bin' /etc/systemd/system/display-manager.service
. (Ściśle mówiąc, ponieważ/usr/bin
nie zawiera żadnych znaków specjalnych dla powłoki, nie trzeba jej cytować - ale to nie boli.)cat <file> | grep <searchterm>
zamiast drugiegogrep <searchterm> <file>
podczas grepowania.Jeśli używasz systemd, to
Wyświetli nazwę i status aktywnej usługi menedżera wyświetlania na twoim komputerze.
źródło
Nazwa menedżera wyświetlania powinna mieć wartość DESKTOP_SESSION
zwraca dla mnie „gnome”.
EDYCJA
Masz rację. Oni tam iz powrotem na tym na XFCEs Bugzilla więc to chyba nie jest bardzo niezawodny.
źródło
$DESKTOP_SESSION
jestunknown
.Jak powiedział @Gilles, menedżer wyświetlania uruchomi środowisko pulpitu.
Według Debian Wiki , większość z nich kończy się
dm
, z wyjątkiem tylko jednego wyjątkuslim
.To powinno wystarczyć do zaspokojenia większości potrzeb ludzi:
Lub, dla pewności, istnieje jako proces nadrzędny i nie jest rozwidlany (z wyjątkiem systemu init):
źródło
lightdm
. Rozwiązanie RedHat / Fedora z pierwszej odpowiedzi nie działało, konfiguracja prawdopodobnie się zmieniła.W niektórych przypadkach wmctrl może pomóc. To narzędzie jest kompatybilne z wieloma menedżerami systemu Windows.
powinien wyświetlać nazwę aktualnie używanego menedżera okien.
źródło
Jak już wspomniano, w tym wątku jest wiele zamieszania. Pierwotne pytanie dotyczy tego, który menedżer wyświetlania, a nie menedżer pulpitu lub menedżer okien. Obecnie używam Xfwm4, który jest menedżerem okien Xfce, i lxdm, który jest lekkim menedżerem wyświetlania X11 (z LXDE, a nie Xfce). Powinieneś być w stanie zobaczyć, jakiego menedżera ekranu używasz przez htop. Prawdopodobnie już dawno odkryłeś odpowiedź w ciągu ostatnich 4 lat :)
źródło
Możesz to zrobić za pomocą skryptu innej firmy o nazwie screenfetch
Screenfetch to skrypt bash dostępny dla systemu Linux, który wyświetla informacje o systemie wraz z wersją ASCII dystrybucji systemu Linux Logo systemu
Zainstaluj za pomocą menedżera pakietów
sudo apt-get install screenfetch
(zakładając, że korzystasz z wariantów Debiana)i po prostu uruchom w
screenfetch
swoim terminaluLink do projektu https://github.com/KittyKatt/screenFetch
źródło
X jest wysoce modułowy, więc jeśli naprawdę tego chcesz, możesz mieszać środowiska pulpitu i menedżerów systemu Windows. W końcu menedżer okien to tylko sposób na malowanie okien (taki jest prosty widok).
Więc jeśli weźmiesz gnome, metacity był kiedyś menedżerem Windows, ale teraz został zastąpiony przez Mutter.
Problem z miksowaniem występuje we współczesnych środowiskach komputerowych, pulpit i menedżer okien są ze sobą ściśle powiązane. Zbyt dużo miksowania może skończyć się mniejszą funkcjonalnością.
Jak wspomniano, $ DESKTOP_SESSION działa, ale jeśli chcesz zapytać serwer X11, możesz to zrobić:
Który rozkłada się na
Który pobiera identyfikator okna utworzonego przez menedżera okien. Specyfikacja mówi (http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html):
A potem pytasz o właściwość WM_NAME wspomnianego okna.
WM_NAME jest:
źródło
_NET_SUPPORTING_WM_CHECK
podaje informacje o menedżerze okien, a nie o menedżerze wyświetlania. To nie zawsze działa; w moim systemie ta właściwość jest ustawiona na identyfikator okna, ale okno to nie ma nazwy.źródło