LXDE: faça o logout em vez de matar todos os aplicativos em execução

2

No Windows, quando você faz logout, cada aplicativo recebe o equivalente a Alt + F4, portanto, se você tiver um documento não salvo no Word, ele mostrará uma mensagem pedindo para você salvá-lo.

No LXDE, cada programa é fechado, mesmo que eu tenha documentos não salvos. Parece que cada programa recebe um SIGTERM em vez de um equivalente Alt + F4.

Existe uma maneira de mudar esse comportamento?

    
por sashoalm 30.12.2013 / 12:15

1 resposta

1

AFAIK, não. Mas tenha em mente que este é um DE minimalista por um motivo. Aparentemente, seus fabricantes declararam que esses recursos eram muito inchados. Eles podem estar certos embora.

O UNIX já permite o fechamento elegante de processos filhos por meio do SIGTERM. Crianças que não respondem podem ser mortas imediatamente com o SIGKILL. Os DEs sensatos seguem este design, enviando SIGTERM, depois acompanhando o SIGKILL somente quando necessário. Algumas aplicações, como o libreoffice, não seguem este projeto e desligam imediatamente quando recebem o SIGTERM, mesmo que existam documentos não salvos. Os fabricantes consideram isso como um problema com o libreoffice e não com o gerenciador de sessões.

Fechar todos os clientes de uma sessão do X11 normalmente pode ser mais complicado do que apenas enviar o alt-f4 para todas as janelas. Por exemplo, se você tiver várias janelas do firefox abertas e enviar alt-f4 para todos ao mesmo tempo, as janelas serão fechadas individualmente, em uma ordem aleatória. Quando o firefox iniciar novamente, somente a última janela a fechar se abrirá novamente. Assim, o SIGTERM é, na verdade, o sinal correto para enviar para o processo do Firefox se você quiser que todas as janelas sejam inicializadas novamente em seu estado anterior.

Por razões que eu não entendo, a maioria dos shells interativos não respondem ao SIGTERM, então o xfce4-terminal e muitos outros simplesmente enviam o SIGKILL para seus clientes. O resultado é que os terminais geralmente respondem muito mal a alt-f4. A única maneira de garantir que não haja perda de dados é se cada terminal for fechado individualmente, com o usuário julgando se há uma tarefa no terminal que deve ser concluída antes de fechá-la.

Dito isto, se você achar que o alt-f4 é apropriado para fechar todos os aplicativos que você usa diariamente, deve ser bem fácil escrever um script simples que envie um alt-f4 para todas as janelas em execução. O evento X11 relevante é WM_DELETE_WINDOW . Há algumas informações aqui sobre como você pode escrever tal script. É até possível filtrar os clientes problemáticos, como o firefox e os terminais. Agora imagine a tarefa hercúlea de manter tal script para todos os aplicativos X11 que as pessoas provavelmente usarão e você pode ver porque a maioria dos DEs optam pela abordagem SIGTERM, SIGKILL estilo UNIX.

    
por enigmaticPhysicist 03.05.2016 / 13:12