[GH-ISSUE #284] Fails to start hyprland event listener. #4333

Closed
opened 2026-05-23 00:52:42 +01:00 by JakeStanger · 5 comments
Owner

Originally created by @SolitudeSF on GitHub (Aug 25, 2023).
Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/284

log with RUST_BACKTRACE=full

Log
2023-08-25T14:05:58.707318Z  INFO ironbar: 92: Ironbar version 0.13.0
2023-08-25T14:05:58.707343Z  INFO ironbar: 93: Starting application
2023-08-25T14:05:58.747437Z  INFO ironbar::ipc::server: 43: Starting IPC on /run/user/1000/ironbar-ipc.sock
2023-08-25T14:05:58.748299Z  INFO ironbar: 231: Creating bar on 'DP-2'
2023-08-25T14:05:58.748832Z  INFO ironbar::bar: 33: Creating bar bar-7
2023-08-25T14:05:58.750212Z  INFO ironbar::clients::compositor::hyprland: 30: Starting Hyprland event listener
2023-08-25T14:05:58.760081Z  INFO connect: mpd_protocol::connection: 306: connected successfully version="0.23.5"
2023-08-25T14:05:58.768595Z  INFO system_tray::notifier_watcher: 34: Starting notifier watcher
2023-08-25T14:05:58.772717Z  INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.53"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}:dispatch_method_call{msg=Msg {type: MethodCall, sender: UniqueName(Str(Borrowed(":1.53"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}:dispatch_method_call_try{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.53"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))),member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}: system_tray::dbus::notifier_watcher_service: 61: StatusNotifierHost registered: 'org.freedesktop.StatusNotifierHost-24045-ironbar-18'
2023-08-25T14:05:58.775839Z  INFO system_tray::notifier_watcher: 170: Got 0 notifier items
2023-08-25T14:05:58.815760Z  INFO ironbar: 231: Creating bar on 'HDMI-A-1'
2023-08-25T14:05:58.815986Z  INFO ironbar::bar: 33: Creating bar bar-19
2023-08-25T14:05:58.913087Z  WARN ironbar::image::provider: 128: Failed to find image: kitty
2023-08-25T14:05:58.980927Z  WARN ironbar::image::provider: 128: Failed to find image: kitty
2023-08-25T14:05:59.821157Z ERROR ironbar::logging: 47: The application panicked (crashed).
Message:  Failed to get active workspace:
   0: expected value at line 1 column 1

Location:
   src/clients/compositor/hyprland.rs:217

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Location: src/clients/compositor/hyprland.rs:41

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                                ⋮ 9 frames hidden ⋮
  10: core::result::Result<T,E>::expect::hd09ef0014fdaa32a
      at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/result.rs:1046
  11: ironbar::clients::compositor::hyprland::EventClient::listen_workspace_events::{{closure}}::hf0c8912010798f64
      at /home/solitude/git/app/ironbar/src/clients/compositor/hyprland.rs:41
        39 │
        40 │             // cache the active workspace since Hyprland doesn't give us the prev active
        41 >             let active = Self::get_active_workspace().expect("Failed to get active workspace");
        42 │             let active = arc_mut!(Some(active));
        43 │
  12: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll::h48363bfdd8602b8f
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/task.rs:42
        40 │         crate::runtime::coop::stop();
        41 │
        42 >         Poll::Ready(func())
        43 │     }
        44 │ }
  13: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}::h610e2cef3a7eb323
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/core.rs:334
       332 │
       333 │                 let _guard = TaskIdGuard::enter(self.task_id);
       334 >                 future.poll(&mut cx)
       335 │             })
       336 │         };
  14: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut::h9afae29a8b160416
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/loom/std/unsafe_cell.rs:16
        14 │     #[inline(always)]
        15 │     pub(crate) fn with_mut<R>(&self, f: impl FnOnce(*mut T) -> R) -> R {
        16 >         f(self.0.get())
        17 │     }
        18 │ }
  15: tokio::runtime::task::core::Core<T,S>::poll::h9409511070bbb166
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/core.rs:323
       321 │     pub(super) fn poll(&self, mut cx: Context<'_>) -> Poll<T::Output> {
       322 │         let res = {
       323 >             self.stage.stage.with_mut(|ptr| {
       324 │                 // Safety: The caller ensures mutual exclusion to the field.
       325 │                 let future = match unsafe { &mut *ptr } {
  16: tokio::runtime::task::harness::poll_future::{{closure}}::hb299c7ad232a6988
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:485
       483 │         }
       484 │         let guard = Guard { core };
       485 >         let res = guard.core.poll(cx);
       486 │         mem::forget(guard);
       487 │         res
  17: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h5c62e512832f8fee
      at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/panic/unwind_safe.rs:271
  18: std::panicking::try::do_call::h1014a9b68e8eb8f2
      at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panicking.rs:485
  19: __rust_try<unknown>
      at <unknown source file>:<unknown line>
  20: std::panicking::try::h910423c358af90e2
      at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panicking.rs:449
  21: std::panic::catch_unwind::h3b8241da0cb440e5
      at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panic.rs:140
  22: tokio::runtime::task::harness::poll_future::h602980d537ae84ec
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:473
       471 │ fn poll_future<T: Future, S: Schedule>(core: &Core<T, S>, cx: Context<'_>) -> Poll<()> {
       472 │     // Poll the future.
       473 >     let output = panic::catch_unwind(panic::AssertUnwindSafe(|| {
       474 │         struct Guard<'a, T: Future, S: Schedule> {
       475 │             core: &'a Core<T, S>,
  23: tokio::runtime::task::harness::Harness<T,S>::poll_inner::h481ae4c89b8cdaed
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:208
       206 │                 let waker_ref = waker_ref::<S>(&header_ptr);
       207 │                 let cx = Context::from_waker(&waker_ref);
       208 >                 let res = poll_future(self.core(), cx);
       209 │
       210 │                 if res == Poll::Ready(()) {
  24: tokio::runtime::task::harness::Harness<T,S>::poll::h85886b54816d2a71
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:153
       151 │     pub(super) fn poll(self) {
       152 │         // We pass our ref-count to `poll_inner`.
       153 >         match self.poll_inner() {
       154 │             PollFuture::Notified => {
       155 │                 // The `poll_inner` call has given us two ref-counts back.
  25: tokio::runtime::task::raw::poll::h48b2f2cfc96514c4
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/raw.rs:276
       274 │ unsafe fn poll<T: Future, S: Schedule>(ptr: NonNull<Header>) {
       275 │     let harness = Harness::<T, S>::from_raw(ptr);
       276 >     harness.poll();
       277 │ }
       278 │
  26: tokio::runtime::task::raw::RawTask::poll::hcfe53d2b0a07ba4d
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/raw.rs:200
       198 │     pub(crate) fn poll(self) {
       199 │         let vtable = self.header().vtable;
       200 >         unsafe { (vtable.poll)(self.ptr) }
       201 │     }
       202 │
  27: tokio::runtime::task::UnownedTask<S>::run::h7bfb9297cf32a6fe
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/mod.rs:437
       435 │
       436 │         // Use the other ref-count to poll the task.
       437 >         raw.poll();
       438 │         // Decrement our extra ref-count
       439 │         drop(task);
  28: tokio::runtime::blocking::pool::Task::run::h41dd9c2787b5815b
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:159
       157 │
       158 │     fn run(self) {
       159 >         self.task.run();
       160 │     }
       161 │
  29: tokio::runtime::blocking::pool::Inner::run::hbbc89cdf7d9dfa45
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:513
       511 │                 self.metrics.dec_queue_depth();
       512 │                 drop(shared);
       513 >                 task.run();
       514 │
       515 │                 shared = self.shared.lock();
  30: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}::hb853afe8c060e91f
      at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:471
       469 │             // Only the reference should be moved into the closure
       470 │             let _enter = rt.enter();
       471 >             rt.inner.blocking_spawner().inner.run(id);
       472 │             drop(shutdown_tx);
       473 │         })
                                ⋮ 14 frames hidden ⋮

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.

System information:

  • Distro: Arch Linux
  • Compositor: Hyprland 0.28.0
  • Ironbar version: 0.13.0

config.corn

let { }
in {
    start = [{type = "workspaces"}]
    end = [ ]
}
Originally created by @SolitudeSF on GitHub (Aug 25, 2023). Original GitHub issue: https://github.com/JakeStanger/ironbar/issues/284 log with `RUST_BACKTRACE=full` <details> <summary>Log</summary> ``` 2023-08-25T14:05:58.707318Z INFO ironbar: 92: Ironbar version 0.13.0 2023-08-25T14:05:58.707343Z INFO ironbar: 93: Starting application 2023-08-25T14:05:58.747437Z INFO ironbar::ipc::server: 43: Starting IPC on /run/user/1000/ironbar-ipc.sock 2023-08-25T14:05:58.748299Z INFO ironbar: 231: Creating bar on 'DP-2' 2023-08-25T14:05:58.748832Z INFO ironbar::bar: 33: Creating bar bar-7 2023-08-25T14:05:58.750212Z INFO ironbar::clients::compositor::hyprland: 30: Starting Hyprland event listener 2023-08-25T14:05:58.760081Z INFO connect: mpd_protocol::connection: 306: connected successfully version="0.23.5" 2023-08-25T14:05:58.768595Z INFO system_tray::notifier_watcher: 34: Starting notifier watcher 2023-08-25T14:05:58.772717Z INFO dispatch_message{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.53"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}:dispatch_method_call{msg=Msg {type: MethodCall, sender: UniqueName(Str(Borrowed(":1.53"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))), member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}:dispatch_method_call_try{msg=Msg { type: MethodCall, sender: UniqueName(Str(Borrowed(":1.53"))), path: ObjectPath("/StatusNotifierWatcher"), iface: InterfaceName(Str(Borrowed("org.kde.StatusNotifierWatcher"))),member: MemberName(Str(Borrowed("RegisterStatusNotifierHost"))), body: Signature("s") }}: system_tray::dbus::notifier_watcher_service: 61: StatusNotifierHost registered: 'org.freedesktop.StatusNotifierHost-24045-ironbar-18' 2023-08-25T14:05:58.775839Z INFO system_tray::notifier_watcher: 170: Got 0 notifier items 2023-08-25T14:05:58.815760Z INFO ironbar: 231: Creating bar on 'HDMI-A-1' 2023-08-25T14:05:58.815986Z INFO ironbar::bar: 33: Creating bar bar-19 2023-08-25T14:05:58.913087Z WARN ironbar::image::provider: 128: Failed to find image: kitty 2023-08-25T14:05:58.980927Z WARN ironbar::image::provider: 128: Failed to find image: kitty 2023-08-25T14:05:59.821157Z ERROR ironbar::logging: 47: The application panicked (crashed). Message: Failed to get active workspace: 0: expected value at line 1 column 1 Location: src/clients/compositor/hyprland.rs:217 Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it. Location: src/clients/compositor/hyprland.rs:41 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⋮ 9 frames hidden ⋮ 10: core::result::Result<T,E>::expect::hd09ef0014fdaa32a at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/result.rs:1046 11: ironbar::clients::compositor::hyprland::EventClient::listen_workspace_events::{{closure}}::hf0c8912010798f64 at /home/solitude/git/app/ironbar/src/clients/compositor/hyprland.rs:41 39 │ 40 │ // cache the active workspace since Hyprland doesn't give us the prev active 41 > let active = Self::get_active_workspace().expect("Failed to get active workspace"); 42 │ let active = arc_mut!(Some(active)); 43 │ 12: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll::h48363bfdd8602b8f at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/task.rs:42 40 │ crate::runtime::coop::stop(); 41 │ 42 > Poll::Ready(func()) 43 │ } 44 │ } 13: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}::h610e2cef3a7eb323 at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/core.rs:334 332 │ 333 │ let _guard = TaskIdGuard::enter(self.task_id); 334 > future.poll(&mut cx) 335 │ }) 336 │ }; 14: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut::h9afae29a8b160416 at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/loom/std/unsafe_cell.rs:16 14 │ #[inline(always)] 15 │ pub(crate) fn with_mut<R>(&self, f: impl FnOnce(*mut T) -> R) -> R { 16 > f(self.0.get()) 17 │ } 18 │ } 15: tokio::runtime::task::core::Core<T,S>::poll::h9409511070bbb166 at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/core.rs:323 321 │ pub(super) fn poll(&self, mut cx: Context<'_>) -> Poll<T::Output> { 322 │ let res = { 323 > self.stage.stage.with_mut(|ptr| { 324 │ // Safety: The caller ensures mutual exclusion to the field. 325 │ let future = match unsafe { &mut *ptr } { 16: tokio::runtime::task::harness::poll_future::{{closure}}::hb299c7ad232a6988 at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:485 483 │ } 484 │ let guard = Guard { core }; 485 > let res = guard.core.poll(cx); 486 │ mem::forget(guard); 487 │ res 17: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h5c62e512832f8fee at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/panic/unwind_safe.rs:271 18: std::panicking::try::do_call::h1014a9b68e8eb8f2 at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panicking.rs:485 19: __rust_try<unknown> at <unknown source file>:<unknown line> 20: std::panicking::try::h910423c358af90e2 at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panicking.rs:449 21: std::panic::catch_unwind::h3b8241da0cb440e5 at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panic.rs:140 22: tokio::runtime::task::harness::poll_future::h602980d537ae84ec at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:473 471 │ fn poll_future<T: Future, S: Schedule>(core: &Core<T, S>, cx: Context<'_>) -> Poll<()> { 472 │ // Poll the future. 473 > let output = panic::catch_unwind(panic::AssertUnwindSafe(|| { 474 │ struct Guard<'a, T: Future, S: Schedule> { 475 │ core: &'a Core<T, S>, 23: tokio::runtime::task::harness::Harness<T,S>::poll_inner::h481ae4c89b8cdaed at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:208 206 │ let waker_ref = waker_ref::<S>(&header_ptr); 207 │ let cx = Context::from_waker(&waker_ref); 208 > let res = poll_future(self.core(), cx); 209 │ 210 │ if res == Poll::Ready(()) { 24: tokio::runtime::task::harness::Harness<T,S>::poll::h85886b54816d2a71 at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/harness.rs:153 151 │ pub(super) fn poll(self) { 152 │ // We pass our ref-count to `poll_inner`. 153 > match self.poll_inner() { 154 │ PollFuture::Notified => { 155 │ // The `poll_inner` call has given us two ref-counts back. 25: tokio::runtime::task::raw::poll::h48b2f2cfc96514c4 at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/raw.rs:276 274 │ unsafe fn poll<T: Future, S: Schedule>(ptr: NonNull<Header>) { 275 │ let harness = Harness::<T, S>::from_raw(ptr); 276 > harness.poll(); 277 │ } 278 │ 26: tokio::runtime::task::raw::RawTask::poll::hcfe53d2b0a07ba4d at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/raw.rs:200 198 │ pub(crate) fn poll(self) { 199 │ let vtable = self.header().vtable; 200 > unsafe { (vtable.poll)(self.ptr) } 201 │ } 202 │ 27: tokio::runtime::task::UnownedTask<S>::run::h7bfb9297cf32a6fe at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/task/mod.rs:437 435 │ 436 │ // Use the other ref-count to poll the task. 437 > raw.poll(); 438 │ // Decrement our extra ref-count 439 │ drop(task); 28: tokio::runtime::blocking::pool::Task::run::h41dd9c2787b5815b at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:159 157 │ 158 │ fn run(self) { 159 > self.task.run(); 160 │ } 161 │ 29: tokio::runtime::blocking::pool::Inner::run::hbbc89cdf7d9dfa45 at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:513 511 │ self.metrics.dec_queue_depth(); 512 │ drop(shared); 513 > task.run(); 514 │ 515 │ shared = self.shared.lock(); 30: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}::hb853afe8c060e91f at /home/solitude/.local/share/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.32.0/src/runtime/blocking/pool.rs:471 469 │ // Only the reference should be moved into the closure 470 │ let _enter = rt.enter(); 471 > rt.inner.blocking_spawner().inner.run(id); 472 │ drop(shutdown_tx); 473 │ }) ⋮ 14 frames hidden ⋮ Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. ``` </details> **System information:** - Distro: Arch Linux - Compositor: Hyprland 0.28.0 - Ironbar version: 0.13.0 `config.corn` ``` let { } in { start = [{type = "workspaces"}] end = [ ] } ```
JakeStanger 2026-05-23 00:52:42 +01:00
  • closed this issue
  • added the
    T:Bug
    label
Author
Owner

@JakeStanger commented on GitHub (Aug 25, 2023):

Thanks for reporting. It looks like something weird is going on that means Hyprland isn't returning an active workspace on startup.

Are you running stable or -git Hyprland, and are you using any plugins? If you're able to share your Hyprland config too that'd be great.

@yavko any ideas on this one? The Hyprland library does return an option for the active workspace so I guess this can legitimately happen?

<!-- gh-comment-id:1693966418 --> @JakeStanger commented on GitHub (Aug 25, 2023): Thanks for reporting. It looks like something weird is going on that means Hyprland isn't returning an active workspace on startup. Are you running stable or -git Hyprland, and are you using any plugins? If you're able to share your Hyprland config too that'd be great. @yavko any ideas on this one? The Hyprland library *does* return an option for the active workspace so I guess this *can* legitimately happen?
Author
Owner

@yavko commented on GitHub (Aug 25, 2023):

It returns an result cuz of serde, not for any other reason

<!-- gh-comment-id:1693982537 --> @yavko commented on GitHub (Aug 25, 2023): It returns an result cuz of serde, not for any other reason
Author
Owner

@yavko commented on GitHub (Aug 25, 2023):

I wonder why serde is failing, would be cool if I could see the data being passed into serde

<!-- gh-comment-id:1693985218 --> @yavko commented on GitHub (Aug 25, 2023): I wonder why serde is failing, would be cool if I could see the data being passed into serde
Author
Owner

@SolitudeSF commented on GitHub (Aug 26, 2023):

i have Hyprland installed from arch, which is 0.28.0 yet for some reason it doesnt have activeworkspace command, which is why it fails.

turns out i had two hyprlands installed, one severely outdated.

<!-- gh-comment-id:1694261134 --> @SolitudeSF commented on GitHub (Aug 26, 2023): i have `Hyprland` installed from arch, which is `0.28.0` yet for some reason it doesnt have `activeworkspace` command, which is why it fails. turns out i had two hyprlands installed, one severely outdated.
Author
Owner

@yavko commented on GitHub (Aug 26, 2023):

Oof

<!-- gh-comment-id:1694407297 --> @yavko commented on GitHub (Aug 26, 2023): Oof
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
JakeStanger/ironbar#4333
No description provided.