Appearance settings#26
Merged
Merged
Conversation
Owner
|
Taking a look thanks! |
Introduce a modal settings window with General and Keybindings pages instead of restoring settings as a pane tab. Add app settings persistence for: - GTK color scheme - Ghostty color scheme - hover-to-focus terminal behavior Apply appearance changes live through libadwaita, keep Ghostty surfaces in sync with the selected scheme, and watch system theme changes through the portal/GSettings when the user chooses the system option. Refresh the pane, sidebar, and keybind editor styling to use theme-aware colors so the UI follows the selected appearance consistently. Also handle Ghostty config reload actions through the FFI bindings and make terminal hover-focus read from the current app config at runtime.
… to None instead of forcing light mode, so Ghostty’s “System” setting can fall back to the resolved GTK/libadwaita theme instead of getting pinned to light. In rust/limux-host-linux/src/app_config.rs:160, settings saves now refuse to overwrite malformed existing JSON, preserve unrelated top-level keys, and write atomically through a temp file + rename rather than writing in place.
… longer does a blocking portal read on the UI thread. Limux now boots using local GSettings state first, then creates the portal proxy asynchronously and reads org.freedesktop.appearance with a bounded timeout in rust/limux-host-linux/src/ window.rs:1588. Portal change signals also stop doing synchronous re-reads. The settings persistence path in rust/limux-host-linux/src/app_config.rs:161 now returns real save errors instead of only printing them, and malformed settings.json is recovered by backing it up and rewriting a fresh valid config in rust/limux-host-linux/src/app_config.rs:190. I also changed the settings callback flow in rust/limux-host-linux/src/settings_editor.rs:50, rust/limux- host-linux/src/pane.rs:157, and rust/limux-host-linux/src/window.rs:2845 so a failed save shows an alert and rolls the live config/theme back.
…s dark in rust/limux-host-linux/src/
app_config.rs. Specifically, when settings.json does not exist yet, Limux now creates:
"appearance": {
"color_scheme": "dark",
"ghostty_color_scheme": "dark"
}
Co-authored-by: Codex <noreply@openai.com>
64b4c95 to
db53d10
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds appearance settings for GTK and Ghostty settings, configured separately. To find an appropriate spot for these settings, I created a settings icon at the top right, added a new settings page, and pulled keybindings in as a tab. I also moved settings out of the panes and into its own window so does not get lost in unfocused workspaces.
settings.jsonTesting
cargo test -p limux-host-linuxDemo
Recording_2026-03-28_18-42-18.mp4
Attached video shows: