Final commit before Phase II enhancements
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
active_border = "rgba(b4d088ff)",
|
||||
inactive_border = "rgba(45483daa)",
|
||||
shadow = "rgba(12140ebf)",
|
||||
}
|
||||
+10
-10
@@ -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
@@ -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
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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" },
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user