hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.78k stars 842 forks source link

Plugins suddenly don't load anymore at boot: "failed to load plugins: 'outdated headers' #6801

Closed zjeffer closed 1 month ago

zjeffer commented 2 months ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 8bb75a223db3ea9471d05d74fbed3328334a9f78 (hyprctl completions: Use only awk rather than grep + awk). Date: Tue Jul 2 21:46:20 2024 Tag: v0.41.2-18-g8bb75a22, commits: 4904 flags: (if any) System Information: System name: Linux Node name: zjeffer Release: 6.9.7-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000 GPU information: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104M [GeForce RTX 3070 Mobile / Max-Q] [10de:24dd] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 555.58 Tue Jun 18 20:52:44 UTC 2024 os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: split-monitor-workspaces by Duckonaut ver 1.1.0 ======Config-Start====== Config File: /home/zjeffer/.config/hypr/hyprland.conf: Read Succeeded # ################################################################### # ██╗ ██╗██╗ ██╗██████╗ ██████╗ ██╗ █████╗ ███╗ ██╗██████╗ # ██║ ██║╚██╗ ██╔╝██╔══██╗██╔══██╗██║ ██╔══██╗████╗ ██║██╔══██╗ # ███████║ ╚████╔╝ ██████╔╝██████╔╝██║ ███████║██╔██╗ ██║██║ ██║ # ██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══██╗██║ ██╔══██║██║╚██╗██║██║ ██║ # ██║ ██║ ██║ ██║ ██║ ██║███████╗██║ ██║██║ ╚████║██████╔╝ # ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ # ################################################################### $HYPR_FOLDER = ~/.config/hypr $APP_FOLDER = $HYPR_FOLDER/apps $CONFIG_FOLDER = $HYPR_FOLDER/configs source = $CONFIG_FOLDER/env.conf source = $CONFIG_FOLDER/general.conf source = $CONFIG_FOLDER/animations.conf source = $CONFIG_FOLDER/decoration.conf source = $CONFIG_FOLDER/monitors.conf source = $CONFIG_FOLDER/window_rules.conf source = $CONFIG_FOLDER/input.conf source = $CONFIG_FOLDER/workspace_rules.conf source = $CONFIG_FOLDER/plugins.conf # Execute your favorite apps at launch exec-once = xhost + local: exec-once = hyprctl setcursor capitaine-cursors-light 24 exec-once = /usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = hyprpaper --config $APP_FOLDER/hyprpaper.conf exec-once = nm-applet exec-once = dunst exec-once = ~/.config/activePlayer/mediaplayers.sh 2>~/.config/activePlayer/.mediaplayer.err exec-once = hyprpm reload -n exec-once = ydotoold exec-once = bash $APP_FOLDER/waybar/launch.sh exec-once = swayosd-server source = $CONFIG_FOLDER/keybinds.conf # this should always be at the bottom exec-once = dbus-update-activation-environment --systemd --all Config File: /home/zjeffer/.config/hypr/configs/env.conf: Read Succeeded # Some default env vars. env = XCURSOR_SIZE,28 env = LIBVA_DRIVER_NAME,nvidia env = XDG_SESSION_TYPE,wayland env = GBM_BACKEND,nvidia-drm env = __GLX_VENDOR_LIBRARY_NAME,nvidia env = SDL_VIDEODRIVER,wayland env = _JAVA_AWT_WM_NONREPARENTING,1 env = __GL_GSYNC_ALLOWED,0 env = __GL_VRR_ALLOWED,0 env = __GLX_VENDOR_LIBRARY_NAME,nvidia env = WLR_DRM_NO_ATOMIC,1 env = GBM_BACKEND,nvidia-drm env = XDG_CURRENT_DESKTOP,Hyprland env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORMTHEME,qt6ct env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = DESKTOP_SESSION,gnome env = MOZ_ENABLE_WAYLAND,1 # gtk env = GDK_BACKEND,wayland # xdg stuff env = XDG_CONFIG_HOME,$HOME/.config env = XDG_CACHE_HOME,$HOME/.cache env = XDG_DATA_HOME,$HOME/.local/share env = XDG_DATA_DIRS,/usr/local/share:/usr/share env = XDG_CONFIG_DIRS,/etc/xdg # environment variables to use in configs env = EWW_CONFIG_DIR,$HOME/.config/eww env = APP_FOLDER,$HOME/.config/hypr/apps env = PLUGIN_FOLDER,$HOME/.local/share/hyprload/plugins/bin Config File: /home/zjeffer/.config/hypr/configs/general.conf: Read Succeeded general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 10 border_size = 4 col.active_border = rgba(5e81acff) col.inactive_border = rgba(00000000) layout = dwindle } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section preserve_split = true # you probably want this } misc { vrr = 2 no_direct_scanout = false render_ahead_of_time = false focus_on_activate = true force_default_wallpaper = 0 initial_workspace_tracking = 0 } debug { overlay = false disable_logs = false disable_time = false error_limit = 1 error_position = 2 # bottom } opengl { nvidia_anti_flicker = false } Config File: /home/zjeffer/.config/hypr/configs/animations.conf: Read Succeeded animations { enabled = true # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more animation = windows, 1, 1, default animation = windowsOut, 1, 2, default animation = border, 1, 5, default animation = borderangle, 1, 8, default animation = fade, 1, 3, default animation = workspaces, 1, 4, default animation = specialWorkspace, 1, 4, default, slidevert } Config File: /home/zjeffer/.config/hypr/configs/decoration.conf: Read Succeeded decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 5 blur { enabled = true size = 15 passes = 2 ignore_opacity = true new_optimizations = true } drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(2e3440ee) col.shadow_inactive = rgba(00000000) } Config File: /home/zjeffer/.config/hypr/configs/monitors.conf: Read Succeeded # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=desc:California Institute of Technology 0x1600, 2560x1600@165.018997, 1920x0, 1 monitor=desc:Acer Technologies K222HQL T0EEE0018512, 1920x1080, 4480x0, 1 monitor=desc:Philips Consumer Electronics Company PHL 240V5A UK01715035811, 1920x1080, 0x0, 1 monitor=desc:DENON Ltd. DENON-AVR 0x01010101, preferred, auto, 1, mirror, desc:California Institute of Technology 0x1600 # Denon # monitor=desc:DENON Ltd. DENON-AVR 0x01010101, preferred, auto, 1 # Denon monitor=,preferred,auto,1 Config File: /home/zjeffer/.config/hypr/configs/window_rules.conf: Read Succeeded windowrulev2 = float, title:^(Open Folder)$ windowrulev2 = float, title:^(Open File)$ windowrulev2 = float, title:^(Save As)$ windowrulev2 = float, title:^(Friends List)$ windowrulev2 = float, title:^(File Operation Progress)$ windowrulev2 = float, title:^(Firefox — Sharing Indicator)$ windowrulev2 = suppressevent fullscreen,float, title:^(Extension: (Bitwarden - Free Password Manager) - — Mozilla Firefox)$ windowrulev2 = suppressevent fullscreen,float, title:^(Extension: (Bitwarden - Free Password Manager) - Bitwarden — Mozilla Firefox)$ # windowrulev2 = suppressevent fullscreen,tile,class:^(libreoffice.*)$ windowrulev2 = float, class:^(flameshot)$ windowrulev2 = noanim, float, class:^(Rofi)$ windowrulev2 = float, class:^(org.gnome.Calculator)$ # opacity windowrulev2 = opacity 0.85, class:[gG]nome-terminal* windowrulev2 = opacity 0.85, class:kitty windowrulev2 = opacity 0.90, initialTitle:^(Spotify( Premium)?)$ windowrulev2 = opacity 0.90, class:Code windowrulev2 = opacity 0.90, class:Code - Insiders windowrulev2 = opacity 0.90, class:code-url-handler windowrulev2 = opacity 0.90, class:code-insiders-url-handler windowrulev2 = opacity 0.80, class:[Tt]hunar windowrulev2 = opacity 0.70, class:Dunst windowrulev2 = opacity 0.95, class:discord # flameshot workaround windowrulev2=move 0 0,title:^(flameshot) windowrulev2=suppressevent fullscreen,title:^(flameshot) # steam friends list workaround windowrulev2 = stayfocused, title:^()$,class:^(steam)$ windowrulev2 = minsize 200 500, initialTitle:^(Friends List)$,initialClass:^(steam)$ # jellyfin media player # windowrulev2 = tile, initialClass:^(Jellyfin Media Player)$ windowrulev2 = tile, initialTitle:^(Jellyfin Media Player)$ Config File: /home/zjeffer/.config/hypr/configs/input.conf: Read Succeeded # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 touchpad { clickfinger_behavior = true scroll_factor = 0.25 middle_button_emulation = true tap-and-drag = true } sensitivity = -0.5 # -1.0 - 1.0, 0 means no modification. numlock_by_default = 1 repeat_rate = 50 repeat_delay = 200 accel_profile = flat } cursor { no_hardware_cursors = true } # Per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = msft0001:00-04f3:31ad-touchpad sensitivity = 0.4 accel_profile = flat natural_scroll = true } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = true } misc { } Config File: /home/zjeffer/.config/hypr/configs/workspace_rules.conf: Read Succeeded # generated by split-monitor-workspaces plugin source = /tmp/hyprland-workspace-rules workspace = special:special, on-created-empty:kitty, gapsout:96 Config File: /tmp/hyprland-workspace-rules: Read Succeeded workspace = 6,monitor:DP-2,persistent:true workspace = 7,monitor:DP-2,persistent:true workspace = 8,monitor:DP-2,persistent:true workspace = 9,monitor:DP-2,persistent:true workspace = 10,monitor:DP-2,persistent:true workspace = 11,monitor:HDMI-A-1,persistent:true workspace = 12,monitor:HDMI-A-1,persistent:true workspace = 13,monitor:HDMI-A-1,persistent:true workspace = 14,monitor:HDMI-A-1,persistent:true workspace = 15,monitor:HDMI-A-1,persistent:true workspace = 16,monitor:eDP-1,persistent:true workspace = 17,monitor:eDP-1,persistent:true workspace = 18,monitor:eDP-1,persistent:true workspace = 19,monitor:eDP-1,persistent:true workspace = 20,monitor:eDP-1,persistent:true Config File: /home/zjeffer/.config/hypr/configs/plugins.conf: Read Succeeded plugin { split-monitor-workspaces { count = 5 keep_focused = 1 enable_notifications = 0 } } Config File: /home/zjeffer/.config/hypr/configs/keybinds.conf: Read Succeeded # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # window control bind = $mainMod, W, killactive, bind = $mainMod SHIFT, W, exec, kill -9 $(hyprctl activewindow -j | jq -r '.pid') bind = $mainMod CTRL SHIFT, Escape, exit, bind = $mainMod, S, togglefloating, bind = $mainMod, F, fullscreen bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle # reload hyprland and send a inotify reload to waybar at .config/waybar/config.json bind = $mainMod, Escape, exec, hyprctl reload && hyprpm reload && sleep 0.5 && touch -m $APP_FOLDER/waybar/config.jsonc # applications bindr = $mainMod, SUPER_L, exec, ~/.config/rofi/bin/launcher_colorful bind = $mainMod, return, exec, kitty bind = $mainMod SHIFT, return, togglespecialworkspace bind = $mainMod, Z, exec, firefox bind = $mainMod SHIFT, Z, exec, chromium bind = $mainMod, X, exec, thunar bind = $mainMod, A, exec, /usr/bin/spotify --enable-features=UseOzonePlatform --ozone-platform=wayland bind = $mainMod, Q, exec, code bind = $mainMod, D, exec, discord --enable-features=UseOzonePlatform --ozone-platform=wayland bind = ,Print,exec, grimblast copy area bind = $mainMod, Print, exec, grimblast copy output bind = $mainMod SHIFT, C, exec, hyprpicker -a -f hex bind = CTRL SHIFT, Escape, exec, gnome-system-monitor # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # move window with arrow keys bind = $mainMod SHIFT, left, movewindow, l bind = $mainMod SHIFT, right, movewindow, r bind = $mainMod SHIFT, up, movewindow, u bind = $mainMod SHIFT, down, movewindow, d # Tabbed windows bind = $mainMod, g, togglegroup # Switch workspaces with mainMod + [0-5] bind = $mainMod, 1, split-workspace, 1 bind = $mainMod, 2, split-workspace, 2 bind = $mainMod, 3, split-workspace, 3 bind = $mainMod, 4, split-workspace, 4 bind = $mainMod, 5, split-workspace, 5 # Move active window to a workspace with mainMod + SHIFT + [0-5] bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4 bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5 # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, r+1 bind = $mainMod, mouse_up, workspace, r-1 # focus with left/right bracket bind = $mainMod, bracketleft, workspace, r-1 bind = $mainMod, bracketright, workspace, r+1 # move with shift + left/right bracket bind = $mainMod SHIFT, bracketleft, movetoworkspace, r-1 bind = $mainMod SHIFT, bracketright, movetoworkspace, r+1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # media keys bindle = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ bindle = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bind =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle bind =, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle bind =, XF86AudioPlay, exec, ~/.config/activePlayer/control.sh play-pause bind =, XF86AudioPrev, exec, ~/.config/activePlayer/control.sh previous bind =, XF86AudioNext, exec, ~/.config/activePlayer/control.sh next bind =, XF86AudioStop, exec, ~/.config/activePlayer/control.sh stop bind = SHIFT, XF86AudioPrev, exec, ~/.config/activePlayer/control.sh skipBackward bind = SHIFT, XF86AudioNext, exec, ~/.config/activePlayer/control.sh skipForward # brightness binde = , XF86MonBrightnessUp, exec, brightnessctl -d nvidia* set +10% binde = , XF86MonBrightnessDown, exec, brightnessctl -d nvidia* set 10%- # screen lock bindl= , switch:on:Lid Switch, exec, $APP_FOLDER/swaylock/lock.sh && sleep 2 && systemctl suspend-then-hibernate bind = $mainMod, L, exec, hyprlock # forward and back with mouse buttons bind = $mainMod, 123, exec, ydotool key 159:1 159:0 bind = $mainMod, 122, exec, ydotool key 158:1 158:0 # forward global shortcuts bind = $mainMod SHIFT, N, pass, ^(io\.github\.nuttyartist\.notes)$ # passthrough mainMod to virtual machine bind = $mainMod, O, submap, passthru submap = passthru bind = $mainMod, I, submap, reset submap = reset # # ### swayosd ### bind = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume bind = , XF86AudioLowerVolume, exec, swayosd-client --output-volume # # Sink volume toggle mute # bind = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle # # Source volume toggle mute # bind = , XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle # # Brightness raise # bind = , XF86MonBrightnessUp, exec, swayosd-client --brightness raise # # Brightness lower # bind = , XF86MonBrightnessDown, exec, swayosd-client --brightness lower ======Config-End======== ```

Description

A couple of days ago I updated Hyprland to latest master (it was on a version from beginning of June I think), and since then my plugin won't load on boot. The notification says: [hyprpm] Failed to load plugins: Outdated headers. Please run hyprpm update manually.

If I simply reload hyprpm after it's fully booted, they load fine. If I run hyprpm update -v, it doesn't need to update any headers and simply loads the plugins.

Output of hyprpm list:

→ Repository split-monitor-workspaces:
  │ Plugin split-monitor-workspaces
  └─ enabled: true

How to reproduce

  1. Enable a plugin
  2. Restart Hyprland with exec-once = hyprpm reload -n
  3. Notification appears, plugins don't load
  4. manually execute hyprpm reload -n
  5. Plugins now loaded correctly

Crash reports, logs, images, videos

hyprland.log

bisect: b2590b58c51094424a9651d8df37dfab838b5bbb is the first bad commit

@Truenya It doesn't make sense to me why it would stop working with that commit, though. Here's my bisect log:

git bisect start
# status: waiting for both good and bad commits
# good: [9e781040d9067c2711ec2e9f5b47b76ef70762b3] props: bump version to 0.41.1
git bisect good 9e781040d9067c2711ec2e9f5b47b76ef70762b3
# status: waiting for bad commit, 1 good commit known
# bad: [cc98594c3aed0b542e03818371a4636f549f80e1] pointer: update geometry after unplug events
git bisect bad cc98594c3aed0b542e03818371a4636f549f80e1
# bad: [fb15b7aa2a9bba0f0693f84d0c65d386942583f8] core: Move to hyprutils for Math
git bisect bad fb15b7aa2a9bba0f0693f84d0c65d386942583f8
# bad: [2566d818848b58b114071f199ffe944609376270] xwayland: fixup unfocus atom conditions
git bisect bad 2566d818848b58b114071f199ffe944609376270
# bad: [cb63398f079b4b4324c04e2e41ba17983d66487c] [gha] Nix: update inputs
git bisect bad cb63398f079b4b4324c04e2e41ba17983d66487c
# good: [9cd5b3587cb1e3d42b647fa230024cd0153ea9cb] layerSurface: fix layer being refocused every commit with on_demand (#6487)
git bisect good 9cd5b3587cb1e3d42b647fa230024cd0153ea9cb
# bad: [a357fa3e0a60b4f96a1924e0d9753d23001ab00e] window: use effective damage for tearing re-schedules
git bisect bad a357fa3e0a60b4f96a1924e0d9753d23001ab00e
# bad: [a9d53a2252f7ec084e2487d18777e2df01c8c351] vrr: add option to fix mouse breaking vrr (#6483)
git bisect bad a9d53a2252f7ec084e2487d18777e2df01c8c351
# bad: [b2590b58c51094424a9651d8df37dfab838b5bbb] hyprctl: added --follow option to rolliglog (#6325)
git bisect bad b2590b58c51094424a9651d8df37dfab838b5bbb
# first bad commit: [b2590b58c51094424a9651d8df37dfab838b5bbb] hyprctl: added --follow option to rolliglog (#6325)

EDIT: just reproduced it again, the previous commit works fine but b2590b58c51094424a9651d8df37dfab838b5bbb breaks it. Interestingly, adding logs to the hyprpm reload comand (like this exec-one = hyprpm reload -n 2>&1 > ~/hyprpm.log) makes the hyprpm.log file empty on that commit, but correctly shows the output of hyprpm in the previous commit. As if on that commit the hyprpm command is not even run at all? But according to the hyprland logs the hyprpm command does run...

kibirisu commented 2 months ago

I'm having the same exact issue with plugins loading at the second run of the hyprpm reload -n

sayhilel commented 2 months ago

Yes have the same issue on Arch 0.41.2-1

mukkumayc commented 2 months ago

the same

zjeffer commented 2 months ago

@Truenya Have you had a chance to look at this yet?

Truenya commented 2 months ago

Omw

Truenya commented 2 months ago

manual make all && hyprctl plugin load /home/... working good, so problem is somewhere in hyprpm

zjeffer commented 2 months ago

Doesn't hyprpm call hyprctl somehow? Maybe something goes wrong in how it calls it?

sayhilel commented 2 months ago

Not sure about others but this issue is resolved for me in arch/extra release 0.41.2-3

zjeffer commented 2 months ago

That's strange, 0.41.2 contains the commit that breaks it for me.

sayhilel commented 2 months ago

Nvm you are right, so it somehow fixed it self for me or atleast I don't need to rerun hyprpm reload after boot to get rid of error.

zjeffer commented 2 months ago

I see in your dotfiles you run hyprpm reload -n twice? https://github.com/sayhilel/dotfiles/blob/11deb127bcdf2c6c0b6009be5a69558bc522c350/.config/hypr/hyprland.conf#L70-L71

sayhilel commented 2 months ago

Yeah I did that thinking that would help, I don't think it did. I only have one reload on the my local version.

zjeffer commented 2 months ago

Indeed, doesn't seem to help when I try it.

zjeffer commented 2 months ago

After some debugging I managed to narrow down the problem to the execAndGet method.

hyprpm does actually run during exec-once, it simply fails when it tries to get the current hash using the getHyprlandVersion method:

https://github.com/hyprwm/Hyprland/blob/381cb2d8330d09f8994ca01591fb3e3737e6a67a/hyprpm/src/core/PluginManager.cpp#L48

After adding some logging, the result of execAndGet is this:

Hyprland IPC didn't respond in time
Couldn't read (5)

which is logged from here: https://github.com/hyprwm/Hyprland/blob/381cb2d8330d09f8994ca01591fb3e3737e6a67a/hyprctl/main.cpp#L195-L196

I think it's due to these lines which were added in b2590b58c51094424a9651d8df37dfab838b5bbb:

https://github.com/hyprwm/Hyprland/blob/381cb2d8330d09f8994ca01591fb3e3737e6a67a/hyprctl/main.cpp#L144-L145

Testing this now

zjeffer commented 2 months ago

Yep, commenting those two lines (144 & 145 in hyprctl/main.cpp) makes hyprpm work at boot again. I don't really know much about sockets so I don't know how to actually fix it properly, @Truenya can you do this?

Truenya commented 2 months ago

Maybe simple read retries in for loop could solve this problem. EWOULDBLOCK is equal to EAGAIN, which means try again. Or making timeout more(2 seconds is not so much).

zjeffer commented 1 month ago

I just tested with 5 seconds and it worked. Why is 1 second not enough, though?