การล้างข้อมูลจะเป็นวิธีการแก้ไขข้อบกพร่อง แต่เป็นวิธีแก้ปัญหาสคริปต์พื้นหลังด้านล่างจะทำงาน:
#!/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
หากใช้งานได้ดีให้เพิ่มลงในแอปพลิเคชันเริ่มต้น: Dash> แอปพลิเคชันเริ่มต้น> เพิ่มเพิ่มคำสั่ง:
/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
ถึง (ใหม่) ชุด
การดูเวลาที่ทั้งสองคำสั่งจำเป็นต้องเสร็จสิ้น (อย่างน้อยก็เป็นการบ่งชี้) มันก็เป็นอีกทางหนึ่ง คำสั่งnumlockx on
gsettings get org.gnome.settings-daemon.peripherals.keyboard numlock-state
น่าจะเป็น "น้ำหนักเบา" มากกว่า
ใช้สคริปต์พื้นหลังเป็นความคิดที่ไม่ดี?
แน่นอนถ้าคุณไม่มีเหตุผลที่จะเรียกใช้สคริปต์พื้นหลังก็ไม่มี ในเวลาเดียวกันถ้าสคริปต์แบ็คกราวน์ถูกเขียนอย่างดีทดสอบอย่างละเอียดโพรซีเดอร์นั้นได้รับการปรับให้เหมาะสมอย่างชาญฉลาดและหากไม่เพิ่มผลกระทบใด ๆ ที่เห็นได้ชัดเจนในการยึดครองโพรเซสเซอร์ก็จะไม่น่าใช้ ฟังก์ชั่นหรือช่วยคุณประหยัดเวลา
ฉันมีสคริปต์พื้นหลังอย่างน้อย 4-8 ตัวที่ทำงานอยู่ตลอดเวลา ส่วนใหญ่เป็นสัปดาห์โดยไม่ต้องรีสตาร์ท ไม่เคยสังเกตเห็นผลกระทบใด ๆ กับระบบผู้สูงอายุของฉัน โปรดทราบว่าระบบของคุณใช้งานลูปจำนวนมากอยู่แล้ว