9 Commits

Author SHA1 Message Date
Homer 37b33f6234 A version that says the widget is finished
metadata.json said 0.1.0 because nothing had ever changed it. The widget does
what it set out to do -- multiple hosts, discovered shares, real kernel CIFS
mounts, KWallet, a polkit helper instead of sudo -- so it is 1.0.0.

No documentation moved out of this repository in the tree-wide pass on the same
date. The README is the documentation and it ships with the widget; there was
nothing else, so there is no wiki and the history is unrewritten.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
v1.0.0
2026-08-08 18:37:46 +02:00
Jaroslav Beneš 742d2416d7 Fix: store KWallet passwords via D-Bus (kwallet-query -w never persists)
kwallet-query --write-password returns success but does not create the folder
or persist the secret, so saved host passwords were silently lost and share
enumeration failed with NT_STATUS_LOGON_FAILURE. Write/delete now go through
the kwalletd6 D-Bus API via qdbus6 (open/createFolder/writePassword). Reads
stay on kwallet-query (they work). Also drop smbclient -N (was forcing an
anonymous session) and silence KWallet read stderr. Adds qt6-tools dep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 19:00:27 +02:00
Jaroslav Beneš e6eae24a7f Add install.sh, uninstall.sh and README
Distro-agnostic installer (dep check, sudo helper+policy install, per-user
kpackagetool6 install/upgrade) and matching uninstaller; full public README
covering requirements, usage, architecture and security notes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:31:05 +02:00
Jaroslav Beneš 6448ea4f22 Add privileged mount helper + polkit policy
POSIX sh helper (pkexec target) that mounts/unmounts CIFS shares with strict
validation of the unprivileged caller's arguments: mountpoint confined to
$HOME or /run/media/<user>, //host/share source, credfile under the caller's
runtime dir at mode 0600, whitelisted SMB version/options/modes. Polkit
action authorizes it with auth_admin_keep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:28:49 +02:00
Jaroslav Beneš fab2d65dd2 Add config pages: ConfigHosts + ConfigGeneral
Host manager (add/edit/remove Synology/SMB hosts) that stores non-secret
fields as JSON and writes passwords to KWallet via kwallet-query; general
page for default mount folder, SMB version, mount options and permissions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:27:01 +02:00
Jaroslav Beneš 47046665ed Add tray UI: main.qml + ShareItem.qml
PlasmoidItem with a system-tray icon (active when a share is mounted) and a
popup grouping shares per host. ExpandableListItem rows toggle mount/unmount
and open the mounted folder; empty-state placeholder links to config.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:24:42 +02:00
Jaroslav Beneš 43088a2316 Add nas.js logic layer (command builders + parsers)
Injection-safe sh -c wrapper (static script + positional args), KWallet
password flow into a 0600 cred file for mount, smbclient/-g share parsing,
findmnt mounted-state parsing, and the pkexec helper invocations.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:22:03 +02:00
Jaroslav Beneš a462d8ab4f Add plasmoid scaffold: metadata.json + config schema
Plasma/Applet package metadata (tray applet, id sk.houmeres.synologynas)
and the KConfigXT schema (hosts JSON, mount root, SMB version, options).
Passwords are never stored in config — they live in KWallet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:18:32 +02:00
Jaroslav Beneš 4f477bfe70 Initial commit 2026-07-15 12:07:42 +00:00