hyprsaver

This commit is contained in:
2026-09-23 23:05:54 +02:00
parent a8947283a5
commit 30619b00ce
6 changed files with 80 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
# hypridle.conf — idle stages: hyprsaver (5min) -> Noctalia lock (10min) -> DPMS off.
# Managed by dotfiles (stow hypr).
#
# NOTE: this Hyprland (hyprmod Lua runtime, 0.56.x) evaluates `hyprctl dispatch`
# args as Lua — classic `dispatch dpms off` syntax fails. Dispatchers must be
# hl.dsp.* expressions (e.g. hl.dsp.dpms(false)).
general {
lock_cmd = pidof -q noctalia || noctalia msg session lock
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = hyprctl dispatch 'hl.dsp.dpms(true)'
}
# 5min: GPU screensaver (wlr-layer-shell overlay, any input dismisses it).
listener {
timeout = 300
on-timeout = hyprsaver
on-resume = hyprsaver --quit
}
# 10min: lock via Noctalia (SUPER+L runs the same command).
listener {
timeout = 600
on-timeout = loginctl lock-session
}
# 10m30s: power off displays.
listener {
timeout = 630
on-timeout = hyprctl dispatch 'hl.dsp.dpms(false)'
on-resume = hyprctl dispatch 'hl.dsp.dpms(true)'
}
+4
View File
@@ -32,6 +32,10 @@ hl.on("hyprland.start", function()
hl.exec_cmd("noctalia &")
end)
hl.on("hyprland.start", function()
hl.exec_cmd("hypridle &")
end)
hl.on("hyprland.start", function()
hl.exec_cmd("sh ~/.config/hypr/scripts/portal-host-override.sh")
hl.exec_cmd("sh ~/.config/hypr/scripts/ensure-mime-defaults.sh")
+40
View File
@@ -0,0 +1,40 @@
# hyprsaver.toml — chill playlist: calm shaders + cool palettes, cycling.
# Location: ~/.config/hypr/hyprsaver.toml (stowed from dotfiles).
# Names verified against `hyprsaver --list-shaders` / `--list-palettes`.
# Everything else uses hyprsaver's built-in defaults (see
# /usr/share/hyprsaver/examples/config.toml for the full reference).
[general]
fps = 30
shader = "cycle"
palette = "cycle"
shader_cycle_interval = 300
palette_cycle_interval = 60
cycle_order = "random"
synced = true
shader_playlist = "chill"
palette_playlist = "chill"
[playlists.chill]
shaders = [
"plasma",
"marble",
"snowfall",
"aurora",
"clouds",
"planet",
"starfield",
"fireflies",
]
palettes = [
"vaporwave",
"frost",
"ocean",
"aurora",
]
[behavior]
fade_in_ms = 800
fade_out_ms = 400
dismiss_on = ["key", "mouse_move", "mouse_click", "touch"]
exclusive_keyboard = true
+1
View File
@@ -226,5 +226,6 @@ hl.bind("SHIFT + PRINT", hl.dsp.exec_cmd("hyprshot -m active --output-folder " .
})
hl.bind(var.mainMod .. " + L", hl.dsp.exec_cmd(command.lock), { locked = true, description = "Lock screen" })
hl.bind(var.mainMod .. " + SHIFT + L", hl.dsp.exec_cmd(command.screensaver), { description = "Start screensaver (any key quits)" })
hl.bind(var.mainMod .. " + K", hl.dsp.exec_cmd(command.keybinds_show), { description = "Show keybind overview" })
hl.bind(var.mainMod .. " + W", hl.dsp.exec_cmd(command.wallpaper_select), { description = "Wallpaper select" })
@@ -7,6 +7,7 @@ return {
settings = "noctalia msg settings-toggle",
control_center = "noctalia msg panel-toggle control-center",
lock = "noctalia msg session lock",
screensaver = "hyprsaver",
wallpaper_select = "noctalia msg panel-toggle wallpaper",
keybinds_show = "sh ~/.config/hypr/scripts/show-keybinds.sh",
}
+2
View File
@@ -12,6 +12,7 @@
@pacman
hyprland
hypridle
xdg-desktop-portal-hyprland
hyprpolkitagent
pantheon-shortcut-overlay
@@ -23,3 +24,4 @@ noctalia
@aur
hyprmod
hyprsaver