Como posso desabilitar rapidamente a tampa do modo de espera no Ubuntu Unity 16.04?

16

Qual é a maneira mais rápida de desativar rapidamente o recurso de espera ao fechar a tampa? Eu gosto muito desse comportamento, mas especialmente quando estou tocando música, eu gostaria de fechar minha tampa sem colocar minha máquina no modo de espera.

No entanto, não quero desabilitar permanentemente esse recurso, mas apenas desativá-lo temporariamente até que eu termine de ouvir música, por exemplo.

Talvez exista um indicador semelhante a Cafeína ?

    
por orschiro 21.08.2016 / 20:22

2 respostas

19

O script abaixo irá alternar a ação aproximada entre "nothing" e "suspender":

#!/usr/bin/env python3
import subprocess

key = ["org.gnome.settings-daemon.plugins.power",
       "lid-close-ac-action", "lid-close-battery-action"]

currstate = subprocess.check_output(["gsettings", "get",
    key[0], key[1]]).decode("utf-8").strip()

if currstate == "'suspend'":
    command = "'nothing'"
    subprocess.Popen(["notify-send", "Lid closes with no action"])
else:
    command = "'suspend'"
    subprocess.Popen(["notify-send", "Suspend will be activated when lid closes"])

for k in [key[1], key[2]]:
    subprocess.Popen(["gsettings", "set", key[0], k, command])

... E notifique qual é o estado atual definido:

Comousar

Simplesmente:

  • Copieoscriptemumarquivovazio,salve-ocomotoggle_lid.py
  • Adicioneaumatecladeatalho:escolha:Configuraçõesdosistema>"Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:

    python3 /path/to/toggle_lid.py
    

Explicação

O estado atual da configuração de ação de fechamento da tampa pode ser recuperado pelo (s) comando (s)

gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action

(na energia) e

gsettings get org.gnome.settings-daemon.plugins.power lid-close-battery-action

(com bateria)

O script lê o estado atual e define o oposto ('suspend' / 'nothing') com o comando:

gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action '<action>'

Opcionalmente (adicionalmente)

Opcionalmente / adicionalmente, você pode executar um indicador como um detector para mostrar qual é o estado atual da configuração da tampa. Vai mostrar:

...nopainel,seasuspensãoforimpedidadefecharatampa,elamostraráumacinza,senão.

Oscript

#!/usr/bin/env python3 import subprocess import os import time import signal import gi gi.require_version('Gtk', '3.0') gi.require_version('AppIndicator3', '0.1') from gi.repository import Gtk, AppIndicator3, GObject from threading import Thread key = ["org.gnome.settings-daemon.plugins.power", "lid-close-ac-action", "lid-close-battery-action"] currpath = os.path.dirname(os.path.realpath(__file__)) def runs(): # The test True/False return subprocess.check_output([ "gsettings", "get", key[0], key[1] ]).decode("utf-8").strip() == "'suspend'" class Indicator(): def __init__(self): self.app = 'show_proc' iconpath = currpath+"/nocolor.png" self.indicator = AppIndicator3.Indicator.new( self.app, iconpath, AppIndicator3.IndicatorCategory.OTHER) self.indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE) self.indicator.set_menu(self.create_menu()) self.update = Thread(target=self.check_runs) # daemonize the thread to make the indicator stopable self.update.setDaemon(True) self.update.start() def check_runs(self): # the function (thread), checking for the process to run runs1 = None while True: time.sleep(1) runs2 = runs() # if there is a change in state, update the icon if runs1 != runs2: if runs2: # set the icon to show GObject.idle_add( self.indicator.set_icon, currpath+"/nocolor.png", priority=GObject.PRIORITY_DEFAULT ) else: # set the icon to hide GObject.idle_add( self.indicator.set_icon, currpath+"/green.png", priority=GObject.PRIORITY_DEFAULT ) runs1 = runs2 def create_menu(self): menu = Gtk.Menu() # quit item_quit = Gtk.MenuItem('Quit') item_quit.connect('activate', self.stop) menu.append(item_quit) menu.show_all() return menu def stop(self, source): Gtk.main_quit() Indicator() GObject.threads_init() signal.signal(signal.SIGINT, signal.SIG_DFL) Gtk.main()

Como usar

  1. Copie o script acima em um arquivo vazio, salve-o como show_state.py
  2. Copie os dois ícones abaixo (clique com o botão direito - > salve como) e salve-os em um e no mesmo diretório que show_proc.py e exatamente como indicado abaixo

    green.png

    nocolor.png

  3. Agoratesteexecutarshow_state.pypelocomando:

    python3/path/to/show_state.py

    ealtereoestadoatualpressionandooatalhoparadefiniraprimeiraseçãodestaresposta.

  4. Setudofuncionarbem,adicioneoseguinteaosaplicativosdeinicialização:

    /bin/bash-c"sleep 15 && python3 /path/to/show_state.py"
    

Nota

O indicador do detector acima é uma versão editada de esta resposta . Simplesmente alterando o teste na função runs() (e opcionalmente os ícones do painel correspondente), você pode usá-lo para mostrar o estado de qualquer coisa que seja True ou False .

    
por Jacob Vlijm 21.08.2016 / 20:43
5

Outra opção seria mudar de "Suspend" para "Do Nothing" nas configurações do Ubuntu - Power:

PS: isso não fornece um indicador na área de notificações, mas é mais simples do que criar um script para novos usuários.

PPS: Neste instantâneo de tela, o no-break é para o modem a cabo + Sony Android TV, não o laptop que tem bateria ... HAHA.

    
por WinEunuuchs2Unix 21.08.2016 / 22:32