Existe um comando linux simples que me dirá qual é o meu gerenciador de exibição?

45

Existe um comando linux simples que me dirá qual é o meu gerenciador de exibição?

Estou usando o Xfce. Os diferentes ambientes de área de trabalho geralmente são afiliados a diferentes gerenciadores de exibição?

    
por ptrcao 09.09.2011 / 12:44

11 respostas

35

Infelizmente, a configuração é diferente para cada distribuição:

Debian / Ubuntu

/etc/X11/default-display-manager

RedHat (também deve ser aplicado ao Fedora)

/etc/sysconfig/desktop

OpenSuSe

/etc/sysconfig/displaymanager
    
por 09.09.2011 / 16:47
19

Não há. O gerenciador de exibição não está necessariamente relacionado a qualquer outra coisa que esteja sendo executada no mesmo servidor X. O gerenciador de exibição é executado antes de você efetuar login; é escolhido pelo administrador do sistema. Todo o resto (gerenciador de janelas, gerenciador de sessão, ambiente de desktop,…) é escolhido pelo usuário. Não precisa nem ter um gerenciador de exibição: se você entrar no modo de texto e iniciar a GUI com startx , nenhum gerenciador de exibição está envolvido.

Você pode verificar qual gerenciador de exibição é o padrão em seu sistema . Isso só dará a resposta correta sob algumas suposições comuns, mas não universais. Se você executou manualmente um gerente diferente por qualquer motivo, esse método não lhe dirá.

Uma boa aposta é descobrir o ID do processo do servidor X: seu processo pai é provavelmente um gerenciador de exibição, se houver um. Isso requer que seus clientes estejam executando na mesma máquina que o servidor X. lsof /tmp/.X11-unix/X${DISPLAY#:} mostrará o processo do servidor X (supondo que os soquetes X estejam em /tmp/.X11-unix ).

x=$(lsof -F '' /tmp/.X11-unix/X0); x=${x#p}
ps -p $(ps -o ppid -p $x)

(Explicação: lsof -F '' imprime a saída como p1234 . A opção -F significa um formato de saída que pode ser analisado por máquina e '' significa imprimir somente o PID, com a letra p antes.x=${x#p} retira a letra inicial p A última linha obtém o PID do pai do servidor X ( ps -o ppid -p $x ) e chama ps para mostrar informações sobre esse processo pai.

Algumas distribuições permitem instalar vários gerenciadores de exibição. Haverá apenas um único funcionando, a menos que você tenha um sistema de múltiplos-pratos. Para listar todos os pacotes gerenciadores de exibição instalados no Debian e derivados:

aptitude -F %p search '~i ~P^x-display-manager$'

ou

</var/lib/dpkg/status awk '
    /^Package: / {package = $2}
    /^Provides: .*x-display-manager/ {print package}'
    
por 10.09.2011 / 02:10
13

se você estiver usando a distribuição baseada em systemd . Esse comando fornecerá o nome do gerenciador de exibição atualmente ativo porque você pode ter mais de um gerenciador de exibição instalado.

cat /etc/systemd/system/display-manager.service | grep '/usr/bin'

OUTPUT será como

ExecStart=/usr/bin/mdm

Parece que estou usando o gerenciador de exibição de hortelã.

    
por 02.02.2016 / 04:54
9

O nome do gerenciador de exibição deve estar em DESKTOP_SESSION

echo $DESKTOP_SESSION

retorna "gnome" para mim.

EDITAR
Você está certo. Eles estão indo e voltando em que em XFCEs bugzilla por isso provavelmente não é muito confiável.

    
por 09.09.2011 / 13:44
7

Se você estiver usando o systemd, então

systemctl status display-manager

Exibe o nome e o status do serviço do gerenciador de exibição ativo em sua máquina.

    
por 23.11.2016 / 05:47
2

Como @Gilles disse, o gerenciador de exibição iniciará seu ambiente de área de trabalho.

De acordo com o Debian Wiki , a maioria deles termina com dm , apenas a exceção é slim .

Portanto, isso deve ser suficiente para a maioria das necessidades das pessoas:

ps auxf | awk '{print $11}' | \grep --color -e dm$ -e slim$

Ou, para ter certeza, ele existe como um processo pai e não é bifurcado (exceto no sistema init):

ps auxf | awk '{print $11}' | \grep -e "^/.*dm$" -e "/.*slim$" 
    
por 03.05.2015 / 11:05
1

Em alguns casos, o wmctrl poderia ajudar. Este utilitário é compatível com muitos gerenciadores de janelas.

wmcrt -m 

deve exibir o nome do gerenciador de janelas usado atualmente.

    
por 15.12.2014 / 17:52
0

Como já mencionado, há muita confusão neste tópico. A pergunta original é o gerenciador de exibição, não o gerenciador de área de trabalho ou o gerenciador de janelas. Atualmente, estou executando o Xfwm4, que é o gerenciador de janelas Xfce, e o lxdm, que é um leve gerenciador de exibição X11 (do LXDE, não do Xfce). Você deve ser capaz de ver qual gerenciador de exibição está usando via htop. Você provavelmente já descobriu a resposta nos últimos 4 anos:)

    
por 02.12.2015 / 07:18
0

Você pode fazer isso por meio de um script de terceiros chamado screenfetch

Screenfetch é um script bash disponível para Linux que exibe informações do sistema junto com a versão ASCII do logotipo de distribuição Linux do sistema

Instalar via gerenciador de pacotes sudo apt-get install screenfetch (supondo que você esteja nas variantes do Debian)

e apenas execute %código% No seu terminal

Link do projeto link

    
por 21.02.2018 / 20:48
-1

O X é altamente modular, por isso, se você realmente quisesse, sim, poderia misturar ambientes de desktop e gerenciadores de janelas. Afinal, um gerenciador de janelas é apenas uma maneira de pintar janelas (essa é a visão simples).

Então, se você pegar o gnome, o metacity costumava ser o gerenciador de janelas, mas agora ele foi substituído pelo Mutter.

O problema da mixagem está nos ambientes de desktop modernos, o desktop e o gerenciador de janelas estão altamente ligados uns aos outros. Muita mistura pode acabar em menos funcionalidades.

Como mencionado, o $ DESKTOP_SESSION funciona, mas se você quiser perguntar ao seu servidor X11, você pode fazer isso:

xprop -id $(xprop -root _NET_SUPPORTING_WM_CHECK | cut -d\# -f2) WM_NAME

Que se decompõe em

xprop -root _NET_SUPPORTING_WM_CHECK | cut -d\# -f2
0x1000052
xprop -id 0x1000052 WM_NAME
WM_NAME(STRING) = "xfwm4"

Qual obtém o id da janela criada pelo gerenciador de janelas. As especificações dizem (http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html):

_NET_SUPPORTING_WM_CHECK, WINDOW/32
The Window Manager MUST set this property on the root window to be the ID
of a child window created by himself, to indicate that a compliant window
manager is active.

E então você pergunta pela propriedade WM_NAME da referida janela.

WM_NAME sendo:

The WM_NAME property is an uninterpreted string that the client wants the
window manager to display in association with the window (for example, in
a window headline bar). 
    
por 09.09.2011 / 14:13
-2
lshw -c video | grep 'configuration'
    
por 01.08.2018 / 13:17