현재 가상 데스크톱 가져오기 - 번호/이름/레이블/ID?

현재 가상 데스크톱 가져오기 - 번호/이름/레이블/ID?

현재 사용 중인 가상 데스크톱의 번호 및/또는 이름(또는 태그/ID 등)을 어떻게 알 수 있나요?

명령줄, 스크립팅, C/C++ 솔루션이 허용됩니다(단, C/C++로의 이식이 선호됨). ;)

나는 KDEand GNOMEand 에 가장 관심이 있습니다.dwm,xmonad,awesome- 다른 데스크탑 환경을 위한 솔루션도 환영합니다(가장 일반적인 솔루션을 제공할 수 있도록 지원을 제공하겠습니다).

그런데. 관심 있는 분들을 위해 사용 사례에 대해 좀 더 구체적으로 설명하자면 저는 데스크톱 + 창 포커스 + xevents + 여러 화면을 중심으로 시간을 추적하는 데 관심이 있습니다. 현재 이에 대한 별도의 솔루션이 있습니다(ktimetracker데스크톱을 기반으로 작업을 추적하는 반면 응용 프로그램 추적은 매우 열악합니다. 정규식 지원이 없고 정확한 창 제목만 있습니다. -> 별로 유용하지 않습니다. 반면에,workrave키보드 및 마우스 활동을 추적하지만 현재 작업 중인 데스크탑->작업이 무엇인지 모릅니다. ), 더 정확한 그림을 얻기 위해 이 정보를 병합하는 작업을 수행하고 싶습니다(어쩌면 병합할 수도 있음).연관 규칙 학습또는 다른 사람데이터 수집내가 수행하는 활동의 기술) (내 습관과 관련된 더 정확한 정보를 얻기 위해, "개미-상대 강도 지수고심하다" ;) ).

따라서 데스크톱이 "가상 데스크톱 + Windows(이름 및 제목 포함)"와 다른 패러다임을 따르는 경우 현재 사용되는 창/프레임/응용 프로그램 + 현재 선택된 데스크톱 정보를 보여주는 코드/cli 조각을 표시하십시오. /작업/태그에 대한 정보( 최종 화면).

답변1

다음을 준수하는 창 관리자무료 데스크탑표준은 데스크톱에 대한 정보를 저장합니다.루트 창 속성, 특히:

  • _NET_NUMBER_OF_DESKTOPS:가상 데스크탑 수
  • _NET_CURRENT_DESKTOP: 활성 데스크탑의 인덱스
  • _NET_DESKTOP_NAMES: 가상 데스크톱 이름 목록

모든 인터페이스를 통해 이러한 항목에 액세스할 수 있습니다.XGetWindowProperty예를 들어xprop. 껍질부터 살펴보면,wmctrl -d가상 데스크탑을 나열하는 편리한 방법을 제공합니다.

내가 아는 한, 루트 창의 속성이 변경되면 창 관리자에게만 알림이 전달됩니다. 따라서 가상 데스크탑 전환에 반응하려면 창 관리자를 사용해야 합니다. 예를 들어, 귀하의 사용 사례에서는 창 관리자(톱상어) 흥미로운 일이 일어날 때.

답변2

당신은 또한 볼 수 있습니다arbtt, 이것자동 규칙 기반 시간 추적기주로요아킴 브라이트너존재하다하스켈. 기능의 최고점을 보려면 구성 예를 참조하십시오.즉, 포커스 창 제목과 시간 규칙을 사용하여 작업 시간을 추적하세요. (아마도 나는 그것을 시도한 적이 없습니다. 여기에는 사용 사례가 없지만 당신이하려는 것과 비슷하게 들립니다.)

사용 가능해킹으로그리고데비안 저장소에서.

관련 정보