fixing XF86-buttons

This commit is contained in:
Harri Lahtinen 2018-12-30 13:31:09 +02:00
parent eff8e0955b
commit de7896fd8c
2 changed files with 343 additions and 326 deletions

View File

@ -4,35 +4,54 @@
# Github Profile : https://github.com/pavanjadhaw
# Project Repository : https://github.com/pavanjadhaw/betterlockscreen
# 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...'
# create folder in ~/.cache/i3lock directory
folder="$HOME/.cache/i3lock"
# ratio for rectangle to be drawn for time background on lockscreen
# Original Image
orig_wall="$folder/wall.png"
init_filenames() {
#$1 resolution
# 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
# create folder in ~/.cache/i3lock directory
res_folder="$HOME/.cache/i3lock/$1"
folder="$HOME/.cache/i3lock/current"
echo "Got" $@ $res_folder
if [ ! -d $folder -o -n "$2" ]; then
rm -f $folder
ln -s $res_folder $folder
fi
# 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"
# ratio for rectangle to be drawn for time background on lockscreen
# Original Image
orig_wall="$folder/wall.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"
# 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"
}
init_filenames $res
prelock() {
if [ ! -z "$(pidof dunst)" ]; then
pkill -u "$USER" -USR1 dunst
fi
}
lock() {
#$1 image path
letterEnteredColor=d23c3dff
@ -42,23 +61,27 @@ lock() {
background=00000000
foreground=ffffffff
i3lock \
-t -n -i "$1" \
--timepos="x-90:h-ch+30" \
--datepos="tx+24:ty+25" \
--clock --datestr "Type password to unlock..." \
-t -i "$1" \
--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="" \
--textcolor="$foreground" --timecolor="$foreground" --datecolor="$foreground" \
--force-clock
--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
}
postlock() {
if [ ! -z "$(pidof dunst)" ] ; then
pkill -u "$USER" -USR2 dunst
fi
}
rec_get_random() {
dir="$1"
if [ ! -d "$dir" ]; then
@ -70,218 +93,40 @@ rec_get_random() {
rec_get_random "$dir"
}
usage() {
echo "Important : Update the image cache, Ex: 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"
lockselect() {
prelock
case "$1" in
dim)
# lockscreen with dimmed background
lock "$l_dim"
;;
echo " For help. Ex: betterlockscreen -h or betterlockscreen --help"
echo
echo
echo " -u --update"
echo " to update image cache, you should do this before using any other options"
blur)
# set lockscreen with blurred background
lock "$l_blur"
;;
echo " Ex: 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, Ex. betterlockscreen -l"
echo " you can also use dimmed or blurred background for lockscreen"
echo " Ex: betterlockscreen -l dim (for dimmed background)"
echo " Ex: betterlockscreen -l blur (for blurred background)"
echo " Ex: betterlockscreen -l dimblur (for dimmed + blurred background)"
echo
echo
echo " -s --suspend"
echo " to suspend system and lock screen, Ex. betterlockscreen -s"
echo " you can also use dimmed or blurred background for lockscreen"
echo " Ex: betterlockscreen -s dim (for dimmed background)"
echo " Ex: betterlockscreen -s blur (for blurred background)"
echo " Ex: 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. Ex betterlockscreen -w or betterlockscreen --wall"
echo " you can also use dimmed or blurred variants"
echo " Ex: betterlockscreen -w dim (for dimmed wallpaper)"
echo " Ex: betterlockscreen -w blur (for blurred wallpaper)"
echo " Ex: 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 " Ex: betterlockscreen -u path/to/image.png -r 1920x1080"
echo " Ex: betterlockscreen -u path/to/image.png --resolution 3840x1080"
echo
echo " -b --blur"
echo " to be used after -u"
echo " used to set blur intensity. Default to 1."
echo " Ex: betterlockscreen -u path/to/image.png -b 3"
echo " Ex: betterlockscreen -u path/to/image.png --blur 0.5"
echo
dimblur)
# set lockscreen with dimmed + blurred background
lock "$l_dimblur"
;;
*)
# default lockscreen
lock "$l_resized"
;;
esac
postlock
}
# Options
case "$1" in
"")
if [ ! -f $l_dim ]; then
echo "Important : Update the image cache, Ex. 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 "Ex. betterlockscreen -h or betterlockscreen --help"
update() {
# use
background="$1"
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. 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)
case "$2" in
"")
# default lockscreen
prelock
lock "$l_resized"
postlock
;;
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
;;
-s | --suspend)
case "$2" in
"")
# default lockscreen
prelock
systemctl suspend && lock "$l_resized"
postlock
;;
dim)
# lockscreen with dimmed background
prelock
systemctl suspend && lock "$l_dim"
postlock
;;
blur)
# set lockscreen with blurred background
prelock
systemctl suspend && lock "$l_blur"
postlock
;;
dimblur)
# set lockscreen with dimmed + blurred background
prelock
systemctl suspend && lock "$l_dimblur"
postlock
;;
esac
;;
-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
# 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/')
# default blur level
blur_level=1
# parse update arguments
while [ $# -gt 0 ]; do
case "$1" in
-r | --resolution )
y_res="$2"
shift 2
;;
-b | --blur )
blur_level="$2"
shift 2
;;
*)
shift ;;
esac
done
# 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]*[^ ]*')
@ -307,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
@ -315,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 "$y_res""^" -gravity center -extent "$y_res" "$resized"
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"
@ -337,7 +182,7 @@ case "$1" in
-filter Gaussian \
-resize "$blur_shrink%" \
-define "filter:sigma=$blur_sigma" \
-resize "$y_res^" -gravity center -extent "$y_res" \
-resize "$res^" -gravity center -extent "$res" \
"$blur"
# dimblur
@ -345,26 +190,204 @@ case "$1" in
-filter Gaussian \
-resize "$blur_shrink%" \
-define "filter:sigma=$blur_sigma" \
-resize "$y_res^" -gravity center -extent "$y_res" \
-resize "$res^" -gravity center -extent "$res" \
"$dimblur"
# lockscreen backgrounds
echo
echo "Caching images for faster screen locking"
echo 'Caching images for faster screen locking'
# resized
convert "$resized" -draw "fill black fill-opacity 0.4 $rectangles" "$l_resized"
convert "$resized" -draw "fill rgba(0, 0, 0, 0.4) $rectangles" "$l_resized"
# dim
convert "$dim" -draw "fill black fill-opacity 0.4 $rectangles" "$l_dim"
convert "$dim" -draw "fill rgba(0, 0, 0, 0.4) $rectangles" "$l_dim"
# blur
convert "$blur" -draw "fill black fill-opacity 0.4 $rectangles" "$l_blur"
convert "$blur" -draw "fill rgba(0, 0, 0, 0.4) $rectangles" "$l_blur"
# blur
convert "$dimblur" -draw "fill black fill-opacity 0.4 $rectangles" "$l_dimblur"
convert "$dimblur" -draw "fill rgba(0, 0, 0, 0.4) $rectangles" "$l_dimblur"
echo
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 "All required changes have been applied"
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
;;
esac
-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: $1"
break
;;
esac
done
# Run image generation
[[ $runupdate ]] && update "$imagepath"
# Activate lockscreen
[[ $runlock ]] && lockselect "$lockstyle" && \
{ [[ $runsuspend ]] && systemctl suspend; }
exit 0

View File

@ -88,9 +88,9 @@ exec --no-startup-id systemctl --user start wallpaper.service
#Unclutter makes the mouse invisible after a brief period
exec --no-startup-id unclutter
# custom keybinding to lockscreen, use --lock dim or --lock blur below for different backgrounds
bindsym $mod+shift+x exec betterlockscreen --lock dim
bindsym $mod+shift+x exec betterlockscreen -l dim
# Set last used image as lockscreen background
exec --no-startup-id betterlockscreen -u ~/.config/wall.png
exec --no-startup-id betterlockscreen -w dim
#Twmn Gmail notifier
exec --no-startup-id python ~/.config/Scripts/gmail_notifier.py
@ -114,12 +114,13 @@ set $dec --no-startup-id amixer sset Master 2%-
set $bigdec --no-startup-id amixer sset Master 5%-
set $mute --no-startup-id pactl set-sink-mute 0 toggle
set $truemute --no-startup-id amixer sset Master mute
#set $audio --no-startup-id bash ~/.config/Scripts/audio_alsa.sh
###---Dropdown/Scratchpad Windows---###
exec --no-startup-id $term --title scratchterm
for_window [title="scratchterm"] move scratchpad
bindsym $mod+n [title="scratchterm"] scratchpad show, resize set 940 600, move position center
# Make the currently focused window a scratchpad
#bindsym $mod+Shift+m move scratchpad
# Show the first scratchpad window
#bindsym $mod+Shift+s scratchpad show
###---Basic Bindings---###
bindsym $mod+Return exec $term
@ -313,7 +314,6 @@ bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
###---Media Keys---###
#Volume keys
bindsym $mod+plus exec $inc
bindsym $mod+Shift+plus exec $biginc
@ -324,12 +324,6 @@ bindsym $mod+Shift+less exec $beg
bindsym $mod+greater exec $next
bindsym $mod+Shift+greater exec $next
#For advancing forward/backward in an mpd song
bindsym $mod+bracketleft exec $lilbak
bindsym $mod+Shift+bracketleft exec $bigbak
bindsym $mod+bracketright exec $lilfor
bindsym $mod+Shift+bracketright exec $bigfor
#Print screen takes a screenshot.
#With shift, it takes one only of the given window.
bindsym Print exec --no-startup-id scrot