Linux(적어도 Gnome 및 Compiz를 사용하는 Ubuntu)의 창 관리 관점에서 보면 창은 스택으로 구성됩니다. 초점이 맞춰진 창 이외의 창으로 전환하면 전자가 스택 상단, 후자 바로 위에 배치됩니다.
그렇다면 WM에게 해당 스택의 창을 높이거나 낮추고, 위쪽으로 올리거나 아래쪽으로 낮추도록 지시하는 것이 이론적으로 가능합니까?
그렇다면 Python XLib이 이를 수행할 수 있습니까? WM에 이미 이 기능이 있나요?
답변1
네, 창문은 겹겹이 배열되어 있어 올리거나 내리거나 위나 아래로 이동할 수 있습니다. 일부 창 관리자에서는 상단에 있거나 모든 창(작업 공간이라고도 함)에 "고정"될 수도 있습니다.
보세요send_event()
방법자세한 내용은 관련 X Window System 설명서를 참조하세요. 하지만 그렇습니다. 이 작업을 수행할 수 있어야 합니다. xev
(실행 중인 X 서버 POV에서) 변경해야 할 사항에 대한 추가 도움말을 보려면 (1)의 출력을 살펴보는 것이 좋습니다 .
이것이 자신만의 창이라면(예: Tkinter에서) WM 작업을 살펴보세요. Tkinter 클래스에는 이미 lower()
및 메소드 가 있습니다. 특정 정보는 도서관의 설명서를 확인하세요.raise()
TopLevel
답변2
예, 창 관리자는 창을 올리고 내릴 수 있습니다. 실제로 창 관리자는 일반적으로 창 낮추기, 올리기, 이동하기, 크기 조정하기, 집중하기 및 일반적으로 창 관리를 담당합니다.
창을 낮추고 올리는 X 라이브러리 기능은 다음과 같습니다.XRaiseWindow
그리고 XLowerWindow
. 더 많은 기능을 사용할 수 있습니다쌓이는 순서. Python Xlib에서는 사용할 수 없는 것 같지만 ctypes의 도움으로 쉽게 액세스할 수 있습니다.