Apakah ada perintah linux sederhana yang akan memberi tahu saya apa itu manajer tampilan saya?
Saya menggunakan Xfce. Apakah lingkungan desktop yang berbeda biasanya berafiliasi dengan manajer tampilan yang berbeda?
command-line
display-manager
ptrcao
sumber
sumber
Jawaban:
Sayangnya konfigurasi berbeda untuk setiap distribusi:
Debian / Ubuntu
RedHat (seharusnya juga berlaku untuk Fedora)
OpenSuSe
sumber
cat
./usr/bin/xdm
- apakah itu berarti xdm adalah pengelola tampilan saya?Tidak ada. Manajer tampilan tidak harus terkait dengan hal lain yang berjalan di server X yang sama. Manajer tampilan berjalan sebelum Anda masuk; itu dipilih oleh administrator sistem. Segala sesuatu yang lain (manajer jendela, pengelola sesi, lingkungan desktop, ...) dipilih oleh pengguna. Bahkan tidak perlu menjadi manajer tampilan: jika Anda masuk dalam mode teks dan memulai GUI dengan
startx
, tidak ada manajer tampilan yang terlibat.Anda dapat memeriksa manajer tampilan mana yang merupakan default di sistem Anda . Ini hanya akan memberikan jawaban yang benar berdasarkan beberapa asumsi umum tetapi tidak universal. Jika Anda menjalankan manajer yang berbeda secara manual untuk alasan apa pun, metode ini tidak akan memberi tahu Anda.
Taruhan yang bagus adalah untuk mengetahui ID proses dari X server: proses induknya mungkin adalah manajer tampilan, jika ada. Ini mengharuskan klien Anda berjalan pada mesin yang sama dengan server X.
lsof /tmp/.X11-unix/X${DISPLAY#:}
akan menampilkan proses X server (dengan asumsi X sockets tinggal/tmp/.X11-unix
).(Penjelasan:
lsof -F ''
mencetak keluaran sepertip1234
.-F
Opsi ini berarti format keluaran yang dapat diuraikan mesin, dan''
artinya hanya mencetak PID, dengan huruf dip
depannya.x=${x#p}
Menghapus huruf awalp
. Baris terakhir mendapatkan PID induk dari server X (ps -o ppid -p $x
), dan panggilanps
untuk menampilkan informasi tentang proses induk itu.)Beberapa distribusi memungkinkan memasang beberapa manajer tampilan. Hanya akan ada satu yang berjalan kecuali Anda memiliki sistem multiseat. Untuk mencantumkan semua paket manajer tampilan yang diinstal di bawah Debian dan turunannya:
atau
sumber
Jika Anda menggunakan distribusi berbasis systemd . Perintah ini akan memberikan nama palung tampilan yang saat ini dikonfigurasikan karena Anda mungkin memiliki lebih dari satu manajer tampilan yang terpasang.
OUTPUT akan menjadi sesuatu seperti
Sepertinya saya menggunakan manajer tampilan mint.
sumber
grep '/usr/bin' /etc/systemd/system/display-manager.service
. (Dan, sebenarnya, karena/usr/bin
tidak mengandung karakter apa pun yang khusus untuk shell, Anda tidak perlu mengutipnya - tetapi tidak ada salahnya.)cat <file> | grep <searchterm>
daripada yang keduagrep <searchterm> <file>
saat grepping.Jika Anda menggunakan systemd, maka
Akan menampilkan nama dan status layanan manajer tampilan aktif di mesin Anda.
sumber
Nama pengelola tampilan harus dalam DESKTOP_SESSION
mengembalikan "gnome" untuk saya.
EDIT
Kamu benar. Mereka bolak-balik tentang hal itu pada bugzilla XFCE sehingga mungkin tidak terlalu dapat diandalkan.
sumber
$DESKTOP_SESSION
adalahunknown
.Seperti yang dikatakan @Gilles, manajer tampilan akan memulai lingkungan desktop Anda.
Menurut Wiki Debian , sebagian besar diakhiri dengan
dm
, hanya pengecualianslim
.Jadi ini sudah cukup untuk sebagian besar kebutuhan orang:
Atau yang pasti, itu ada sebagai proses induk, dan tidak bercabang (kecuali dari sistem init):
sumber
lightdm
. Solusi RedHat / Fedora dari jawaban atas tidak berfungsi, konfigurasi tampaknya telah pindah.Dalam beberapa kasus, wmctrl dapat membantu. Utilitas ini kompatibel dengan banyak manajer windows.
harus menampilkan nama window manager yang saat ini digunakan.
sumber
Seperti yang telah disebutkan, ada banyak kebingungan di utas ini. Pertanyaan aslinya adalah manajer tampilan, bukan manajer desktop atau manajer jendela. Saya saat ini menjalankan Xfwm4 yang merupakan window manager Xfce, dan lxdm yang merupakan display manager X11 yang ringan (dari LXDE, bukan Xfce). Anda harus dapat melihat pengelola tampilan apa yang Anda gunakan via htop. Anda mungkin sudah lama menemukan jawaban selama 4 tahun terakhir :)
sumber
Anda dapat melakukan ini melalui skrip pihak ketiga yang disebut screenfetch
Screenfetch adalah skrip bash yang tersedia untuk Linux yang menampilkan informasi sistem bersama dengan versi ASCII dari distribusi Linux Logo sistem
Instal melalui manajer paket
sudo apt-get install screenfetch
(dengan asumsi Anda menggunakan varian Debian)dan jalankan
screenfetch
Di terminal AndaTautan proyek https://github.com/KittyKatt/screenFetch
sumber
X sangat modular sehingga jika Anda benar-benar menginginkannya, ya, Anda dapat menggabungkan lingkungan desktop dan manajer windows. Setelah semua manajer jendela hanyalah cara untuk melukis windows (itulah tampilan sederhana).
Jadi jika Anda menggunakan gnome, metacity digunakan untuk menjadi windows manager tetapi sekarang telah digantikan oleh Mutter.
Masalah dengan pencampuran adalah di lingkungan desktop modern, desktop dan window manager sangat terkait satu sama lain. Terlalu banyak pencampuran bisa berakhir dengan fungsionalitas yang lebih sedikit.
Seperti yang disebutkan $ DESKTOP_SESSION berfungsi tetapi jika Anda ingin meminta server X11 Anda, Anda bisa melakukan ini:
Yang terurai menjadi
Yang mendapat id dari jendela yang dibuat oleh manajer jendela. Spesifikasi mengatakan (http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html):
Dan kemudian Anda meminta properti WM_NAME dari jendela tersebut.
WM_NAME menjadi:
sumber
_NET_SUPPORTING_WM_CHECK
memberikan informasi tentang manajer jendela, bukan tentang manajer tampilan. Bahkan tidak selalu berhasil; pada sistem saya, properti itu diatur ke ID jendela tetapi jendela yang dimaksud tidak memiliki nama.sumber