From a5976d5a8eb623051b9325039d4e5850dd6771e4 Mon Sep 17 00:00:00 2001 From: Nemo Date: Fri, 8 Dec 2017 23:51:49 +0530 Subject: [PATCH] Update lockscreen --- i3lock.sh | 350 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 324 insertions(+), 26 deletions(-) diff --git a/i3lock.sh b/i3lock.sh index 6a3b034..bd91fbe 100755 --- a/i3lock.sh +++ b/i3lock.sh @@ -1,32 +1,330 @@ -#!/bin/bash -cd ~/projects/scripts -xset -b #disable scrot beep -#!/bin/bash +#!/usr/bin/bash -# Now that the rest of the images have been generated -# We can just call it using that -PARAM='--textcolor=00000000 --insidecolor=0000001c --ringcolor=0000003e --linecolor=00000000 --keyhlcolor=ffffff80 --ringvercolor=ffffff00 --insidevercolor=ffffff1c --ringwrongcolor=ffffff55 --insidewrongcolor=ffffff1c' -IMAGE_COMPOSITE="composite_office_lockscreen.png" +# Author : Pavan Jadhaw +# Github Profile : https://github.com/pavanjadhaw +# Project Repository : https://github.com/pavanjadhaw/betterlockscreen -i3lock -n $PARAM -i $IMAGE_COMPOSITE -exit +# ratio for rectangle to be drawn for time background on lockscreen +rectangles=" " +SR=$(xrandr --query | grep ' connected' | grep -o '[0-9][0-9]*x[0-9][0-9]*[^ ]*') +for RES in $SR; do + SRA=(${RES//[x+]/ }) + CX=$((${SRA[2]} + 25)) + CY=$((${SRA[1]} - 30)) + rectangles+="rectangle $CX,$CY $((CX+300)),$((CY-80)) " +done -# Dependencies: imagemagick, i3lock-color-git, scrot -function generate_composite_image() -{ - #IMAGE=$(mktemp).png - IMAGE_BASE="/home/nemo/Pictures/office_screen_lock.png" - IMAGE_TEMP="/tmp/tmp_lockscreen.png" - cp $IMAGE_BASE $IMAGE_TEMP - #scrot $IMAGE - convert $IMAGE_TEMP -level 0%,100%,0.6 -filter Gaussian -resize 20% -define filter:sigma=1.5 -resize 500% - | composite lockscreen_office.png - -compose over $IMAGE_TEMP +# find your resolution so images can be resized to match your screen resolution +y_res=$(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/') +# echo " " +# echo " " +# echo "Your screen resolution is : $y_res" +# echo " " +# echo " " - # try to use a forked version of i3lock with prepared parameters - i3lock $PARAM -i $IMAGE_TEMP > /dev/null 2>&1 +# Original Image +orig_wall=$HOME/.wall.png - if [ $? -ne 0 ]; then - # We have failed, lets get back to stock one - i3lock -i $IMAGE - fi -} \ No newline at end of file +# create folder in /tmp directory +folder="/home/nemo/projects/personal/avatars/lockscreen" + +# User supplied Image +user_image="$folder/bg.png" + +# Versions (from here) +# You can use these images to set different versions as wallpaper +# lockscreen background. +resized="$folder/resized.png" # resized image for your resolution + +# images to be used as wallpaper +dim="$folder/dim.png" # image with subtle overlay of black +blur="$folder/blur.png" # blurred version +dimblur="$folder/dimblur.png" + +# lockscreen images (images to be used as lockscreen background) +l_resized="$folder/l_resized.png" +l_dim="$folder/l_dim.png" +l_blur="$folder/l_blur.png" +l_dimblur="$folder/l_dimblur.png" + + +# Options +case "$1" in + "") + + + if [ ! -f $l_dim ]; then + echo "Important : Update the image cache, Ex. ./lock.sh -g path/to/image.jpg" + echo + echo "See also : For other set of options and help use help command." + echo "Ex. ./lock.sh -h or ./lock.sh --help" + echo + echo "See : https://github.com/pavanjadhaw/betterlockscreen for addition info..." + exit 1 + else + echo + echo "Seems you havent provided any argument, see below for usage info" + echo + echo "See also : For other set of options and help use help command." + echo "Ex. ./lock.sh -h or ./lock.sh --help" + echo + echo "See : https://github.com/pavanjadhaw/betterlockscreen for addition info..." + echo + exit 1 + fi + + ;; + + -h | --help) + + echo "Important : Update the image cache, Ex: ./lock.sh -g path/to/image.jpg" + echo + echo + echo "See : https://github.com/pavanjadhaw/betterlockscreen for additional info..." + echo + echo + echo "Options:" + echo + echo " -h --help" + echo " For help. Ex: ./lock.sh -h or ./lock.sh --help" + echo + echo + echo " -u --update" + echo " to update image cache, you should do this before using any other options" + echo " Ex: ./lock.sh -u path/to/image.png when image.png is custom background" + echo + echo + echo " -l --lock" + echo " to lock screen, Ex. ./lock.sh -l" + echo " you can also use dimmed or blurred background for lockscreen" + echo " Ex: ./lock.sh -l dim (for dimmed background)" + echo " Ex: ./lock.sh -l blur (for blurred background)" + echo " Ex: ./lock.sh -l dimblur (for dimmed + blurred background)" + echo + echo + echo " -w --wall" + echo " you can also set lockscreen background as wallpaper" + echo " to set wallpaper. Ex ./lock.sh -w or ./lock.sh --wall" + echo " you can also use dimmed or blurred variants" + echo " Ex: ./lock.sh -w dim (for dimmed wallpaper)" + echo " Ex: ./lock.sh -w blur (for blurred wallpaper)" + echo " Ex: ./lock.sh -w dimblur (for dimmed + blurred wallpaper)" + echo + ;; + + -l | --lock) + + + case "$2" in + + "") + + # default lockscreen + # stop dunst from showing notifications on lockscreen + pkill -u "$USER" -USR1 dunst + + i3lock \ + -n -i "$l_resized" \ + --timepos="x-90:h-ch+30" \ + --datepos="tx+24:ty+25" \ + --clock --datestr "type password to unlock..." \ + --insidecolor=00000000 --ringcolor=ffffffff --line-uses-inside \ + --keyhlcolor=d23c3dff --bshlcolor=d23c3dff --separatorcolor=00000000 \ + --insidevercolor=fecf4dff --insidewrongcolor=d23c3dff \ + --ringvercolor=ffffffff --ringwrongcolor=ffffffff --indpos="x+280:h-70" \ + --radius=20 --ring-width=3 --veriftext="" --wrongtext="" \ + --textcolor="ffffffff" --timecolor="ffffffff" --datecolor="ffffffff" + + # enable notifications once unlocked + pkill -u "$USER" -USR2 dunst + ;; + + + dim) + + + # lockscreen with dimmed background + # stop dunst from showing notifications on lockscreen + pkill -u "$USER" -USR1 dunst + + i3lock \ + -n -i "$l_dim" \ + --timepos="x-90:h-ch+30" \ + --datepos="tx+24:ty+25" \ + --clock --datestr "Type password to unlock..." \ + --insidecolor=00000000 --ringcolor=ffffffff --line-uses-inside \ + --keyhlcolor=d23c3dff --bshlcolor=d23c3dff --separatorcolor=00000000 \ + --insidevercolor=fecf4dff --insidewrongcolor=d23c3dff \ + --ringvercolor=ffffffff --ringwrongcolor=ffffffff --indpos="x+280:h-70" \ + --radius=20 --ring-width=3 --veriftext="" --wrongtext="" \ + --textcolor="ffffffff" --timecolor="ffffffff" --datecolor="ffffffff" + + # enable notifications once unlocked + pkill -u "$USER" -USR2 dunst + ;; + + blur) + + + # set lockscreen with blurred background + # stop dunst from showing notifications on lockscreen + pkill -u "$USER" -USR1 dunst + + i3lock \ + -n -i "$l_blur" \ + --timepos="x-90:h-ch+30" \ + --datepos="tx+24:ty+25" \ + --clock --datestr "Type password to unlock..." \ + --insidecolor=00000000 --ringcolor=ffffffff --line-uses-inside \ + --keyhlcolor=d23c3dff --bshlcolor=d23c3dff --separatorcolor=00000000 \ + --insidevercolor=fecf4dff --insidewrongcolor=d23c3dff \ + --ringvercolor=ffffffff --ringwrongcolor=ffffffff --indpos="x+280:h-70" \ + --radius=20 --ring-width=3 --veriftext="" --wrongtext="" \ + --textcolor="ffffffff" --timecolor="ffffffff" --datecolor="ffffffff" + + # enable notifications once unlocked + pkill -u "$USER" -USR2 dunst + ;; + + + dimblur) + + + # set lockscreen with dimmed + blurred background + # stop dunst from showing notifications on lockscreen + pkill -u "$USER" -USR1 dunst + + i3lock \ + -n -i "$l_dimblur" \ + --timepos="x-90:h-ch+30" \ + --datepos="tx+24:ty+25" \ + --clock --datestr "Type password to unlock..." \ + --insidecolor=00000000 --ringcolor=ffffffff --line-uses-inside \ + --keyhlcolor=d23c3dff --bshlcolor=d23c3dff --separatorcolor=00000000 \ + --insidevercolor=fecf4dff --insidewrongcolor=d23c3dff \ + --ringvercolor=ffffffff --ringwrongcolor=ffffffff --indpos="x+280:h-70" \ + --radius=20 --ring-width=3 --veriftext="" --wrongtext="" \ + --textcolor="ffffffff" --timecolor="ffffffff" --datecolor="ffffffff" + + # enable notifications once unlocked + pkill -u "$USER" -USR2 dunst + ;; + + + esac + ;; + + + -w | --wall) + + + # w = set wallpaper + case "$2" in + "") + + + # set resized image as wallpaper if no argument is supplied by user + feh --bg-fill $resized + ;; + + + dim) + + # set dimmed image as wallpaper + feh --bg-fill $dim + ;; + + + blur) + + # set blurred image as wallpaper + feh --bg-fill $blur + ;; + + + dimblur) + + # set dimmed + blurred image as wallpaper + feh --bg-fill $dimblur + ;; + + + esac + + ;; + + -u | --update) + + + # create folder + if ! [[ -d $folder ]]; then + mkdir -p "$folder" + fi + + # get user image + cp "$2" "$user_image" + if [ ! -f $user_image ]; then + echo "Please specify the path to the image you would like to use" + exit 1 + fi + + # replace orignal with user image + cp "$user_image" "$orig_wall" + rm "$user_image" + + echo "Generating alternate images based on the image you specified," + echo "please wait this might take few seconds..." + + + # wallpapers {{{ + + + echo + echo "Converting provided image to match your resolution..." + # resize image + convert "$orig_wall" -resize "$y_res""^" -gravity center -extent "$y_res" "$resized" + + echo + echo "Applying dim and blur effect to resized image" + # dim + convert "$resized" -fill black -colorize 40% "$dim" + + # blur + convert "$resized" -blur 0x5 "$blur" + + # dimblur + convert "$dim" -blur 0x5 "$dimblur" + + + # }}} + + + # lockscreen backgrounds {{{ + + + echo + echo "caching images for faster screen locking" + # resized + convert "$resized" -draw "fill black fill-opacity 0.4 $rectangles" "$l_resized" + + # dim + convert "$dim" -draw "fill black fill-opacity 0.4 $rectangles" "$l_dim" + + # blur + convert "$blur" -draw "fill black fill-opacity 0.4 $rectangles" "$l_blur" + + # blur + convert "$dimblur" -draw "fill black fill-opacity 0.4 $rectangles" "$l_dimblur" + + + + # }}} + + + echo + echo "All required changes have been applied" + ;; + + + esac