如何在X11中旋转窗口

Mac*_*tka 5 window-manager x11 window xmonad

是否可以在 X11 中旋转单个窗口?我尝试使用 Xephyr,但遇到了错误 100458

如果有帮助,我将 XMonad 用作 WM。

mvi*_*eck 3

我进行了一些搜索,但很惊讶没有找到现成的解决方案。一种可能是使用 KWin 并为其编写“Kwin 效果”: https: //blog.martin-graesslin.com/blog/2009/07/how-to-write-a-kwin-effect/。此外,可以想象 gnome shell 扩展,但目前还不存在。

解决方案:Weston 是 Wayland 的参考实现。它允许使用超级键+鼠标中键旋转窗口。由于这仅适用于 Wayland 客户端,因此您可以在 weston 中运行 Xwayland,在 Xwayland 上运行 X 应用程序,并旋转 Xwayland 显示。如果您的应用程序支持 Wayland(例如,基于 GTK3、QT5 或 SDL),则无需 Xwayland 即可在 weston 中使用。

对于 Xwayland 上的 X 应用程序

weston
WAYLAND_DISPLAY=wayland-0 Xwayland :5
DISPLAY=:5 yourXapplication
DISPLAY=:5 x-window-manager  # additionally run a window manager for comfort
Run Code Online (Sandbox Code Playgroud)

(在 Gnome-Wayland 上,您可以直接运行 Xwayland,无需使用 weston,但我不知道 Gnome-Wayland 是否有旋转窗口的选项)。

对于没有 Xwayland 的 QT5 应用程序:

weston
WAYLAND_DISPLAY=wayland-0  QT_QPA_PLATFORM=wayland  yourQT5application
Run Code Online (Sandbox Code Playgroud)

对于没有 Xwayland 的 GTK3 和 SDL 应用程序:

weston
WAYLAND_DISPLAY=wayland-0 yourGTK3application
Run Code Online (Sandbox Code Playgroud)

(注意:您可以指定一个 wayland 套接字/WAYLAND_DISPLAY,而weston --socket=mywaylandsocket不是假设它是wayland-0。您需要在 Gnome-Wayland 上执行此操作,因为它使用wayland-0自身)