X11에서 창을 회전하는 방법

X11에서 창을 회전하는 방법

X11에서 단일 창을 회전할 수 있습니까? Xepyr를 사용해 보았지만오류 100458.

도움이 된다면 XMonad를 WM으로 사용하고 있습니다.

답변1

검색을 좀 해봤지만 기성 솔루션이 없다는 사실에 놀랐습니다. 한 가지 가능성은 KWin을 사용하고 이에 대해 "Kwin 효과"를 작성하는 것입니다.https://blog.martin-graesslin.com/blog/2009/07/how-to-write-a-kwin-효과/. 또한 그놈 쉘 확장도 생각할 수 있지만 아직 존재하지 않습니다.

솔루션: Weston은 Wayland의 참조 구현입니다. 슈퍼 키 + 마우스 가운데 버튼을 사용하여 창을 회전할 수 있습니다. 이는 Wayland 클라이언트에서만 작동하므로 웨스턴에서 Xwayland를 실행하고, Xwayland에서 X 응용 프로그램을 실행하고, Xwayland 디스플레이를 회전할 수 있습니다. 귀하의 응용 프로그램이 Wayland를 지원하는 경우(예: GTK3, QT5 또는 SDL 기반) Xwayland를 사용하기 위해 Xwayland가 필요하지 않습니다.

Xwayland의 X 응용 프로그램의 경우

weston
WAYLAND_DISPLAY=wayland-0 Xwayland :5
DISPLAY=:5 yourXapplication
DISPLAY=:5 x-window-manager  # additionally run a window manager for comfort

(Gnome-Wayland에서는 weston을 사용하지 않고 Xwayland를 직접 실행할 수 있지만 Gnome-Wayland에 창 회전 옵션이 있는지는 모르겠습니다.)

Xwayland가 없는 QT5 애플리케이션의 경우:

weston
WAYLAND_DISPLAY=wayland-0  QT_QPA_PLATFORM=wayland  yourQT5application

Xwayland가 없는 GTK3 및 SDL 애플리케이션의 경우:

weston
WAYLAND_DISPLAY=wayland-0 yourGTK3application

weston --socket=mywaylandsocket(참고: 이라고 가정하는 대신 wayland 소켓/WAYLAND_DISPLAY를 지정할 수 있습니다 . Gnome-Wayland가 자체적 wayland-0으로 사용하므로 이 작업을 수행해야 합니다 .)wayland-0

답변2

첫 번째 답변과 약간 다르지만 더 유용한 Weston을 사용하여 두 번째 답변을 추가하고 있습니다. ~/.config/weston.ini다음 내용으로 파일을 만듭니다 .

[core]
modules=xwayland.so
shell=desktop-shell.so
idle-time=0
[shell]
background-color=0xff002244
locking=false
# panel-location=none    
[launcher]
icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png
path=/usr/bin/weston-terminal
[launcher]
icon=/usr/share/icons/hicolor/48x48/apps/firefox.png
path=/usr/bin/firefox
[output]
name=X1
mode=600x800
transform=90
# wanna get mad? use: transform=flipped-270
scale=1

이로 인해 웨스턴은 뿌리와 지위가 weston.ini사라졌습니다 . 섹션에서는 웨스턴의 모습을 X 클라이언트로 정의합니다. xwayland.so[output]name=X1

  • mode=600x800화면/창 크기를 설정합니다.
  • transform=90웨스턴 디스플레이를 회전합니다.
  • scale=1필요한 경우 축척 비율을 설정합니다.
  • [launcher]섹션은 X 응용 프로그램에 대한 사용자 정의 패널 실행 프로그램을 만드는 데 사용할 수 있습니다.

자세한 정보와 옵션을 확인 man weston.ini하고 알아보세요./usr/share/doc/weston/examples/weston.ini

panel-location=nonexserver listening on display :1( 웨스턴 패널을 사용하는 대신 웨스턴의 출력을 사용하여 비활성화하고 구문 분석하여 사용할 수 있습니다 DISPLAY=:1 yourXapp)

관련 정보