class: center, middle ## Dateiauswahldialog optimieren ### Hauke Goos-Habermann #### https://weisheit.goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - *"Nicht der Weisheit letzter Schluß"* mit **beruflichen** oder **privaten Projekten** auf
tube.tchncs.de/c/ndwls
und
youtube.com/@nichtderweisheit
- Ist genervt vom GTK-Dateidialog. --- ### dconf ***dconf*** ist das Konfigurationssystem von GNOME 3, das Einstellungen von Anwendungen speichert. dconf ist ähnlich wie die debconf oder die Registry-Datenbank von Windows. Benutzereinstellungen landen unter ***~/.config/dconf/user***. Unter Debian/Ubuntu/Linux Mint könnt Ihr die Konfigurationswerkzeuge aus getrennten Paketen für die Kommandozeile ```bash apt install -y dconf-cli ``` und mit grafischer Oberfläche ```bash apt install -y dconf-editor ``` nachinstallieren. --- ### 1. Versuch Startet den ***dconf-editor*** und hangelt Euch zu ***/org/gtk/settings/file-chooser/*** durch und ändert folgende Werte: * **location-mode**: filename-entry Der Standard *path-bar* zeigt Pfadbestandteile als anklickbare Bereiche an, *filename-entry* soll eine Editiermöglichkeit bieten. * **show-hidden**: true Verborgene Dateien anzeigen? * **startup-mode**: cwd Mit *recent* werden die zuletzt benutzen Dateien aufgelistet und mit *cwd* das aktuelle Arbeitsverzeichnis. ***Spoiler***: Anwendungen, die den GTK-Dialog verwenden, **überschreiben** die Einstellungen **ohne Einstellungsmöglichkeiten** zu bieten... --- ### 2. Versuch ```bash # Datei für benutzergeänderte Einstellungen (~/.config/dconf/user) # Datei für systemweite nur lesbare Einstellungen (/etc/dconf/db/local) mkdir -p /etc/dconf/profile echo 'user-db:user system-db:local' > /etc/dconf/profile/user # Statt der Datei können auch mehrere Dateien für globale Werte angelegt werden (+ .d/...) mkdir -p /etc/dconf/db/local.d echo "[org/gtk/settings/file-chooser] location-mode='filename-entry' show-hidden=true startup-mode='cwd'" > /etc/dconf/db/local.d/01-gtk-filechooser # Vorgabewerte als verbindlich festsetzen mkdir -p /etc/dconf/db/local.d/locks echo '/org/gtk/settings/file-chooser/location-mode /org/gtk/settings/file-chooser/show-hidden /org/gtk/settings/file-chooser/startup-mode' > /etc/dconf/db/local.d/locks/01-gtk-filechooser # Textdateien zu GVariant-Datenbank umwandeln dconf update ``` Abmelden und wieder anmelden. ***Spoiler***: *filename-entry* führt zu keiner optischen Änderung... --- ### 3. Versuch Das **XDG Desktop Portal** ist **eigentlich** dafür gedacht, daß Programme, die in einer **Sandbox laufen**, über D-Bus **auf native Desktopfunktionen** zugreifen können. Mit dabei ist auch der Dialog für die Dateiauswahl. ```bash # KDE XDG Desktop Portal installieren (installiert ggf. viele weitere Pakete) apt install -y xdg-desktop-portal-kde # Einrichten, daß "alle" Desktops das KDE-Portal verwenden sollen sed -i 's/^UseIn=.*/UseIn=KDE;TDE;trinity;XFCE;Mate;GNOME/g'\ /usr/share/xdg-desktop-portal/portals/kde.portal # Umgebungsvariable setzen, damit der KDE-Dateidialog verwendet wird. echo 'export GTK_USE_PORTAL=1' > /etc/profile.d/99-kde-filechooser4all.sh ``` ***Spoiler***: Funktioniert zumindest unter Mate :-) --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de