Ubuntu Unity 16.04에서 대기 뚜껑을 빠르게 비활성화하려면 어떻게해야합니까?


16

덮개를 닫을 때 대기 기능을 빠르게 비활성화하는 가장 빠른 방법은 무엇입니까? 이 동작을 매우 좋아하지만 특히 음악을 재생할 때 기기를 대기 모드로 전환하지 않고 뚜껑을 닫고 싶습니다.

그러나이 기능을 영구적으로 비활성화하고 싶지는 않지만 예를 들어 음악 듣기가 끝날 때까지 일시적으로 끕니다.

어쩌면 Caffeine 와 유사한 표시기가 있습니까?

여기에 이미지 설명을 입력하십시오


AC 및 배터리 설정이 비슷합니까?
— Jacob Vlijm

아직 그러한 지표는 없습니다. 방법이 있지만 sudo이 게시물에 표시된 것처럼 루트 액세스가 필요합니다 . askubuntu.com/q/15520/295286 . 나는 무엇을 할 수 있는지 볼 것이다
— Sergiy Kolodyazhnyy

사용중인 시스템 버전은 무엇입니까? 16.04
— Sergiy Kolodyazhnyy

Jacob과 Serg님께, 첫 번째 의견과 솔루션에 감사드립니다! 야곱의 대본은 훌륭합니다. 이것이 작은 지표라면 환상적입니다. 비주얼 GUI를 좋아합니다. :-) 설정은 ac 및 배터리와 비슷합니다. Unity 16.04를 사용하고 있음을 분명히하기 위해 질문을 편집했습니다.
— orschiro

할 수 있습니다. 그러나 GUI는 시간이 조금 더 걸립니다.
— Jacob Vlijm

답변:


19

아래의 스크립트 는 "nothing"과 "suspend"사이에서 닫힌 동작을 토글 합니다.

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

... 현재 설정된 상태를 알려주십시오.

여기에 이미지 설명을 입력하십시오

사용하는 방법

간단히:

  • 스크립트를 빈 파일로 복사하여 다른 이름으로 저장하십시오. 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

(배터리에)

스크립트는 현재 상태를 읽고 다음 명령으로 반대 ( 'suspend'/ 'nothing')를 설정합니다.

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

선택적으로 (추가로)

선택적으로 / 추가로, 표시기를 검출기로 실행하여 뚜껑 설정의 현재 상태를 표시 할 수 있습니다. 다음과 같이 표시됩니다.

여기에 이미지 설명을 입력하십시오

... 패널에서 뚜껑을 닫을 때 일시 중단이 방지되면 그렇지 않은 경우 회색으로 표시됩니다.

여기에 이미지 설명을 입력하십시오

스크립트

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

    여기에 이미지 설명을 입력하십시오

    nocolor.png

    여기에 이미지 설명을 입력하십시오

  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.


표시기와 함께 탁월한 솔루션! 한 가지 질문 : 투명한 아이콘 을 선택한 이유는 무엇 입니까?
— orschiro

@orschiro 나는 뚜껑 닫힘이 기본 상황 으로 중단되는 ste를 고려 했다. 녹색 은 조치없이 뚜껑을 닫을 수 있음을 나타냅니다 . 그러나 모든 아이콘이 표시됩니다. 제안?
— Jacob Vlijm

초록색이지만 희미한 회색일까요? 아이콘의 투명성으로 인해 표시기 막대에 빈 공간이 표시되는 것은 약간 자극적입니다.
— orschiro

@orschiro haha, 이제 나는 당신이 무엇을 의미하는지 봅니다. :). 편집했습니다.
— Jacob Vlijm

5

또 다른 옵션은 Ubuntu Settings-Power에서 "Suspend"에서 "Nothing"으로 변경하는 것입니다.

우분투 설정-전원

추신 : 이것은 알림 영역에 표시기를 제공하지 않지만 새로운 사용자를위한 스크립트를 만드는 것보다 간단합니다.

PPS :이 화면의 스냅 샷에서 UPS는 배터리가있는 랩탑이 아닌 케이블 모뎀 + Sony Android TV 용입니다. HAHA.


어, 알았어 수동 방법, 여기 저기 몇 번의 클릭이 걸립니다. 그러나 상당히 괜찮습니다.
— Sergiy Kolodyazhnyy

@ Serg 실제로 Jacob이 게시 한 스크립트가 마음에 듭니다. 시스템에서 Ubuntu 16.04 / Kernel 4.7.2를보다 안정적으로 만든 후 언젠가는 함께 사용할 것입니다. 실제로 뚜껑을 닫을 때의 일시 중단은 14.04에서 16.04로 업그레이드 한 상자에서도 작동하지 않았습니다 ... 뚜껑을 닫을 때 TV를 계속 활성화하고 노트북 화면을 어둡게하고 싶다고 가정하는 systemd에서 매개 변수를 설정해야했습니다. 뒤에서 나는 그것에 대한 지침도 게시해야합니다!
— WinEunuuchs2Unix

예, 16.04 이전에는 이러한 옵션이 실제로 효과가 없었습니다. 나는 개인적으로 답변으로 편집 파일을 게시 싶었지만, 야곱은 : 그것은 나를 이겼습니다
— 세르지 Kolodyazhnyy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.