현재 사용 중인 가상 데스크톱의 번호 및/또는 이름(또는 태그/ID 등)을 어떻게 알 수 있나요?
명령줄, 스크립팅, C/C++ 솔루션이 허용됩니다(단, C/C++로의 이식이 선호됨). ;)
나는 KDE
and GNOME
and 에 가장 관심이 있습니다.dwm
,xmonad
,awesome
- 다른 데스크탑 환경을 위한 솔루션도 환영합니다(가장 일반적인 솔루션을 제공할 수 있도록 지원을 제공하겠습니다).
그런데. 관심 있는 분들을 위해 사용 사례에 대해 좀 더 구체적으로 설명하자면 저는 데스크톱 + 창 포커스 + xevents + 여러 화면을 중심으로 시간을 추적하는 데 관심이 있습니다. 현재 이에 대한 별도의 솔루션이 있습니다(ktimetracker
데스크톱을 기반으로 작업을 추적하는 반면 응용 프로그램 추적은 매우 열악합니다. 정규식 지원이 없고 정확한 창 제목만 있습니다. -> 별로 유용하지 않습니다. 반면에,workrave
키보드 및 마우스 활동을 추적하지만 현재 작업 중인 데스크탑->작업이 무엇인지 모릅니다. ), 더 정확한 그림을 얻기 위해 이 정보를 병합하는 작업을 수행하고 싶습니다(어쩌면 병합할 수도 있음).연관 규칙 학습또는 다른 사람데이터 수집내가 수행하는 활동의 기술) (내 습관과 관련된 더 정확한 정보를 얻기 위해, "개미-상대 강도 지수고심하다" ;) ).
따라서 데스크톱이 "가상 데스크톱 + Windows(이름 및 제목 포함)"와 다른 패러다임을 따르는 경우 현재 사용되는 창/프레임/응용 프로그램 + 현재 선택된 데스크톱 정보를 보여주는 코드/cli 조각을 표시하십시오. /작업/태그에 대한 정보( 최종 화면).
답변1
다음을 준수하는 창 관리자무료 데스크탑표준은 데스크톱에 대한 정보를 저장합니다.루트 창 속성, 특히:
_NET_NUMBER_OF_DESKTOPS
:가상 데스크탑 수_NET_CURRENT_DESKTOP
: 활성 데스크탑의 인덱스_NET_DESKTOP_NAMES
: 가상 데스크톱 이름 목록
모든 인터페이스를 통해 이러한 항목에 액세스할 수 있습니다.XGetWindowProperty
예를 들어xprop
. 껍질부터 살펴보면,wmctrl -d
가상 데스크탑을 나열하는 편리한 방법을 제공합니다.
내가 아는 한, 루트 창의 속성이 변경되면 창 관리자에게만 알림이 전달됩니다. 따라서 가상 데스크탑 전환에 반응하려면 창 관리자를 사용해야 합니다. 예를 들어, 귀하의 사용 사례에서는 창 관리자(톱상어) 흥미로운 일이 일어날 때.