Hyprland: exec-once doesn't start waybar on startup

Steps to reproduce

Example configuration:

exec-once = waybar

Expected outcome

  • waybar starts on startup

Noted outcome

  • waybar doesn’t start on startup and I have to manually start it

Additional info

  • latest git build as of writing (both Hyprland and Waybar)
  • waybar autostarts in nested Hyprland session (executing Hyprland in the terminal)
  • tested with default waybar config and get the same result

Configuration file

########################################################################################
 _   _                  _                 _    ____             __ _       
| | | |_   _ _ __  _ __| | __ _ _ __   __| |  / ___|___  _ __  / _(_) __ _ 
| |_| | | | | '_ \| '__| |/ _` | '_ \ / _` | | |   / _ \| '_ \| |_| |/ _` |
|  _  | |_| | |_) | |  | | (_| | | | | (_| | | |__| (_) | | | |  _| | (_| |
|_| |_|\__, | .__/|_|  |_|\__,_|_| |_|\__,_|  \____\___/|_| |_|_| |_|\__, |
       |___/|_|                                                      |___/ 

#########################################################################################

# You have to change this based on your monitor (run "hyprctl monitors")
monitor = eDP-1,1366x768@60,0x0,1

# Window rules and keybinds
source = ~/.config/hypr/src/windowRules.conf
source = ~/.config/hypr/src/keybinds.conf

#Notification 
exec-once = dunst 
# Status Bar
exec-once = waybar
#Polkit
exec-once = lxpolkit
# Wallpaper
exec-once = swaybg -o \* -i ~/Pictures/Wallpapers/Aenami7pmMocha1.png -m fill

# For keyboard 
#exec-once=fcitx5 -D

# For lockscreen
exec-once = swayidle -w timeout 200 'swaylock --fade-in 2'
# mpdris mpd
exec-once = mpDris2
# clipboard
#exec-once = wl-paste --watch cliphist store
exec-once = copyq

# Foot terminal daemon 
exec-once = foot --server 

# Night Light
exec-once = gammastep

# Bluetooth
#exec-once=blueman-applet # Make sure you have installed blueman

# Screen Sharing and Screen Recording
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
#exec-once = ~/.config/hypr/scripts/screensharing.sh

# Apply GTK themes (or use nwg-look https://github.com/nwg-piotr/nwg-look)
#exec-once = ~/.config/hypr/scripts/import-gsettings

input {
  # Remap Capslock -> Esc for Vim users  
  #kb_options=caps:escape 
  repeat_rate = 25
  repeat_delay = 269
  
  touchpad {
    scroll_factor = 0.8
    disable_while_typing = 1
    natural_scroll = 1
    clickfinger_behavior = 1
    middle_button_emulation = 0
    tap-to-click = 1
  }
}


# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
 device:gaming-mouse {
 	sensitivity = 0
 	accel_profile = flat
}


gestures { 
  workspace_swipe = true 
  workspace_swipe_min_speed_to_force = 5
}

general {
    layout = dwindle
    gaps_in = 3
    gaps_out = 5
    border_size = 3
    col.active_border = 0xffEBA0AC
    col.inactive_border = 0xffB4BEFE
    col.group_border = 0xfffab387
    col.group_border_active = 0xffa6e3a1
    resize_on_border = true
}

decoration {
    multisample_edges  =  true
    blur_new_optimizations  =  true
    rounding = 6
    blur = 0
    blur_size = 2 # minimum 1
    blur_passes = 2 # minimum 1, more passes  =  more resource intensive.  
    # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.
    # if you want heavy blur, you need to up the blur_passes.
    # the more passes, the more you can up the blur_size without noticing artifacts.
    drop_shadow = true
    shadow_range = 15
    col.shadow = 0xffEBA0AC
    col.shadow_inactive = 0x50000000
}

animations {
    enabled = 1
	# bezier=overshot,0.05,0.9,0.1,1.1
	bezier = buz, -0.09, 0, 0.19, 1
    bezier = linear, 0,0,1,1
    bezier = md3_decel, 0.05, 0.7, 0.1, 1
    bezier = overshot,0.13,0.99,0.29,1.1
    bezier = smoothOut, 0.36, 0, 0.66, -0.56
    bezier = smoothIn, 0.25, 1, 0.5, 1
    animation = windows,1,5,overshot,popin
    animation = windowsOut,1,6,md3_decel,popin
    animation = windowsMove, 1, 4, buz
    animation = fade, 1, 5, smoothIn
    animation = workspaces,1,6,overshot,slide
    animation = border,1,10,default
}

dwindle {
    pseudotile=1 # enable pseudotiling on dwindle
    force_split=0
    no_gaps_when_only = false
}

master {
  new_on_top = true
  no_gaps_when_only = false
}

misc {
  focus_on_activate = true
  disable_hyprland_logo = true
  disable_splash_rendering = true
  mouse_move_enables_dpms = true
  vrr = 0 # variable refresh rate
  vfr = 1 # variable frame rate
  animate_manual_resizes = true
  animate_mouse_windowdragging = true
}

debug:overlay=0

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 7
  • Comments: 47 (8 by maintainers)

Most upvoted comments

I just want to comment for dummies like myself who somehow missed it - The exec-once line in the default auto generated config file is commented out.

This is almost certainly not the reason many people in this thread are experiencing an issue, but if I stumbled across this thread before I realised, there’s a chance others might too. We’re all blind to the blatantly obvious sometimes, but feel free to laugh at me.

I think this can be closed as it’s turned into a fiesta of people with broken waybars.

uh so other apps like eww (exec-once = eww daemon), mpd(exec-once = mpd) also don’t seem to be working

dunno, works for me and like everyone else. Try appending 2>&1 > ~/somelog.txt and inspecting the logs