Skip to content

0.1.0 - 2026-10-10

Choose a tag to compare

@github-actions github-actions released this 10 Oct 19:11

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: set checks 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 as SCHEMA KEY,
    schema.key or 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; history lists 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.
    apply validates everything before writing anything, writes one revertible
    batch, and --prune resets keys the files no longer list. The remote
    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; add refuses 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 --count and --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 (or GSCTL_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|fish and man.
  • 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-run reports
    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; apply reads
    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 | sh

Download 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