Como executar o comando ubuntu no código python?

0

Eu tenho que executar este código em python

dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev "'Disabled'"

Tentei com:

os.system('dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-prev "Disabled" ')

Erro:

error: 0-1:unknown keyword

Usage:
  dconf write KEY VALUE 

Write a new value to a key

Arguments:
  KEY         A key path (starting, but not ending with '/')
  VALUE       The value to write (in GVariant format)

Por favor me ajude nesta questão. obrigado: -)

    
por Dinesh 20.01.2018 / 08:14

1 resposta

5

Editando o dconf / gsettings a partir do python

Você realmente não deve mais usar o os.system() para as chamadas do sistema, ele está obsoleto e totalmente desatualizado por um longo tempo.

Existem diferentes opções para editar o banco de dados dconf .

Usando subprocesso

Digamos que eu tenha um dconf path /com/gexperts/Tilix/keybindings/app-shortcuts , eu posso usar:

import subprocess

key = "/com/gexperts/Tilix/keybindings/app-shortcuts"

subprocess.Popen([
    "dconf", "write", key, "'enabled'"
])

Cuidado com as citações!

Na maioria dos casos, no entanto, você também poderá usar (melhor) gsettings . Use Gio.Settings se o valor também puder ser definido em gsettings .

Usando o Gio.Settings

from gi.repository import Gio

key = "com.gexperts.Tilix.Keybindings"

settings = Gio.Settings.new(key)
settings.set_string("app-shortcuts", "enabled")

Veja também link e link

Sobre gsettings / dconf

As preferências nas versões modernas do Ubuntu são armazenadas principalmente no banco de dados dconf em formato binário. Essas configurações podem ser editadas diretamente por dconf (cli) ou dconf-editor (gui). O Dconf é de baixo nível e edita diretamente as configurações via dconf extremamente rápido e leve.

No geral, no entanto, é considerado uma prática melhor editar as configurações no banco de dados via gsettings , se possível, que é o front-end de cli para dconf . O motivo é que gsettings tem uma verificação de consistência e é mais seguro de usar.

Você pode encontrar uma leitura interessante sobre gsettings : link

E este em dconf : link

Notas

  • usei outro caminho / exemplo de chave, pois não uso o Unity.
por Jacob Vlijm 20.01.2018 / 09:20