Настройки обоев перезагружаются для 2 мониторов в Ubuntu 16.04

Добавление сочетаний клавиш из командной строки в 12.04

Чтобы предотвратить принятие слишком широкого ответа, добавьте отдельное решение для 12.04.

До (и включая) 12.04, пользовательские привязки клавиш не хранятся в базе данных dconf, а в ~/.gconf/desktop/gnome/keybindings (в файле xml, в подпапках, таких как custom0 и т. д.).

Сценарий ниже создает файл xml и его папку containg, автоматически именованные правильно.

Как использовать

Вставить сценарий в пустой файл, сохраните его как set_customshortcuts_12.py Запустите его с помощью команды:
python /path/to/set_customshortcuts_12.py <name> <command> <key1> <key2> <key3>
key3 является необязательным, команды могут быть, например:
python /path/to/set_customshortcuts_12.py run_browser firefox Primary 7 
или
python /path/to/set_customshortcuts_12.py run_texteditor gedit Primary Alt 3 

Примечания

note что именование ключей отличается от редактирования gsettings. Насколько мне известно, ключи названы так, как они отображаются в «Системные настройки»> «Клавиатура»> «Ярлыки»> «Пользовательские ярлыки». Я протестировал скрипт 12.04 под VirtualBox; ему необходимо было выйти из системы, чтобы изменения произошли.
#!/usr/bin/env python
import os
import sys

home = os.environ["HOME"]
name = sys.argv[1]
command = sys.argv[2]
keys = sys.argv[3:]

keyfile = [
    '<?xml version="1.0"?>',
    '<gconf>',
    '\t<entry name="action" mtime="1427791732" type="string">',
    '\t\t<stringvalue>'+command+'</stringvalue>',
    '\t</entry>',
    '\t<entry name="name" mtime="1427791732" type="string">',
    '\t\t<stringvalue>'+name+'</stringvalue>',
    '\t</entry>',
    '\t<entry name="binding" mtime="1427791736" type="string">',
    '\t</entry>',
    '</gconf>',
    ]

if len(keys) == 2:
    keyfile.insert(9, '\t\t<stringvalue>&lt;'+keys[0]+'&gt;'+keys[1]+'</stringvalue>')
else:
    keyfile.insert(9, '\t\t<stringvalue>&lt;'+keys[0]+'&gt;&lt;'+keys[1]+'&gt;'+keys[2]+'</stringvalue>')

n = 0
while True:
    check = home+"/"+".gconf/desktop/gnome/keybindings/custom"+str(n)
    if os.path.exists(check):
        n = n+1
    else:
        newdir = check
        newfile = check+"/"+"%gconf.xml"
        break

os.makedirs(newdir)
with open(newfile, "wt") as shortcut:
    for l in keyfile:
        shortcut.write(l+"\n")
0
задан 27 December 2017 в 18:04

0 ответов

Другие вопросы по тегам:

Похожие вопросы: