Zum Inhalt springen

Udiskie: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
KKeine Bearbeitungszusammenfassung
Zeile 85: Zeile 85:
   device_removed: false  # Erkanntes Gerät wurde entfernt
   device_removed: false  # Erkanntes Gerät wurde entfernt
}}
}}
Das Beispiel setzt zuerst einen Stnadardtimeout für alle Benachrichtigungen von udiskie, die nicht explizit konfiguriert sind, hier 10 Sekunden. Danach werden für verscheidene Aktivitäten andere Timeouts gesetzt. Mit {{ic|-1}} wird definiert, dass der Standard-Timeout des Benachrichtigungsdienstes genutzt werden soll. Mittels {{ic|false}} wird angegeben, dass für diese aktion keine Benachrichtigung verwendet werden soll.


Will man die Benachrichtigungen gar nicht benutzen, muss man nicht überall {{ic|false}} eintragen, sondern kann diese in der Programmkonfiguration generell ausschalten.
Will man die Benachrichtigungen gar nicht benutzen, muss man nicht überall {{ic|false}} eintragen, sondern kann diese in der Programmkonfiguration generell ausschalten.
Zeile 92: Zeile 94:
   notify: false
   notify: false
}}
}}
Hier muss man allerdings aufpassen: Wenn man ein Gerät trennt, und noch Daten auf das Gerät geschrieben werden oder die Snychronisierung des Schreibcaches mit dem Datenträger länger dauert, ist nicht offenbar, dass man den Datenträger entfernen kann. Die Benachrichtigung für {{ic|device_unmounted}} würde dies erkennbar machen, weil diese erst erscheint, wenn das Dateisystem ausgehangen wurde.


== Troubleshooting ==
== Troubleshooting ==

Version vom 3. März 2025, 16:14 Uhr

„Udiskie“ wurde von Dirk (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Dirk (Diskussion) bitte, bevor du den Artikel bearbeitest.


Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


udiskie ist ein in Python geschriebener udisks-Wrapper, der es möglich macht, Userbezogen über automatische und regelbasierte Konfiguration, Befehlszeilen-Tools, oder ein grafisches Menü Wechseldatenträger zu mounten, zu verwalten, und auf diese zuzugreifen.

Installation

udiskie ist als udiskie in extra verfügbar, und kann von dort mittels Pacman installiert werden.

# udiskie an sich
pacman -S udiskie

# Für das Tray-Icon unter Wayland notwendig
pacman -S libappindicator-gtk3

Damit udiskie wie vorgesehen benutzt werden kann, muss der Programmaufruf udiskie in das Autostartsystem der verwendeten grafischen Umgebung aufgenommen werden. Es sollte zudem ein Panel oder sonstiges vorhanden sein, das die Anzeige von Tray-Icons erlaubt.

Verwendung

Das Hauptmenü des Tray-Icons.

Standardmäßig ist wird das Tray-Icon nicht angezeigt, sondern muss in der Konfiguration erst aktiviert werden (siehe dort). Bei Anschluss eines durch udiskie verwaltbaren Datenträgers bietet das Icon dann per Rechtsklick ein einfaches Menü an, über das die wichtigsten Optionen der aktuellen Instanz direkt eingestellt werden können.

Über „Abbild einhängen“ können Datenträger-Images (z.B. mittels dd erstellte Dumps, oder ISO-Dateien) gemountet werden. Und sofern ein Datenträger verschlüsselt ist, wird beim mounten automatisch nach dem Passwort gefragt.

Das Gerätemenü zeigt einen USB-Stick mit zwei Partitionen an.

Über den Menüpunkt „Verwaltete Geräte“ erreicht man alle Geräte, die über udiskie verwaltet werden können, von dort bekommt man dann je Gerät ein weiteres Menü, über das für alle verwaltbaren Partitionen auf dem Gerät entsprechende Optionen angezeigt werden.

Über „Aushängen“ wird die jeweilige partition ausgehangen, über das allgemeine „Auswerfen“ werden alle Partitionen ausgehangen. Geräte, die es unterstützen, können mittels „Abschalten“ auch stromlos gemacht werden.

Sofern man das Menü nicht benutzen möchte, kann man sich der mitgelieferten Befehlszeilen-Tools udiskie-info, udiskie-mount, und udiskie-unmount bedienen.

udiskie-info --all --output '{ui_label} -> {mount_path}'
/dev/sda: SanDisk Ultra USB 3.0 ->
/dev/sda1: CPBA_X64FRE_DE-DE_DV9 -> /run/media/username/CPBA_X64FRE_DE-DE_DV9
/dev/sda2: UEFI_NTFS -> /run/username/username/UEFI_NTFS

Dies listet eine Übersicht aller verwaltbaren Datenträger auf. Durch die Ausgabeanpassung mittels des Parameters --output werden die Gerätedateien der Partitionen, sowie der Name des Datenträgers angezeigt, und auch direkt, wo diese gemountet sind.

udiskie-umount /run/media/username/UEFI_NTFS
/org/freedesktop/UDisks2/block_devices/sda2 wurde ausgehängt

Damit wurde die Partition UEFI_NTFS ausgehängt. Analog dazu funktioniert das Einhängen von Datenträgern oder Datenträgerabbildern genau so mittels udiskie-mount /pfad/zur/datei.

Konfiguration

Die Konfiguration von udiskie wird in der Datei ~/.config/udiskie/config.yml in YAML vorgenommen. Optional kann eine entsprechend umformatierte Konfiguration auch in JSON in der Datei ~/.config/udiskie/config.json vorgenommen werden

Es können viele Optionen direkt beim Programmaufruf mittels udiskie übergeben werden. Mittels udiskie --config=/pfad/zur/datei.yml kann eine alternative Konfigurationsdatei benutzt werden, mittels udiskie --no-config wird udiskie in der Standardkonfiguration geladen.

Die folgenden Beispiele gehen auf die Konfiguration mittels Standard-Konfigurationsdatei ~/.config/udiskie/config.yml in YAML, und einem Aufruf von udiskie ohne weitere Parameter ein. Die ausführliche Manpage von udiskie listet alle möglichen Befehlszeilenoptionen für udiskie und seine Zusatztools auf.

Generelle Programmkonfiguration

udiskie verfügt bereits über eine sinnvolle Standardkonfiguration, von daher muss für das Programm selbst nicht mehr viel eingestellt werden.

Zum einen wäre da das ganz sinnvolle Tray-Icon, ohne das udiskie nur per Befehlszeile zu bedienen wäre, und der Vorteil eines für Anwender leicht zu benutzenden Menüs damit entfallen würde. Zum anderen ist da die Möglichkeit, schnell und einfach ein Terminalfenster oder den Dateimanager im Mountverzeichnis der Partition zu öffnen.

Dies lässt sich im Abschnitt program_options entsprechend definieren.

~/.config/udiskie/config.yml
program_options:
  tray: auto                               # Tray-Icon
  file_manager: thunar                     # Programm für den Dateimanager-Menüpunkt
  terminal: alacritty --working-directory  # Programm für den Terminal-Menüpunkt

Bei Verwendung von auto fürs Tray-Icon wird das Icon automatisch angezeigt, sobald ein verwaltbarer Datenträger erkann wurde. Das Icon wird ansonsten nicht angezeigt. Will man das Icon immer sehen, um zum Beispiel schnell auf „Abbild einhängen“ zugreifen zu können, so kann tray: true verwendet werden. Will man das Icon nie sehen, lässt man die Konfiguration weg, oder kann der Vollständigkeit halber auch tray: false setzen.

Wenn der Dateimanager geöffnet wird, wird der Pfad unter dem die Partition gemountet an die Angabe des Dateimanagers angehängt. Es wird also thunar /pfad/zum/mountpoint ausgeführt. Will man den Dateimanagermenüeintrag nicht anzeigen, so kann man file_manager: false verweden. Wenn man den Konfigurationseintrag weg lässt, wird xdg-open benutzt.

Beim Aufruf des Terminals, wird der Pfad ebenfalls am Ende an den Befehl angehängt. Im Beispiel wird Alacritty mit dem --working-directory-Parameter verwendet, was beim Aufruf dann zu alacritty --working-directory /pfad/zum/mountpoint wird, wodurch Alacritty den Pfad an die Shell weitergibt, und diese sich damit in diesem Verzeichnis öffnet. Will man den Terminal-Menüpunkt nicht benutzen, so kann man die Konfiguration dazu einfach weg lassen. Standardmäßig wird kein Terminal verwendet.

Datenträger-Optionen

~/.config/udiskie/config.yml
device_config:
  - device_file: /dev/sda
    ignore: true
  - id_label: ARC_*
    options: [noexec]

Benachrichtigung bei Aktivität

Da udiskie die FreeDesktop Notifications Specification benutzt, um Benachrichtigungen zu erstellen, können alle Benachrichtigungssysteme Verwendet werden, die dies ebenfalls unterstützen. In der Konfiguration kann man diverse Timeouts für die Anzeigedauer der Benachrichtigungen einstellen.

Eine Benachrichtigung über das Mounten einer Partition, angezeigt mit Mako.
~/.config/udiskie/config.yml
notifications:
  timeout: 10            # udiskie-Standard-Timeout
  device_mounted: -1     # Partition wird gemountet
  device_unmounted: -1   # Partition wird wieder getrennt
  device_added: false    # Gerät wurde erkannt
  device_removed: false  # Erkanntes Gerät wurde entfernt

Das Beispiel setzt zuerst einen Stnadardtimeout für alle Benachrichtigungen von udiskie, die nicht explizit konfiguriert sind, hier 10 Sekunden. Danach werden für verscheidene Aktivitäten andere Timeouts gesetzt. Mit -1 wird definiert, dass der Standard-Timeout des Benachrichtigungsdienstes genutzt werden soll. Mittels false wird angegeben, dass für diese aktion keine Benachrichtigung verwendet werden soll.

Will man die Benachrichtigungen gar nicht benutzen, muss man nicht überall false eintragen, sondern kann diese in der Programmkonfiguration generell ausschalten.

~/.config/udiskie/config.yml
program_options:
  notify: false

Hier muss man allerdings aufpassen: Wenn man ein Gerät trennt, und noch Daten auf das Gerät geschrieben werden oder die Snychronisierung des Schreibcaches mit dem Datenträger länger dauert, ist nicht offenbar, dass man den Datenträger entfernen kann. Die Benachrichtigung für device_unmounted würde dies erkennbar machen, weil diese erst erscheint, wenn das Dateisystem ausgehangen wurde.

Troubleshooting

Flaches Menü unter Wayland

Angepasstes Menü mit den Workaround-Parametern um die Menüstruktur etwas abzuflachen und die Checkboxen zu verschieben.

Die Konfigurationsoption menu: flat erlaubt es eigentlich, ein verflachtes Menü (die Partitionsoptionen pro Partition alle in einem Menü, unabhängig des Datenträgers von dem sie kommen) über Linksklick auf das Icon zu öffnen.

Unter Wayland benutzt udiskie AppIndicator, dieses unterstützt die standardmäßige Variante des flachen Menüs jedoch nicht (#270: Flat menu style not working ).

Man kann udiskie mittels des Parameters --no-menu-update-workaround starten, dies entfernt das Zwischenmenü „Verwaltete Geräte“ und listet alle verwaltbaren Datenträger direkt im Hauptmenü.

Checkboxposition anpassen/korrigieren

Standardmäßig werden die Checkboxen für die Benachrichtigungen und das automatische Einhängen eingerückt angezeigt, was es laut dem Entwickler ermöglicht, individuelle Icons für die Echeckboxen zu verwenden.

In den Issues #215 und #251 wird dies thematisiert, und auch der Workaround sowie die Gründe besprochen.

Will man die „normalen“ GTK-Checkboxen in der Checkboxspalte des Menüs haben, so kann man dies mittels --no-menu-checkbox-workaround einstellen.

Weblinks