Como descobrir que Window Manager está rodando?  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
fcmartins
Java Ninja
[Avatar]

Membro desde: 12/01/2005 09:40:43
Mensagens: 293
Localização: Bragança Paulista- SP
Offline

Alguém sabe como pegar o Window Manager (KDE, Gnome...) em que a aplicação está rodando, utilizando o bom e velho C?

Estou usando JNI e precisava dessa informação.

P.S.: Não quero usar nenhuma classe sun.* nem a propriedade sun.desktop.

This message was edited 2 times. Last update was at 16/07/2005 14:21:01


Almanaque

{SCJP 1.4}
{SCWCD 1.4}
denisbr
JavaChild
[Avatar]

Membro desde: 04/05/2004 14:06:19
Mensagens: 128
Localização: Santa Catarina
Offline

Talvez se você tenta-se ler o arquivo ~/.xinitrc ou ~/.xsession, onde ~/ representa o diretório Home do usuário logado.
Nesses arquivos costumam ter linhas como:


Denis
denisbr{@}.gmail.com
----------------------------------

Jesus Voltará, acredite você ou não!!
[MSN] [ICQ]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

talvez algumas propriedade do System.getProperties ? mas usar essas informacoes nunca eh mto legal.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
fcmartins
Java Ninja
[Avatar]

Membro desde: 12/01/2005 09:40:43
Mensagens: 293
Localização: Bragança Paulista- SP
Offline

denisbr wrote:Talvez se você tenta-se ler o arquivo ~/.xinitrc ou ~/.xsession, onde ~/ representa o diretório Home do usuário logado.
Nesses arquivos costumam ter linhas como:


O problema é que muita gente usa mais de um Window Manager. Eu preciso saber qual o cara está rodando no momento.
P/ piorar, pode ocorrer de uma pessoa estar usando mais de um Window Manager ao mesmo tempo, em sessões diferentes. Eu preciso saber qual o cara está usando na mesma sessão da aplicação Java.

Paulo Silveira wrote:talvez algumas propriedade do System.getProperties ? mas usar essas informacoes nunca eh mto legal.

Justamente, há a propriedade sun.desktop, mas há o problema: tudo que é sun.* não é garantido de continuar funcionando em novas versões, nem de existir em JVMs de outros fornecedores.

Almanaque

{SCJP 1.4}
{SCWCD 1.4}
farribeiro
JavaEvangelist
[Avatar]

Membro desde: 20/04/2005 00:15:49
Mensagens: 474
Localização: Araçatuba
Offline

por que da necessidade de pegar o WM atual?

pois já que na verdade quem faz o ambiente grafico é o X , pois idependente do WM não haverá incopatibilidade, desde que a JVM não for a especificada pelo seu projeto.

Espero ter ajudado

This message was edited 1 time. Last update was at 12/07/2005 14:16:28


Fábio Rodrigues Ribeiro
[WWW] [Yahoo!] [ICQ]
boaglio
Moderador
[Avatar]

Membro desde: 09/09/2002 21:23:39
Mensagens: 1865
Localização: Sampa City
Offline


Sem usar o System.properties eu só vejo uma maneira rápida:



Se o resultado disso for > 0, o gnome está no ar ( o que não significa que só o gnome está no ar, o usuário pode estar usando ele junto com o Window Maker).



Se o resultado disso for > 0, o KDE está no ar.



 

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de Java via MP!
[WWW]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Se você quer fazer uma gambi um pouco menor, tente conectar na porta do DCOP.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
fcmartins
Java Ninja
[Avatar]

Membro desde: 12/01/2005 09:40:43
Mensagens: 293
Localização: Bragança Paulista- SP
Offline

Só p/ constar se mais alguém precisar no futuro:

Para saber se o Gnome está rodando, pode-se checar a variável de ambiente GNOME_DESKTOP_SESSION_ID, se o Gnome estiver ativo, seu valor será true. O mesmo vale para o KDE, a partir da versão 3.2, e a variável KDE_FULL_SESSION.

Achei também a função da GTK+: gdk_x11_screen_get_window_manager_name, que retorna o nome, mas não testei. Também achei referências a mais duas variáveis de ambiente, que não funcionaram em meu ambiente: WINDOWMANAGER e SESSION_MANAGER.

Almanaque

{SCJP 1.4}
{SCWCD 1.4}
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team