Add Fancy Lock to i3
Don't forget to install scrot, imagemagick and i3lock!
This commit is contained in:
parent
b8a86f98ce
commit
0a5e840c04
@ -136,7 +136,8 @@ bindsym $mod+Shift+p restart
|
|||||||
bindsym $mod+Shift+period exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
bindsym $mod+Shift+period exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
## Lock the screen
|
## Lock the screen
|
||||||
bindsym Control+Mod1+l exec i3lock --fuzzy
|
#bindsym Control+Mod1+l exec i3lock --fuzzy
|
||||||
|
bindsym Control+Mod1+l exec /home/ahosking/.i3/i3lock-fancy-multimonitor/lock
|
||||||
|
|
||||||
# resize window (you can also use the mouse for that)
|
# resize window (you can also use the mouse for that)
|
||||||
mode "resize" {
|
mode "resize" {
|
||||||
|
22
.i3/i3lock-fancy-multimonitor/LICENSE
Normal file
22
.i3/i3lock-fancy-multimonitor/LICENSE
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2015 Gui Meira
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
31
.i3/i3lock-fancy-multimonitor/README.md
Normal file
31
.i3/i3lock-fancy-multimonitor/README.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# i3lock-fancy-multimonitor
|
||||||
|
The idea for this project was shamelessly copied from [meskarune](https://github.com/meskarune)'s [i3lock-fancy](https://github.com/meskarune/i3lock-fancy).
|
||||||
|
|
||||||
|
It uses [scrot](http://freecode.com/projects/scrot) to take a screenshot of the desktop, then [ImageMagick](http://www.imagemagick.org/) blurs the image and adds a lock icon and text.
|
||||||
|
|
||||||
|
By using information from [xrandr](http://www.x.org/wiki/Projects/XRandR/) and basic math, this script supports multiple monitor setups, displaying the icon and text centered on all screens.
|
||||||
|
|
||||||
|
The lock icon is different from the original project, with a transparent black circle around it. The text is also an image, making it easier to customize (and to put it at the correct position). Finally, it uses vanilla [i3lock](https://github.com/i3/i3lock) instead of [i3lock-color](https://github.com/eBrnd/i3lock-color). The author of i3lock-color [is not maintaining it anymore](https://github.com/eBrnd/i3lock-color/issues/6). If you want to customize the colors of i3lock, the recommended version of i3lock-color is [this one](https://github.com/Arcaena/i3lock-color), maintained by [Chris Guillott](https://github.com/Arcaena).
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
Make sure you have all the dependencies:
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo apt-get install scrot imagemagick i3lock
|
||||||
|
```
|
||||||
|
|
||||||
|
Copy the `lock` script along with the images to some place on your system (e.g.: the i3 folder) and give it execution permission:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/guimeira/i3lock-fancy-multimonitor.git
|
||||||
|
cp -r i3lock-fancy-multimonitor ~/.i3
|
||||||
|
chmod +x ~/.i3/i3lock-fancy-multimonitor/lock
|
||||||
|
```
|
||||||
|
|
||||||
|
Create a key binding on your i3 config file (in this example I'm using $mod+p):
|
||||||
|
|
||||||
|
```
|
||||||
|
echo "bindsym \$mod+p exec /home/<your username>/.i3/i3lock-fancy-multimonitor/lock" >> ~/.i3/config
|
||||||
|
```
|
||||||
|
|
||||||
|
Now reload the i3 configuration file. By default, the key binding is `$mod+Shift+c`.
|
59
.i3/i3lock-fancy-multimonitor/lock
Executable file
59
.i3/i3lock-fancy-multimonitor/lock
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# All options are here: http://www.imagemagick.org/Usage/blur/#blur_args
|
||||||
|
#BLURTYPE="0x5"
|
||||||
|
#BLURTYPE="0x2"
|
||||||
|
BLURTYPE="5x3"
|
||||||
|
#BLURTYPE="2x8"
|
||||||
|
#BLURTYPE="2x3"
|
||||||
|
|
||||||
|
DISPLAY_RE="([0-9]+)x([0-9]+)\\+([0-9]+)\\+([0-9]+)"
|
||||||
|
IMAGE_RE="([0-9]+)x([0-9]+)"
|
||||||
|
FOLDER=`dirname "$BASH_SOURCE"`
|
||||||
|
LOCK="$FOLDER/lock.png"
|
||||||
|
TEXT="$FOLDER/text.png"
|
||||||
|
PARAMS=""
|
||||||
|
OUTPUT_IMAGE="/tmp/i3lock.png"
|
||||||
|
|
||||||
|
#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]}
|
||||||
|
|
||||||
|
#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]}
|
||||||
|
|
||||||
|
#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))
|
||||||
|
TEXT_X=$(($X+$WIDTH/2-$TEXT_WIDTH/2))
|
||||||
|
TEXT_Y=$(($Y+$HEIGHT/2-$TEXT_HEIGHT/2+200))
|
||||||
|
|
||||||
|
PARAMS="$PARAMS '$LOCK' '-geometry' '+$POS_X+$POS_Y' '-composite' '$TEXT' '-geometry' '+$TEXT_X+$TEXT_Y' '-composite'"
|
||||||
|
fi
|
||||||
|
done <<<"`xrandr`"
|
||||||
|
|
||||||
|
#Execute ImageMagick:
|
||||||
|
PARAMS="'$OUTPUT_IMAGE' '-level' '0%,100%,0.6' '-blur' '$BLURTYPE' $PARAMS '$OUTPUT_IMAGE'"
|
||||||
|
eval convert $PARAMS
|
||||||
|
|
||||||
|
#Lock the screen:
|
||||||
|
i3lock -i $OUTPUT_IMAGE -t
|
||||||
|
|
||||||
|
#Remove the generated image:
|
||||||
|
rm $OUTPUT_IMAGE
|
BIN
.i3/i3lock-fancy-multimonitor/lock.png
Normal file
BIN
.i3/i3lock-fancy-multimonitor/lock.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.6 KiB |
BIN
.i3/i3lock-fancy-multimonitor/text.png
Normal file
BIN
.i3/i3lock-fancy-multimonitor/text.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Loading…
Reference in New Issue
Block a user