mirror of
https://github.com/alvinlollo/Single-install-script.git
synced 2026-06-24 08:12:51 +10:00
Add fix for nwg displays
This commit is contained in:
Executable
+52
@@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Fixes nwg-displays not auto-updating monitor/workspace configs on hyprctl reload
|
||||||
|
# in Hyprland 0.55+ Lua-based configs.
|
||||||
|
#
|
||||||
|
# Problem: require() caches modules in package.loaded, so updated monitors.lua
|
||||||
|
# is ignored on config reload. Solution: clear the cache before require().
|
||||||
|
# See https://lua.org/manual/5.1/manual.html#pdf-require
|
||||||
|
|
||||||
|
HYPR_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
|
||||||
|
MAIN_LUA="$HYPR_DIR/hyprland.lua"
|
||||||
|
|
||||||
|
if [ ! -f "$MAIN_LUA" ]; then
|
||||||
|
echo "Error: $MAIN_LUA not found. Is Hyprland 0.55+ configured with Lua?"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create a backup
|
||||||
|
cp "$MAIN_LUA" "$MAIN_LUA.bak"
|
||||||
|
echo "Backup saved: $MAIN_LUA.bak"
|
||||||
|
|
||||||
|
patched=0
|
||||||
|
|
||||||
|
# Fix monitors section
|
||||||
|
if grep -q '^if is_file_exists(HOME .. "/.config/hypr/monitors.lua") then' "$MAIN_LUA" && \
|
||||||
|
! grep -q 'package.loaded\["monitors"\]' "$MAIN_LUA"; then
|
||||||
|
sed -i '/^if is_file_exists(HOME .. "\/.config\/hypr\/monitors.lua") then$/a\ package.loaded["monitors"] = nil' "$MAIN_LUA"
|
||||||
|
echo "Patched: monitors.lua require() cache cleared"
|
||||||
|
patched=1
|
||||||
|
else
|
||||||
|
echo "Skipped monitors: already patched or not found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fix workspaces section
|
||||||
|
if grep -q '^if is_file_exists(HOME .. "/.config/hypr/workspaces.lua") then' "$MAIN_LUA" && \
|
||||||
|
! grep -q 'package.loaded\["workspaces"\]' "$MAIN_LUA"; then
|
||||||
|
sed -i '/^if is_file_exists(HOME .. "\/.config\/hypr\/workspaces.lua") then$/a\ package.loaded["workspaces"] = nil' "$MAIN_LUA"
|
||||||
|
echo "Patched: workspaces.lua require() cache cleared"
|
||||||
|
patched=1
|
||||||
|
else
|
||||||
|
echo "Skipped workspaces: already patched or not found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$patched" -eq 1 ]; then
|
||||||
|
echo ""
|
||||||
|
echo "Done! Run 'hyprctl reload' or restart Hyprland for the fix to take effect."
|
||||||
|
echo "nwg-displays changes should now apply immediately."
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "No changes needed."
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user