Existe um comando linux simples que me diga qual é o meu gerenciador de exibição?
Estou usando o Xfce. Os diferentes ambientes de desktop geralmente são afiliados a diferentes gerenciadores de exibição?
command-line
display-manager
ptrcao
fonte
fonte
Respostas:
Infelizmente, a configuração difere para cada distribuição:
Debian / Ubuntu
RedHat (também deve se aplicar ao Fedora)
OpenSuSe
fonte
cat
./usr/bin/xdm
- isso significa que xdm é meu gerenciador de exibição?Não existe. O gerenciador de exibição não está necessariamente relacionado a qualquer outra coisa em execução no mesmo servidor X. O gerenciador de exibição é executado antes de você efetuar o login; é escolhido pelo administrador do sistema. Todo o resto (gerenciador de janelas, gerenciador de sessões, ambiente de desktop,…) é escolhido pelo usuário. Nem é preciso haver um gerenciador de exibição: se você efetuar login no modo de texto e iniciar a GUI
startx
, nenhum gerenciador de exibição estará envolvido.Você pode verificar qual gerenciador de exibição é o padrão no seu sistema . Isso só dará a resposta certa sob algumas suposições comuns, mas não universais. Se você executou manualmente um gerente diferente por qualquer motivo, esse método não informa.
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 (assumindo que os soquetes X estejam ativos/tmp/.X11-unix
).(Explicação:
lsof -F ''
imprime a saída comop1234
. A-F
opção significa um formato de saída analisável pela máquina e''
significa imprimir apenas o PID, com a letrap
antes dela.x=${x#p}
Retira a letra inicialp
. A última linha obtém o PID do pai do servidor X (ps -o ppid -p $x
) e chamadasps
para mostrar informações sobre esse processo pai.)Algumas distribuições permitem a instalação de vários gerenciadores de exibição. Só haverá um único em execução, a menos que você tenha um sistema de vários lugares. Para listar todos os pacotes do gerenciador de exibição instalados no Debian e derivados:
ou
fonte
Se você estiver usando a distribuição baseada em systemd . Este comando fornecerá o nome do gerenciador de exibição configurado atualmente, porque você pode ter mais de um gerenciador de exibição instalado.
OUTPUT será algo como
Parece que estou usando o gerenciador de exibição de hortelã.
fonte
grep '/usr/bin' /etc/systemd/system/display-manager.service
. (E, estritamente falando, já/usr/bin
que não contém nenhum caractere especial do shell, você não precisa citá-lo - mas não dói.)cat <file> | grep <searchterm>
vez da segundagrep <searchterm> <file>
quando grepping.Se você estiver usando o systemd, então
Irá exibir o nome e o status do serviço gerenciador de exibição ativo em sua máquina.
fonte
O nome do gerente de exibição deve estar em DESKTOP_SESSION
retorna "gnome" para mim.
EDIT
Você está certo. Eles estão indo e voltando sobre isso no bugzilla dos XFCEs, então provavelmente não é muito confiável.
fonte
$DESKTOP_SESSION
estáunknown
.Como o @Gilles disse, o gerenciador de telas iniciará seu ambiente de desktop.
De acordo com o Debian Wiki , a maioria termina com
dm
, apenas uma exceçãoslim
.Portanto, isso deve ser suficiente para a maioria das necessidades das pessoas:
Ou, com certeza, ele existe como um processo pai e não é bifurcado (exceto no sistema init):
fonte
lightdm
. A solução RedHat / Fedora da resposta superior não funcionou, a configuração parece ter mudado.Em alguns casos, o wmctrl pode ajudar. Este utilitário é compatível com muitos gerenciadores de janelas.
deve exibir o nome do gerenciador de janelas usado atualmente.
fonte
Como já mencionado, há muita confusão neste segmento. A pergunta original é o gerenciador de exibição, não o gerenciador de desktop ou o gerenciador de janelas. Atualmente, estou executando o Xfwm4, que é o gerenciador de janelas do Xfce, e o lxdm, o gerenciador de exibição leve do X11 (do LXDE, não do Xfce). Você poderá ver qual gerenciador de exibição está usando via htop. Você provavelmente já descobriu a resposta há 4 anos :)
fonte
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 ao lado da versão ASCII da distribuição Linux. Logo do sistema
Instale via gerenciador de pacotes
sudo apt-get install screenfetch
(assumindo que você esteja nas variantes do Debian)e apenas corra
screenfetch
no seu terminalLink do projeto https://github.com/KittyKatt/screenFetch
fonte
O X é altamente modular, portanto, se você realmente quisesse, sim, você 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ê usa o gnome, a metacidade costumava ser o gerenciador de janelas, mas agora foi substituída pelo Mutter.
O problema da mixagem está em ambientes modernos de desktop, o gerenciador de desktop e janela está altamente ligado um ao outro. Muita mistura pode acabar com menos funcionalidades.
Como mencionado, $ DESKTOP_SESSION funciona, mas se você quiser perguntar ao seu servidor X11, poderá fazer o seguinte:
Que se decompõe em
Que 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):
E então você pede a propriedade WM_NAME da referida janela.
WM_NAME sendo:
fonte
_NET_SUPPORTING_WM_CHECK
fornece informações sobre o gerenciador de janelas, não sobre o gerenciador de exibição. Nem sempre funciona; no meu sistema, essa propriedade é definida como um ID da janela, mas a janela em questão não tem um nome.fonte