diff --git a/Cargo.lock b/Cargo.lock index 4688e9c8..281fdb38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -847,6 +847,7 @@ dependencies = [ "iced_tiny_skia", "id_tree", "indexmap 2.13.0", + "jiff", "keyframe", "libcosmic", "libdisplay-info", @@ -868,7 +869,6 @@ dependencies = [ "smithay", "smithay-egui", "thiserror 2.0.18", - "time", "tiny-skia", "tracing", "tracing-journald", @@ -3537,15 +3537,6 @@ dependencies = [ "syn", ] -[[package]] -name = "num_threads" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" -dependencies = [ - "libc", -] - [[package]] name = "objc" version = "0.2.7" @@ -5322,9 +5313,7 @@ checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", - "libc", "num-conv", - "num_threads", "powerfmt", "serde_core", "time-core", diff --git a/Cargo.toml b/Cargo.toml index 3b1dab56..878b67ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,11 +54,7 @@ sanitize-filename = "0.6.0" serde = { version = "1", features = ["derive"] } serde_json = "1" thiserror = "2.0.18" -time = { version = "0.3.47", features = [ - "macros", - "formatting", - "local-offset", -] } +jiff = "0.2" tiny-skia = "0.11" tracing = { version = "0.1.44", features = [ "max_level_debug", diff --git a/src/state.rs b/src/state.rs index d1af4f7d..1dc86008 100644 --- a/src/state.rs +++ b/src/state.rs @@ -115,7 +115,6 @@ use smithay::{ }, xwayland::XWaylandClientData, }; -use time::UtcOffset; use tracing::warn; #[cfg(feature = "systemd")] @@ -242,7 +241,7 @@ pub struct Common { pub clock: Clock, pub startup_done: Arc, pub should_stop: bool, - pub local_offset: time::UtcOffset, + pub gesture_state: Option, pub kiosk_child: Option, @@ -635,7 +634,6 @@ impl State { .with_context(|| "Failed to load languages") .unwrap(); - let local_offset = UtcOffset::current_local_offset().expect("No yet multithreaded"); let clock = Clock::new(); let config = Config::load(&handle); let compositor_state = CompositorState::new::(dh); @@ -749,8 +747,6 @@ impl State { popups: PopupManager::default(), shell, - local_offset, - clock, startup_done: Arc::new(AtomicBool::new(false)), should_stop: false, diff --git a/src/utils/screenshot.rs b/src/utils/screenshot.rs index d983271d..e90fb532 100644 --- a/src/utils/screenshot.rs +++ b/src/utils/screenshot.rs @@ -22,11 +22,7 @@ use crate::{ }; pub fn screenshot_window(state: &mut State, surface: &CosmicSurface) { - fn render_window( - renderer: &mut R, - window: &CosmicSurface, - offset: &time::UtcOffset, - ) -> anyhow::Result<()> + fn render_window(renderer: &mut R, window: &CosmicSurface) -> anyhow::Result<()> where R: Renderer + ImportAll + Offscreen + ExportMem, R::TextureId: Clone + 'static, @@ -65,17 +61,13 @@ pub fn screenshot_window(state: &mut State, surface: &CosmicSurface) { let gl_data = renderer.map_texture(&mapping)?; if let Ok(Some(path)) = xdg_user::pictures() { - let local_timestamp = time::OffsetDateTime::now_utc().to_offset(*offset); + let local_timestamp = jiff::Zoned::now(); let mut title = window.title(); title.truncate(227); // 255 - time - png let name = sanitize_filename::sanitize(format!( "{}_{}.png", title, - local_timestamp - .format(time::macros::format_description!( - "[year]-[month]-[day]_[hour]:[minute]:[second]_[subsecond digits:4]" - )) - .unwrap(), + local_timestamp.strftime("%Y-%m-%d_%H:%M:%S_%4f"), )); let file = std::fs::File::create(path.join(name))?; @@ -108,12 +100,8 @@ pub fn screenshot_window(state: &mut State, surface: &CosmicSurface) { }) .with_context(|| "Failed to get renderer for screenshot") .and_then(|renderer| match renderer { - RendererRef::Glow(renderer) => { - render_window(renderer, surface, &state.common.local_offset) - } - RendererRef::GlMulti(mut renderer) => { - render_window(&mut renderer, surface, &state.common.local_offset) - } + RendererRef::Glow(renderer) => render_window(renderer, surface), + RendererRef::GlMulti(mut renderer) => render_window(&mut renderer, surface), }); if let Err(err) = res { warn!(?err, "Failed to take screenshot")