मैं उबंटू यूनिटी 16.04 में स्टैंडबाय ढक्कन को जल्दी से कैसे निष्क्रिय कर सकता हूं?


16

ढक्कन को बंद करते समय स्टैंडबाय सुविधा को जल्दी से अक्षम करने का सबसे तेज़ तरीका क्या है? मुझे यह व्यवहार बहुत पसंद है लेकिन विशेष रूप से संगीत बजाने के दौरान, मैं अपनी मशीन को स्टैंडबाय में स्विच किए बिना अपना ढक्कन बंद करना चाहूंगा।

हालाँकि, मैं इस सुविधा को स्थायी रूप से अक्षम नहीं करना चाहता, लेकिन अस्थायी रूप से इसे बंद कर देता हूं जब तक कि मैंने संगीत सुनना समाप्त नहीं कर लिया, उदाहरण के लिए।

शायद कैफीन के समान एक संकेतक है ?

यहाँ छवि विवरण दर्ज करें


क्या आपकी सेटिंग्स एसी और बैटरी के लिए समान हैं?
याकूब Vlijm

अभी तक ऐसा कोई संकेतक नहीं है। तरीके हैं, लेकिन उन्हें sudoइस पोस्ट में दिखाए गए अनुसार रूट एक्सेस की आवश्यकता है । askubuntu.com/q/15520/295286 । मैं देखता हूँ कि हालांकि क्या किया जा सकता है
सर्जियो कोलोडियाज़नी

क्या मैं पूछ सकता हूं कि आप किस तरह के सिस्टम संस्करण का उपयोग कर रहे हैं? १६.०४
सर्जियो कोलोडियाज़नी

प्रिय जैकब और सर्ग, पहली टिप्पणी और समाधान के लिए धन्यवाद! जैकब की पटकथा शानदार काम करती है। यह शानदार होगा यदि यह एक छोटा संकेतक था। मुझे सिर्फ दृश्य GUI पसंद है। :-) सेटिंग्स एसी और बैटरी के लिए समान हैं। मैंने अपने प्रश्न को यह स्पष्ट करने के लिए संपादित किया कि मैं 16.04 यूनिटी का उपयोग कर रहा हूं।
orchichiro

कर सकते हैं / किया जाएगा। जीयूआई हालांकि थोड़ा अधिक समय लेगा।
जैकब व्लिजम

जवाबों:


19

नीचे दी गई स्क्रिप्ट "कुछ भी नहीं" और "सस्पेंड" के बीच क्लोज़-लिड एक्शन को टॉगल करेगी :

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

(बैटरी पर)

स्क्रिप्ट वर्तमान स्थिति को पढ़ता है, और कमांड के साथ विपरीत ('सस्पेंड' / 'कुछ नहीं') सेट करता है:

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


सूचक के साथ उत्कृष्ट समाधान! एक सवाल: आपने पारदर्शी आइकन का फैसला क्यों किया ?
orchichiro

@orschiro मुझे लगता है (एड) वह कदम जहां ढक्कन-समापन डिफ़ॉल्ट स्थिति के रूप में निलंबित हो जाएगा । हरे एक संकेत के रूप में आप कार्रवाई के बिना ढक्कन को बंद कर सकते हैं । हालांकि यह किसी भी आइकन का कपल हो सकता है। सुझाव?
याकूब Vlijm

शायद हरे रंग की तरह लेकिन लुप्त होती ग्रे में? आइकन की पारदर्शिता के कारण इंडिकेटर बार में खाली जगह देखना थोड़ा परेशान करने वाला है।
orchichiro

@ डोर्सचीरो हाहा, अब मैं देख रहा हूं कि आपका क्या मतलब है :)। संपादित।
जैकब व्लिजम

5

एक अन्य विकल्प उबंटू सेटिंग में "सस्पेंड" से "डू नथिंग" में बदल जाएगा - पावर:

उबंटू सेटिंग्स - पावर

पुनश्च: यह सूचना क्षेत्र में एक संकेतक प्रदान नहीं करता है लेकिन नए उपयोगकर्ताओं के लिए एक स्क्रिप्ट बनाने की तुलना में सरल है।

PPS: इस स्क्रीन में स्नैपशॉट केबल मोडेम + सोनी एंड्रॉइड टीवी के लिए है, न कि जिस लैपटॉप में बैटरी है ... HAHA।


एह, ठीक है। मैनुअल तरीका, इधर-उधर कुछ क्लिक करता है। लेकिन काफी सभ्य।
सर्गी कोलोडियाज़नी

@ मैं वास्तव में याकूब द्वारा पोस्ट की गई स्क्रिप्ट को पसंद करता हूं। शायद मैं अपने सिस्टम पर Ubuntu 16.04 / कर्नेल 4.7.2 अधिक स्थिर बनाने के कुछ दिन बाद इसके साथ खेलूंगा। वास्तव में ढक्कन बंद करने पर मेरा सस्पेंस कभी भी 14.04 से 16.04 के अपग्रेड बॉक्स पर काम नहीं करता था ... सिस्टमडेम में एक पैरामीटर सेटअप करना पड़ता था जो मानता है कि जब ढक्कन बंद होता है तो आप चाहते हैं कि टीवी सक्रिय रहे और बस लैपटॉप स्क्रीन को डिम करना चाहता है। हिंद दृष्टि में मुझे इसके लिए निर्देश भी पोस्ट करना चाहिए था!
विनयुनुच्स 2 यूनिक्स

हाँ, 16.04 से पहले वे विकल्प वास्तव में मेरे लिए काम नहीं करते थे। मैं व्यक्तिगत रूप से फाइल एडिटिंग को उत्तर के रूप में पोस्ट करना चाहता था, लेकिन जैकब ने मुझे इसे हरा दिया :)
सर्गी कोलोडियाज़नी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.