feat(install): add hyprlock, mako, and a rofi power menu

- files/hypr/hyprlock.conf: blurred-screenshot lock with Kanagawa clock,
  date, user label, and rounded password input (green/red on success/fail)
- files/mako/config: Kanagawa Wave notifications, JetBrainsMono Nerd Font,
  per-urgency border colors, critical stays until dismissed
- files/bin/power-menu: rofi-driven Lock/Suspend/Logout/Reboot/Shutdown,
  bound to Super+Shift+E and the Waybar power button
- lib/hyprland.sh: link the three new pieces (hyprlock.conf, mako/config,
  ~/.local/bin/power-menu)
This commit is contained in:
Claude 2026-06-09 15:24:32 +00:00
parent 15e70e539d
commit 6577def1b5
No known key found for this signature in database
7 changed files with 159 additions and 3 deletions

View file

@ -76,6 +76,18 @@ backlight, battery, and a power button.
fuzzy-matched, icon-enabled launcher themed Kanagawa Wave. Modes: `drun`, fuzzy-matched, icon-enabled launcher themed Kanagawa Wave. Modes: `drun`,
`run`, `window`, `ssh`. `run`, `window`, `ssh`.
**Hyprlock config:** symlinks `~/.config/hypr/hyprlock.conf` — blurred
screenshot background, large Kanagawa-style clock, date, user, and a rounded
password input that turns green on success, red on fail.
**Mako config:** symlinks `~/.config/mako/config` — Kanagawa Wave colors,
top-right anchored, JetBrainsMono Nerd Font, per-urgency border colors
(grey/blue/red), critical notifications stay until dismissed.
**Power menu:** symlinks `install/files/bin/power-menu` to `~/.local/bin/`
a rofi-driven menu with Lock / Suspend / Logout / Reboot / Shutdown.
Bound to **Super + Shift + E** in Hyprland and to the Waybar power button.
**Services enabled:** `sddm`, `NetworkManager`, `bluetooth`; user-level **Services enabled:** `sddm`, `NetworkManager`, `bluetooth`; user-level
`pipewire`, `pipewire-pulse`, `wireplumber`. `pipewire`, `pipewire-pulse`, `wireplumber`.
@ -91,7 +103,8 @@ switched to `zsh`.
| Super + E | Nautilus | | Super + E | Nautilus |
| Super + D | Rofi (app launcher) | | Super + D | Rofi (app launcher) |
| Super + Tab | Rofi window switcher | | Super + Tab | Rofi window switcher |
| Super + L | Lock | | Super + L | Lock (hyprlock) |
| Super + Shift + E | Power menu (lock/suspend/logout/reboot/shutdown) |
| Super + Q | Close window | | Super + Q | Close window |
| Super + Shift + M | Exit Hyprland | | Super + Shift + M | Exit Hyprland |
| Super + V / F | Float / Fullscreen | | Super + V / F | Float / Fullscreen |
@ -124,4 +137,6 @@ install/
files/hypr/ starter Hyprland config files/hypr/ starter Hyprland config
files/waybar/ Kanagawa-themed Waybar config files/waybar/ Kanagawa-themed Waybar config
files/rofi/ Kanagawa-themed Rofi launcher files/rofi/ Kanagawa-themed Rofi launcher
files/mako/ Kanagawa-themed notifications
files/bin/ Helper scripts (power-menu)
``` ```

24
install/files/bin/power-menu Executable file
View file

@ -0,0 +1,24 @@
#!/bin/bash
# Rofi-driven power menu. Bound to Super+Shift+E in Hyprland and to the
# Waybar power button. Pick once -> action runs immediately.
set -euo pipefail
entries=(
" Lock"
"󰒲 Suspend"
" Logout"
" Reboot"
" Shutdown"
)
choice=$(printf '%s\n' "${entries[@]}" |
rofi -dmenu -i -p "Power" -theme-str 'window { width: 18em; } listview { lines: 5; }') || exit 0
case "$choice" in
*Lock*) hyprlock ;;
*Suspend*) hyprlock & sleep 1 ; systemctl suspend ;;
*Logout*) hyprctl dispatch exit ;;
*Reboot*) systemctl reboot ;;
*Shutdown*) systemctl poweroff ;;
esac

View file

@ -0,0 +1,78 @@
# Kanagawa Wave themed lock screen.
# Test: hyprlock --immediate
general {
grace = 0
hide_cursor = true
no_fade_in = false
}
background {
monitor =
path = screenshot
blur_passes = 3
blur_size = 8
contrast = 0.9
brightness = 0.75
vibrancy = 0.17
}
# Clock
label {
monitor =
text = cmd[update:1000] echo "$(date +"%H:%M")"
color = rgba(220, 215, 186, 1.0) # Kanagawa fg
font_size = 120
font_family = JetBrainsMono Nerd Font Bold
position = 0, 200
halign = center
valign = center
}
# Date
label {
monitor =
text = cmd[update:60000] echo "$(date +"%A, %B %d")"
color = rgba(200, 192, 147, 0.9) # Kanagawa fg-dim
font_size = 22
font_family = JetBrainsMono Nerd Font
position = 0, 90
halign = center
valign = center
}
# User
label {
monitor =
text = $USER
color = rgba(126, 156, 216, 1.0) # Kanagawa blue
font_size = 16
font_family = JetBrainsMono Nerd Font
position = 0, -60
halign = center
valign = center
}
# Password input
input-field {
monitor =
size = 320, 56
outline_thickness = 2
dots_size = 0.30
dots_spacing = 0.30
dots_center = true
outer_color = rgba(126, 156, 216, 0.9) # blue border
inner_color = rgba(31, 31, 40, 0.55) # bg w/ alpha
font_color = rgba(220, 215, 186, 1.0)
fade_on_empty = false
placeholder_text = <i>password</i>
hide_input = false
rounding = 12
check_color = rgba(152, 187, 108, 1.0) # green on success
fail_color = rgba(232, 36, 36, 1.0) # red on fail
fail_text = <i>$FAIL ($ATTEMPTS)</i>
capslock_color = rgba(255, 160, 102, 1.0)
position = 0, -120
halign = center
valign = center
}

View file

@ -11,6 +11,7 @@ bind = $mainMod, E, exec, $fileManager
bind = $mainMod, D, exec, $menu bind = $mainMod, D, exec, $menu
bind = $mainMod, TAB, exec, rofi -show window bind = $mainMod, TAB, exec, rofi -show window
bind = $mainMod, L, exec, hyprlock bind = $mainMod, L, exec, hyprlock
bind = $mainMod SHIFT, E, exec, ~/.local/bin/power-menu
bind = $mainMod, Q, killactive, bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, M, exit, bind = $mainMod SHIFT, M, exit,
bind = $mainMod, V, togglefloating, bind = $mainMod, V, togglefloating,

32
install/files/mako/config Normal file
View file

@ -0,0 +1,32 @@
# Kanagawa Wave themed mako notifications.
# Reload after editing: makoctl reload
font=JetBrainsMono Nerd Font 11
anchor=top-right
layer=overlay
margin=12
padding=14
border-size=2
border-radius=10
max-icon-size=48
icon-location=left
default-timeout=5000
ignore-timeout=0
group-by=app-name
background-color=#1f1f28e0
text-color=#dcd7ba
border-color=#7e9cd8
progress-color=over #2d4f67
[urgency=low]
border-color=#54546d
default-timeout=3000
[urgency=normal]
border-color=#7e9cd8
[urgency=critical]
border-color=#e82424
background-color=#1f1f28f5
default-timeout=0

View file

@ -71,6 +71,6 @@
"custom/power": { "custom/power": {
"format": "⏻", "format": "⏻",
"tooltip": false, "tooltip": false,
"on-click": "rofi -show drun -p Power" "on-click": "~/.local/bin/power-menu"
} }
} }

View file

@ -7,7 +7,7 @@ link_hyprland_config() {
local src="$INSTALL_FILES/hypr" local src="$INSTALL_FILES/hypr"
local dest="$HOME/.config/hypr" local dest="$HOME/.config/hypr"
local f local f
for f in hyprland.conf monitors.conf env.conf input.conf keybinds.conf autostart.conf; do for f in hyprland.conf monitors.conf env.conf input.conf keybinds.conf autostart.conf hyprlock.conf; do
backup_and_link "$src/$f" "$dest/$f" backup_and_link "$src/$f" "$dest/$f"
done done
@ -20,4 +20,10 @@ link_hyprland_config() {
for f in config.rasi kanagawa.rasi; do for f in config.rasi kanagawa.rasi; do
backup_and_link "$INSTALL_FILES/rofi/$f" "$HOME/.config/rofi/$f" backup_and_link "$INSTALL_FILES/rofi/$f" "$HOME/.config/rofi/$f"
done done
info "Linking Mako config..."
backup_and_link "$INSTALL_FILES/mako/config" "$HOME/.config/mako/config"
info "Linking power-menu into ~/.local/bin..."
backup_and_link "$INSTALL_FILES/bin/power-menu" "$HOME/.local/bin/power-menu"
} }