2012-04-19 3 views
7

Linux에서 실행중인 윈도우 관리자를 프로그래밍 방식으로 결정해야합니다. 이 사용되는 방법에 대한Linux OS가 KDE 또는 Gnome 환경을 사용하는지 확인하는 방법

의사 코드 :

if(WindowManagerOfOS.isKDE()){ 
     do.anyThing(); 
} 

내가 어떻게 할 수 있습니까? 심지어 가능할까요?

+1

내 컴퓨터에서이 내용을 테스트 할 수는 없지만 어느 하나에서 UIManager.getSystemLookAndFeelClassName()이 반환하는 내용을 확인하십시오. – Adam

+0

관련 : http://stackoverflow.com/questions/3376679/qt-how-to-detect-whether- the-application-is-on-gnome-or-kde –

답변

10
System.getenv("XDG_CURRENT_DESKTOP") 

내 컴퓨터에 "GNOME"을 반환합니다. KDE 기반 상자에서 사용해보십시오.

은 공식적인 답변 당신은 신경 안된다는 것입니다 또한

+0

사용자는 둘 다 설치되어있을 수 있지만 두 환경 변수가 존재할 경우에만 실행할 수 있습니다. 실행중인 프로세스를 확인해야합니다. – Adam

+0

Tomaz, 이것을 확인하기 위해 'KDE_SESSION_VERSION'을 사용할 것입니다. 문제는 KDE가 데스크톱을 가지고 있지 않다는 것입니다 ... –

+0

댓글을 잊어 버렸습니다 ... System.getenv ("XDG_CURRENT_DESKTOP")는 KDE 네이티브가 포함 된 Linux Mint 12에서 null을 표시합니다. –

1

참조하십시오. 두 데스크톱 모두 기존 표준을 준수합니다. 둘 다 서로의 소프트웨어를 실행할 수 있습니다. 당신이하려는 것은 무엇입니까? 특정 서비스가 기본으로 제공되는 하나의 배포판 만 찾고 있다면 대신이를 조사해야합니다.

+3

-1 이것은 질문에 대한 대답이 아니므로 의견이 있어야합니다. –

+0

나는 이것이 괜찮은 대답이라고 투표 할 것입니다. 아마도 최선은 아니 겠지만, 사람들이 "할 수있는"방법을 알고 싶어 할 때가끔 "하지 마라"라고 말할 필요가 있기 때문에 효과가 있습니다. –

+1

사람들이 신경 써야 할 다양한 곳이 있습니다. 첫 번째 예제는 xdg-utils 내에 있습니다. http://cgit.freedesktop.org/xdg/xdg-utils/tree/scripts/xdg-utils-common.in detectDE를보십시오.(), xdg-su/xdg-terminal 등에서 그래픽 sudo 래퍼를 사용해야하는 셸을 만드는 데 사용됩니다. 또한 고정 된 API 또는 표준이 적용되지 않는 벽지 등을 설정하는 것과 같은 것들이 있습니다. 다양한 벽지 응용 프로그램은 다음 스크립트에서 바로 그 작업을 수행합니다. http://bazaar.launchpad.net/~peterlevi/variety/trunk/view/head:/data/scripts/set_wallpaper – simotek

관련 문제