Altera o atalho de teclado para abrir o gerenciador de arquivos do Ubuntu 16.04 através da linha de comando? [duplicado]

0

A pergunta é semelhante a esta: Atalho de teclado para abrir o gerenciador de arquivos do Ubuntu?

Só que eu gostaria de saber se é possível fazer isso através da linha de comando, ao invés da GUI.

A tarefa é definir o atalho de /home/usr para super+E em um Ubuntu recém-instalado.

O motivo para isso é que é difícil configurar muitas máquinas através da GUI. Como último recurso, é sempre possível simular mouse e teclado para automatizar. No entanto, para o saque de questão, assumindo que não é uma opção.

    
por zyc 07.03.2018 / 10:11

1 resposta

0

O código é semelhante a este: Como definir atalhos de teclado personalizados do terminal? Só que isso corrige o bug quando não há chaves personalizadas. Talvez alguém com privilégio possa misturar as respostas e excluir essa.

Parte em Python:

#!/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")
# No custom keys
if   get("gsettings get "+key) == "@as []\n":
    n = 0
    current = list()
    new = item_s+firstname+str(n)+"/"
# Found custom keys
else:
    current = eval(get("gsettings get "+key))
    # 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])

Chame o script acima na linha de comando:

python3 /path/to/script.py 'home folder' 'nautilus /home/user' '<Super>e'
    
por zyc 08.03.2018 / 00:15