[Hypr] hyprlock, hypridle

This commit is contained in:
2026-04-10 23:05:23 +02:00
parent d943a80530
commit 19faeed49e
6 changed files with 153 additions and 109 deletions

27
.config/hypr/battery.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
# Get the current battery percentage
battery_percentage=$(cat /sys/class/power_supply/BAT0/capacity)
# Get the battery status (Charging or Discharging)
battery_status=$(cat /sys/class/power_supply/BAT0/status)
# Define the battery icons for each 10% segment
battery_icons=("󰂃" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰁹")
# Define the charging icon
charging_icon="󰂄"
# Calculate the index for the icon array
icon_index=$((battery_percentage / 10))
# Get the corresponding icon
battery_icon=${battery_icons[icon_index]}
# Check if the battery is charging
if [ "$battery_status" = "Charging" ]; then
battery_icon="$charging_icon"
fi
# Output the battery percentage and icon
echo "$battery_percentage% $battery_icon"

View File

@@ -10,41 +10,27 @@
$LOCKSCREEN = lockscreen.sh # Calls $LOCKSCREEN set from hyprland
general {
lock_cmd = $LOCKSCREEN
unlock_cmd = #notify-send "unlock!" # same as above, but unlock
before_sleep_cmd = $LOCKSCREEN # command ran before sleep
after_sleep_cmd = # notify-send "Awake!" # command ran after sleep
ignore_dbus_inhibit = 0
lock_cmd = pidof hyprlock || hyprlock
on_unlock_cmd = bash -c 'notify-send "Welcome back!"'
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = bash -c 'brightnessctl -r; brightnessctl -d tpacpi::kbd_backlight set 1; hyprctl dispatch dpms on'
}
# Dims the display
listener {
timeout = 120
on-timeout = { brightnessctl -s && brightnessctl s 1% ;}
on-resume = brightnessctl -r
timeout = 210 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
# Lock it first before dpms off so that screen won't show for a moment after wake up.
listener {
timeout = 240
on-timeout = $LOCKSCREEN
timeout = 220 # 3.6 minutes
on-timeout = bash -c 'brightnessctl -s set 10; brightnessctl -d tpacpi::kbd_backlight set 0; hyprctl dispatch dpms off'
on-resume = bash -c 'brightnessctl -r; brightnessctl -d tpacpi::kbd_backlight set 1; hyprctl dispatch dpms on'
}
# DPMS off
listener {
timeout = 2300
on-timeout = hyprctl dispatch dpms off #do not turn off display while media is playing
on-resume = hyprctl dispatch dpms on
timeout = 230 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
}
# Suspend
# listener {
# timeout = 500
# on-timeout = systemctl suspend
# }
# hyprlang noerror true
# Source anything from this path if you want to add your own listener
# source command actually do not exist yet
source = ~/.config/hypridle/*
# hyprlang noerror false

View File

@@ -38,8 +38,9 @@ exec-once = wl-paste --type text --watch cliphist store # clipboard store text d
exec-once = wl-paste --type image --watch cliphist store # clipboard store image data
exec-once = $scrPath/swwwallpaper.sh # start wallpaper daemon
exec-once = $scrPath/batterynotify.sh # battery notification
exec-once = xremap ~/.config/xremap/config.yml
exec-once = swayidle -w timeout 180 'swaylock --timestr %H:%M -i ~/.config/swaylock/dmz.svg & brightnessctl -s & brightnessctl set 15' resume 'brightnessctl -r'
exec-once = xremap --watch ~/.config/xremap/config.yml
exec-once = hypridle
# █▀▀ █▄░█ █░█

View File

@@ -2,83 +2,115 @@
#! █▀█ ░█░ █▀▀ █▀▄ █▄▄ █▄█ █▄▄ █░█
#*  Hyprlock Configuration File 
# Please do not edit this file manually.
# Follow the instructions below on how to make changes.
$fontColor = rgba(255,255,255,0.5)
$fontFamily = SourceCodeVF ExtraBold
$timeFontFamily = Cantarell ExtraBold
general {
no_fade_in = true
grade = 1
ignore_empty_input = true
text_trim = true
fade_in_time = 0.8
disable_loading_bar = 0
}
background {
monitor =
path = ~/sync/Drive/pics/foss-world-crop.png
blur_passes = 2
blur_size = 4
contrast = 0.7
brightness = 0.3
vibrancy = 0.15
vibrancy_darkness = 0.5
}
image {
monitor =
path = ~/sync/Drive/pics/matrixom-crop.png
position = 0, 80
reload_time = -1
reload_cmd =
}
input-field {
monitor =
size = 20%, 5%
position = 0, -60
outline_thickness = 3
dots_size = 0.08
dots_spacing = 0.2
dots_center = true
outer_color = rgba(0,0,0,0.1)
inner_color = $fontColor
fade_on_empty = true
}
label {
monitor =
text = cmd[update:5000] echo "<span alpha='40%'>$(uptime -p)</span>"
color = $fontColor
font_family = $fontFamily
font_size = 15
position = 0, 350
}
label {
monitor =
text = cmd[update:300000] echo "<span alpha='50%'>$(cat ~/.config/fish/greet.txt)</span>"
color = $fontColor
font_family = $fontFamily
font_size = 14
position = 0, 310
}
label {
monitor =
text = cmd[update:1000] echo "<span alpha='50%'>$(date +"%H:%M")</span>"
color = $fontColor
font_family = $timeFontFamily
font_size = 120
position = 0, -180
animation = pulse 2s infinite
opacity = 0.5
shadow_passes = 1
shadow_size = 1
shadow_color = rgba(0, 0, 0, 0.5)
}
label {
monitor =
text = cmd[update:1000] echo "<span alpha='50%'>$(LC_TIME=en_US.UF-8 date +'%A, %B %d')</span>"
color = $fontColor
font_family = $fontFamily
font_size = 25
position = 0, -300
}
label {
monitor =
text = cmd[update:1000] echo -e "<span alpha='50%'>$(~/.config/hypr/battery.sh)</span>"
color = $fontColor
font_family = $fontFamily
font_size = 14
position = -50, 30
halign = right
valign = bottom
}
label {
monitor =
color = $fontColor
text = cmd[] echo "<span alpha='50%'>⏻ </span>"
font-size=24
onclick = systemctl poweroff
position = 50, 30
halign = left
valign = bottom
}
#* Hyprlock active layout path:
# Set the layout path to be used by Hyprlock.
# Check the available layouts in the './hyprlock/' directory.
# Example: /=/path/to/anurati
$LAYOUT_PATH=~/.config/hypr/hyprlock/theme.conf
#*  Persistent layout declaration 
# If a persistent layout path is declared in $XDG_CONFIG_HOME/hypr/hyde.conf,
# the above layout setting will be ignored.
# this should be the full path to the layout file.
#*  All boilerplate configurations are handled by HyDE 
source = ~/.local/share/hyde/hyprlock.conf
#*  Making a custom layout 
# To create a custom layout, make a file in the './hyprlock/' directory.
# Example: './hyprlock/your_custom.conf'
# To use the custom layout, set the following variable:
# $LAYOUT_PATH=your_custom
# The custom layout will be sourced automatically.
# Alternatively, you can statically source the layout in '~/.config/hypr/hyde.conf'.
# This will take precedence over the variable in '~/.config/hypr/hyprlock.conf'.
#*  Command Variables 
# Hyprlock ships with there default variables that can be used to customize the lock screen.
# - https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#label
# HyDE also provides custom variables that extend the functionality of Hyprlock.
# $BACKGROUND_PATH
# - The path to the wallpaper image.
# $HYPRLOCK_BACKGROUND
# - The path to the static hyprlock wallpaper image.
# - Can be set to set a static wallpaper for Hyprlock.
# $MPRIS_IMAGE
# - The path to the MPRIS image.
# - If MPRIS is not available, it will show the ~/.face.icon image
# - if available, otherwise, it will show the HyDE logo.
# $PROFILE_IMAGE
# - The path to the profile image.
# - If the image is not available, it will show the ~/.face.icon image
# - if available, otherwise, it will show the HyDE logo.
# $GREET_TEXT
# - A greeting text to be displayed on the lock screen.
# - The text will be updated every hour.
# $resolve.font
# - Resolves the font name and download link.
# - HyDE will run 'font.sh resolve' to install the font for you.
# - Note that you needed to have a network connection to download the font.
# - You also need to restart Hyprlock to apply the font.
# cmd [update:1000] $MPRIS_TEXT
# - Text from media players in "Title  Author" format.
# cmd [update:1000] $SPLASH_CMD
# - Outputs the song title when MPRIS is available,
# - otherwise, it will output the splash command.
# cmd [update:1] $CAVA_CMD
# - The command to be executed to get the CAVA output.
# - ⚠️ (Use with caution as it eats up the CPU.)
# cmd [update:5000] $BATTERY_ICON
# - The battery icon to be displayed on the lock screen.
# - Only works if the battery is available.
# cmd [update:1000] $KEYBOARD_LAYOUT
# - The current keyboard layout
# - SUPER + K to change the keyboard layout (or any binding you set)

View File

@@ -26,8 +26,7 @@ bind = $mainMod, Delete, exit, # kill hyprland session
bind = $mainMod, W, togglefloating, # toggle the window between focus and float
bind = $mainMod, G, togglegroup, # toggle the window between focus and group
bind = Alt, Return, fullscreen, # toggle the window between focus and fullscreen
# bind = $mainMod, L, exec, swaylock --timestr %H:%M -i ~/.config/swaylock/dmz.svg # launch lock screen
bind = $mainMod, L, exec, swaylock -i ~/.config/swaylock/dmz.svg # launch lock screen
bind = $mainMod, L, exec, hyprlock --immediate #& sleep 0.3 && hyprctl dispatch dpms off
bind = Ctrl+Alt, W, exec, killall waybar || waybar # toggle waybar
# bind = $mainMod+Shift, F, exec, $scrPath/windowpin.sh # toggle pin on focused window
# bind = $mainMod, Backspace, exec, $scrPath/logoutlaunch.sh # launch logout menu
@@ -43,6 +42,7 @@ bind = $mainMod, F, exec, $yt # launch yt alternative
bind = $mainMod, B, exec, $browser # launch web browser
bind = $mainMod, G, exec, gajim # launch messanger
bind = $mainMod, K, exec, keepassxc # launch password manager
bind = $mainMod, Escape, exec, dunstctl close
bindd = $mainMod, N, Neovim, exec, $term -e nvim
bindd = $mainMod, R, $d pyradio, exec, kitty --session ~/.config/kitty/music.conf
bindd = $mainMod, I, $d c2, exec, kitty --session ~/.config/kitty/c2.conf

View File

@@ -30,8 +30,6 @@ bind = $mainMod+Alt, XF86MonBrightnessUp, exec, hyprshade off # disable blue lig
# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
# exec-once = swayidle -w timeout 600 'swaylock' timeout 900 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' # lock after 10 mins, sleep after 15 mins // install swayidle
# exec-once = swayidle -w timeout 1200 'swaylock; hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' timeout 1800 'systemctl suspend' # lock and sleep after 20 mins, suspend after 30 mins // install swayidle
# exec-once = libinput-gestures // install libinput-gestures
# exec-once = swayosd-server # enable swayosd service
# exec-once = `pkexec swayosd-libinput-backend` # swayosd service for keyboard input (requires to be run in a subshell)