Hangi pencere yöneticisinin çalıştırılacağını belirleme

151

Mevcut oturumda aktif olarak çalışan pencere yöneticisi 'nin ne olduğunu belirlemek için herhangi bir yol var mı (komut veya çevre değişkeni gibi)?

    
sordu Anonymous 26.10.2011 22:39

10 cevap

126

wmctrl yüklüyse, komuttan ilk çıktı satırı

    wmctrl -m

size pencere yöneticisinin adını gösterecektir. Yüklü wmctrl yoksa, yüklemek için aşağıdaki komutu kullanın:

    sudo apt-get install wmctrl

Not, man wmctrl (diğer bir deyişle man için wmctrl sayfası) aşağıdakileri belirtmektedir:

  

-m Pencere yöneticisi hakkında bilgi ...

Ubuntu 11.10 / Linux 3.0.0-14-jenerik # 23-Ubuntu x86_64 / metacity 2.34.1 sistemimde, wmctrl -m 'sinin ilk satırı çıktı: Name: Metacity
echo $DESKTOP_SESSION ubuntu-2d ve echo $XDG_CURRENT_DESKTOP Unity gösterdi.

Yeni bir Ubuntu 15.10'da, eski bir dizüstü bilgisayarda Ubuntu desktop yazılımının yüklenmesi, wmctrl -m 'sindeki ilk çıktı satırı: Name: Compiz
DESKTOP_SESSION ve XDG_CURRENT_DESKTOP değeri ubuntu ve Unity

iken     
verilen cevap James Waldby - jwpat7 05.01.2012 08:57
84

Linux sistemlerinde ortam değişkenlerini XDG_CURRENT_DESKTOP ve GDMSESSION test ettim ve aşağıdaki sonuçları aldım.

  

Çıktı almak için bu satırı kullanabilirsiniz:

     
printf 'Desktop: %s\nSession: %s\n' "$XDG_CURRENT_DESKTOP" "$GDMSESSION"

Ubuntu 18.04 (Ubuntu)

  • XDG_CURRENT_DESKTOP=ubuntu:GNOME
  • GDMSESSION=ubuntu

Ubuntu 18.04 (Wayland'da Ubuntu)

  • XDG_CURRENT_DESKTOP=ubuntu:GNOME
  • GDMSESSION=ubuntu-wayland

Ubuntu 16.04

Birlik (7)

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu

Ubuntu 14.04

Mir ile çalışan birlik

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu

Not MIR_SERVER_NAME da ayarlandı

  • MIR_SERVER_NAME=session-$NUMBER

Mir olmadan çalışan birlik

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu

XFCE

  • XDG_CURRENT_DESKTOP=XFCE
  • GDMSESSION=xfce

Ubuntu 12.04

KDE

  • XDG_CURRENT_DESKTOP=
  • GDMSESSION=kde-plasma

Unity 3d

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu

Unity 2d

  • XDG_CURRENT_DESKTOP=Unity
  • GDMSESSION=ubuntu-2d

Gnome

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=gnome-shell

Gnome Classic

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=gnome-classic

Gnome Classic (etki yok)

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=gnome-fallback

Diğer Ubuntu tabanlı dağıtımlar

Nane 13 (Tarçın)

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=cinnamon

Nane 16 (KDE sürümü)

  • XDG_CURRENT_DESKTOP=KDE
  • GDMSESSION=default

Nane 17 (Tarçın)

  • XDG_CURRENT_DESKTOP=X-Cinnamon
  • GDMSESSION=default

Lubuntu 12.04

  • XDG_CURRENT_DESKTOP=LXDE
  • GDMSESSION=Lubuntu

Wasta 14.04

  • XDG_CURRENT_DESKTOP=X-Cinnamon
  • GDMSESSION=cinnamon

Gnome masaüstünü kullanarak Wasta 14.04.

  • XDG_CURRENT_DESKTOP=GNOME
  • GDMSESSION=gnome

Ubuntu Mate 18.04

  • XDG_CURRENT_DESKTOP=MATE
  • GDMSESSION=mate

Xubuntu 18.04

  • XDG_CURRENT_DESKTOP=XFCE
  • GDMSESSION=xubuntu
verilen cevap Tom 10.12.2012 21:38
39

Tüm ortam değişkenlerini görmek için terminal türünde env . Bazıları:

XDG_CURRENT_DESKTOP - Hangi masaüstü ortamını kullandığınızı söyler

GDMSESSION - Lightdm selamlayıcısından oturum açmak için hangi seçeneği belirlediğinizi size söyler.

Bunları kullanmak için terminale gidin ve şunu yazın:

echo $XDG_CURRENT_DESKTOP

(Unity'yi kullanıyorsanız, örneğin 'birlik' çıkışı olacak)

veya

echo $GDMSESSION  

(Girişte ubuntu'yu veya 'ubuntu-2d'yi seçtiyseniz' ubuntu 'çıktısını alırsınız.)

env DESKTOP_SESSION ve COMPIZ_CONFIG_PROFILE

gibi çıktılarda daha yakından bakarsanız

Aradığınız şey, Window Manager'ın kullanımda olduğu ad olduğundan, bunu nasıl alacağımı görebilmemin tek yolu işlem listesine bakmaktır. Bunu yapmak için pgrep adlı bir komut vardır ( Wikipedia ). Parametre -l işlem kimliğini eklediğinden beri adı almak için aşağıdakileri yaptım:

İşlem aynı kullanıcı tarafından çalıştırıldığından

pgrep -l compiz |cut -d " " -f2 sudo parçasının ön ekine gerek yoktur. Bunu, daha sonra Window Manager'a dayalı bir eylem gerçekleştiren bir komut dosyası oluşturmak için kullanabilirsiniz.

Diğer türleri aramak için, compiz kelimesini başka bir mutter , kwin vb. gibi değiştirin.

    
verilen cevap Luis Alvarado 26.10.2011 23:57
20

pstree öğesinin büyük bir yardımcı olduğunu buldum.

Kurulum

sudo apt-get install pstree

çıkışı

Sahip olduğum şey bu.

 ├─lightdm─┬─Xorg───2*[{Xorg}]
 │         ├─lightdm─┬─gnome-session─┬─bluetooth-apple───2*[{bluetooth-apple}]
 │         │         │               ├─compiz─┬─sh───gtk-window-deco───2*[{gtk-window-deco}]
 │         │         │               │        └─5*[{compiz}]
 │         │         │               ├─deja-dup-monito───2*[{deja-dup-monito}]
 │         │         │               ├─gnome-fallback-───2*[{gnome-fallback-}]
 │         │         │               ├─gnome-screensav───2*[{gnome-screensav}]
 │         │         │               ├─gnome-settings-───2*[{gnome-settings-}]
 │         │         │               ├─nautilus───2*[{nautilus}]
 │         │         │               ├─nm-applet───2*[{nm-applet}]
 │         │         │               ├─polkit-gnome-au───2*[{polkit-gnome-au}]
 │         │         │               ├─ssh-agent
 │         │         │               ├─telepathy-indic───2*[{telepathy-indic}]
 │         │         │               ├─update-notifier───2*[{update-notifier}]
 │         │         │               ├─vino-server───2*[{vino-server}]
 │         │         │               ├─zeitgeist-datah───{zeitgeist-datah}
 │         │         │               └─3*[{gnome-session}]
 │         │         └─{lightdm}
 │         └─2*[{lightdm}]
    
verilen cevap Sridhar-Sarnobat 22.04.2014 06:59
8
xprop -id $(xprop -root -notype | awk '=="_NET_SUPPORTING_WM_CHECK:"{print }') -notype -f _NET_WM_NAME 8t 
    
verilen cevap ruario 15.05.2014 08:19
3

KDE ile de test ediyorum ve sonuç şudur:

a) HardInfo ile grafiksel yol: cevap normalde "İşletim Sistemi" & gt; "Masaüstü Ortamı", ancak "Ortam değişkenleri" ne bakabilirsiniz. HardInfo, KDE olanı hariç tüm test edilmiş dağıtımlarla hazırdır, ancak kolay ve hızlı bir şekilde kurulabilir (Linux Mint 13'te yalnızca 2 paket).

b) Komut satırı, bu komutla: ps -A | egrep -i "gnome|kde|mate|cinnamon|lx|xfce|jwm" . Daha fazla satırda görünen öğe, cevap olmalıdır (eğer bir çizim varsa "oturum" öğesinin çözümü olmalıdır).

    
verilen cevap Msedfi 16.04.2013 00:51
1

Yukarıdakilerin hiçbiri benim için işe yaramadı. Gnome'un şu andaki masaüstü oturumu olarak çalışıp çalışmadığımı bilmek istedim.

Çalışılan, bir terminal açma

lsb_release -a

(UBUNTU makinemde hangi lezzeti veya sürümü yüklediğimi kontrol etmek için)

ls /usr/bin/*session

(şu anda kullanılan masaüstü oturumunu / masaüstü ortamını başlatır)

gnome-shell --version 

(gnome'un hangi sürümünün yüklü olduğunu öğrenmek için)

    
verilen cevap NanuBuria 07.07.2017 18:26
-1

Aşağıdaki komut dosyası, benzer bir unix.se adresinden gönderdiğim soruya en iyi yanıt olarak verilmişti . Ayrıca Unity ve LXDE ile harika çalışıyor.

if [ "$XDG_CURRENT_DESKTOP" = '' ]
then
  desktop=$(echo "$XDG_DATA_DIRS" | sed 's/.*\(xfce\|kde\|gnome\).*//')
else
  desktop=$XDG_CURRENT_DESKTOP
fi

desktop=${desktop,,}  # convert to lower case
echo "$desktop"
    
verilen cevap Serge Stroobandt 24.02.2014 18:42
-1

Bu, dbus ve Accounts Service ile (her ikisi de Ubuntu'da varsayılan olarak) mümkündür.

$ qdbus --system org.freedesktop.Accounts \                                                                
> /org/freedesktop/Accounts/User1000 \                                                                                     
> org.freedesktop.Accounts.User.XSession                                                                                   
ubuntu

Bunu, lightdm (grafiksel giriş ekranı) aracılığıyla oturum açarak test ettiğime dikkat çekerek, blackbox gibi klasik bir masaüstünü tespit etti ve açıkça Unity'yi tespit etti. Bunun, oturum açma oturumunda kullanıcının seçtiği şeyin bir değeri olduğundan şüpheleniyorum. Bu yüzden, işlemleri kontrol etmenin biraz daha kolay olduğunu

    
verilen cevap Sergiy Kolodyazhnyy 03.04.2016 09:54
-3

Sadece çalışan işlemlerde bilinen pencere yöneticilerini kontrol etmeyi düşünüyorum. Önceden tercih edilen pencere yöneticisine ayarlanmış bir gconf anahtarı vardı, ancak Gnome 2.12'den beri kullanımdan kaldırıldı.

Yani, eğer bu bir programlama amacına yönelikse, tüm linux pencere yöneticileri için araştırma yapmanızı öneririm; bazı popüler:

  • gnome-shell *
  • compiz'i
  • metacity sürümü
  • mırıldanıyorum
  • sawfish

pgrep -l $WINDOW_MANAGER komutuyla her biri için bir kontrol çalıştırmanız gerekir. Burada $WINDOW_MANAGER , kontrol etmek istediğiniz pencere yöneticisinin adıdır. % Co_de% komutu, çalışan işlemleri denetler.

Gnome Kabuğu bir pencere yöneticisi olarak kabul edilirse% 100 emin değilim; pgrep komut dosyasında bir listeden aldığım pencere yöneticilerinin geri kalanı. Bu betik aslında kullanılabilir olmalıdır (çünkü temiz yüklemede mevcut) ama benim durumumda, varsayılan pencere yöneticim olmayan /usr/bin/gnome-wm dosyasını çalıştırmayı deniyor (Gnome oturumımda değil).

DÜZENLEME:

Eh @Anarci'nin yorumu daha doğru görünüyor. Benim durumumda compiz gösterdiler.

    
verilen cevap Severo Raz 26.10.2011 23:32

Etiketlerdeki diğer soruları oku