Eu gostaria de resumir postagem do HubbleT com algumas outras soluções alternativas adicionadas informação:
TLDR : acrescente && i3-msg "[id=$(xdotool getactivewindow)] floating enable"
à sua definição de atalho (requer xdotool
).
Por exemplo. bindsym $mod+button exec program && i3-msg "[id=$(xdotool getactivewindow)] floating enable"
Você pode configurar regras para todas janelas que correspondam a uma lista de critérios que podem ser configurados no seu i3-config ou equivalentemente enviados usando i3-msg
.
A sintaxe é for_window [ criteria ] command
. Você pode ler mais sobre isso aqui . Se você quer que ele funcione apenas em uma única janela, você pode garantir a exclusividade de seus critérios.
Não existe apenas
class
Compares the window class (the second part of WM_CLASS). Use the special value focused to match all windows having the same window class as the currently focused window.
instância
Compares the window instance (the first part of WM_CLASS). Use the special value focused to match all windows having the same window instance as the currently focused window.
mas muito mais, como title
ou id
:
title
Compares the X11 window title (_NET_WM_NAME or WM_NAME as fallback). Use the special value __focused__ to match all windows having the same window title as the currently focused window.
id
Compares the X11 window ID, which you can get via xwininfo for example.
Assumindo que emacsclient
seja um programa de linha de comando, você pode adicionar
for_window [ title="uniquetitle" ] floating enable
para sua configuração do i3 e abra seu terminal favorito usando
termite -e emacsclient -t uniquetitle
e seria aberto diretamente no modo flutuante.
Se não for um programa de linha de comando e não tiver opções de título, você poderá brincar com os outros critérios ou, por exemplo, (usando xdotool
e i3-msg
):
bindsym $mod+button exec program && xdotool getactivewindow set_window --name uniquetitle
ou menos sujo
bindsym $mod+t exec program && i3-msg "[id=$(xdotool getactivewindow)] floating enable"