고쳐 쓰다

고쳐 쓰다

Wayland로 전환하기 전에 다음 명령을 사용하여 모든 GNOME Shell 창을 최소화합니다.

wmctrl -k on

...하지만 둘 다 X11 전용 응용 프로그램 wmctrl입니다 . xdotoolGNOME Shell/Wayland 세션에서 모든 창을 최소화하려면 어떤 CLI 명령을 사용할 수 있습니까?

인용하다:

답변1

고쳐 쓰다

안타깝게도 이보안상의 이유로 더 이상 Gnome 41에서 작동하지 않습니다.

Looking Glass에서 실행하면 global.context.unsafe_mode = true기능이 다시 활성화되지만 일시적으로만 가능합니다.

원래 답변

에서와 같이내 다른 대답은wmctrl, gdbusGnome에서 GJS를 사용하여 이를 수행할 수 있습니다.

gdbus call \
  --session \
  --dest org.gnome.Shell \
  --object-path /org/gnome/Shell \
  --method org.gnome.Shell.Eval \
  "global.get_window_actors().forEach(w=>w.meta_window.minimize())"

답변2

내 Playground Manjaro 시스템과 GNOME3/Wayland에서 작동하는 해결 방법을 설명하겠습니다.다른 배포판에서는 프로세스가 약간 다를 수 있습니다.

그다지 완벽하진 않아내가 상상했던 대로, 하지만 작동합니다.

간편한 멀티툴

이 방법에서는간편한 멀티툴. ~에서읽어보기.md:

ydotool은 xdotool과 다르게 작동합니다. xdotool은 X 이벤트를 X 서버로 직접 보내는 반면, ydotool은 Linux 커널의 uinput 프레임워크를 사용하여 입력 장치를 시뮬레이션합니다.

  1. 설치하다배포판에 따라 -우레아 소변 비율,우분투,더반,등...
  2. 올바르게 해야 할 수도 있습니다.액세스 권한 설정/dev/uinput사용자가 장치에 액세스할 수 있도록 허용합니다 . 이 경우 사용자를 users그룹에 추가하고 udev 규칙 파일을 만듭니다.

사용자 그룹에 자신을 추가:

usermod -a -G users $USER

/etc/udev/rules.d/80-uinput.rules파일 만들기다음 콘텐츠가 포함되어 있습니다:

KERNEL=="uinput", GROUP="users", MODE="0660", OPTIONS+="static_node=uinput"
  1. 당신은해야합니다/usr/bin/ydotoold소켓 리스너 시작. 테스트 목적으로 수동으로 시작하지만 원하는 경우도 있습니다.자동 시작이것로그인할 때.

  2. 그놈 3에서는 "모든 일반 창 숨기기"에 대한 키보드 단축키를 설정할 수 있습니다. 이동gnome-control-center,키보드 단축키, 항해,모든 일반 창 숨기기. 예를 들어 이 단축키를 Super+ 로 설정하세요 D.

  3. 이제 모든 것이 예상대로 작동하면 다음 명령을 사용하여 모든 GNOME/Wayland 창을 최소화할 수 있습니다:

ydotool key Super+D

유형

또 다른 접근 방식은 다음과 같습니다.유형. 다른 접근 방식을 사용하고 키보드 이벤트를 합성기에 직접 제공하는 것 같습니다. 문제는 GNOME의 기본 합성기를 사용하여 이 작업을 수행할 수 없다는 것입니다.중얼거리다. 어쩌면 제한사항과 관련이 있을 수도 있습니다X 웨이랜드그러나 나는 그것에 대해 확신하지 못합니다. 내가 얻는 것은 오류뿐입니다.

신디사이저는 가상 키보드 프로토콜을 지원하지 않습니다.

답변3

TL;DR 아직도 할 수 있어요

xdotoolX11 API를 사용하므로 Wayland에서 실행할 수 없지만 데스크톱 wmctrl환경 자체와 상호 작용하는 것은 가능합니다. 따라서 X11 API가 필요한 명령이 작동하지 않더라도 wmctrlWayland 세션에서는 여전히 많은 명령을 사용할 수 있습니다 -k on(예:

GNOME Shell 3.30.2 및 1.07을 사용하여 wmctrlArch Linux에서 테스트되었습니다 .

관련 정보