62 lines
1.6 KiB
Nix
62 lines
1.6 KiB
Nix
|
{config, pkgs, ...}: let
|
||
|
swayLock = let
|
||
|
colors = import ../style/colors.nix;
|
||
|
fonts = import ../common/fonts.nix;
|
||
|
in pkgs.writeScriptBin "swaylock" ''
|
||
|
# Set the lock script
|
||
|
lockscript() {
|
||
|
BLANK='#00000000'
|
||
|
CLEAR='#FFFFFF22'
|
||
|
DEFAULT='#${colors.prime}FF'
|
||
|
TEXT='#FFFFFFFF'
|
||
|
WRONG='#${colors.split}FF'
|
||
|
VERIFYING='#${colors.accent}FF'
|
||
|
|
||
|
${pkgs.swaylock-effects}/bin/swaylock -f -e \
|
||
|
--key-hl-color=$VERIFYING \
|
||
|
--bs-hl-color=$WRONG \
|
||
|
\
|
||
|
--ring-clear-color=$CLEAR \
|
||
|
--ring-ver-color=$VERIFYING \
|
||
|
--ring-wrong-color=$WRONG \
|
||
|
--ring-color=$DEFAULT \
|
||
|
--ring-clear-color=$VERIFYING \
|
||
|
\
|
||
|
--inside-color=$CLEAR \
|
||
|
--inside-ver-color=$CLEAR \
|
||
|
--inside-wrong-color=$CLEAR \
|
||
|
--inside-clear-color=$CLEAR \
|
||
|
\
|
||
|
--text-color=$TEXT \
|
||
|
--text-clear-color=$TEXT \
|
||
|
--text-ver-color=$TEXT \
|
||
|
--text-caps-lock-color=$TEXT \
|
||
|
--text-wrong-color=$TEXT \
|
||
|
\
|
||
|
--indicator \
|
||
|
--indicator-radius=80 \
|
||
|
--image=~/.wallpapers/lock.png \
|
||
|
--clock \
|
||
|
--font=${fonts.main} \
|
||
|
--font-size=30 \
|
||
|
--timestr="%I:%M%p" \
|
||
|
--datestr="%a %b %d %Y"
|
||
|
}
|
||
|
|
||
|
# Handle whether to lock or sleep
|
||
|
if [ "$1" == "--sleep" ]; then
|
||
|
lockscript &
|
||
|
exec ${pkgs.swayidle}/bin/swayidle -w \
|
||
|
timeout 1 'swaymsg "output * dpms off"' \
|
||
|
resume 'swaymsg "output * dpms on"; pkill -9 swayidle'
|
||
|
else
|
||
|
lockscript
|
||
|
fi
|
||
|
'';
|
||
|
in {
|
||
|
# Enable Sway and write some scripts
|
||
|
home.packages = with pkgs; [
|
||
|
swayLock
|
||
|
];
|
||
|
}
|