js/gnome-shell-extension에서 창 속성(위의 모든 작업공간)을 설정하시겠습니까?

js/gnome-shell-extension에서 창 속성(위의 모든 작업공간)을 설정하시겠습니까?

gnome-shell-extensions를 만드는 방법을 스스로 가르치는 것의 일환으로 창을 다른 모든 창 위에 모든 작업 공간에 있도록 지시하고 싶습니다.

Mutter API에 meta_window_set_abovein이 있는 것을 확인했지만 window.c이는 JS 인터페이스에 노출되지 않는 것 같습니다. 약간의 시행착오를 거쳐 호출할 수 있는 것 같지만 이 함수는 아무 작업도 수행하지 않는 것 같습니다. ( 제가 테스트한 속성이 window.set_property('above',true)있는데 이를 사용해도 아무 작업도 수행되지 않는 것 같습니다.)'title'set_property

그렇다면 그놈 쉘 확장에서 창 속성을 설정하는 다른 방법을 아는 사람이 있습니까? (그리고 API의 함수가 자바스크립트를 통해 노출되는지 확인하는 방법은 무엇입니까? 저는 (순진하게) "아, meta_window_set_abovein이 있으니 window.c를 호출할 수 있어야 하는데 window.set_above(true)그렇지 않은 것 같아요." 만큼 쉬울 것이라고 생각했습니다.

답변1

나는 그에게 이런 질문을 했다.그놈 메일링 리스트- 메타 창 속성은 모두 읽기 전용이므로 (현재) mutter를 사용하여 위/모든 작업 공간 옵션을 설정할 수 없습니다.

하지만 도서관을 이용할 수는 있어요으악이것을 달성하기 위해. Mutter가 여전히 선호되지만 현재로서는 이것이 유일한 방법일 수 있습니다.

다행히 wnck에는 gobject 자체 검사가 있으므로 이것으로 충분합니다.

const Wnck = imports.gi.Wnck;
let window = Wnck.Screen.get_default().get_active_window();
if ( window ) {
    window.make_above();
}

make_above, unmake_above, pin, unpin, stick및 ( 과 unstick의 차이점이 무엇인지는 모르겠지만 ) 함수가 모두 나열되어 있습니다.pinstick여기.

관련 정보