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:
parent
15e70e539d
commit
6577def1b5
7 changed files with 159 additions and 3 deletions
|
|
@ -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
24
install/files/bin/power-menu
Executable 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
|
||||||
78
install/files/hypr/hyprlock.conf
Normal file
78
install/files/hypr/hyprlock.conf
Normal 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
|
||||||
|
}
|
||||||
|
|
@ -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
32
install/files/mako/config
Normal 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
|
||||||
|
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue