Skip to content

Existing ~/.config/hypr/hyprland.lua not migrated to load default.hypr.helpers after 4.0 update — attempt to index a nil value (global 'o') #5879

Description

@Cyrus-n8n

What happened

After updating omarchy (Hyprland 0.55.2, omarchy 4.0.0.alpha), hyprctl configerrors reports a cascade of Lua errors:

require("default.hypr.autostart"):            .../default/hypr/autostart.lua:1:  attempt to index a nil value (global 'o')
require("default.hypr.bindings.media"):       .../media.lua:2:                    attempt to index a nil value (global 'o')
require("default.hypr.bindings.clipboard"):   .../clipboard.lua:13:               attempt to index a nil value (global 'o')
require("default.hypr.bindings.tiling-v2"):   .../tiling-v2.lua:1:                attempt to index a nil value (global 'o')
require("default.hypr.bindings.utilities"):   .../utilities.lua:1:                attempt to index a nil value (global 'o')
require("default.hypr.windows"):              .../windows.lua:3:                  attempt to index a nil value (global 'o')

As a side effect, none of the autostart processes are launched (waybar, swaybg, hypridle, fcitx5, polkit agent, omarchy-hyprland-monitor-watch) — black screen on login with the red "Your config has errors" banner.

Root cause

default/hypr/helpers.lua defines the global o used by every other default module. The new stock entrypoint default/hypr/omarchy.lua requires it on line 3:

require("default.hypr.helpers")

But my pre-existing ~/.config/hypr/hyprland.lua (created on an earlier omarchy version) does not require helpers — and the 4.0 update did not ship a migration that backfills the line. So every subsequent require("default.hypr.*") blows up because o is nil.

The fix in my case was one line:

 local paths = require("default.hypr.paths")
+require("default.hypr.helpers")

 -- Use Omarchy defaults, but don't edit these directly.
 require("default.hypr.autostart")

After that, hyprctl reload runs clean and autostart fires normally on next login.

Suggested fix

Add a migration that, for users whose ~/.config/hypr/hyprland.lua requires any default.hypr.* module but does not require default.hypr.helpers, inserts the line right after require("default.hypr.paths") (or at the top of the defaults block).

System

  • omarchy: 4.0.0.alpha
  • Hyprland: 0.55.2
  • Arch (CachyOS) — surfaced immediately after omarchy update

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions