পরিষ্কারটি অবশ্যই বাগটি সংশোধন করতে হবে, তবে কার্যক্ষম হিসাবে নীচের ব্যাকগ্রাউন্ড স্ক্রিপ্টটি কাজটি করবে:
#!/usr/bin/env python3
import subprocess
import time
key = "org.gnome.settings-daemon.peripherals.keyboard numlock-state"
while True:
time.sleep(1)
state = subprocess.check_output([
"/bin/bash", "-c", "gsettings get "+key]).decode("utf-8").strip()
if state != "'on'":
subprocess.Popen([
"/bin/bash", "-c", "gsettings set "+key+" 'on'"])
ব্যবহারবিধি
- উপরের স্ক্রিপ্টটি খালি ফাইলে অনুলিপি করুন, এটি সংরক্ষণ করুন
NM_on.py
কমান্ডটি সহ পটভূমিতে এটি পরীক্ষা করুন:
python3 /path/to/NM_on.py
যদি সমস্ত ঠিকঠাক কাজ করে তবে এটি স্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করুন: ড্যাশ> স্টার্টআপ অ্যাপ্লিকেশন> যুক্ত করুন, কমান্ডটি যুক্ত করুন:
/bin/bash -c "sleep 10 && python3 /path/to/NM_on.py"
ব্যাখ্যা
আমরা Num Lock
একাধিক উপায়ে বর্তমান অবস্থা পেতে পারি :
কমান্ড চালাচ্ছি:
xset q
যা এরূপ একটি আউটপুট দেবে:
Keyboard Control:
auto repeat: on key click percent: 0 LED mask: 00000000
XKB indicators:
00: Caps Lock: off 01: Num Lock: off 02: Scroll Lock: off
03: Compose: off 04: Kana: off 05: Sleep: off
06: Suspend: off 07: Mute: off 08: Misc: off
09: Mail: off 10: Charging: off 11: Shift Lock: off
12: Group 2: off 13: Mouse Keys: off
auto repeat delay: 500 repeat rate: 33
.....
বা আদেশ সহ:
gsettings get org.gnome.settings-daemon.peripherals.keyboard numlock-state
যা কেবল ফিরে আসে 'on'
, 'off'
বা 'unknown'
।
যেহেতু পরেরটি অত্যন্ত হালকা ওজন, তাই আমরা প্রতি সেকেন্ডে একবার যাচাই করার জন্য এটি ব্যাকগ্রাউন্ড স্ক্রিপ্টে খুব ভালভাবে ব্যবহার করতে পারি, এবং 'on'
কমান্ডের সাহায্যে, প্রয়োজনে মান সেট করে :
gsettings set org.gnome.settings-daemon.peripherals.keyboard numlock-state 'on'
এবং তাই এটি ...
সম্পাদন করা
কোনও কারণে, আমি আপনার শেষ অনুচ্ছেদটি মিস করেছি, যাতে আপনি অনুরূপ সমাধান সহ অন্য একটি উত্তর উল্লেখ করেছেন।
শুদ্ধ তাত্ত্বিকভাবে, আমার সর্বদা স্ক্রিপ্টগুলির সাথে সমস্যা রয়েছে যা বর্তমান অবস্থাটি পরীক্ষা না করে অন্ধভাবে (পুনরায়) সেটিংস প্রয়োগ করে। সেখানে পারে যদি কমান্ড তা করার একটি আর্গুমেন্ট হতে
gsettings get org.gnome.settings-daemon.peripherals.keyboard numlock-state
থেকে পেতে বর্তমান মান, আরো দাবিতে যে কেবল চালানোর হবে
numlockx on
to (re-) set numlockx on
।
উভয় কমান্ডের সমাপ্ত হওয়া সময়ের দিকে তাকানো (যা কমপক্ষে একটি ইঙ্গিত) এটি তবে অন্যভাবে; আদেশ
gsettings get org.gnome.settings-daemon.peripherals.keyboard numlock-state
আরো "হালকা ওজন" বলে মনে হচ্ছে।
একটি পটভূমি স্ক্রিপ্ট একটি খারাপ ধারণা চালানো?
অবশ্যই, যদি আপনার কোনও ব্যাকগ্রাউন্ড স্ক্রিপ্ট চালানোর কোনও কারণ নেই, তবে করবেন না। একই সময়ে, যদি কোনও ব্যাকগ্রাউন্ড স্ক্রিপ্টটি ভালভাবে লেখা থাকে, পুরোপুরি পরীক্ষা করা হয়, পদ্ধতিগুলি স্মার্টলি অনুকূলিত হয় এবং যদি এটি প্রসেসরের দখলে কোনও লক্ষণীয় প্রভাব যোগ না করে, তবে এটি গুরুত্বপূর্ণ যুক্ত করে যদি এটি একটি workaround হিসাবে ব্যবহার না করা বোকামি হবে কার্যকারিতা বা আপনার সময় বাঁচায়।
আমার ক্রমাগত কমপক্ষে 4-8 ব্যাকগ্রাউন্ড স্ক্রিপ্ট চলছে। তাদের বেশিরভাগ সপ্তাহ পুনরায় চালু না করেই। আমার প্রবীণ সিস্টেমে কোনও প্রভাব লক্ষ্য করেনি। মনে রাখবেন আপনার সিস্টেমটি যাইহোক অসংখ্য লুপ চালাচ্ছে।