Repository navigation
0.1.0 - 2026-10-10
Release Notes
First public release.
Added
search: ranked search over schema ids, key names, summaries and
descriptions, tuned for agent phrasing (plurals, partial matches), with hits
that carry type, value and summary.schema: a key's type, default, current value, allowed values, description
and writability in one call; a schema's keys; or every schema.get,set,reset:setchecks the type and range before writing, takes
JSON, GVariant text or a bare word, has--dry-run, and reads every write
back so a silently dropped write fails. Keys can be named asSCHEMA KEY,
schema.keyor a dconf path.changed: the keys that differ from their defaults, without app state
unless--include-state.- A journal of every write with its previous value;
historylists it and
revert <id|last>undoes an entry or a whole batch, like an undo stack. export/apply/areas: per-area JSON state files for dotfiles.
applyvalidates everything before writing anything, writes one revertible
batch, and--pruneresets keys the files no longer list. Theremote
area is left out of exports by default.keys find|list|conflicts|add|remove: keyboard shortcuts across every
keybinding schema, extension bindings and custom bindings;addrefuses an
accelerator that's taken unless--force, and writes as one batch.ext list|info|enable|disable: extensions, their enabled state by GNOME
Shell's rules (including the session mode's), and their settings, with
extension schemas visible without--schemadir.watch: changes as NDJSON or text, with--countand--timeout.doctor: checks the session bus, dconf and sandboxing before anything else.- JSON on stdout and JSON errors on stderr with stable codes, exit statuses,
hints and did-you-mean suggestions;--format text(orGSCTL_FORMAT) for
people, with control characters escaped.gsctl commands(or
gsctl help --json) lists every command, flag, error code and exit code. completions bash|zsh|fishandman.- An agent skill,
skills/gnome-settings/SKILL.md, for the search, schema,
dry run, set and verify loop.
Security
- Guarded keys need
--yes: remote desktop, input sources, the lock screen
and idle settings, accessibility, keyboard shortcuts, extension lists,
default-application and extension command keys that run code, proxy
settings, and keyboard repeat below a usable floor. Guards apply to the
dconf location, not just the schema id, and--dry-runreports
requires_yes. - Without a session bus or dconf-service, writes fail with
no_session
instead of appearing to succeed. - Secret values (proxy passwords) are redacted in output as
{"redacted": true}unless--show-secrets, and never exported or
journaled. - The journal and exported files are private (0600 files, 0700 directories,
tightened if found loose) and never written through symlinks;applyreads
only regular files, not through symlinks, with a size cap. - Extension schemas can't shadow system schemas.
- SECURITY.md: the trust model, a recommended Claude Code permission setup,
scope, and how to report a vulnerability privately.
Install gsctl 0.1.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/junoddev/gsctl/releases/download/v0.1.0/gsctl-installer.sh | shDownload gsctl 0.1.0
| File | Platform | Checksum |
|---|---|---|
| gsctl-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| gsctl-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |