diff --git a/Cargo.lock b/Cargo.lock index 2f5b96b..2382608 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1519,7 +1519,6 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1529,7 +1528,6 @@ dependencies = [ "iced_futures", "known-folders", "notify 8.0.0", - "notify-debouncer-full", "once_cell", "ron 0.9.0", "serde", @@ -1542,7 +1540,6 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "quote", "syn 2.0.104", @@ -1873,7 +1870,6 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "almost", "cosmic-config", @@ -2525,15 +2521,6 @@ dependencies = [ "simd-adler32", ] -[[package]] -name = "file-id" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bc904b9bbefcadbd8e3a9fb0d464a9b979de6324c03b3c663e8994f46a5be36" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "filetime" version = "0.2.25" @@ -3269,7 +3256,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.2", + "windows-core 0.57.0", ] [[package]] @@ -3284,7 +3271,6 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "dnd", "iced_accessibility", @@ -3302,7 +3288,6 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "accesskit", "accesskit_winit", @@ -3311,7 +3296,6 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "bitflags 2.9.1", "bytes", @@ -3336,7 +3320,6 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "futures", "iced_core", @@ -3362,7 +3345,6 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "bitflags 2.9.1", "bytemuck", @@ -3384,7 +3366,6 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3396,7 +3377,6 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "bytes", "cosmic-client-toolkit", @@ -3412,7 +3392,6 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "bytemuck", "cosmic-text", @@ -3428,7 +3407,6 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "as-raw-xcb-connection", "bitflags 2.9.1", @@ -3459,7 +3437,6 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -3479,7 +3456,6 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "cosmic-client-toolkit", "dnd", @@ -4592,7 +4568,6 @@ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic#1af2f4ffe57b402000c5982e3008395191e5cadd" dependencies = [ "apply", "ashpd 0.11.0", @@ -5252,19 +5227,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "notify-debouncer-full" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d88b1a7538054351c8258338df7c931a590513fb3745e8c15eb9ff4199b8d1" -dependencies = [ - "file-id", - "log", - "notify 8.0.0", - "notify-types", - "walkdir", -] - [[package]] name = "notify-types" version = "2.0.0" @@ -8535,7 +8497,7 @@ version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" dependencies = [ - "windows-result 0.1.2", + "windows-result", "windows-targets 0.52.6", ] @@ -8547,23 +8509,10 @@ checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" dependencies = [ "windows-implement 0.57.0", "windows-interface 0.57.0", - "windows-result 0.1.2", + "windows-result", "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" -dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link", - "windows-result 0.3.4", - "windows-strings", -] - [[package]] name = "windows-implement" version = "0.53.0" @@ -8586,17 +8535,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "windows-interface" version = "0.53.0" @@ -8619,17 +8557,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "windows-link" version = "0.1.3" @@ -8645,24 +8572,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.45.0" diff --git a/cosmic-settings/Cargo.toml b/cosmic-settings/Cargo.toml index a51ca4c..74c7360 100644 --- a/cosmic-settings/Cargo.toml +++ b/cosmic-settings/Cargo.toml @@ -117,7 +117,7 @@ git = "https://github.com/AerynOS/locales-rs" optional = true [features] -default = ["a11y", "dbus-config", "linux", "single-instance", "wgpu"] +default = ["a11y", "linux", "single-instance", "wgpu"] gettext = ["dep:gettext-rs"] # Default features for Linux diff --git a/cosmic-settings/src/app.rs b/cosmic-settings/src/app.rs index e3c4be6..9e34a27 100644 --- a/cosmic-settings/src/app.rs +++ b/cosmic-settings/src/app.rs @@ -230,7 +230,10 @@ impl cosmic::Application for SettingsApp { } .unwrap_or(desktop_id); - let task = app.activate_page(active_id); + let task = Task::batch([ + cosmic::command::set_theme(cosmic::theme::system_preference()), + app.activate_page(active_id), + ]); (app, task) } diff --git a/cosmic-settings/src/pages/desktop/appearance/mod.rs b/cosmic-settings/src/pages/desktop/appearance/mod.rs index d9b0d77..2a0e782 100644 --- a/cosmic-settings/src/pages/desktop/appearance/mod.rs +++ b/cosmic-settings/src/pages/desktop/appearance/mod.rs @@ -619,7 +619,7 @@ impl Page { tracing::error!(?err, "Error setting dark mode"); } - self.reload_theme_mode(); + tasks.push(self.reload_theme_mode()); } } @@ -894,6 +894,10 @@ impl Page { .iter() .position(|theme| theme.id == active_icon_theme); self.icon_handles = icon_handles; + + tasks.push(cosmic::task::message(app::Message::SetTheme( + cosmic::theme::system_preference(), + ))); } Message::Left => { @@ -976,7 +980,7 @@ impl Page { Self::update_panel_spacing(Density::Standard); }); - self.reload_theme_mode(); + tasks.push(self.reload_theme_mode()); } #[cfg(feature = "xdg-portal")] @@ -1111,7 +1115,7 @@ impl Page { tracing::error!("Failed to get the theme config."); } - self.reload_theme_mode(); + tasks.push(self.reload_theme_mode()); } Message::UseDefaultWindowHint(v) => { @@ -1293,7 +1297,7 @@ impl Page { ]; } - fn reload_theme_mode(&mut self) { + fn reload_theme_mode(&mut self) -> Task { let entity = self.entity; let font_config = std::mem::take(&mut self.font_config); let icon_themes = std::mem::take(&mut self.icon_themes); @@ -1316,6 +1320,8 @@ impl Page { self.icon_handles = icon_handles; self.icon_theme_active = icon_theme_active; self.font_config = font_config; + + cosmic::task::message(app::Message::SetTheme(cosmic::theme::system_preference())) } fn update_color_picker(