in my config file exists…

exec-once = zsh -c 'sleep 1' && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar && waybar

Why? Because waybar crashes sometimes when I turn my monitor off/on, I documented this here: https://github.com/Alexays/Waybar/issues/3047

…this opens waybar if it crashes… and if that crashes, it opens another waybar, and you’ll notice, if that one crashes, it opens another one… now you may have seen the pattern here but in case you didn’t, that one will then lead to another waybar…

Is there a less ridiculous way of making waybar open every time when waybar crashes, giving me better fault tolerance?

  • @[email protected]
    link
    fedilink
    438 months ago

    Ok firstly that’s hilarious. Secondly I’m pretty sure && means “execute the second thing if the first thing exits with code 0” so if waybar is segfaulting it shouldn’t execute any of the other waybars; if you were to do it this way (while true or a systemd service as suggested in the comments makes more sense) a semicolon would probably make sense?

    • CommunistOP
      link
      fedilink
      English
      218 months ago

      Yeah I noticed it wasn’t actually working and for some reason assumed that it was because it crashed so many times that I ran out of waybars, so I added a million after that, and you’re totally right, I know better than that, thanks!

  • @just_another_person
    link
    428 months ago

    Just make a user systemd unit if one doesn’t already exist, set to relaunch on failure, then all set.

  • hallettj
    link
    fedilink
    English
    308 months ago

    I would install a systemd user service with the setting Restart=always. If your window manager is started with systemd, or defines a systemd target you can configure the waybar service to start and stop automatically with the window manager.

  • @mvirts
    link
    208 months ago

    I thought && only proceeded to the next statement if the first did not crash

    • Shadow
      link
      fedilink
      68 months ago

      I guess waybar still returns 0 on segfault. Seems weird.

      • CommunistOP
        link
        fedilink
        English
        78 months ago

        Nah I just noticed it crashed anyway and didn’t assume it was a flaw in my methodology but rather that i ran out of waybars queue’d

        • Shadow
          link
          fedilink
          58 months ago

          Yeah you would need to use a ; instead of &&

  • x3i
    link
    fedilink
    198 months ago

    Same problem here, this is my solution:

    exec-once = bash -c 'until waybar; do echo "Waybar crashed with exit code $?.  Respawning..." >&2; done'
    
    
  • Tempy
    link
    fedilink
    188 months ago

    Just do an infinite loop

    exec_once = zsh -c 'while true; do waybar; done'

  • Eevoltic
    link
    fedilink
    English
    178 months ago

    This is so ridiculous, I fucking love it. I just have waybar bound to a hotkey, but this solution is truly amazing

    • CommunistOP
      link
      fedilink
      English
      78 months ago

      …that does indeed look very similar, but my solution makes it so that if waybar crashes it doesn’t even matter, which I quite like, even if the segfault has been fixed.