From 72fd922f0a4b94151492b5138cd7e1bf808b1086 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sun, 7 Jun 2026 17:24:00 +0300 Subject: add context menus to dolphin for unlocking/locking encrypted ZFS datasets --- scripts/zfs-open-documents.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 scripts/zfs-open-documents.sh (limited to 'scripts/zfs-open-documents.sh') diff --git a/scripts/zfs-open-documents.sh b/scripts/zfs-open-documents.sh new file mode 100755 index 0000000..2188c59 --- /dev/null +++ b/scripts/zfs-open-documents.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +DATASET="iron-wolf/media/documents" +MOUNTPOINT=$(zfs get -H -o value mountpoint "$DATASET") + +if [ "$KEYSTATUS" = "available" ]; then + if ! mountpoint -q "$MOUNTPOINT"; then + sudo zfs mount "$DATASET" || { zenity --error --text="Failed to mount dataset."; exit 1; } + fi +else + # Key is unavailable. Prompt for it. + PASS=$(zenity --password --title="Unlock ZFS Volume" --window-icon="lock") + + # If user hits cancel or leaves it empty, exit quietly + if [ -z "$PASS" ]; then + exit 0 + fi + + # Try to load key and mount + if echo "$PASS" | sudo zfs load-key "$DATASET"; then + sudo zfs mount "$DATASET" || { zenity --error --text="Key loaded, but mount failed."; exit 1; } + else + zenity --error --text="Incorrect passphrase." + exit 1 + fi +fi + +if command -v kioclient &> /dev/null; then + kioclient exec "$MOUNTPOINT" +else + xdg-open "$MOUNTPOINT" +fi; -- cgit v1.3.1