Skip to content

feat(packages): a Settings tab for the [packages] settings (#336) - #339

Merged
samsoir merged 1 commit into
develop/0.5.0from
feat/packages-settings-tab
Oct 24, 2026
Merged

samsoir merged 1 commit into
develop/0.5.0from
feat/packages-settings-tab

Conversation

@samsoir

@samsoir samsoir commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Closes #336

Change

  • The package manager gets a fourth tab, Settings, listing the [packages] settings of config.ini. Each row shows the value, or the default when the setting is unset, with that setting's help beside it.
  • Enter edits and Enter again saves, after the same validation xearthlayer config set runs. Esc cancels, and true/false settings flip with Space or the arrow keys.
  • A saved value applies to the next job. A new library URL or install location reloads its tab.
  • The tab is read-only while xearthlayer run is active or any job is queued or running.
  • The help text now lives in config::help, which feeds both the tab and the config.ini comments. The comments are rewrapped to 80 columns.
  • ConfigFile::save_to now writes atomically, so an interrupted save cannot truncate config.ini.

Verification

  • make pre-commit passes.
  • New unit tests cover the editing rules, validation, refusals, saving and rendering.
  • Live run in tmux on a scratch HOME: concurrent_downloads saved as 3, auto_install_overlays flipped to true, and the invalid value 0 was refused with the file left unchanged.

The package manager gains a fourth tab listing every [packages] setting
of config.ini, with its value or its default, and the setting's help
beside it. Enter edits and Enter again saves, after the same validation
`xearthlayer config set` applies; Esc cancels and flags flip with Space
or the arrows. A saved value reaches the next queue, and a new library
URL or install location reloads its tab. The tab is read-only while
`run` is active or any job is unfinished.

The help text moves to config::help, the one source for the tab and for
the comments config.ini is created with. ConfigFile::save_to now writes
atomically, so an interrupted save cannot truncate config.ini.

Closes #336
@samsoir
samsoir merged commit 09a4199 into develop/0.5.0 Oct 24, 2026
2 checks passed
@samsoir
samsoir deleted the feat/packages-settings-tab branch October 24, 2026 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant