Como girar a janela no X11

4

É possível girar uma única janela no X11? Eu tentei usar o Xephyr, mas eu me deparo com o bug 100458 .

Eu uso o XMonad como WM se isso ajudar.

    
por Maciej Piechotka 29.03.2017 / 23:28

2 respostas

4

Eu pesquisei um pouco e estou surpreso de não encontrar uma solução pronta para isso. Uma possibilidade poderia ser usar o KWin e escrever um "efeito Kwin" para ele: link . Além disso, uma extensão de shell gnome é imaginável, mas ainda não existe.

Uma solução alternativa: Weston é a implementação de referência do Wayland. Ele permite girar janelas com o botão do mouse central + super-tecla. Como isso funciona apenas para clientes Wayland, você pode rodar o Xwayland em Weston, rodar seu aplicativo X no Xwayland e rodar o display do Xwayland. Se o seu aplicativo suporta Wayland (baseado no GTK3, QT5 ou SDL, por exemplo), isso funciona no weston sem o Xwayland.

Para aplicativos X em Xwayland

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

(No Gnome-Wayland você pode rodar o Xwayland diretamente sem usar weston, mas eu não estou ciente de uma opção do Gnome-Wayland para girar uma janela).

Para aplicativos QT5 sem o Xwayland:

weston
WAYLAND_DISPLAY=wayland-0  QT_QPA_PLATFORM=wayland  yourQT5application

Para aplicativos GTK3 e SDL sem o Xwayland:

weston
WAYLAND_DISPLAY=wayland-0 yourGTK3application

(Nota: Você pode especificar um wayland / WAYLAND_DISPLAY com weston --socket=mywaylandsocket em vez de assumir wayland-0 . Você precisa fazer isso no Gnome-Wayland, pois ele usa wayland-0 )

    
por 12.04.2017 / 18:34
2

Estou adicionando uma segunda resposta usando o Weston, um pouco diferente e mais utilizável do que o meu primeiro. Crie um arquivo ~/.config/weston.ini com este conteúdo:

[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

Este weston.ini habilita um xwayland.so sem raízes em weston. A seção [output] com name=X1 define a aparência de weston como cliente X.

  • mode=600x800 define o tamanho da tela / janela.
  • transform=90 gira a exibição weston.
  • scale=1 define um fator de escala, se necessário.
  • as seções [launcher] podem ser usadas para criar iniciadores de painel personalizados para seus aplicativos X.

Veja man weston.ini e /usr/share/doc/weston/examples/weston.ini para mais informações e opções.

(Em vez de usar o painel weston, você pode desativá-lo com panel-location=none , analisar a saída de weston para xserver listening on display :1 e usar DISPLAY=:1 yourXapp )

    
por 04.05.2017 / 01:44