Додавання ярликів клавіш швидкого доступу в два етапи з командного рядка (14.04+)
Додавання користувацьких ярликів з командного рядка можна зробити, але це трохи складніше; це потрібно зробити в кілька кроків за вкладку клавіш. З іншого боку, це досить просто і може бути дуже добре , якщо сценарій ви як хочете , щоб зробити це з командного рядка (це було питання, НЕ так?).
Так само, як у вашому інтерфейсі (Налаштування системи> "Клавіатура"> "Комбінації клавіш"> "Спеціальні ярлики"), спеціальні комбінації клавіш створюються з командного рядка в два етапи:
створити прив'язку клавіш, відредагувавши (додавши до-) список, який повертається командою:
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
тощо.