X11でウィンドウを回転させる方法

X11でウィンドウを回転させる方法

X11で単一のウィンドウを回転できますか? Xepyrを使ってみましたが、エラー100458

役に立つ場合は、XMonadをWMとして使用しています。

答え1

探してみましたが、既製のソリューションがないことに驚きました。 1つの可能性は、KWinを使用し、それに対して「Kwin​​効果」を書くことです。https://blog.martin-graesslin.com/blog/2009/07/how-to-write-a-kwin-効果/。また、GNOMEシェル拡張も考えられますが、まだ存在していません。

解決策: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を使用して2番目の答えを追加しています。~/.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

関連情報