Final commit before Phase II enhancements

This commit is contained in:
2026-07-21 23:25:07 -04:00
parent 19594ff8b3
commit 60fe219ff7
7 changed files with 60 additions and 39 deletions
+5
View File
@@ -0,0 +1,5 @@
return {
active_border = "rgba(b4d088ff)",
inactive_border = "rgba(45483daa)",
shadow = "rgba(12140ebf)",
}
+10 -10
View File
@@ -397,16 +397,16 @@ function M.setupMonitors()
-- Dynamically spawn waybar only for connected monitors, and use a robust kill sequence
-- inside the background script to prevent race conditions during rapid hotplug events
local waybar_cmds = {
"killall -q waybar",
"sleep 0.5",
"killall -q waybar"
}
for logical, _ in pairs(logical_to_physical) do
table.insert(waybar_cmds, string.format("nohup waybar -c ~/.config/waybar/config-%s.jsonc -s ~/.config/waybar/style-%s.css >/dev/null 2>&1 &", logical, logical))
end
hl.dispatch(hl.dsp.exec_cmd("bash -c '" .. table.concat(waybar_cmds, "\n") .. "'"))
-- local waybar_cmds = {
-- "killall -q waybar",
-- "sleep 0.5",
-- "killall -q waybar"
-- }
-- for logical, _ in pairs(logical_to_physical) do
-- table.insert(waybar_cmds, string.format("nohup waybar -c ~/.config/waybar/config-%s.jsonc -s ~/.config/waybar/style-%s.css >/dev/null 2>&1 &", logical, logical))
-- end
--
-- hl.dispatch(hl.dsp.exec_cmd("bash -c '" .. table.concat(waybar_cmds, "\n") .. "'"))
end
return M
+27 -13
View File
@@ -5,7 +5,7 @@
-----------------------------------------------------
local copy = "wl-copy --trim-newline"
local paste = "wl-paste"
local launcher = "rofi -show run -p 'launch'"
local launcher = "ags request \"launcher:app\""
-- local clear = "cliphist list | head -n1 | cliphist delete"
@@ -37,14 +37,16 @@ hl.env("XDG_SESSION_DESKTOP", "Hyprland")
-----------------------------------------------------
-- Appearance & Input (from appearance.conf & input.conf)
-----------------------------------------------------
local colors = require("colors")
hl.config({
general = {
gaps_in = 1,
gaps_out = 2,
border_size = 2,
col = {
active_border = "rgba(fabd2f99)",
inactive_border = "rgba(595959aa)",
active_border = colors.active_border,
inactive_border = colors.inactive_border,
},
resize_on_border = false,
allow_tearing = false,
@@ -58,9 +60,10 @@ hl.config({
inactive_opacity = 1.0,
shadow = {
enabled = true,
range = 4,
range = 25,
render_power = 3,
color = "rgba(1a1a1aee)"
color = colors.shadow,
color_inactive = colors.shadow
},
blur = {
enabled = true,
@@ -165,6 +168,14 @@ hl.window_rule({ workspace = "name:browser silent", match = { class = browsers }
hl.window_rule({ workspace = "name:jobs silent", match = { class = ".*[Vv]ivaldi-stable.*" } })
hl.window_rule({ workspace = "name:meeting silent", match = { class = meeting } })
-----------------------------------------------------
-- Layer Rules
-----------------------------------------------------
hl.layer_rule({ blur = true, ignore_alpha = 0.1, match = { namespace = "^bar.*" } })
hl.layer_rule({ blur = true, ignore_alpha = 0.1, match = { namespace = "^dashboard" } })
hl.layer_rule({ blur = true, ignore_alpha = 0.1, match = { namespace = "^dimmer.*" } })
-----------------------------------------------------
-- Workspaces (from workspaces.conf)
@@ -179,7 +190,7 @@ local bind = hl.bind
local dsp = hl.dsp
local fn = require("functions")
bind("SUPER + Q", dsp.exec_cmd("hyprctl reload && hyprctl eval 'require(\"functions\").setupMonitors()' && notify-send 'Hyprland' 'Config Reloaded' -u low -t 2000"))
bind("SUPER + Q", dsp.exec_cmd("hyprctl reload && hyprctl eval 'require(\"functions\").setupMonitors()' && notify-send 'Hyprland' 'Config Reloaded' -u low -t 2000; ags quit; ags run &"))
-- BUG FIX: SUPER + SHIFT + Q was bound to both tmux kill and uwsm stop.
-- bind("SUPER + SHIFT + Q", dsp.exec_cmd("tmux kill-server"))
bind("SUPER + SHIFT + Q", dsp.exec_cmd("killall -q signal-desktop; uwsm stop"))
@@ -209,7 +220,9 @@ bind("SUPER + ALT + H", function() fn.focusOrLaunch("qutebrowser", "org.qutebrow
bind("SUPER + S", dsp.exec_cmd(launcher)) -- Win+S for Search/Launcher
bind("SUPER + R", dsp.exec_cmd(launcher)) -- Win+R for Run
bind("SUPER + E", dsp.exec_cmd("nautilus")) -- Win+E for Explorer
bind("SUPER + V", dsp.exec_cmd("cliphist list | rofi -dmenu -p 'paste' | cliphist decode | " .. copy .. " && " .. paste)) -- Win+V for Clipboard
bind("SUPER + O", dsp.exec_cmd("ags request \"launcher:open\"")) -- Win+O for Open File
bind("SUPER + SHIFT + O", dsp.exec_cmd("ags request \"launcher:openwith\"")) -- Win+Shift+O for Open With
bind("SUPER + V", dsp.exec_cmd("ags request \"launcher:cliphist\"")) -- Win+V for Clipboard
bind("SUPER + SHIFT + S", function() fn.focusOrLaunch("pavucontrol", "org.pulseaudio.pavucontrol", "org.pulseaudio.pavucontrol") end)
-- Window control
@@ -230,7 +243,7 @@ local function cycle_layout()
hl.config({ general = { layout = new_layout } })
os.execute("echo '" .. layout_icons[new_layout] .. "' > /tmp/hypr_layout.txt")
os.execute("pkill -RTMIN+8 waybar")
-- os.execute("pkill -RTMIN+8 waybar")
end
bind("SUPER + right", function() cycle_layout() end)
@@ -244,16 +257,16 @@ bind("SUPER + K", hl.dsp.window.cycle_next({ prev = true }))
bind("ALT + Tab", hl.dsp.window.cycle_next())
bind("ALT + SHIFT + Tab", hl.dsp.window.cycle_next({ prev = true }))
bind("SUPER + X", dsp.exec_cmd("dunstctl close"))
bind("SUPER + Y", dsp.exec_cmd("dunstctl close-all"))
bind("SUPER + X", dsp.exec_cmd("ags request close-notification"))
bind("SUPER + Y", dsp.exec_cmd("ags request close-all-notifications"))
-- Workspace control
bind("SUPER + CTRL + right", function() hl.dispatch(hl.dsp.focus({ workspace = "m+1" })) end)
bind("SUPER + CTRL + left", function() hl.dispatch(hl.dsp.focus({ workspace = "m-1" })) end)
bind("SUPER + SHIFT + H", function() hl.dispatch(hl.dsp.focus({ workspace = "m-1" })) end)
bind("SUPER + SHIFT + L", function() hl.dispatch(hl.dsp.focus({ workspace = "m+1" })) end)
bind("SUPER + SHIFT + M", function() fn.mv2workspace() end)
bind("SUPER + SHIFT + N", function() fn.createWorkspace() end)
bind("SUPER + SHIFT + M", dsp.exec_cmd("ags request \"launcher:movetoworkspace\""))
bind("SUPER + SHIFT + N", dsp.exec_cmd("ags request \"launcher:workspace\""))
bind("SUPER + SHIFT + X", function() fn.deleteWorkspace() end)
bind("SUPER + SHIFT + Z", function() fn.createWorkspace(fn.getActiveWorkspaceName()) end)
bind("SUPER + SHIFT + left", function() fn.moveWorkspace(-1) end)
@@ -286,8 +299,9 @@ hl.on("hyprland.start", function()
hl.exec_cmd("uwsm app -- hypridle")
hl.exec_cmd("hyprpaper &")
-- Waybar is now managed entirely by functions.setupMonitors()
hl.exec_cmd("uwsm app -- ags run")
hl.exec_cmd("uwsm app -- espanso start")
hl.exec_cmd("uwsm app -- dunst")
-- hl.exec_cmd("uwsm app -- dunst") -- Replaced with AGS Notifd
hl.exec_cmd("nm-applet")
hl.exec_cmd("signal-desktop")
hl.exec_cmd("hp-systray")
+5 -5
View File
@@ -3,18 +3,18 @@ splash = false
wallpaper {
monitor = eDP-1
path = /home/trey/images/Seven Beats Music/2025-02-24.jpg
path = /home/trey/images/Seven Beats Music/2024-07-15.jpg
fit_mode = cover
}
wallpaper {
monitor = DP-9
path = /home/trey/images/Seven Beats Music/2024-09-09.jpg
monitor = DP-7
path = /home/trey/images/Seven Beats Music/2024-12-09.jpg
fit_mode = cover
}
wallpaper {
monitor = DP-10
path = /home/trey/images/Seven Beats Music/2026-01-26.jpg
monitor = DP-8
path = /home/trey/images/Seven Beats Music/2024-10-14.jpg
fit_mode = cover
}
+1 -1
View File
@@ -4,7 +4,7 @@
# application related scripts and commands
$app = ~/.config/hypr/scripts/focusOrLaunch
$launcher = rofi -show run -p "launch"
$launcher = ags request "launcher:app"
$timetracker_prompt = ~/.config/hypr/scripts/timetracker-log-prompt
$timetracker_print = ~/.config/hypr/scripts/timetracker-log-print
$selection = rofi -dmenu -theme-str 'inputbar {enabled: false;}' -i -matching prefix -auto-select -l 2
+11 -8
View File
@@ -20,23 +20,26 @@ while true; do
if [ "$STATUS" == "Discharging" ] && [ "$CAPACITY" -le 5 ]; then
if [ ! -f "/run/user/${UID}/battery_low" ]; then
logger "Low power! Triggering notification...."
dunstify --urgency=critical \
# -p returns the ID so we can close it later
NOTIF_ID=$(dunstify --urgency=critical \
-p \
--icon=/usr/share/icons/breeze-dark/emblems/16/emblem-warning.svg \
"LOW BATTERY!" \
"Battery level is at ${CAPACITY}%, plug power quick!"
touch "/run/user/${UID}/battery_low"
"Battery level is at ${CAPACITY}%, plug power quick!")
echo "$NOTIF_ID" > "/run/user/${UID}/battery_low"
fi
# Clear the notification if we plug back in and rise above 5%
elif [ "$STATUS" == "Charging" ] && [ "$CAPACITY" -gt 5 ]; then
if [ -f "/run/user/${UID}/battery_low" ]; then
logger "Power reconnected and above 5 percent, clearing notification state."
rm -f "/run/user/${UID}/battery_low"
# Find and close the specific dunst notification by ID
for id in $(dunstctl history | jq '.data[0][] | select(.summary.data == "LOW BATTERY!") | .id.data'); do
dunstify --close=${id}
done
NOTIF_ID=$(cat "/run/user/${UID}/battery_low")
if [ -n "$NOTIF_ID" ]; then
dunstify --close=$NOTIF_ID
fi
rm -f "/run/user/${UID}/battery_low"
fi
fi
-1
View File
@@ -5,5 +5,4 @@ return {
{ name = "work", monitor = "desc:Ancor Communications Inc ASUS VS228 E3LMTF071438" },
{ name = "meeting", monitor = "eDP-1" },
{ name = "monitoring", monitor = "eDP-1" },
{ name = "blah", monitor = "DP-8" },
}