Como iniciar uma aplicação com a maior parte da propriedade?

4

Eu quero iniciar um aplicativo com a propriedade mais baixa. Isso significa que a janela permanecerá sempre na parte inferior das outras janelas.

Isso é possível? Eu acho que deve haver um aplicativo que faça isso, mas não tenho idéia de como encontrá-lo ...

Por exemplo, quero iniciar chromium-browser com a maior parte da propriedade. Como posso fazer isso?

    
por Ionică Bizău 30.09.2013 / 05:52

1 resposta

2

Você pode usar Devilspie2 ( link ), um programa que executa ações no Windows são criados usando scripts escritos em Lua ( link )

Instale-o com: sudo apt-get install devilspie2 e, em seguida, execute devilspie2 . Você deve ver a mensagem de erro:

No script files found in the script folder - exiting.

Ele criou esta pasta como ~/.config/devilspie2/ . Crie o seguinte arquivo e salve-o nesse diretório com a extensão .lua , por exemplo, como chromium.lua :

debug_print("Window Name: " .. get_window_name())
debug_print("Application name: " .. get_application_name())
debug_print("WM_CLASS: " .. get_class_instance_name())
debug_print("Window Class: " .. get_window_class())
if (string.match(get_application_name(),"Chromium$")) then
   set_window_below();
end

Em seguida, execute devilspie2 --debug & e abra o Chromium . O terminal deve mostrar:

Window Name: Untitled - Chromium
Application name: Untitled - Chromium

Todas as janelas do Chromium (qualquer nome de aplicativo que termine em 'Chromium') abertas enquanto Devilspie2 estiver em execução, serão definidas abaixo de todas as janelas normais.

Abrir outros programas enquanto o Devilspie2 estiver sendo executado com a opção de depuração, deve ajudá-lo a modificar este código para outros aplicativos.

Para executar automaticamente Devilspie2

Crie um arquivo ~/.config/autostart/devilspie2.desktop , contendo:

[Desktop Entry]
Type=Application
Name=Devilspie2
Exec=devilspie2
NoDisplay=true
Terminal=false

Adicionando condições adicionais

Para executar um script para um aplicativo apenas algumas vezes, você poderia:

  • Execute Devilspie2 somente conforme necessário, por exemplo, devilspie2 & app ; killall devilspie2 , embora aplique suas regras a todas as novas janelas criadas enquanto estiver em execução.

  • Para aplicativos GTK, a opção --name= altera o nome do aplicativo e --class= da classe Window. O Chromium não reconhece isso apesar da documentação.

  • Execute o comando com um ambiente modificado, por ex. window-below= chromium-browser e, em vez disso, use a seguinte regra:

    if (string.match(get_application_name(),"Chromium$")) and
       (string.match(io.input("/proc/" .. get_window_property("_NET_WM_PID") .. "/environ"):read("*a"), "window-below="))
    then
       set_window_below();
    end
    
por Martin Thornton 20.07.2015 / 23:00