Espionando o que acontece
A maior parte do que esses editores de configurações fazem pode ser assistida executando
dconf watch /
em um terminal.
gsettings
Também na maioria das vezes, para alcançar o que você vê acontecendo com o comando acima, esses aplicativos precisarão editar o dconf
banco de dados (mais abaixo). Isso pode ser feito diretamente , usando as opções cli do dconf (o que não é preferido) ou executando os gsettings
comandos correspondentes , como o que você mencionou.
Para executar esses comandos, nenhuma janela de terminal é necessária, como você pode ver nos exemplos.
Sobre, gsettings, dconf e o banco de dados dconf
gsettings
é o front end do cli que dconf
, por sua vez, edita o dconf
banco de dados, onde a maioria das configurações está armazenada, em formato binário. Veja também esta boa resposta .
O dconf
banco de dados, a propósito, também pode ser editado a partir da GUI pelo dconf
editor, que está nos repositórios:
Amostras de trabalho
uma. Em python
Para mostrar o que acontece sob o capô, abaixo de uma amostra de trabalho para alternar a posição do iniciador da GUI em um único botão (alternar):
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import subprocess
key = ["com.canonical.Unity.Launcher", "launcher-position"]
class ToggleWin(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Toggle")
button = Gtk.Button("Toggle launcherposition")
button.connect("clicked", self.toggle)
self.add(button)
def toggle(self, *args):
# read the current setting on launcher position
current = subprocess.check_output([
"gsettings", "get", key[0], key[1]
]).decode("utf-8").strip()
# toggle to the other option
new = "'Left'" if current == "'Bottom'" else "'Bottom'"
subprocess.Popen([
"gsettings", "set", key[0], key[1], new
])
def delete_actions(*args):
Gtk.main_quit()
def miniwindow():
window = ToggleWin()
window.connect("destroy", delete_actions)
window.show_all()
Gtk.main()
miniwindow()
- Cole o código em um vazio
file.py
execute-o pelo comando:
python3 /path/to/file.py
...e divirta-se.
b. Ícone do iniciador
Mesmo um iniciador simples pode fazer o trabalho na GUI:
[Desktop Entry]
Name=Set launcherposition
Exec=zenity --info --text="Right- click to set launcher position"
Type=Application
StartupNotify=False
Icon=preferences-system
Actions=Launcher to bottom;Launcher on the left;
[Desktop Action Launcher to bottom]
Name=Launcher to bottom
# right click option to set launcher to bottom
Exec=gsettings set com.canonical.Unity.Launcher launcher-position Bottom
[Desktop Action Launcher on the left]
Name=Launcher on the left
# right click option to set launcher to left
Exec=gsettings set com.canonical.Unity.Launcher launcher-position Left
- Cole o código em um arquivo vazio, salve-o como
setlauncher.desktop
- Arraste-o para o iniciador e clique com o botão direito do mouse
Para uso permanente, armazene-o ~/.local/share/applications
(para uso local) ou ~/usr/share/applications
para todos os usuários.