lock and no border

This commit is contained in:
2024-09-14 20:46:55 +02:00
parent 645bf2e940
commit fba967dbd0
3 changed files with 106 additions and 3 deletions

View File

@@ -242,7 +242,7 @@ exec_always feh --bg-fill /$wallpaper_path
#exec_always compton -f --config /home/wholteza/.config/i3/compton
#KEYBINDS
bindsym $mod+Shift+z exec i3lock
bindsym $mod+Shift+z exec /home/wholteza/.config/i3/lock -b=0x8 -n
bindsym Control+Mod1+s exec /home/wholteza/.config/passmenu/passmenu
bindsym $mod+Shift+p exec arandr
bindsym $mod+p exec /home/wholteza/.config/screenlayout/screenmenu.sh
@@ -250,7 +250,7 @@ bindsym --release Print exec scrot -s /home/wholteza/Screenshots/%Y-%m-%d-%T-scr
bindsym --release Control+Mod1+i exec scrot -s /home/wholteza/Screenshots/%Y-%m-%d-%T-screenshot.png
# border / titlebar
title_align center
default_border normal
default_border none
# hide_edge_borders vertical
bindsym Control+Shift+x [class="^.*"] border toggle
for_window [class="plasma.emojier"] floating enable

104
.config/i3/lock Executable file
View File

@@ -0,0 +1,104 @@
#!/bin/bash
# Defaults
DISPLAY_RE="([0-9]+)x([0-9]+)\\+([0-9]+)\\+([0-9]+)"
IMAGE_RE="([0-9]+)x([0-9]+)"
FOLDER="$(dirname "$(readlink -f "$0")")"
LOCK="$FOLDER/lock.png"
TEXT="$FOLDER/text.png"
PARAMS=""
OUTPUT_IMAGE="/tmp/i3lock.png"
DISPLAY_TEXT=true
PIXELATE=false
BLURTYPE="1x1"
# Read user input
POSITIONAL=()
for i in "$@"
do
case $i in
-h|--help)
echo "lock: Syntax: lock [-n|--no-text] [-p|--pixelate] [-b=VAL|--blur=VAL]"
echo "for correct blur values, read: http://www.imagemagick.org/Usage/blur/#blur_args"
exit
shift
;;
-b=*|--blur=*)
VAL="${i#*=}"
BLURTYPE=(${VAL//=/ })
shift
;;
-n|--no-text)
DISPLAY_TEXT=false
shift # past argument
;;
-p|--pixelate)
PIXELATE=true
shift # past argument
;;
*) # unknown option
echo "unknown option: $i"
exit
POSITIONAL+=("$1") # save it in an array for later
shift # past argument
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters
#Take screenshot:
scrot -z $OUTPUT_IMAGE
#Get dimensions of the lock image:
LOCK_IMAGE_INFO=`identify $LOCK`
[[ $LOCK_IMAGE_INFO =~ $IMAGE_RE ]]
IMAGE_WIDTH=${BASH_REMATCH[1]}
IMAGE_HEIGHT=${BASH_REMATCH[2]}
if $DISPLAY_TEXT ; then
#Get dimensions of the text image:
TEXT_IMAGE_INFO=`identify $TEXT`
[[ $TEXT_IMAGE_INFO =~ $IMAGE_RE ]]
TEXT_WIDTH=${BASH_REMATCH[1]}
TEXT_HEIGHT=${BASH_REMATCH[2]}
fi
#Execute xrandr to get information about the monitors:
while read LINE
do
#If we are reading the line that contains the position information:
if [[ $LINE =~ $DISPLAY_RE ]]; then
#Extract information and append some parameters to the ones that will be given to ImageMagick:
WIDTH=${BASH_REMATCH[1]}
HEIGHT=${BASH_REMATCH[2]}
X=${BASH_REMATCH[3]}
Y=${BASH_REMATCH[4]}
POS_X=$(($X+$WIDTH/2-$IMAGE_WIDTH/2))
POS_Y=$(($Y+$HEIGHT/2-$IMAGE_HEIGHT/2))
PARAMS="$PARAMS '$LOCK' '-geometry' '+$POS_X+$POS_Y' '-composite'"
if $DISPLAY_TEXT ; then
TEXT_X=$(($X+$WIDTH/2-$TEXT_WIDTH/2))
TEXT_Y=$(($Y+$HEIGHT/2-$TEXT_HEIGHT/2+200))
PARAMS="$PARAMS '$TEXT' '-geometry' '+$TEXT_X+$TEXT_Y' '-composite'"
fi
fi
done <<<"`xrandr`"
#Execute ImageMagick:
if $PIXELATE ; then
PARAMS="'$OUTPUT_IMAGE' '-scale' '10%' '-scale' '1000%' $PARAMS '$OUTPUT_IMAGE'"
else
PARAMS="'$OUTPUT_IMAGE' '-level' '0%,100%,0.6' '-blur' '$BLURTYPE' $PARAMS '$OUTPUT_IMAGE'"
fi
eval convert $PARAMS
#Lock the screen:
i3lock -i $OUTPUT_IMAGE -t
#Remove the generated image:
rm $OUTPUT_IMAGE