X Windows no Ubuntu 16.04 linha de comando redimensionar loops infinitos às vezes?

0

Antecedentes

Estou executando o Ubuntu 16.04 Desktop edition e estou tendo problemas para redimensionar janelas a partir de comandos da linha de comando. Eu mudei recentemente para o Fluxbox como meu gerenciador de janelas e tive um strong interesse em atalhos de teclado que executam comandos de linha de comando para operar em posições de janela. Eu acertei alguns obstáculos com o redimensionamento de janelas e não consigo descobrir o que está acontecendo.

Em Fluxbox as ações KeyBinding para redimensionar janelas para percentagens de tela às vezes causar a janela para redimensionar, então encolher lentamente, em seguida, redimensionar novamente, então encolher lentamente, repetindo por um tempo até que ele quer parar em algum tamanho completamente incorreto, ou Nunca para. Eu assumi que era um problema do Fluxbox e comecei a usar xdotool e wmctrl, mas o mesmo problema ocorreu.

Problema

Eu repliquei esse problema em uma instalação guest do Ubuntu 16.04 e uma instalação nativa do Ubuntu 16.04. Eu também repeti em diferentes gerenciadores de janelas em cada sistema: XFCE4, KDE, Fluxbox, Unity, Fluxbox construído a partir da fonte.

Se eu tiver uma janela com um tamanho arbitrário, a execução de um desses comandos será intermitente:

  1. funcione perfeitamente e redimensione para o tamanho solicitado
  2. redimensionar para o tamanho errado
  3. redimensionar (não necessariamente para o tamanho certo), diminuir lentamente a largura e altura da janela, redimensionar novamente, e repita essas etapas por um tempo, até que finalmente pára (geralmente em algum tamanho incorreto)
  4. O mesmo que o número 3 acima e ele pára na altura 1 com uma largura menor que a solicitada.
  5. O mesmo que o nº 3 acima, mas nunca para de redimensionar e encolher

Os números 4 e 5 são os mais comuns e problemáticos, pois a única maneira de resolvê-lo é fechar a janela e abri-la novamente.

Eu executei esses comandos em uma grande área de exibição que é muito maior que os tamanhos especificados. Os comandos que eu tentei (para tamanho de alvo 900x900) são:

wmctrl -r :ACTIVE: -o 0,-1,-1,900,900
wmctrl -i -r 0x01000004 -o 0,-1,-1,900,900
xdotool getactivewindow windowsize 900 900
xdotool getactivewindow windowsize --sync 900 900
xdotool windowsize 20971524 900 900
xdotool windowsize --sync 20971524 900 900

Como você pode ver, eu tentei tanto xdotool e wmctrl, usando a detecção automática da janela ativa e a especificação explícita da janela ativa (olhou para cima usando wmctrl e xdotool respectivamente). Eu também tentei tamanhos diferentes que são menores ou maiores, janelas para programas diferentes do que apenas um terminal, janelas que não são as atuais e que movem a janela ao mesmo tempo. Nenhum deles parece fazer diferença no resultado. Para tentar depurar o problema, tentei executar strace no comando xdotool para ver se ele estava preso em algum lugar:

strace xdotool windowsize --sync 20971524 900 900 2>~/trace.log

Repeti este comando até obter um que funcionasse perfeitamente na primeira tentativa e depois o repeti até obter um que ficou preso em um loop infinito, salvando os logs de rastreio separadamente. Eu os comparei para ver o que era diferente e as únicas coisas diferentes eram as IDs de janela envolvidas. Isso sugere-me que não é um problema de comunicação com a própria (improvável uma vez que ambos wmctrl e xdotool têm o mesmo problema) ferramenta ou um problema de comunicação com uma estrutura subjacente (também improvável).

Pergunta (s)

Para onde eu vou daqui e onde devo procurar para resolver isso? Existe possivelmente um problema com Wayland vs XWindows desde Wayland foi introduzido para o Ubuntu em 16.04? Existe um XWindows legado que eu posso / devo tentar resolver? Isso é apenas um bug no XWindows que todo mundo vê? Existem outras ferramentas que podem fazer o redimensionamento de maneira diferente? Eu não estou contando algo no comando de redimensionamento?

    
por mtalexan 07.11.2017 / 23:42

1 resposta

0

O problema é com algumas janelas e as "Dicas de Geometria da Janela". Particularmente com o terminador (versão gnome), há um problema conhecido em que as Dicas de Geometria da Janela podem / podem sugerir que a janela deve ser um pouco menor ou maior, mudando de ideia toda vez que X redimensiona a janela para o tamanho sugerido. >

A solução pelo menos para o terminador (versão gnome), é desabilitar as Dicas de Geometria da Janela na configuração. Cada programa com um problema pode ou não ter uma solução individualmente.

    
por mtalexan 14.11.2017 / 04:24