diff --git a/tree/.config/alacritty/alacritty.toml.tpl b/tree/.config/alacritty/alacritty.toml.tpl
index e35174d..8f37bba 100644
--- a/tree/.config/alacritty/alacritty.toml.tpl
+++ b/tree/.config/alacritty/alacritty.toml.tpl
@@ -367,7 +367,7 @@ program = "nu"
{% if demo %}
opacity = 1.0
{% else %}
-opacity = 0.85
+opacity = 0.90
{% end %}
[window.dimensions]
diff --git a/tree/.config/eww/eww.scss b/tree/.config/eww/eww.scss
index 8c45b9d..19ee137 100644
--- a/tree/.config/eww/eww.scss
+++ b/tree/.config/eww/eww.scss
@@ -1,7 +1,8 @@
$text: #e0c1c1;
-$highlight1: #fdab70;
+//$highlight1: #fdab70; // orange
+$highlight1: #f65d76; // akira pink
$highlight2: white;
-$background: #0f0f0f;
+$background: #151515;
$lowlight2: #272727;
$lowlight1: black;
$transparent: rgba(#000000, 0.0);
diff --git a/tree/.config/hypr/hyprland.conf.tpl b/tree/.config/hypr/hyprland.conf.tpl
index 151a78c..b50dbce 100644
--- a/tree/.config/hypr/hyprland.conf.tpl
+++ b/tree/.config/hypr/hyprland.conf.tpl
@@ -61,7 +61,8 @@ general {
gaps_in = 5
gaps_out = 5
border_size = 2
- col.active_border = rgba(f5deb3ff) rgba(f5deb3ee) 45deg
+ #col.active_border = rgba(f5deb3ff) rgba(f5deb3ee) 45deg orange
+ col.active_border = rgba(f65d76ff) rgba(f65d76ee) 45deg akira pink
col.inactive_border = rgba(595959aa)
layout = dwindle
@@ -120,6 +121,56 @@ windowrule=nofocus,title:Volume Indicator
windowrule=float,title:Jitsi Meet
windowrule=move 100%-375 75,title:Jitsi Meet
+windowrule=workspace 1,title:WORKSPACE 1
+windowrule=workspace 2,title:WORKSPACE 2
+windowrule=workspace 3,title:WORKSPACE 3
+windowrule=workspace 4,title:WORKSPACE 4
+windowrule=workspace 5,title:WORKSPACE 5
+windowrule=workspace 6,title:WORKSPACE 6
+windowrule=workspace 7,title:WORKSPACE 7
+windowrule=workspace 8,title:WORKSPACE 8
+windowrule=workspace 9,title:WORKSPACE 9
+windowrule=workspace 10,title:WORKSPACE 10
+windowrule=workspace 11,title:WORKSPACE 11
+windowrule=workspace 12,title:WORKSPACE 12
+windowrule=workspace 13,title:WORKSPACE 13
+windowrule=workspace 14,title:WORKSPACE 14
+windowrule=workspace 15,title:WORKSPACE 15
+windowrule=workspace 16,title:WORKSPACE 16
+windowrule=float,title:WORKSPACE 1
+windowrule=float,title:WORKSPACE 2
+windowrule=float,title:WORKSPACE 3
+windowrule=float,title:WORKSPACE 4
+windowrule=float,title:WORKSPACE 5
+windowrule=float,title:WORKSPACE 6
+windowrule=float,title:WORKSPACE 7
+windowrule=float,title:WORKSPACE 8
+windowrule=float,title:WORKSPACE 9
+windowrule=float,title:WORKSPACE 10
+windowrule=float,title:WORKSPACE 11
+windowrule=float,title:WORKSPACE 12
+windowrule=float,title:WORKSPACE 13
+windowrule=float,title:WORKSPACE 14
+windowrule=float,title:WORKSPACE 15
+windowrule=float,title:WORKSPACE 16
+windowrule=animation slide,title:WORKSPACE 1
+windowrule=animation slide,title:WORKSPACE 2
+windowrule=animation slide,title:WORKSPACE 3
+windowrule=animation slide,title:WORKSPACE 4
+windowrule=animation slide,title:WORKSPACE 5
+windowrule=animation slide,title:WORKSPACE 6
+windowrule=animation slide,title:WORKSPACE 7
+windowrule=animation slide,title:WORKSPACE 8
+windowrule=animation slide,title:WORKSPACE 9
+windowrule=animation slide,title:WORKSPACE 10
+windowrule=animation slide,title:WORKSPACE 11
+windowrule=animation slide,title:WORKSPACE 12
+windowrule=animation slide,title:WORKSPACE 13
+windowrule=animation slide,title:WORKSPACE 14
+windowrule=animation slide,title:WORKSPACE 15
+windowrule=animation slide,title:WORKSPACE 16
+
+
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
@@ -194,7 +245,7 @@ bindm = $mainMod, mouse:273, resizewindow
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor =, preferred, auto, auto
{% if hostname == "sputnik" %}
-monitor = desc:Microstep MSI MAG342CQR DB6H262101804, 3440x1440@144.00000, auto, auto
+monitor = desc:Microstep MSI MAG342CQR DB6H262101804, 3440x1440@100.00000, auto, auto
{% end %}
{% if hostname == "buran" %}
monitor = eDP-1, preferred, 3072x380, 1.8
diff --git a/tree/.config/hypr/hyprlock.conf.tpl b/tree/.config/hypr/hyprlock.conf.tpl
new file mode 100644
index 0000000..84880e9
--- /dev/null
+++ b/tree/.config/hypr/hyprlock.conf.tpl
@@ -0,0 +1,137 @@
+general {
+ grace = 0
+ immediate_render = true
+}
+
+background {
+ monitor =
+
+{% if hostname == "sputnik" %}
+ color = rgba(00000000)
+{% else %}
+ path = ~/.config/wallpapers/6000x3376/akira.jpg
+{% end %}
+}
+
+input-field {
+ monitor =
+ size = 300, 75
+ outline_thickness = 3
+ 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 = false
+ dots_rounding = -2 # -1 default circle, -2 follow input-field rounding
+ outer_color = rgb(f65d76) # akira pink
+ inner_color = rgb(151515)
+ font_color = rgb(e0c1c1)
+ fade_on_empty = false
+ fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
+ placeholder_text = PASS_ # Text rendered in the input box when it's empty.
+ hide_input = false
+ rounding = -1 # -1 means complete rounding (circle/oval)
+ check_color = rgb(204, 136, 34)
+ fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
+ fail_text = ERR__ # can be set to empty
+ 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
+
+ position = 0, -210
+ halign = center
+ valign = center
+
+ shadow_passes = 3
+ shadow_size = 10
+ shadow_boost = 1.2
+}
+
+image {
+ monitor =
+ path = ~/.config/wallpapers/ferris-stamp.png
+ rounding = 0
+ size = 300
+ position = 0, 0
+ halign = center
+ valign = center
+ border_size = 0
+
+ shadow_passes = 3
+ shadow_size = 10
+ shadow_boost = 1.2
+}
+
+label {
+ monitor =
+ text = $TIME
+ text_align = left
+ color = rgba(ffffff69)
+ font_size = 160
+ font_family = Noto Sans
+ rotate = 0 # degrees, counter-clockwise
+
+ position = 0, -160
+ halign = center
+ valign = top
+
+ shadow_passes = 4
+ shadow_size = 1
+ shadow_boost = 1.3
+}
+
+label {
+ monitor =
+ text = $LAYOUT
+ text_align = right
+ color = rgba(200, 200, 200, 1.0)
+ font_size = 20
+ font_family = Noto Sans
+ rotate = 0 # degrees, counter-clockwise
+
+ position = -12, -12
+ halign = right
+ valign = top
+
+ shadow_passes = 2
+ shadow_size = 1
+ shadow_boost = 1.1
+}
+
+label {
+ monitor =
+ text = GREET_ $user
+ text_align = center
+ color = rgba(200, 200, 200, 1.0)
+ font_size = 25
+ font_family = Noto Sans
+ rotate = 0 # degrees, counter-clockwise
+
+ position = 0, 210
+ halign = center
+ valign = center
+
+ shadow_passes = 2
+ shadow_size = 1
+ shadow_boost = 1.3
+}
+
+label {
+ monitor =
+ text = $ATTEMPTS[0]x $FAIL
+ text_align = center
+ color = rgba(200, 200, 200, 1.0)
+ font_size = 28
+ font_family = Noto Sans
+ rotate = 0 # degrees, counter-clockwise
+
+ position = 0, 160
+ halign = center
+ valign = bottom
+
+ shadow_passes = 2
+ shadow_size = 2
+ shadow_boost = 1.3
+}
diff --git a/tree/.config/hypr/hyprpaper.conf b/tree/.config/hypr/hyprpaper.conf
index ba84e8a..7d053f3 100644
--- a/tree/.config/hypr/hyprpaper.conf
+++ b/tree/.config/hypr/hyprpaper.conf
@@ -1,2 +1,2 @@
-preload = ~/.config/wallpapers/3840x2160/bladerunner.jpg
-wallpaper = ,~/.config/wallpapers/3840x2160/bladerunner.jpg
+preload = ~/.config/wallpapers/6000x3376/akira.jpg
+wallpaper = ,~/.config/wallpapers/6000x3376/akira.jpg
diff --git a/tree/.config/swayidle/config.tpl b/tree/.config/swayidle/config.tpl
index 3241d14..1c8f9a3 100644
--- a/tree/.config/swayidle/config.tpl
+++ b/tree/.config/swayidle/config.tpl
@@ -1,14 +1,20 @@
+{% if hostname == "sputnik" %}
+lock '$HOME/.local/bin/screenlock-video'
+{% elif hostname == "buran" %}
+lock 'hyprlock'
+{% else %}
lock '$HOME/.local/bin/screenlock'
+{% end %}
before-sleep 'loginctl lock-session'
-{% if hostname == "buran" %}
+{% if hostname == "sputnik" %}
+timeout 1770 'notify-send "Locking in 30s"'
+timeout 1800 'loginctl lock-session'
+{% else %}
timeout 530 'notify-send "Locking in 30s"'
timeout 600 'loginctl lock-session'
-timeout 610 'niri msg action power-off-monitors'
{% end %}
-{% if hostname == "sputnik" %}
-timeout 5030 'notify-send "Locking in 30s"'
-timeout 6000 'loginctl lock-session'
-timeout 6010 'niri msg action power-off-monitors'
+{% if hostname == "buran" %}
+timeout 660 'niri msg action power-off-monitors'
{% end %}
diff --git a/tree/.config/wallpapers/6000x3376/akira.jpg b/tree/.config/wallpapers/6000x3376/akira.jpg
new file mode 100644
index 0000000..989c986
Binary files /dev/null and b/tree/.config/wallpapers/6000x3376/akira.jpg differ
diff --git a/tree/.local/bin/screenlock b/tree/.local/bin/screenlock
index 34e7fb6..3de6117 100755
--- a/tree/.local/bin/screenlock
+++ b/tree/.local/bin/screenlock
@@ -2,7 +2,7 @@
# configured for wayland
set LOCKPROG swaylock
-set OPTIONAL_CMDS rg sed grim lockscreen-blur
+set OPTIONAL_CMDS rg sed grim lockscreen-blur jq
set CONFIG "$HOME/.config/sway/swaylock.config"
set DEFAULT_ARGS --daemonize --ignore-empty-password --show-failed-attempts --color 302f3b --config $CONFIG
set BLUR_FACTOR 40
@@ -29,7 +29,7 @@ switch $XDG_CURRENT_DESKTOP
case sway
set outputs (swaymsg -t get_outputs -r | rg "name" | sed 's/^.*"name": "//' | sed 's/",$//')
case niri
- set outputs (niri msg outputs | rg --pcre2 -o '[^" ]+(?=")')
+ set outputs (niri msg --json outputs | jq -r 'keys | join("\n")')
case '*'
echo "unsupported compositor, falling back to basic mode."
$LOCKPROG $DEFAULT_ARGS
diff --git a/tree/.local/bin/screenlock-video b/tree/.local/bin/screenlock-video
new file mode 100755
index 0000000..44172a7
--- /dev/null
+++ b/tree/.local/bin/screenlock-video
@@ -0,0 +1,26 @@
+#!/usr/bin/fish
+
+# Run hyprlock and spawn fullscreen video windows to be shown behind the lockscreen
+
+set LOCKPROG hyprlock
+
+set video ~/hämtningar/video-screensavers/4k/comp_GMT329_117NC_401C_1037_IRELAND_TO_ASIA_v48_SDR_PS_FINAL_20180725_F0F6300_SDR_4K_HEVC.mov
+
+
+# check if lock program is running
+if ps -e | grep " $LOCKPROG\$"
+ echo "$LOCKPROG is already running"
+ exit 1
+end
+
+# Spawn an mpv instance for each monitor
+for workspace in (hyprctl -j monitors | jq '.[] | .activeWorkspace.id')
+ # Thi "WORKSPACE n" title is read by hyprland to position the window correctly
+ mpv --fs --panscan=1.0 --title="WORKSPACE $workspace" $video &
+end
+
+$LOCKPROG
+
+for pid in (jobs -p | tail -n +1)
+ kill $pid
+end