This commit is contained in:
2025-04-07 11:46:19 +03:00
parent 885a5fe3db
commit 3710320270
2 changed files with 279 additions and 47 deletions

View File

@@ -1,56 +1,177 @@
# GENERAL
general {
ignore_empty_input = true
immediate_render = true
no_fade_in = tue
no_fade_out = true
no_fade_in = true
disable_loading_bar = false
hide_cursor = true
ignore_empty_input = true
text_trim = true
}
#BACKGROUND
background {
blur_size = 3
blur_passes = 1
monitor =
# path = ~/wallpaper.png
path = screenshot
blur_passes = 2
contrast = 0.8916
brightness = 0.7172
vibrancy = 0.1696
vibrancy_darkness = 0
}
# TIME HR
label {
monitor =
text = cmd[update:1000] echo -e "$(date +"%H")"
color = rgba(255, 255, 255, 1)
shadow_pass = 2
shadow_size = 3
shadow_color = rgb(0,0,0)
shadow_boost = 1.2
font_size = 150
# font_family = JetBrains Mono Nerd Font Mono ExtraBold
font_family = Symbols Nerd Font, Geist Mono
position = 0, -250
halign = center
valign = top
}
# TIME
label {
monitor =
text = cmd[update:1000] echo -e "$(date +"%M")"
# color = 0xff$color0
color = rgba(255, 255, 255, 1)
font_size = 150
# font_family = JetBrains Mono Nerd Font Mono ExtraBold
font_family = Symbols Nerd Font, Geist Mono
position = 0, -420
halign = center
valign = top
}
# DATE
label {
monitor =
text = cmd[update:1000] echo -e "$(LC_TIME=lv_LV.UTF-8 date +"%A, %-d. %B" | sed 's/./\U&/1')"
color = rgba(255, 255, 255, 1)
font_size = 14
font_family = Symbols Nerd Font, Geist
position = 0, -130
halign = center
valign = center
}
# Music
image {
monitor =
path =
size = 80 # lesser side if not 1:1 ratio
rounding = 5 # negative values mean circle
border_size = 0
rotate = 0 # degrees, counter-clockwise
reload_time = 2
reload_cmd = bash ~/config/scripts/modules/hyprlock/info.sh --arturl
position = -150, -300
halign = center
valign = center
opacity=0.5
}
# PLAYER TITTLE
label {
monitor =
# text = cmd[update:1000] echo "$(playerctl metadata --format "{{ xesam:title }}" 2>/dev/null | cut -c1-25)"
text = cmd[update:1000] echo "$(bash ~/config/scripts/modules/hyprlock/info.sh --title)"
color = rgba(255, 255, 255, 0.8)
font_size = 12
font_family = Symbols Nerd Font, Geist
position = 880, -290
halign = left
valign = center
}
# PLAYER Length
label {
monitor =
# text= cmd[update:1000] echo "$(( $(playerctl metadata --format "{{ mpris:length }}" 2>/dev/null) / 60000000 ))m"
text = cmd[update:1000] echo "$(bash ~/config/scripts/modules/hyprlock/info.sh --length) "
color = rgba(255, 255, 255, 1)
font_size = 11
font_family = Symbols Nerd Font, Geist
position = -730, -310
halign = right
valign = center
}
# PLAYER STATUS
label {
monitor =
# text= cmd[update:1000] echo "$(( $(playerctl metadata --format "{{ mpris:length }}" 2>/dev/null) / 60000000 ))m"
text = cmd[update:1000] echo "$(bash ~/config/scripts/modules/hyprlock/info.sh --status)"
color = rgba(255, 255, 255, 1)
font_size = 14
font_family = Symbols Nerd Font, Geist
position = -740, -290
halign = right
valign = center
}
# PLAYER SOURCE
label {
monitor =
# text= cmd[update:1000] echo "$(playerctl metadata --format "{{ mpris:trackid }}" 2>/dev/null | grep -Eo "chromium|firefox|spotify")"
text = cmd[update:1000] echo "$(bash ~/config/scripts/modules/hyprlock/info.sh --source)"
color = rgba(255, 255, 255, 0.6)
font_size = 10
font_family = Symbols Nerd Font, Geist
position = -740, -330
halign = right
valign = center
}
# PLAYER ALBUM
label {
monitor =
# text= cmd[update:1000] echo "$(~/.config/hypr/bin/album.sh)"
text = cmd[update:1000] echo "$(bash ~/config/scripts/modules/hyprlock/info.sh --album)"
color = rgba(255, 255, 255, 1)
font_size = 10
font_family = Symbols Nerd Font, Geist
position = 880, -330
halign = left
valign = center
}
# PLAYER Artist
label {
monitor =
# text = cmd[update:1000] echo "$(playerctl metadata --format "{{ xesam:artist }}" 2>/dev/null | cut -c1-30)"
text = cmd[update:1000] echo "$(bash ~/config/scripts/modules/hyprlock/info.sh --artist)"
color = rgba(255, 255, 255, 0.8)
font_size = 10
font_family = Symbols Nerd Font, Geist
position = 880, -310
halign = left
valign = center
}
# INPUT FIELD
input-field {
monitor =
rounding = 0
size = 800, 100
outline_thickness = 4
dots_size = 0.5
dots_rounding = 0
dots_spacing = 0.2
dots_center = true
fade_on_empty = false
placeholder_text = LOGIN
hide_input = false
fail_text = Wrong password!
position = 0, 0
dots_fade_time = 0
dots_text_format = 0
halign = center
valign = center
font_family = Geist Mono
outer_color = rgba(0, 0, 0, 0)
inner_color = rgba(0, 0, 0, 0)
font_color = rgb(255, 0, 0)
}
label {
text = cmd[update:1000] if [[ $ATTEMPTS -gt 0 ]]; then echo "Password hint: Favourite Regretevator character"; else echo "$TIME - $LAYOUT"; fi
font_family = Geist
color = rgb(255, 0, 0)
position = 10, -10
halign = center
font_size = 12
valign = top
}
label {
text = cmd[update:1000] playerctl metadata -sf "{{artist}} - {{title}}<br/>{{album}}"
font_family = Geist
color = rgb(255, 0, 0)
position = 10, -10
halign = left
font_size = 12
valign = top
monitor =
size = 250, 60
outline_thickness = 0
outer_color = rgba(0, 0, 0, 1)
dots_size = 0.1 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 1 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
inner_color = rgba(0, 0, 0, 1)
font_color = rgba(200, 200, 200, 1)
fade_on_empty = false
font_family = Symbols Nerd Font, Geist Mono
placeholder_text = <span foreground="##cdd6f4"> $USER</span>
hide_input = false
position = 0, -470
halign = center
valign = center
zindex = 10
}

111
scripts/modules/hyprlock/info.sh Executable file
View File

@@ -0,0 +1,111 @@
#!/bin/bash
# https://gist.github.com/ashish-kus/dd562b0bf5e8488a09e0b9c289f4574c
if [ $# -eq 0 ]; then
echo "Usage: $0 --title | --arturl | --artist | --length | --album | --source"
exit 1
fi
# Function to get metadata using playerctl
get_metadata() {
key=$1
playerctl metadata --format "{{ $key }}" 2>/dev/null
}
# Check for arguments
# Function to determine the source and return an icon and text
get_source_info() {
trackid=$(get_metadata "mpris:trackid")
if [[ "$trackid" == *"firefox"* ]]; then
echo -e "Firefox 󰈹"
elif [[ "$trackid" == *"spotify"* ]]; then
echo -e "Spotify "
elif [[ "$trackid" == *"chromium"* ]]; then
echo -e "Chrome "
elif [[ "$trackid" == *"cider"* ]]; then
echo -e "Apple Music " # added
else
echo ""
fi
}
# Parse the argument
case "$1" in
--title)
title=$(get_metadata "xesam:title")
if [ -z "$title" ]; then
echo ""
else
echo "${title:0:28}" # Limit the output to 50 characters
fi
;;
--arturl)
url=$(get_metadata "mpris:artUrl")
if [ -z "$url" ]; then
echo ""
else
if [[ "$url" == file://* ]]; then
url=${url#file://}
elif [[ "$url" == http* ]]; then
url="${url/640x640/1024x1024}"
hash=$(echo -n "$url" | sha256sum | awk '{print $1}')
file_path="/tmp/${hash}.jpg"
if [[ ! -f "$file_path" ]]; then
curl -s --compressed --connect-timeout 2 -m 5 -o "$file_path" "$url" &
fi
url="file://$file_path"
fi
echo "$url"
fi
;;
--artist)
artist=$(get_metadata "xesam:artist")
if [ -z "$artist" ]; then
echo ""
else
echo "${artist:0:30}" # Limit the output to 50 characters
fi
;;
--length)
length=$(get_metadata "mpris:length")
if [ -z "$length" ]; then
echo ""
else
# Convert length from microseconds to a more readable format (seconds)
echo "$(echo "scale=2; $length / 1000000 / 60" | bc) m"
fi
;;
--status)
status=$(playerctl status 2>/dev/null)
if [[ $status == "Playing" ]]; then
echo "󰎆"
elif [[ $status == "Paused" ]]; then
echo "󱑽"
else
echo ""
fi
;;
--album)
album=$(playerctl metadata --format "{{ xesam:album }}" 2>/dev/null)
if [[ -n $album ]]; then
echo "$album"
else
status=$(playerctl status 2>/dev/null)
if [[ -n $status ]]; then
echo "Not album"
else
echo ""
fi
fi
;;
--source)
get_source_info
;;
*)
echo "Invalid option: $1"
echo "Usage: $0 --title | --url | --artist | --length | --album | --source"
exit 1
;;
esac