Szpiegowanie tego, co się dzieje
Większość czynności wykonywanych przez te edytory ustawień można oglądać po uruchomieniu
dconf watch /
w terminalu.
ustawienia
Również przez większość czasu, aby osiągnąć to, co dzieje się z powyższym poleceniem, aplikacje te będą musiały edytować dconf
bazę danych (dalej poniżej). Można to zrobić albo bezpośrednio , używając opcji cli dconf (co nie jest preferowane), lub uruchamiając odpowiednie gsettings
polecenia, takie jak wspomniane.
Aby uruchomić te polecenia, nie jest potrzebne okno terminala, jak widać w przykładach.
Informacje, gsettings, dconf i baza danych dconf
gsettings
to frontend cli do dconf
, który z kolei edytuje dconf
bazę danych, w której przechowywana jest większość ustawień, w formacie binarnym. Zobacz także tę miłą odpowiedź .
dconf
Baza danych, nawiasem mówiąc, również mogą być edytowane z GUI za pomocą dconf
edytora, który jest w repozytoriach:
Próbki robocze
za. W python
Aby pokazać, co dzieje się pod maską, poniżej działającej próbki, aby przełączyć pozycję programu uruchamiającego z GUI za pomocą jednego przycisku (przełączania):
#!/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()
...i baw się dobrze.
b. Ikona uruchamiania
Nawet prosty program uruchamiający może wykonać zadanie z 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
- Wklej kod do pustego pliku i zapisz go jako
setlauncher.desktop
- Przeciągnij go do programu uruchamiającego i kliknij prawym przyciskiem myszy
Do stałego użytku przechowuj w ~/.local/share/applications
(do użytku lokalnego) lub ~/usr/share/applications
dla wszystkich użytkowników.