Como suprimir ou desabilitar a opção de desligamento do menu indicador ou da caixa de diálogo de desligamento?

5

Meu objetivo é permitir que o usuário apenas reinicie o sistema e negar qualquer desligamento (suspensão, hibernação). Estou executando a unidade-2d.

Eu consegui negar a suspensão e hibernar com os arquivos de políticas do polkit, como explicado em Como desativar o desligamento / reinicialização / suspensão / hibernação?

Eu observei que isso de alguma forma desativa as capacidades de desligamento, mas não removeu a entrada "shutdown" do menu do painel de indicadores nem o botão "shutdown ..." do diálogo de desligamento. Pressionar o botão de desligamento neste ponto reinicia o lightdm, retornando à tela de login.

Meu objetivo é remover qualquer ação e botão de "desligamento".

Então, eu adicionei um arquivo ovveride em /usr/share/glib-2.0/schemas que contém algumas regras:

[com.canonical.indicator.session]
suppress-shutdown-menuitem = true

(all suppress - * - menuitem tem valor "false" por padrão no esquema)

Compilando, reiniciando o X, agora há uma entrada "fechar sessão ..." no menu do painel do indicador ...: não é o que eu quero.

neste ponto, se eu definir outro item de menu de supressão de logout como true, não receberei nenhuma entrada no menu do painel de indicadores.

Tentando assim, toda a combinação não dá a oportunidade de remover as referências / botões de "desligamento" sem remover a opção de reinicialização.

Tudo que eu quero é remover qualquer referência ao "desligamento", mas manter uma opção de "reinicialização" em algum lugar no menu do indicador ...

Obrigado!

ATUALIZE! Ainda não tenho dados suficientes para resolver o meu problema. Os novos dados são um mantenedor do Ubuntu ( link ) admite isso como um problema que é resolvido em 12.10 e não será resolvido no ramo LTS! Do meu ponto de vista, isso é claramente uma regressão, pois eu não tive nenhum problema para fazer isso em 10.04.

Neste ponto, mesmo que eu consiga modificar o código da sessão do indicador, qualquer atualização do repositório do Ubuntu vai quebrá-lo: /

    
por martin-mystere 01.10.2012 / 12:04

2 respostas

1

Caso a integração ao menu indicador não seja um pré-requisito, podemos sempre definir um lançador personalizado ou um indicador de aplicativo personalizado chamando o comando follwing para permitir apenas a reinicialização do sistema:

/usr/lib/indicator-session/gtk-logout-helper -r

Veja também: Qual é o comando para abrir o desligamento? diálogo?

    
por Takkat 14.11.2012 / 13:09
1

A unidade -2d usa uma exibição declarativa chamada

    GioDefaultApplication {
        id: defaultApplication
    }

    Application {
        id: application
        desktop_file: defaultApplication.desktopFile
    }

    visible: application.desktop_file != ""

    onClicked: dash.activateApplication(application)

     icon: "image://icons/" + application.icon
}

"Aplicativo" para iniciar um arquivo da área de trabalho para que você possa fazer algumas coisas. 1) remova os arquivos da área de trabalho     / usr / share / applications / Eles seguem como segue

  • Logout = indicador-sessão-logout.desktop

  • Suspender = indicador-sessão-bloqueio-tela.desktop

  • Reiniciar = indicador-sessão-restart.desktop

  • Desligar = indicador-sessão-encerramento.desktop

Ao editar esses arquivos e / ou removê-los (backup 1), o erro do indacator será eliminado

Outra coisa que você pode fazer é abrir a fonte para a unidade-2d e fazer com que todas as coisas sejam clicadas = o arquivo da área de trabalho que você gosta.

Espero que isso ajude

    
por Joseph Mills 02.10.2012 / 23:04