GNOME

Standard-Ordner in GNOME loswerden

31. Oktober 2023 · Betriebssysteme · andreas · Kein Kommentar

Gut gemeint ist nicht immer gut gemacht, so auch im Falle von GNOME und dessen Dateimanager Files: egal, ob die Ordner verwendet werden oder nicht, den freedesktop.org-Spezifikationen folgend werden bei jedem Login die XDG-Standard-Ordner wie z.B. “Musik” und “Videos” angelegt und auch in der Seitenleiste von Files angezeigt. Eine Möglichkeit, dies innerhalb der Oberfläche zu konfigurieren ist nicht vorgesehen.

This program reads a configuration file, and a set of default directories. It then creates localized versions of these directories in the users home directory and sets up a config file in $(XDG_CONFIG_HOME)/user-dirs.dirs (XDG_CONFIG_HOME defaults to ~/.config) that applications can read to find these directories. [Quelle]

Das Verhalten kann aber mit Hilfe von Konfigurationsdateien angepasst werden.

Ändern der Verzeichnisse

Wer den grundlegenden Mechanismus aktiviert lassen möchte, kann in der Datei “~/.config/user-dirs.dirs” die nicht benötigten Verzeichniseinträge auf sein “home”-Verzeichnis umbiegen.

Dies wird auch so vorgeschlagen:

To disable a directory, point it to the homedir. [Quelle]

Alternativ ist auch ein Auskommentieren der nicht benötigten Zeilen möglich, dies würde aber ggf. dazu führen, daß eine Applikation einen benötigten Ablageort nicht (mehr) findet.

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Schreibtisch"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Vorlagen"
XDG_PUBLICSHARE_DIR="$HOME"
XDG_DOCUMENTS_DIR="$HOME/Dokumente"
XDG_MUSIC_DIR="$HOME"
XDG_PICTURES_DIR="$HOME/Bilder"
XDG_VIDEOS_DIR="$HOME"

Da “home” bereits exisitiert, werden Ordner, welche auf “$HOME” verweisen, nicht nochmal angelegt und auch nicht zusätzlich zum “Persönlichen Ordner” angezeigt. Das Verbiegen einer Variable mit dem Namen “XDG_PUBLICSHARE_DIR” auf “$HOME” hinterlässt aber auf Systemen, auf denen mehr als ein Benutzer aktiv ist, ein ungutes Gefühl.

Abschalten des Mechanismus

Alternativ (oder zusätzlich) kann der Mechanismus auch komplett stillgelegt werden.

At the moment there are only two settings, you can disable the whole thing, and you can specify the charset encoding used for filenames. [Quelle]

Dies kann entweder systemweit über die Datei “/etc/xdg/user-dirs.conf” gesteuert oder benutzerbezogen eingestellt werden.

Hierzu ist die Systemdatei zuerst ins Benutzerverzeichnis zu kopieren

$ cp /etc/xdg/user-dirs.conf ~/.config/

dann kann die Einstellung “enabled” von “True” auf “False” geändert werden:

# This controls the behaviour of xdg-user-dirs-update which is run on user login
# You can also have per-user config in ~/.config/user-dirs.conf, or specify
# the XDG_CONFIG_HOME and/or XDG_CONFIG_DIRS to override this
#

enabled=False

# This sets the filename encoding to use. You can specify an explicit
# encoding, or "locale" which means the encoding of the users locale
# will be used
filename_encoding=UTF-8

Bei der nächsten Anmeldung werden die Ordner nicht mehr neu angelegt und die Einträge in der Seitenleiste von “Files” sind verschwunden.

Dies ist eine Erweiterung zu den Beiträgen “Wahl der Desktopumgebung” und “Eigene Dateien umziehen”, in denen die xdg-user-dirs bereits angesprochen wurden.

Speicherort für GNOME Shell-Extension Schema-Dateien

19. Februar 2023 · Programmierung · andreas · Kein Kommentar

Eine selbsterstellte Erweiterung für die GNOME Shell funktionierte zwar einwandfrei, allerdings beschwerte sich der Dconf-Editor, daß die Konfigurations-Schlüssel trotz vorhandenener “schema”-Datei im Erweiterungsordner nicht von einem Schema definiert würden.

Screenshot

Beim Klick auf einen Schlüssel wurde zusätzlich eine erweiterte Fehlermeldung angezeigt:

Kein Schema verfügbar. Ein Schema beschreibt die Verwendung eines Schlüssels und Dconf-Editor kann kein Schema finden, das diesem Schlüssel zugeordnet ist.

Zur Lösung des Problems half ein Blick in die Dateiliste einer mit Debian mitgelieferten Erweiterung wie z.B. “Dash to Dock

/usr/share/glib-2.0/schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml

Offensichtlich müssen die “schema”-Dateien in einem gesonderten Verzeichnis gespeichert werden. Für eine im Benutzerkontext installierte Erweiterung ist dies der Ordner “~/.local/share/glib-2.0/schemas” statt dem Systemordner “/usr/share/glib-2.0/schemas”

$ mkdir -p ~/.local/share/glib-2.0/schemas
$ cp org.gnome.shell.extensions.myscript.gschema.xml ~/.local/share/glib-2.0/schemas/org.gnome.shell.extensions.myscript.gschema.xml
$ cd ~/.local/share/glib-2.0/schemas
$ glib-compile-schemas .

Nach dem Anlegen des Ordners und dem Kopieren der Schema-Datei (wahlweise funktioniert auch das Setzen eines symbolischen Links) muß die Schema-Datei noch kompiliert werden, dann ist auch der Dconf-Editor zufrieden.

RTFM hätte hier auch ohne den Umweg über eine andere Erweiterung geholfen, denn die Hilfeseite zu “glib-compile-schemas” verrät bereits:

The usual location to install schema files is /usr/share/glib-2.0/schemas.


Einstellungen mit dconf sichern

27. Oktober 2022 · Betriebssysteme · andreas · Kein Kommentar

Während viele Programme ihre Einstellungen in Konfigurationsdateien speichern, verwenden andere die Kombination aus dconf/GSettings, um die Einstellungen in der zentralen GNOME-Konfigurationsdatenbank abzulegen.

Das Sichern der vorhandenen Einstellungen kann auf der Kommandozeile mit dconf erledigt werden, hier am Beispiel von Tilix:

$ dconf dump /com/gexperts/Tilix/ > tilix_settings.dconf

Das Ergebnis des Befehls ist eine Textdatei “tilix_settings.dconf”, welche editiert, kopiert und bei Bedarf auch wieder zurückimportiert werden kann

$ dconf load /com/gexperts/Tilix/ < tilix_settings.dconf

Thema für GTK-Anwendungen erzwingen

25. Juni 2021 · Anwendungen · andreas · Kein Kommentar

Auch wenn global ein helles Thema gewählt ist, können Anwendungen (wie z.B. “Eye of Gnome”) trotzdem ein dunkles Schema verwenden, ohne dem Benutzer eine diesbezügliche Wahlmöglichkeit zu bieten.

Für diese Anwendungen lässt sich die gewünschte Darstellung erzwingen, in dem das Thema mitsamt Variante dem Programmaufruf vorangestellt wird:

$ GTK_THEME=Materia-light-compact:light eog

.desktop-Datei mit Wine-Prefix

10. Juli 2020 · Anwendungen · andreas · Kein Kommentar

Sofern ein Windowsprogramm mit Wine installiert wird, legt der Installer i.d.R. auch eine Verknüpfung im Startmenü an. Ohne Installationsprozess muß die Datei von Hand erzeugt werden. Sofern noch ein WINEPREFIX verwendet werden soll, muß auch dieser im Starter angegeben werden.

Der dafür zuständige Ordner ist “.local/share/applications/wine/Programs/”, in diesem wird eine Textdatei mit der Endung “.desktop” angelegt. Das Beispiel richtet die Verknüpfung für die Windows-Variante von “Lemmings” ein, welche normalerweise direkt von CD startet, aber auch in jeden beliebigen Ordner kopiert werden kann.

[Desktop Entry]
Encoding=UTF-8
Name=Lemmings
Comment=Lemmings for Windows
Type=Application
StartupNotify=true
Exec=env WINEPREFIX=/home/Benutzername/.winlemm wine "/home/Benutzername/.winlemm/drive_c/WINLEMM/LEMMINGS.EXE"
Icon=/home/Benutzername/.winlemm/drive_c/WINLEMM/LEMMING.ICO
Path=/home/Benutzername/.winlemm/drive_c/WINLEMM/
StartupWMClass=LEMMINGS.EXE

Während in der Exec-Zeile die Groß- bzw. Kleinschreibung nach “wine” egal ist (Windows trifft hier keine Unterscheidung), ist in den Angaben für “Icon” und “Path” auf eine korrekte Groß- bzw. Kleinschreibung zu achten.

Weiterführende Informationen finden sich im Artikel “.desktop-Dateien” des Ubuntuusers-Wikis.