From 45152190b02232d0e286378c9bdcb7b0fde03b80 Mon Sep 17 00:00:00 2001 From: Adam Shamblin Date: Mon, 21 Mar 2022 18:28:44 -0600 Subject: [PATCH] Update i3 config, start adding scripts --- dotvimrc | 2 +- i3/i3.conf | 1 + scripts/screenshot.sh | 71 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100755 scripts/screenshot.sh diff --git a/dotvimrc b/dotvimrc index 7e46970..c9a4a42 100644 --- a/dotvimrc +++ b/dotvimrc @@ -57,7 +57,7 @@ let g:ale_set_quickfix=1 map f :CtrlP map a :NERDTreeToggle -map b :Gblame +map b :Git blame map d :Gdiff map t :tag diff --git a/i3/i3.conf b/i3/i3.conf index ccb4a2b..0539f20 100644 --- a/i3/i3.conf +++ b/i3/i3.conf @@ -50,6 +50,7 @@ bindsym $mod+Shift+q kill # start dmenu (a program launcher) bindsym $mod+d exec --no-startup-id dmenu_run +bindsym $mod+Shift+d exec --no-startup-id i3-dmenu-desktop # A more modern dmenu replacement is rofi: # bindcode $mod+40 exec "rofi -modi drun,run -show drun" # There also is i3-dmenu-desktop which only displays applications shipping a diff --git a/scripts/screenshot.sh b/scripts/screenshot.sh new file mode 100755 index 0000000..095b648 --- /dev/null +++ b/scripts/screenshot.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +# +# Screenshot dmenu script +# +# This script was written to be keybound when using dmenu, +# specifically within the i3 window manager. +# +# eg. to bind to PRINT SCREEN +# bindsym 0xff61 exec screenshot.sh +# +# This script depends on dmenu, slop, maim and display + +if [[ ! `which dmenu` ]]; then + echo "This script depends on dmenu" + exit 1 +fi + +if [[ ! `which slop` ]]; then + echo "This script depends on slop" + exit 1 +fi + +if [[ ! `which maim` ]]; then + echo "This script depends on maim" + exit 1 +fi + +if [[ ! `which display` ]]; then + echo "This script depends on display" + exit 1 +fi + +PICTURES="${HOME}/Pictures" +FILE="${PICTURES}/$(date '+%Y-%m-%d-%H:%M:%S').png" + +function region() { + REGION=$(slop -q) || exit 1 + read -r G < <(echo $REGION) + import -window root -crop $G $FILE +} + +function window() { + WINDOW=$(xdotool getactivewindow) + maim --window $WINDOW $FILE +} + +function screen() { + maim $FILE +} + +OPTIONS=$(cat << 'EOF' +Region +Window +Screen +EOF +) + +SELECTED=$(echo "${OPTIONS}" | dmenu -i -p "Screenshot: ") + +case $SELECTED in + Region) + region + display $FILE ;; + Window) + window + display $FILE ;; + Screen) + screen + display $FILE ;; +esac + -- 2.39.5