Commit Graph

9 Commits

Author SHA1 Message Date
537724989a dotcli: add shortcut identifiers to dot kde save completion
dot kde save's tab-completion only ever enumerated schema-backed
identifiers; kglobalshortcutsrc identifiers never showed up as
candidates despite being a fully supported mechanism. Enumerate them
live via kglobalaccel (allMainComponents/allActionsForComponent),
printed as a separate block after the schema-backed one, degrading
silently if the D-Bus session is unavailable.
2026-07-05 22:02:40 -04:00
8d6ec10b74 dotcli: Add shortcuts mechanism to dot kde save/apply/diff
Dispatches kglobalshortcutsrc identifiers through the kglobalaccel D-Bus
service instead of the schema-backed or freeform rc-file paths. Verified
manually against the live session (per the spec's testing decision, this
mechanism is excluded from the automated suite); switched to the
shortcutKeys/defaultShortcutKeys/setShortcutKeys D-Bus methods after the
spec's originally-named shortcut/defaultShortcut/setShortcut proved to
return stale data on the live system. Moves Lock Session off Meta+L to
Meta+X as the real-world validation, tracked in the manifest and recorded
in keybindings.md.
2026-07-05 21:07:30 -04:00
00da6f1466 dotcli: add freeform mechanism to dot kde save/apply/diff
Read/write schema-less KDE settings (e.g. kxkbrc's Options= line)
directly via kreadconfig6/kwriteconfig6, with default defined as the
key being absent. diff only checks freeform entries already declared
in the manifest, never via undeclared broad scan.

Brings the machine's caps-lock/Escape swap under tracking as the
real-world validation case.
2026-07-05 20:41:15 -04:00
8570826927 dotcli: Add dot kde diff for schema-backed settings, fix apply/diff completions
Implements the broad, read-only schema-backed scan for dot kde diff:
walks every (rcfile, group, key) reachable through the kcfg mapping
table, compares live values against their schema-declared defaults,
and reports each mismatch tagged declared or undeclared. Never writes.

Also fixes dot kde completions, which only ever offered save/help —
apply (added in a prior task) and diff were both missing.
2026-07-05 20:24:15 -04:00
f7b9f1b251 dotcli: Implement dot kde apply for schema-backed settings
Pushes every manifest entry's declared value onto the live system via
kwriteconfig6, idempotently. Non-schema (shortcuts/freeform) entries are
rejected as not-yet-supported, deferred to later tasks.
2026-07-05 20:08:44 -04:00
0614e0ebe6 dotcli: Add dot kde save with schema-backed defaults and completion.
Introduces the dot kde subcommand family (fish dispatcher plus a Python
helper under commands/kde/), a flat identifier=value manifest, and
dot kde save in both its explicit-identifier and no-argument refresh
modes. Settings resolve to KDE's KConfigXT schema-backed mechanism via a
(rcfile -> [kcfg files]) mapping table auto-derived by scanning the
system schema directory (overridable via DOT_KDE_KCFG_DIR), plus a
hand-maintained exceptions list for schemas that only declare their
target rc file at runtime. Also wires tab-completion for dot kde save
identifiers, sourced live from that same mapping table.
2026-07-05 18:33:55 -04:00
46fa6e5687 docs: convention for usage documentation. 2026-07-04 11:31:42 -04:00
d41e1c46f4 dotcli: install subcommand as wrapper for pacman
The install subcommand also manages a list of packages intalled
through `dot install`. This list can be restored using `dot install
--restore`.
2026-07-04 09:38:22 -04:00
6ad0f109df dotcli: Initial config
dotcli is my utility script for everything dotfiles.

A bootstrap command is included in the README.
A test suite and the necessary scaffolding for extending
dotcli is also included.
2026-07-04 00:47:49 -04:00