hyprlock icon indicating copy to clipboard operation
hyprlock copied to clipboard

Hyprlock max element cap??

Open PolarT-py opened this issue 3 months ago • 2 comments

Regression?

No

Hyprlock Info and Version

Hyprlock version v0.9.1

Note: Assets (images) not included :(

######################
#  ####  ######   ####
#                    #
#      Hyprlock      #
#   Minecraft Rice   #
#                    #
#      -PolarT-      #
######################

general {
	ignore_empty_input = true
}

# BACKGROUND
background {
    monitor =
    path = /$HOME/.config/hypr/images/wallpaper.png
    color = rgba(25, 20, 20, 1.0)

    blur_passes = 2
    blur_size = 3
    noise = 0.0117
    contrast = 0.8916
    brightness = 0.8172
    vibrancy = 0.1696
    vibrancy_darkness = 0.0
}

# HOURS
label {
    monitor =
    text = cmd[update:1000] echo "<span foreground='##B16CD5'>$(date +%H)</span>"
    text_align = center
    color = rgba(200, 200, 200, 1.0)
    # font_size = 200  # 1080p
    font_size = 250    # 1440p
    font_family = MinecraftTen
    rotate = 0

    shadow_passes = 1
    shadow_size = 3
    shadow_color = rgb(0, 0, 0)
    shadow_boost = 1.2

    # position = 0, 300  # 1080p
    position = 0, 400    # 1440p
    halign = center
    valign = center
}

# MINUTES
label {
    monitor =
    text = cmd[update:1000] echo "<span>$(date +%M)</span>"
    text_align = center
    color = rgba(200, 200, 200, 1.0)
    # font_size = 200  # 1080p
    font_size = 250    # 1440p
    font_family = MinecraftTen
    rotate = 0

    shadow_passes = 1
    shadow_size = 3
    shadow_color = rgb(0, 0, 0)
    shadow_boost = 1.2

    # position = 0, 100  # 1080p
    position = 0, 120    # 1440p
    halign = center
    valign = center
}

# DATE
label {
    monitor =
    text = cmd[update:86400000] echo "<span>$(date +%A), $(date +%B) $(date +%d)</span>"
    text_align = center
    color = rgba(200, 200, 200, 1.0)
    font_size = 28
    font_family = Minecraftia
    rotate = 0

    shadow_passes = 1
    shadow_size = 3
    shadow_color = rgb(0, 0, 0)
    shadow_boost = 1.2

    position = 0, -60
    halign = center
    valign = center
}

# WELCOME
label {
    monitor =
    text = Hi, $USER!
    text_align = center
    color = rgba(200, 200, 200, 1.0)
    font_size = 25
    font_family = Minecraftia
    rotate = 0 # degrees, counter-clockwise

    shadow_passes = 1
    shadow_size = 3
    shadow_color = rgb(0, 0, 0)
    shadow_boost = 1.2

    position = 0, 280
    halign = center
    valign = bottom
}

# PROFILE PICTURE
image {
    monitor =
    path = /$HOME/.config/hypr/images/pfp.png
    size = 160 # lesser side if not 1:1 ratio
    rounding = -1 # negative values mean circle
    border_size = 8
    border_color = rgba(255, 255, 255, 0.3)
    rotate = 0 # degrees, counter-clockwise
    reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
    reload_cmd =  # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F

    position = 0, -250
    halign = center
    valign = center
}

#text = cmd[update:10000] echo "<span>Never</span> <span foreground='##947E45'><i>dig</i>  </span> <span>straight down!</span>"
# HINTS
label {
    monitor =
    # Random message/hint  -  Edit hints.txt to change values
    text = cmd[update:15000] echo "<span>$(bash ~/.config/hypr/scripts/random_hint.sh)</span>"
    text_align = center
    color = rgba(200, 200, 200, 1.0)
    font_size = 25
    font_family = Minecraftia
    rotate = 0

    position = 0, 10
    halign = center
    valign = bottom
}

# Bottom line
shape {
    monitor =
    size = 1800, 60
    color = rgba(0, 0, 0, 0.4)
    rounding = 0
    border_size = 8
    border_color = rgba(0, 0, 0, 0.4)
    rotate = 0
    xray = false
    
    position = 0, 18
    halign = center
    valign = bottom
}

# Bottom line 2
shape {
    monitor =
    size = 1820, 80
    color = rgba(0, 0, 0, 0.4)
    rounding = 0
    border_size = 8
    border_color = rgba(0, 0, 0, 0.4)
    rotate = 0
    xray = false
    
    position = 0, 9
    halign = center
    valign = bottom
}

#####################################
##  BAR
#####################################

# BAR
image {
    monitor =
    path = /$HOME/.config/hypr/images/bar.png
    size = 1440 # lesser side if not 1:1 ratio
    rounding = 0 # negative values mean circle
    border_size = 0
    border_color = rgb(221, 221, 221)
    rotate = 0 # degrees, counter-clockwise
    reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
    reload_cmd =  # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F

    position = 0, 0
    halign = left
    valign = top
}

# BAR TIME
label {
    monitor =
    text = cmd[update:1000] echo "<span>$(date)</span>"
    text_align = center
    color = rgba(255, 255, 255, 1.0)
    font_size = 16
    font_family = Minecraftten
    rotate = 0 # degrees, counter-clockwise

    position = 0, -8
    halign = center
    valign = top
}

# BATTERY IMAGE  # Enable if you have a battery (Using Laptops etc)
#image {
#    monitor =
#    path = /$HOME/.config/hypr/images/battery.png
#    size = 48 # lesser side if not 1:1 ratio
#    rounding = -1 # negative values mean circle
#    border_size = 0
#    border_color = rgb(221, 221, 221)
#    rotate = 0 # degrees, counter-clockwise
#    reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
#    reload_cmd =  # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
#
#    position = -10, 5
#    halign = right
#    valign = top
#}

# BATTERY TEXT
# label {
    # monitor =
    # text = cmd[update:10000000000] echo "<span>$(bash ~/.config/scripts/getbattery.sh)</span><span foreground='##B16CD5'>%</span> "
    # text_align = right
    # color = rgba(255, 255, 255, 1.0)
    # font_size = 18
    # font_family = Minecraftten
    # rotate = 0 # degrees, counter-clockwise

    # position = -10, -5
    # halign = right
    # valign = top
# }

# BAR WEATHER
label {
    monitor =
    text = cmd[update:10000000] echo "<span>$(bash ~/.config/hypr/scripts/get_weather.sh city),</span>  <span foreground='##B16CD5'>$(bash ~/.config/hypr/scripts/get_weather.sh cond):         Feeling like  </span><span foreground='##35214D'>$(bash ~/.config/hypr/scripts/get_weather.sh temp)</span>"
    text_align = center
    color = rgba(255, 255, 255, 1.0)
    font_size = 20
    font_family = Minecraftten
    rotate = 0 # degrees, counter-clockwise

    position = 30, -15
    halign = left
    valign = top
}

# BAR LATEST MINECRAFT VERSION
label {
    monitor =
    text = cmd[update:10000000] echo "<span>󰍳  Latest MC</span> <span foreground='##B16CD5'>$(wget -qO- https://launchermeta.mojang.com/mc/game/version_manifest.json | jq -r '.latest.release')</span> <span>       Seed </span> <span foreground='##B16CD5'>1024</span>"
    text_align = left
    color = rgba(255, 255, 255, 1.0)
    font_size = 20
    font_family = MinecraftTen
    rotate = 0 # degrees, counter-clockwise

    position = -230, -11
    halign = right
    valign = top
}

# BAR COMPUTER UPTIME
label {
    monitor =
    text = cmd[update:60000] echo "<span>Uptime: </span> <span foreground='##B16CD5'>$(awk '{print int($1/60)}' /proc/uptime)m</span>"
    text_align = right
    color = rgba(255, 255, 255, 1.0)
    font_size = 20
    font_family = MinecraftTen
    rotate = 0 # degrees, counter-clockwise

    position = -20, -16
    halign = right
    valign = top
}

# BAR UPDATE WEATHER
label {
    monitor =
    text = cmd[update:600000] bash ~/.config/hypr/scripts/update_weather.sh
    text_align = center
    color = rgba(255, 255, 255, 1.0)
    font_size = 20
    font_family = Minecraftia
    rotate = 0 # degrees, counter-clockwise

    position = -125, -8
    halign = right
    valign = top
}

# Left Side LOCK
label {
    monitor =
    text = Hey there
    text_align = center
    color = rgba(255, 255, 255, 1.0)
    font_size = 20
    font_family = MinecraftTen
    rotate = 90

    position = -125, -8
    halign = right
    valign = top
}

###########################################
##  END OF BAR
###########################################

# INPUT
input-field {
    monitor =
    size = 265, 50
    outline_thickness = 0  # 1300
    dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
    dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
    dots_center = true
    dots_rounding = 2 # -1 default circle, -2 follow input-field rounding
    outer_color = rgb(151515)
    inner_color = rgb(200, 200, 200)
    font_color = rgb(10, 10, 10)
    fade_on_empty = true
    fade_timeout = 3000 # Milliseconds before fade_on_empty is triggered.
    placeholder_text = <b>Enter password</b> # Text rendered in the input box when it's empty.
    hide_input = false
    rounding = -1 # -1 means complete rounding (circle/oval)
    check_color = rgb(B16CD5)
    fail_color = rgb(35214D) # if authentication failed, changes outer_color and fail message color
    fail_text = Wrong password!     <b>$ATTEMPTS</b>
    # fail_timeout = 2000 # milliseconds before fail_text and fail_color disappears
    # fail_transition = 300 # transition time in ms between normal outer_color and fail_color
    capslock_color = -1
    numlock_color = -1
    bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
    invert_numlock = false # change color if numlock is off
    swap_font_color = false # see below

    position = 0, -450
    halign = center
    valign = center
}

With the extra element (In top right below the bar) Image Without the extra element Image

Compositor Info and Version

System/Version info
Hyprland 0.50.1 built from branch  at commit 4e242d086e20b32951fdc0ebcbfb4d41b5be8dcc  ([gha] Nix: update inputs).
Date: Sat Jul 19 21:37:06 2025
Tag: v0.50.1, commits: 6291
built against:
 aquamarine 0.9.2
 hyprlang 0.6.3
 hyprutils 0.8.1
 hyprcursor 0.1.12
 hyprgraphics 0.1.5


no flags were set


System Information:
System name: Linux
Node name: PolarPC
Release: 6.12.44-1-lts
Version: #1 SMP PREEMPT_DYNAMIC Thu, 28 Aug 2025 15:07:21 +0000


GPU information: 
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module  580.76.05  Thu Aug  7 20:32:41 UTC 2025


os-release: NAME="EndeavourOS"
PRETTY_NAME="EndeavourOS"
ID="endeavouros"
ID_LIKE="arch"
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://endeavouros.com"
DOCUMENTATION_URL="https://discovery.endeavouros.com"
SUPPORT_URL="https://forum.endeavouros.com"
BUG_REPORT_URL="https://forum.endeavouros.com/c/general-system/endeavouros-installation"
PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2"
LOGO="endeavouros"


plugins:

Description

Hyprlock seems to bug out when I add too much elements. If you scroll all the way down in the config then comment out the 2nd last element (The one that has text "Hey there") then itll look normal. If you keep the "Hey there" element and comment out something else like the uptime element, it wont bug and display normally, so there seems to be a cap of how many elements I can add. It might be due to my config or something, but im not sure.

Also, hyprlock --verbose also doesnt show anything related to errors

How to reproduce

Add a buncha elements, maybe like 20 (youll prob see before 20 elements). Not all in the same spot and stuff

Crash reports, logs, images, videos

No response

PolarT-py avatar Sep 05 '25 23:09 PolarT-py

So no there is no explicit limit on widgets.

For me it doesn't bug out. Likely related to the font. Try to swap it just to check.

PointerDilemma avatar Sep 09 '25 14:09 PointerDilemma

No luck. Replaced all the fonts with Arial, still the same issue. I noticed a trend, all the elements on the top bar updates using cmd, for ex: cmd[update:60000] echo "<span>Uptime: </span> <span foreground='##B16CD5'>$(awk '{print int($1/60)}' /proc/uptime)m</span>" So maybe theres too much text elements with cmd or something. The main clock also uses cmd to update but its not bugged (At least visually, maybe it doesnt update or something), the quotations box is also like 50% translucent.

I tried removing elements like the box element, and it worked when trying to add in new text elements, so that's why i thought it was like a max cap

PolarT-py avatar Sep 11 '25 22:09 PolarT-py