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.