নীচের স্ক্রিপ্টটি "কিছুই নয়" এবং "স্থগিত করা" এর মধ্যে ক্লোজড-idাকনা অ্যাকশন টগল করবে :
#!/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])
... এবং বর্তমানে নির্ধারিত রাষ্ট্রটি কী তা অবহিত করুন:
কিভাবে ব্যবহার করে
কেবল:
ব্যাখ্যা
নিকট-idাকনা অ্যাকশন সেটিংয়ের বর্তমান অবস্থা কমান্ড (গুলি) দ্বারা পুনরুদ্ধার করা যেতে পারে
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>'
Ptionচ্ছিকভাবে (অতিরিক্তভাবে)
/াকনা-সেটিংয়ের বর্তমান অবস্থা কী তা বোঝাতে আপনি বিকল্প হিসাবে / অতিরিক্তভাবে, একটি সনাক্তকারী হিসাবে একটি সূচক চালনা করতে পারেন। এটি প্রদর্শিত হবে:
... প্যানেলে, যদি idাকনা বন্ধ করতে স্থগিতকরণ প্রতিরোধ করা হয়, এটি যদি না হয় তবে ধূসর দেখায়।
লিপি
#!/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()
কিভাবে ব্যবহার করে
- উপরের স্ক্রিপ্টটি একটি খালি ফাইলে অনুলিপি করুন, এটি সংরক্ষণ করুন
show_state.py
নীচের দুটি আইকন অনুলিপি করুন (ডান ক্লিক করুন -> হিসাবে সংরক্ষণ করুন), এবং সেগুলিকে একটি এবং একই ডিরেক্টরিতে সংরক্ষণ করুন এবং ঠিক নীচে উল্লিখিত হিসাবে নামকরণ করা হয়েছেshow_proc.py
green.png
nocolor.png
show_state.py
কমান্ড দ্বারা পরীক্ষা করা :
python3 /path/to/show_state.py
এবং শর্টকাট টিপে আপনি এই উত্তরের প্রথম বিভাগটি সেট করে বর্তমান অবস্থা পরিবর্তন করুন।
যদি সমস্ত ঠিকঠাক কাজ করে তবে স্টার্টআপ অ্যাপ্লিকেশনগুলিতে নিম্নলিখিতটি যুক্ত করুন:
/bin/bash -c "sleep 15 && python3 /path/to/show_state.py"
বিঃদ্রঃ
উপরের ডিটেক্টর-সূচকটি এই উত্তরের একটি সম্পাদিত সংস্করণ । কেবলমাত্র ফাংশনে পরীক্ষাটি পরিবর্তন করে runs()
(এবং panelচ্ছিকভাবে প্যানেল আইকন অনুসারে) আপনি যা ব্যবহারযোগ্য তা বা যা কিছু আছে তার অবস্থা প্রদর্শন করতে এটি ব্যবহার করতে পারেন ।True
False