การเพิ่มการลัดคีย์ลัดในสองขั้นตอนจากบรรทัดคำสั่ง (14.04+)
การเพิ่มทางลัดที่กำหนดเองจากบรรทัดคำสั่งสามารถทำได้ แต่มีความซับซ้อนเล็กน้อย จำเป็นต้องทำในไม่กี่ขั้นตอนต่อการผูกคีย์ ในอีกทางหนึ่งก็คือตรงไปตรงมาสวยและสามารถเป็นอย่างดีจะ scripted อย่างใดถ้าคุณต้องการที่จะทำจากบรรทัดคำสั่ง (นั่นเป็นคำถามที่ใช่ไหม?)
เช่นเดียวกับในอินเทอร์เฟซของคุณ (การตั้งค่าระบบ> "แป้นพิมพ์"> "ทางลัด"> "ทางลัดที่กำหนดเอง") ทางลัดแป้นพิมพ์แบบกำหนดเองนั้นทำจากบรรทัดคำสั่งในสองขั้นตอน:
สร้างการโยงคีย์โดยการแก้ไข (เพิ่ม to-) รายการที่ส่งคืนโดยคำสั่ง:
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
รายการที่ส่งคืนดูเหมือนว่า (หากเป็นทางลัดเดียวเท่านั้นในปัจจุบัน):
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']
ใช้รายการที่แก้ไขโดยคำสั่ง:
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[<altered_list>]"
(ระวังคำพูดคู่)
NBไม่จำเป็นต้องบอกว่าการพูดถึงในรายการ (เช่นcustom1
, custom2
) ควรจะเป็นที่ไม่ซ้ำกันอย่างใดอย่างหนึ่ง หากคุณสคริปต์สคริปต์ควรป้องกันการซ้ำซ้อน ในกรณีนี้รายการที่แก้ไขควรมีลักษณะเช่น:
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']
เมื่อต้องการเพิ่มการเชื่อมโยงคีย์เดียว: custom1
ตั้งค่าคุณสมบัติ:
ชื่อ:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ name '<newname>'
คำสั่ง:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ command '<newcommand>'
การรวมคีย์ (ตัวอย่าง<Primary><Alt>g
):
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ binding '<key_combination>'
ข้อมูลที่เป็นประโยชน์สามารถพบได้ที่นี่
ตัวอย่างสคริปต์เพื่อตั้งค่าทางลัดที่กำหนดเองใหม่
สคริปต์ด้านล่างนี้สามารถใช้เพื่อตั้งค่าคีย์ผสมทางลัดใหม่จากบรรทัดคำสั่ง มันสามารถใช้กับคำสั่ง (สมมติว่าการรวมคีย์มีอยู่):
python3 /path/to/script.py '<name>' '<command>' '<key_combination>'
ตัวอย่าง:
ในการตั้งค่าการรวมคีย์ลัดเพื่อเปิดgedit
ด้วยคีย์ผสมAlt+ 7:
python3 /path/to/script.py 'open gedit' 'gedit' '<Alt>7'
สคริปต์:
#!/usr/bin/env python3
import subprocess
import sys
# defining keys & strings to be used
key = "org.gnome.settings-daemon.plugins.media-keys custom-keybindings"
subkey1 = key.replace(" ", ".")[:-1]+":"
item_s = "/"+key.replace(" ", "/").replace(".", "/")+"/"
firstname = "custom"
# get the current list of custom shortcuts
get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")
array_str = get("gsettings get "+key)
# in case the array was empty, remove the annotation hints
command_result = array_str.lstrip("@as")
current = eval(command_result)
# make sure the additional keybinding mention is no duplicate
n = 1
while True:
new = item_s+firstname+str(n)+"/"
if new in current:
n = n+1
else:
break
# add the new keybinding to the list
current.append(new)
# create the shortcut, set the name, command and shortcut key
cmd0 = 'gsettings set '+key+' "'+str(current)+'"'
cmd1 = 'gsettings set '+subkey1+new+" name '"+sys.argv[1]+"'"
cmd2 = 'gsettings set '+subkey1+new+" command '"+sys.argv[2]+"'"
cmd3 = 'gsettings set '+subkey1+new+" binding '"+sys.argv[3]+"'"
for cmd in [cmd0, cmd1, cmd2, cmd3]:
subprocess.call(["/bin/bash", "-c", cmd])
วิธีใช้:
วางสคริปต์ลงในไฟล์เปล่าบันทึกเป็นset_customshortcut.py
เรียกใช้ตามที่อธิบายไว้ข้างต้น
คีย์หลักที่ใช้ส่วนใหญ่กล่าวถึงบางส่วน (พบในการทดลองโดยดูที่การเปลี่ยนแปลงวิธี GUI ที่ทำให้เป็นค่าการรวม):
Super key: <Super>
Control key: <Primary> or <Control>
Alt key: <Alt>
Shift key: <Shift>
numbers: 1 (just the number)
Spacebar: space
Slash key: slash
Asterisk key: asterisk (so it would need `<Shift>` as well)
Ampersand key: ampersand (so it would need <Shift> as well)
a few numpad keys:
Numpad divide key (`/`): KP_Divide
Numpad multiply (Asterisk):KP_Multiply
Numpad number key(s): KP_1
Numpad `-`: KP_Subtract
เป็นต้น