이것은 매우 기본적인 질문이지만 어디에서도 만족스러운 답변을 찾을 수 없습니다.
터미널에서 실행 중인 GUI를 찾는 방법은 무엇입니까?
제가 개발 중인 시스템은 매우 작으며 응용 프로그램을 열 수 있는 xterm 창만 볼 수 있습니다(별도의 창에서). 데스크탑의 빈 공간을 마우스 오른쪽 버튼으로 클릭하면 새 xterm 창을 열 수 있습니다. 응용 프로그램을 열 때마다 새 창을 열 때마다 실제로 창을 열려면 화면의 빈 영역을 마우스로 클릭해야 합니다.
이 질문은 중복된 질문이 아닌 것 같습니다.데스크탑 환경의 이름을 검색하는 방법이 있습니까?, 내 설정이 그 설정과 약간 다르기 때문에 그 답변 중 어느 것도 나에게 도움이 되지 않았습니다.
답변1
env
입력 하여 어떤 환경이 구성되어 있는지 확인할 수 있습니다.
다음 응답을 찾으십시오.협회
XDG_CURRENT_DESKTOP - Tells you what Windows Manager you are using
GDMSESSION - Tells you what option you selected from the lightdm greeter to login.
이를 사용하려면 터미널로 이동하여 다음을 입력하십시오.
echo $XDG_CURRENT_DESKTOP
(예를 들어 Unity를 사용하는 경우 "unity"가 출력됩니다)
또는
echo $GDMSESSION
(예를 들어 로그인 시 ubuntu를 선택했다면 "ubuntu"가 출력되고, 로그인 시 "ubuntu-2d"를 선택했다면 "ubuntu-2d"가 출력됩니다.)
env의 출력을 자세히 살펴보면 DESKTOP_SESSION 및 COMPIZ_CONFIG_PROFILE과 같은 다른 항목도 찾을 수 있습니다.
당신이 찾고 있는 것은 사용 중인 창 관리자의 이름이므로 이름을 얻는 방법을 아는 유일한 방법은 프로세스 목록을 보는 것입니다. 이를 위해 pgrep(Wikipedia)이라는 명령이 있습니다. -l 매개변수가 프로세스 ID를 추가하므로 이름을 얻기 위해 다음을 수행했습니다.
pgrep -l compiz |cut -d " " -f2
프로세스는 동일한 사용자에 의해 실행되므로 sudo 부분 앞에 접두사를 붙일 필요가 없습니다. 그런 다음 이를 사용하여 창 관리자를 기반으로 작업을 수행하는 스크립트를 만들 수 있습니다.
다른 유형을 찾으려면 단어를 compiz
다른 유형 mutter
(예: kwin
등) 으로 변경하면 됩니다.
Ubuntu 12.04에서 환경 변수 XDG_CURRENT_DESKTOP 및 GDMSESSION을 테스트한 결과 다음과 같은 결과를 얻었습니다.
케이드
XDG_CURRENT_DESKTOP= GDMSESSION=kde-플라즈마 유니티 3d
XDG_CURRENT_DESKTOP=유니티 GDMSESSION=우분투 유니티 2d
XDG_CURRENT_DESKTOP=유니티 GDMSESSION=ubuntu-2d
난쟁이
XDG_CURRENT_DESKTOP=GNOME GDMSESSION=그놈 쉘
드워프 클래식
XDG_CURRENT_DESKTOP=GNOME GDMSESSION=그놈-클래식
그놈 클래식은 효과가 없습니다
XDG_CURRENT_DESKTOP=GNOME GDMSESSION=gnome-fallback 기타 Ubuntu 기반 배포판:
민트 13(계피)
XDG_CURRENT_DESKTOP=GNOME GDMSESSION=시나몬
루벤 그림 12.04
XDG_CURRENT_DESKTOP=LXDE GDMSESSION=루분투