mirror of
https://git.adityakumar.xyz/betterlockscreen-openrc.git
synced 2024-11-09 10:39:45 +00:00
Pass argument directory to i3lock (#79)
New "--" argument to pass arguments directly to i3lock String optimizations
This commit is contained in:
parent
533d729a75
commit
5007d00536
1 changed files with 275 additions and 265 deletions
414
betterlockscreen
414
betterlockscreen
|
@ -6,7 +6,8 @@
|
|||
|
||||
# find your resolution so images can be resized to match your screen resolution
|
||||
res=$(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/')
|
||||
locktext="Type password to unlock..."
|
||||
locktext='Type password to unlock...'
|
||||
|
||||
|
||||
init_filenames() {
|
||||
#$1 resolution
|
||||
|
@ -15,9 +16,8 @@ init_filenames() {
|
|||
res_folder="$HOME/.cache/i3lock/$1"
|
||||
folder="$HOME/.cache/i3lock/current"
|
||||
echo "Got" $@ $res_folder
|
||||
if [ ! -d $folder -o -n "$2" ]
|
||||
then
|
||||
rm $folder
|
||||
if [ ! -d $folder -o -n "$2" ]; then
|
||||
rm -f $folder
|
||||
ln -s $res_folder $folder
|
||||
fi
|
||||
|
||||
|
@ -44,12 +44,14 @@ init_filenames() {
|
|||
|
||||
init_filenames $res
|
||||
|
||||
|
||||
prelock() {
|
||||
if [ ! -z "$(pidof dunst)" ] ; then
|
||||
if [ ! -z "$(pidof dunst)" ]; then
|
||||
pkill -u "$USER" -USR1 dunst
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
lock() {
|
||||
#$1 image path
|
||||
letterEnteredColor=d23c3dff
|
||||
|
@ -60,24 +62,26 @@ lock() {
|
|||
foreground=ffffffff
|
||||
i3lock \
|
||||
-t -i "$1" \
|
||||
--timepos="x+110:h-70" \
|
||||
--datepos="x+43:h-45" \
|
||||
--timepos='x+110:h-70' \
|
||||
--datepos='x+43:h-45' \
|
||||
--clock --date-align 1 --datestr "$locktext" \
|
||||
--insidecolor=$background --ringcolor=$foreground --line-uses-inside \
|
||||
--keyhlcolor=$letterEnteredColor --bshlcolor=$letterRemovedColor --separatorcolor=$background \
|
||||
--insidevercolor=$passwordCorrect --insidewrongcolor=$passwordIncorrect \
|
||||
--ringvercolor=$foreground --ringwrongcolor=$foreground --indpos="x+280:h-70" \
|
||||
--radius=20 --ring-width=4 --veriftext="" --wrongtext="" \
|
||||
--ringvercolor=$foreground --ringwrongcolor=$foreground --indpos='x+280:h-70' \
|
||||
--radius=20 --ring-width=4 --veriftext='' --wrongtext='' \
|
||||
--verifcolor="$foreground" --timecolor="$foreground" --datecolor="$foreground" \
|
||||
--noinputtext="" --force-clock $lockargs
|
||||
--noinputtext='' --force-clock $lockargs
|
||||
}
|
||||
|
||||
|
||||
postlock() {
|
||||
if [ ! -z "$(pidof dunst)" ] ; then
|
||||
pkill -u "$USER" -USR2 dunst
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
rec_get_random() {
|
||||
dir="$1"
|
||||
if [ ! -d "$dir" ]; then
|
||||
|
@ -89,207 +93,40 @@ rec_get_random() {
|
|||
rec_get_random "$dir"
|
||||
}
|
||||
|
||||
lockselect() {
|
||||
case "$1" in
|
||||
"")
|
||||
# default lockscreen
|
||||
prelock
|
||||
lock "$l_resized"
|
||||
postlock
|
||||
;;
|
||||
|
||||
lockselect() {
|
||||
prelock
|
||||
case "$1" in
|
||||
dim)
|
||||
# lockscreen with dimmed background
|
||||
prelock
|
||||
lock "$l_dim"
|
||||
postlock
|
||||
;;
|
||||
|
||||
blur)
|
||||
# set lockscreen with blurred background
|
||||
prelock
|
||||
lock "$l_blur"
|
||||
postlock
|
||||
;;
|
||||
|
||||
dimblur)
|
||||
# set lockscreen with dimmed + blurred background
|
||||
prelock
|
||||
lock "$l_dimblur"
|
||||
postlock
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
usage() {
|
||||
|
||||
echo "Important: Update the image cache (e.g. betterlockscreen -u path/to/image.jpg)."
|
||||
echo " Image cache must be updated to initially configure or update wallpaper used"
|
||||
echo
|
||||
echo
|
||||
echo "See: https://github.com/pavanjadhaw/betterlockscreen for additional info..."
|
||||
echo
|
||||
echo
|
||||
echo "Options:"
|
||||
echo
|
||||
echo " -h --help"
|
||||
|
||||
echo " For help (e.g. betterlockscreen -h or betterlockscreen --help)."
|
||||
echo
|
||||
echo
|
||||
echo " -u --update"
|
||||
echo " to update image cache, you should do this before using any other options"
|
||||
echo " E.g: betterlockscreen -u path/to/image.png when image.png is custom background"
|
||||
echo " Or you can use betterlockscreen -u path/to/imagedir and a random file will be selected."
|
||||
echo
|
||||
echo
|
||||
echo " -l --lock"
|
||||
echo " to lock screen (e.g. betterlockscreen -l)"
|
||||
echo " you can also use dimmed or blurred background for lockscreen."
|
||||
echo " E.g: betterlockscreen -l dim (for dimmed background)"
|
||||
echo " E.g: betterlockscreen -l blur (for blurred background)"
|
||||
echo " E.g: betterlockscreen -l dimblur (for dimmed + blurred background)"
|
||||
echo
|
||||
echo
|
||||
echo " -s --suspend"
|
||||
echo " to suspend system and lock screen (e.g. betterlockscreen -s)"
|
||||
echo " you can also use dimmed or blurred background for lockscreen."
|
||||
echo " E.g: betterlockscreen -s dim (for dimmed background)"
|
||||
echo " E.g: betterlockscreen -s blur (for blurred background)"
|
||||
echo " E.g: betterlockscreen -s dimblur (for dimmed + blurred background)"
|
||||
echo
|
||||
echo
|
||||
echo " -w --wall"
|
||||
echo " you can also set lockscreen background as wallpaper"
|
||||
echo " to set wallpaper (e.g. betterlockscreen -w or betterlockscreen --wall)"
|
||||
echo " you can also use dimmed or blurred variants."
|
||||
echo " E.g: betterlockscreen -w dim (for dimmed wallpaper)"
|
||||
echo " E.g: betterlockscreen -w blur (for blurred wallpaper)"
|
||||
echo " E.g: betterlockscreen -w dimblur (for dimmed + blurred wallpaper)"
|
||||
echo
|
||||
echo
|
||||
echo " -r --resolution"
|
||||
echo " to be used after -u"
|
||||
echo " used to set a custom resolution for the image cache."
|
||||
echo " E.g: betterlockscreen -u path/to/image.png -r 1920x1080"
|
||||
echo " E.g: betterlockscreen -u path/to/image.png --resolution 3840x1080"
|
||||
echo
|
||||
echo
|
||||
echo " -b --blur"
|
||||
echo " to be used after -u"
|
||||
echo " used to set blur intensity. Default to 1."
|
||||
echo " E.g: betterlockscreen -u path/to/image.png -b 3"
|
||||
echo " E.g: betterlockscreen -u path/to/image.png --blur 0.5"
|
||||
echo
|
||||
echo
|
||||
echo " -t --text"
|
||||
echo " to set custom lockscreen text (max 31 chars)"
|
||||
echo " E.g: betterlockscreen -l dim -t \"Don't touch my machine!\""
|
||||
echo " E.g: betterlockscreen --text \"Hi, user!\" -s blur"
|
||||
}
|
||||
|
||||
# check if --text argument is given
|
||||
if [ $# -gt 2 ] ; then
|
||||
if [ "$1" == "-t" -o "$1" == "--text" ] ; then
|
||||
locktext="$2"
|
||||
# delete first 2 arguments and reset numbering ( 3 -> 1, 4 -> 2, ...)
|
||||
set -- "${@:3}"
|
||||
elif [ \( "$3" == "-t" -o "$3" == "--text" \) -a $# -gt 3 ] ; then
|
||||
locktext="$4"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Options
|
||||
case "$1" in
|
||||
"")
|
||||
if [ ! -f $l_dim ]; then
|
||||
echo "Important: Update the image cache (e.g. betterlockscreen -u path/to/image.jpg)."
|
||||
echo
|
||||
echo " Image cache must be updated to initially configure or update wallpaper used"
|
||||
echo
|
||||
echo "See also: For other set of options and help use help command."
|
||||
echo "E.g. betterlockscreen -h or betterlockscreen --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 "E.g. betterlockscreen -h or betterlockscreen --help"
|
||||
|
||||
echo
|
||||
echo "See: https://github.com/pavanjadhaw/betterlockscreen for addition info..."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
-h | --help)
|
||||
|
||||
usage
|
||||
;;
|
||||
|
||||
-l | --lock)
|
||||
lockargs="-n"
|
||||
lockselect "$2"
|
||||
;;
|
||||
|
||||
-s | --suspend)
|
||||
lockselect "$2"
|
||||
systemctl suspend
|
||||
;;
|
||||
|
||||
-w | --wall)
|
||||
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)
|
||||
background="$2"
|
||||
shift 2
|
||||
|
||||
# default blur level
|
||||
blur_level=1
|
||||
|
||||
# parse update arguments
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-r | --resolution )
|
||||
res="$2"
|
||||
init_filenames $res force
|
||||
shift 2
|
||||
;;
|
||||
-b | --blur )
|
||||
blur_level="$2"
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
shift ;;
|
||||
# default lockscreen
|
||||
lock "$l_resized"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
postlock
|
||||
}
|
||||
|
||||
|
||||
update() {
|
||||
# use
|
||||
background="$1"
|
||||
|
||||
# default blur level; fallback to 1
|
||||
[[ $blur_level ]] || blur_level=1
|
||||
|
||||
rectangles=" "
|
||||
SR=$(xrandr --query | grep ' connected' | grep -o '[0-9][0-9]*x[0-9][0-9]*[^ ]*')
|
||||
|
@ -315,7 +152,7 @@ case "$1" in
|
|||
# get user image
|
||||
cp "$user_input" "$user_image"
|
||||
if [ ! -f $user_image ]; then
|
||||
echo "Please specify the path to the image you would like to use"
|
||||
echo 'Please specify the path to the image you would like to use'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -323,18 +160,18 @@ case "$1" in
|
|||
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..."
|
||||
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..."
|
||||
echo 'Converting provided image to match your resolution...'
|
||||
# resize image
|
||||
convert "$orig_wall" -resize "$res""^" -gravity center -extent "$res" "$resized"
|
||||
|
||||
echo
|
||||
echo "Applying dim and blur effect to resized image"
|
||||
echo 'Applying dim and blur effect to resized image'
|
||||
# dim
|
||||
convert "$resized" -fill black -colorize 40% "$dim"
|
||||
|
||||
|
@ -359,7 +196,7 @@ case "$1" in
|
|||
# lockscreen backgrounds
|
||||
|
||||
echo
|
||||
echo "Caching images for faster screen locking"
|
||||
echo 'Caching images for faster screen locking'
|
||||
# resized
|
||||
convert "$resized" -draw "fill rgba(0, 0, 0, 0.4) $rectangles" "$l_resized"
|
||||
|
||||
|
@ -372,12 +209,185 @@ case "$1" in
|
|||
# blur
|
||||
convert "$dimblur" -draw "fill rgba(0, 0, 0, 0.4) $rectangles" "$l_dimblur"
|
||||
echo
|
||||
echo "All required changes have been applied"
|
||||
echo 'All required changes have been applied'
|
||||
}
|
||||
|
||||
|
||||
wallpaper() {
|
||||
case "$1" 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
|
||||
}
|
||||
|
||||
|
||||
empty() {
|
||||
if [ -f $l_dim ]; then
|
||||
echo -e "\nSeems you haven't provided any arguments. See below for usage details."
|
||||
else
|
||||
echo 'Important: Update the image cache (e.g. betterlockscreen -u path/to/image.jpg).'
|
||||
echo
|
||||
echo ' Image cache must be updated to initially configure or update the wallpaper used.'
|
||||
fi
|
||||
|
||||
echo
|
||||
echo 'For other sets of options and help, use the help command.'
|
||||
echo 'e.g. betterlockscreen -h or betterlockscreen --help'
|
||||
echo
|
||||
echo 'See: https://github.com/pavanjadhaw/betterlockscreen for additional info...'
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
usage() {
|
||||
echo 'Important: Update the image cache (e.g. betterlockscreen -u path/to/image.jpg).'
|
||||
echo ' Image cache must be updated to initially configure or update wallpaper used'
|
||||
echo
|
||||
echo
|
||||
echo 'See: https://github.com/pavanjadhaw/betterlockscreen for additional info...'
|
||||
echo
|
||||
echo
|
||||
echo 'Options:'
|
||||
echo
|
||||
echo ' -h --help'
|
||||
echo ' For help (e.g. betterlockscreen -h or betterlockscreen --help).'
|
||||
echo
|
||||
echo
|
||||
echo ' -u --update'
|
||||
echo ' to update image cache, you should do this before using any other options'
|
||||
echo ' E.g: betterlockscreen -u path/to/image.png when image.png is custom background'
|
||||
echo ' Or you can use betterlockscreen -u path/to/imagedir and a random file will be selected.'
|
||||
echo
|
||||
echo
|
||||
echo ' -l --lock'
|
||||
echo ' to lock screen (e.g. betterlockscreen -l)'
|
||||
echo ' you can also use dimmed or blurred background for lockscreen.'
|
||||
echo ' E.g: betterlockscreen -l dim (for dimmed background)'
|
||||
echo ' E.g: betterlockscreen -l blur (for blurred background)'
|
||||
echo ' E.g: betterlockscreen -l dimblur (for dimmed + blurred background)'
|
||||
echo
|
||||
echo
|
||||
echo ' -s --suspend'
|
||||
echo ' to suspend system and lock screen (e.g. betterlockscreen -s)'
|
||||
echo ' you can also use dimmed or blurred background for lockscreen.'
|
||||
echo ' E.g: betterlockscreen -s dim (for dimmed background)'
|
||||
echo ' E.g: betterlockscreen -s blur (for blurred background)'
|
||||
echo ' E.g: betterlockscreen -s dimblur (for dimmed + blurred background)'
|
||||
echo
|
||||
echo
|
||||
echo ' -w --wall'
|
||||
echo ' you can also set lockscreen background as wallpaper'
|
||||
echo ' to set wallpaper (e.g. betterlockscreen -w or betterlockscreen --wall)'
|
||||
echo ' you can also use dimmed or blurred variants.'
|
||||
echo ' E.g: betterlockscreen -w dim (for dimmed wallpaper)'
|
||||
echo ' E.g: betterlockscreen -w blur (for blurred wallpaper)'
|
||||
echo ' E.g: betterlockscreen -w dimblur (for dimmed + blurred wallpaper)'
|
||||
echo
|
||||
echo
|
||||
echo ' -r --resolution'
|
||||
echo ' to be used after -u'
|
||||
echo ' used to set a custom resolution for the image cache.'
|
||||
echo ' E.g: betterlockscreen -u path/to/image.png -r 1920x1080'
|
||||
echo ' E.g: betterlockscreen -u path/to/image.png --resolution 3840x1080'
|
||||
echo
|
||||
echo
|
||||
echo ' -b --blur'
|
||||
echo ' to be used after -u'
|
||||
echo ' used to set blur intensity. Default to 1.'
|
||||
echo ' E.g: betterlockscreen -u path/to/image.png -b 3'
|
||||
echo ' E.g: betterlockscreen -u path/to/image.png --blur 0.5'
|
||||
echo
|
||||
echo
|
||||
echo ' -t --text'
|
||||
echo ' to set custom lockscreen text (max 31 chars)'
|
||||
echo " E.g: betterlockscreen -l dim -t \"Don't touch my machine!\""
|
||||
echo ' E.g: betterlockscreen --text "Hi, user!" -s blur'
|
||||
}
|
||||
|
||||
|
||||
# Options
|
||||
[[ "$1" = '' ]] && empty
|
||||
|
||||
for arg in "$@"; do
|
||||
[[ "${arg:0:1}" = '-' ]] || continue
|
||||
|
||||
case "$1" in
|
||||
-h | --help)
|
||||
usage
|
||||
break
|
||||
;;
|
||||
|
||||
-s | --suspend)
|
||||
runsuspend=true
|
||||
;&
|
||||
|
||||
-l | --lock)
|
||||
runlock=true
|
||||
[[ $runsuspend ]] || lockargs="$lockargs -n"
|
||||
[[ ${2:0:1} = '-' ]] && shift 1 || { lockstyle="$2"; shift 2; }
|
||||
;;
|
||||
|
||||
-w | --wall | --wallpaper)
|
||||
wallpaper "$2"
|
||||
shift 2
|
||||
;;
|
||||
|
||||
-u | --update)
|
||||
runupdate=true
|
||||
imagepath="$2"
|
||||
shift 2
|
||||
;;
|
||||
|
||||
-t | --text)
|
||||
locktext="$2"
|
||||
shift 2
|
||||
;;
|
||||
|
||||
-r | --resolution)
|
||||
res="$2"
|
||||
init_filenames $res force
|
||||
shift 2
|
||||
;;
|
||||
|
||||
-b | --blur)
|
||||
blur_level="$2"
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--)
|
||||
lockargs="$lockargs ${@:2}"
|
||||
break
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "invalid argument"
|
||||
echo "invalid argument: $1"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
done
|
||||
|
||||
# Run image generation
|
||||
[[ $runupdate ]] && update "$imagepath"
|
||||
|
||||
# Activate lockscreen
|
||||
[[ $runlock ]] && lockselect "$lockstyle" && \
|
||||
{ [[ $runsuspend ]] && systemctl suspend; }
|
||||
|
||||
exit 0
|
Loading…
Reference in a new issue