
이 질문은 완전히 다릅니다.
- 프로그램이 작업 영역을 전환하지 못하도록 하려면 어떻게 해야 합니까?
- 응용 프로그램(및 모든 새 창)을 특정 작업 공간에 잠그려면 어떻게 해야 합니까?
- 응용 프로그램이 작업 공간을 변경하지 못하도록 방지
- 이전에 두 작업 공간에 걸쳐 부분적으로 드래그한 창을 활성화할 때 작업 공간이 단일화되는 것을 방지하는 방법
여기서 이 질문은 방법에 관한 것이 아니기 때문에
- 현재 작업 공간에서 프로그램을 엽니다. 나는 그것을 안다.
- 다른 작업 공간에서 프로그램을 엽니다. 나는 그것을 안다.
- 창이 일부 작업 공간으로 이동하는 것을 방지합니다. 나는 그것을 처리하는 방법을 알고 있습니다.
- 아이콘을 클릭할 때 작업 공간 전환을 방지하거나 작업 전환기를 사용할 수 있습니다.
이 질문은 또한 크롬에 관한 것이 아닙니다. Chromium은 오작동하는 많은 애플리케이션 중 가장 눈에 띄는 앱일 뿐입니다.
문제는 다른 애플리케이션이 직접적인 사용자 상호 작용 없이 포커스를 자체적으로(예: 크롬 또는 기타) 전환하려고 할 때 Wayland가 현재 작업 공간을 전환하는 것을 방지하는 방법입니다. 이는 현재 작업 공간에서 발생하면 충분히 짜증나는 포커스 도용과 같은 것입니다.
Compiz로 작업 공간을 선택한 경우 다른 응용 프로그램이 백그라운드에서 무엇을 하려고 하는지에 관계없이 다른 작업 공간을 선택할 때까지 이 작업 공간을 변경해서는 안 됩니다.
Compiz 및 wmctrl과 같은 특정 응용 프로그램의 전환 명령에만 따르도록 Wayland에 지시하는 방법이 있습니까? 아마도 일부 필터를 사용하여 이에 도달할 수 있습니까 dbus
? 필요에 따라 CIFS 또는 ZFS와 같은 Linux 커널 모듈의 코드를 해킹하는 방법을 알고 있더라도 아직 grok이나 Wayland 또는 SystemD를 사용하지 않습니다 dbus
. 죄송합니다. LD_PRELOAD
? 일부 (기존) X0 프로토콜 방화벽이 있습니까? 아무것?
현재 해결 방법은 다음을 실행하는 것입니다.
while sleep .01; do DISPLAY=:0 wmctrl -s 2; done
이렇게 하면 chromium(또는 다른 앱 중 하나)이 작업 공간을 전환하면 Wayland는 즉시 내가 작업 중인 앱으로 다시 전환합니다. 그러나 이 앞뒤 전환으로 인해 1분 동안 화면이 계속 깜박이는 것은 짜증스럽습니다. 또한 때때로 깜박임으로 인해 마우스 포커스가 손실됩니다(또는 노출된 경쟁 조건으로 인해 잘못된 바탕 화면에 무언가를 떨어뜨리는 등 완전히 다른 일이 발생함).
크롬이 가장 짜증나는 부분이라는 점에 유의하세요. 대부분의 다른 앱은 작업 공간을 한 번만 전환합니다. 그러나 Chromium은 시작할 때 열리는 각 창에 대해 이 작업을 수행하는 것으로 보입니다. 내 옆에 수천 개의 창이 열려 있으면 Chrome 전체 시작에 몇 분 정도 걸립니다(내 컴퓨터에는 RAM과 CPU가 충분하므로 교체 문제는 아닙니다). 시작하는 동안 준비가 될 때까지 작업 공간을 꾸준히 전환하려고 시도합니다. . 그러나 문제는 FireFox, IDE 및 기타 창이 이러한 방식으로 포커스를 훔치는 것을 방지하는 방법에 관한 것입니다.
이 질문은 포커스 도용 자체에 관한 것이 아닙니다. 이는 작업 공간을 전환하여 초점을 도용하는 것에 관한 것입니다. 이는 관찰된 일반적인 초점 도용과는 완전히 다른 것이기 때문입니다.
그래서 창이 뛰어다니는 것을 막고 싶지 않고, 다른 작업 공간으로 이동하거나 현재 작업 공간에 집중하는 것을 원하지 않습니다. 따라서 앱은 여전히 내 창 배치를 망칠 수 있습니다.
내가 원하는 것은 현재 작업 공간을 "고정"하여 다른 작업 공간으로 이동하기로 선택할 때까지 다른 어떤 것도 변경할 수 없도록 하는 것입니다.
이에 대한 몇 가지 생각:
Wayland는 (모든 작업공간을 포함하는) 훨씬 더 큰 캔버스의 특정 부분(작업공간)만 제공합니다. 따라서 작업 공간을 변경하는 것은 캔버스가 표시되는 원점을 변경하는 것입니다. 그리고 디스플레이는 이 원점에 상대적인 영역입니다. (물론 입력 포커스도 이동해야 하므로 조금 더 많은 작업이 진행됩니다.)
AFAICS 원점 이동을 방지하는 것이 쉬워야 합니다(따라서 초점 변경도 방지함). 그것이 바로 내가 보관하고 싶은 것입니다. 아마도 이것은 이미 Wayland 어딘가에 내장되어 있을 것입니다. 또는 승인되지 않은 앱이 원본을 변경하는 것을 방지하는 방화벽과 같은 코드로 해킹당할 수도 있습니다. Wayland에서 원점 변경이 일어나는 올바른 위치를 찾을 수 있다면 이것은 제가 구현할 수 있는 것입니다.
하지만 이 내용을 자세히 살펴보기 전에(아마도 며칠이 걸릴 수 있음) 해당 내용을 보관하는 더 나은 표준 방법이 있는지 알고 싶습니다.
최종 참고 사항:
일반 X11에서는 디스플레이 설정/하드웨어/HWE 스택이 지원되지 않으므로 Ubuntu와 Wayland를 사용해야 합니다. (내 모니터 중 하나를 올바르게 구동할 수 없습니다. 이 버그를 찾아 고칠 수 있는 능력이 있을 가능성이 높지만 그렇게 할 시간이 부족하다는 점에 유의하십시오.)
따라서 Wayland에서 벗어나는 것은 나에게 도움이 되지 않습니다. 물론 LTS를 실행하기 때문에 Ubuntu 22.04도 설정되어 있기 때문에 OS를 바꾸는 것도 별 도움이 되지 않습니다.