Como suspender do Gnome3 usando o systemd

2

Breve informação de base: Acabei de instalar o Fedora 18 com o Gnome 3.6.3.1 no meu computador. Ele está conectado a um compartilhamento do Windows (CIFS) que contém música, que eu uso usando o Clementine. Se eu suspender o computador enquanto Clementine está tocando uma música da montagem CIFS, ao retomar, ela (Clementine) trava. Eventualmente, se eu tentar reiniciar / desligar, todo o computador trava. Minha solução para isso é parar a reprodução após a suspensão.

Meu problema: criei um script em /usr/lib/systemd/system-sleep para parar a reprodução (usando o MPRIS). O script é executado com sucesso antes de suspender se eu executar

systemctl suspend

No entanto, ele não roda se eu clicar em Suspender no menu Usuário no Gnome3. Fazendo um pouco de trabalho, descobri que o Gnome3 depende do UPower, que, ao que parece, simplesmente usa o DBus para emitir o comando "Suspender". Eu não sou experiente o suficiente para seguir a trilha mais longe, mas pelo que eu posso ver, o script nunca é executado.

Minha pergunta: Como posso fazer o item de menu Suspender no Gnome3 usar o systemd para chamar meu script?

    
por Meta 01.06.2013 / 22:22

1 resposta

2

Depois de fazer mais pesquisas, parece que o UPower deve usar o systemd quando for detectado. Mas por algum motivo, isso não acontece. No momento, estou investigando isso, mas como uma solução temporária, editei diretamente as linhas relevantes em userMenu.js e powerMenu.js da seguinte forma:

Substitua (comente) todas as linhas que chamam suspender:

this._upClient.suspend_sync(null);

Pela seguinte linha:

Util.spawn(['systemctl', 'suspend']);

Adicione também a seguinte linha em powerMenu.js perto do topo:

const Util = imports.misc.util;
    
por 02.06.2013 / 06:13