Clear cached omarchy Lua modules on hyprctl reload
Lua's require() caches modules in package.loaded; without explicit invalidation, changes to default/hypr/*.lua or ~/.config/hypr/*.lua won't take effect after hyprctl reload even though hyprland.lua itself re-runs. The clear runs unconditionally — benefits both dev-link workflows (checkout files re-evaluate after every reload) and normal users who edit their own ~/.config/hypr/*.lua and run omarchy-restart-hyprctl. Cost is negligible: package.loaded has a handful of entries. Pattern matches the require_all.lua reload option (which sets package.loaded[module] = nil before require()), but applied broadly to the omarchy module namespace at the entry point so individual modules don't need to opt in.
This commit is contained in:
@@ -1,5 +1,16 @@
|
|||||||
-- Learn how to configure Hyprland: https://wiki.hypr.land/Configuring/Start/
|
-- Learn how to configure Hyprland: https://wiki.hypr.land/Configuring/Start/
|
||||||
|
|
||||||
|
-- Force re-evaluation of Omarchy modules on every hyprctl reload. Lua caches
|
||||||
|
-- already-required modules in package.loaded, so without this clear, changes
|
||||||
|
-- to default/hypr/*.lua (and user ~/.config/hypr/*.lua) in a checkout wouldn't
|
||||||
|
-- take effect after `hyprctl reload` even though hyprland.lua re-runs.
|
||||||
|
-- Cheap: package.loaded is small.
|
||||||
|
for k in pairs(package.loaded) do
|
||||||
|
if k:match("^default%.hypr") or k:match("^hypr%.") then
|
||||||
|
package.loaded[k] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Load user modules from ~/.config and Omarchy defaults from $OMARCHY_PATH.
|
-- Load user modules from ~/.config and Omarchy defaults from $OMARCHY_PATH.
|
||||||
package.path = os.getenv("HOME")
|
package.path = os.getenv("HOME")
|
||||||
.. "/.config/?.lua;"
|
.. "/.config/?.lua;"
|
||||||
|
|||||||
Reference in New Issue
Block a user