Skip to content

feat: implement comprehensive settings page #123

Merged
Cleboost merged 1 commit into
masterfrom
feat/settings-page
May 8, 2026
Merged

feat: implement comprehensive settings page #123
Cleboost merged 1 commit into
masterfrom
feat/settings-page

Conversation

@Cleboost
Copy link
Copy Markdown
Owner

@Cleboost Cleboost commented May 8, 2026

This pull request introduces a persistent application-wide configuration system, allowing users to customize global preferences such as terminal font, scrollback lines, system monitor refresh rate, and tab close confirmation. A new settings UI has been implemented for managing these preferences, and the application now loads and applies them at runtime. Additionally, tab closing actions can now optionally prompt for confirmation, based on user settings.

New persistent application configuration:

  • Added the AppConfig struct with fields for monitor refresh rate, terminal font, scrollback lines, and tab close confirmation, along with load/save functions using serde_json and the directories crate for cross-platform config storage (src/config_observer.rs). [1] [2]

Settings UI implementation:

  • Replaced the placeholder settings page with a new build_settings_ui function, providing controls for all configurable options and persisting changes automatically (src/ui/window.rs). [1] [2]

Applying configuration at runtime:

  • Updated the terminal and system monitor initialization to use values from AppConfig for font, scrollback lines, and refresh rate (src/ui/window.rs, src/ui/monitor.rs). [1] [2]

Tab close confirmation:

  • Modified tab close actions throughout the UI to optionally show a confirmation dialog, based on the confirm_tab_close setting in AppConfig (src/ui/window.rs). [1] [2] [3]

Supporting dependencies:

  • Added serde_json as a dependency in Cargo.toml for config serialization.

@Cleboost Cleboost merged commit ef3ee1a into master May 8, 2026
1 check passed
@Cleboost Cleboost deleted the feat/settings-page branch May 8, 2026 17:34
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