diff --git a/.bashrc b/.bashrc index 6c70f92..2d8f7ed 100644 --- a/.bashrc +++ b/.bashrc @@ -157,7 +157,6 @@ alias edit-bash='nano ~/.bashrc && source ~/.bashrc' alias edit-requirements='nano ~/.config/requirements/install.sh' export PATH="/home/wholteza/.cargo/bin:$PATH" - ### Start oh my posh eval "$(oh-my-posh init bash --config '~/.config/oh-my-posh/theme.omp.json')" diff --git a/.config/i3/config b/.config/i3/config index e9571da..99cabbb 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -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 diff --git a/.config/i3/lock b/.config/i3/lock new file mode 100755 index 0000000..3d5786d --- /dev/null +++ b/.config/i3/lock @@ -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