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.
This commit is contained in:
9
.config/dot/tests/fixtures/kcfg/kwin.kcfg
vendored
Normal file
9
.config/dot/tests/fixtures/kcfg/kwin.kcfg
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0">
|
||||
<kcfgfile arg="true"/>
|
||||
<group name="Windows">
|
||||
<entry name="BorderSize" type="String">
|
||||
<default>Normal</default>
|
||||
</entry>
|
||||
</group>
|
||||
</kcfg>
|
||||
15
.config/dot/tests/fixtures/kcfg/testrc.kcfg
vendored
Normal file
15
.config/dot/tests/fixtures/kcfg/testrc.kcfg
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0">
|
||||
<kcfgfile name="testrc"/>
|
||||
<group name="General">
|
||||
<entry name="Greeting" type="String">
|
||||
<default>Hello</default>
|
||||
</entry>
|
||||
<entry name="AliasedKey" key="RealKey" type="String">
|
||||
<default>AliasDefault</default>
|
||||
</entry>
|
||||
<entry name="Some.Key With Spaces" type="String">
|
||||
<default>SpacedDefault</default>
|
||||
</entry>
|
||||
</group>
|
||||
</kcfg>
|
||||
9
.config/dot/tests/fixtures/kcfg/unmapped.kcfg
vendored
Normal file
9
.config/dot/tests/fixtures/kcfg/unmapped.kcfg
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0">
|
||||
<kcfgfile arg="true"/>
|
||||
<group name="Whatever">
|
||||
<entry name="Setting" type="String">
|
||||
<default>Unreachable</default>
|
||||
</entry>
|
||||
</group>
|
||||
</kcfg>
|
||||
Reference in New Issue
Block a user