Как я могу быстро отключить резервную крышку прочь в Единице Ubuntu 16.04?

Что самый быстрый путь состоит в том, чтобы быстро отключить резервную опцию при закрытии крышки? Мне очень нравится это поведение, но особенно играя музыку, я хотел бы закрыть свою крышку, не переключая мою машину в резервное устройство.

Однако я не хочу постоянно отключать эту опцию, но просто временно выключать ее, пока я не закончил слушать музыку, например.

Возможно, существует индикатор, подобный Кофеину?

enter image description here

16
задан 21 August 2016 в 11:58

2 ответа

Сценарий ниже переключит действие плотно закрывающейся крышки ни между "чем" и "приостановит":

#!/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])

... И уведомьте то, что в настоящее время состояние набора:

enter image description here

Как использовать

Просто:

  • Скопируйте сценарий в пустой файл, сохраните его как toggle_lid.py
  • Добавьте его к сочетанию клавиш: выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:

    python3 /path/to/toggle_lid.py
    

Объяснение

Текущее состояние установки действия плотно закрывающейся крышки может быть получено командой (командами)

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

(на питании), и

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

(на батарее)

Сценарий читает текущее состояние и устанавливает противоположное ('приостановите'/'nothing') с командой:

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

Дополнительно (дополнительно)

Дополнительно/дополнительно можно выполнить индикатор как детектор для показа то, что является текущим состоянием крышки - установка. Это покажет:

enter image description here

... в панели, если приостанавливание будет предотвращено при закрытии крышки, Это покажет серую если нет.

enter image description here

Сценарий

#!/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()

Как использовать

  1. Скопируйте сценарий выше в пустой файл, сохраните его как show_state.py
  2. Скопируйте оба значка ниже (щелчок правой кнопкой-> сохраняют как), и сохраните их в одном и том же каталоге как show_proc.py, и точно названный, как обозначено ниже

    green.png

    enter image description here

    nocolor.png

    enter image description here

  3. Теперь тестовый прогон - show_state.py командой:

    python3 /path/to/show_state.py
    

    и измените текущее состояние путем нажатия ярлыка, Вы устанавливаете первый раздел этого ответа.

  4. Если все хорошо работает, добавьте следующее для запущения приложений:

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

Примечание:

Детектор - индикатор выше является отредактированной версией этого ответа. Просто путем изменения теста в функции runs() (и дополнительно согласно значкам панелей), можно использовать его для показа состояния чего-либо, что является True или False.

19
ответ дан 23 November 2019 в 02:33

Другая опция изменилась бы от, "Приостанавливают", Чтобы ничего "не Сделать" в Настройках Ubuntu - Питание:

Ubuntu Settings - Power

пз: Это не обеспечивает индикатор в области уведомлений, но более просто, чем создание сценария для новых пользователей.

PPS: В этом экранном снимке UPS для Кабельного модема + Sony ТВ Android, не ноутбук, который имеет батарею... ХА-ХА.

5
ответ дан 23 November 2019 в 02:33

Другие вопросы по тегам:

Похожие вопросы: