Compare commits
16 Commits
f755edaa08
...
mininux
Author | SHA1 | Date | |
---|---|---|---|
d5c4d917df
|
|||
5adad59b39
|
|||
2a6eb125d6
|
|||
377f19c997
|
|||
750a43c708
|
|||
446a7a9e1e
|
|||
e5c35cde47
|
|||
b582b5daab
|
|||
37ba913453
|
|||
f5f394f8f7
|
|||
39e2301518
|
|||
c301c0c984
|
|||
244ccad598
|
|||
9baf9fe901
|
|||
4f5edb6932
|
|||
a009c1049b
|
4
bin/.bin/0x0
Executable file
4
bin/.bin/0x0
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
curl -F"file=@$@" https://0x0.st | tee >(xclip -sel clip)
|
||||
|
8
bin/.bin/disc
Executable file
8
bin/.bin/disc
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
tmux ls -F \#S | grep disc && \
|
||||
tmux attach -t disc \
|
||||
|| \
|
||||
tmux new-session -s disc 'scli --save-history' \; \
|
||||
split-window -h -l 75% 'aerc' \; \
|
||||
split-window -v 'weechat' \; \
|
141
bin/.bin/emailbook
Executable file
141
bin/.bin/emailbook
Executable file
@ -0,0 +1,141 @@
|
||||
#!/bin/sh
|
||||
VERSION="0.2.1"
|
||||
usage() {
|
||||
echo "emailbook $VERSION"'
|
||||
A minimalistic address book for e-mails only.
|
||||
|
||||
Usage: emailbook FILE [OPTIONS]
|
||||
|
||||
Prints all values in FILE if no option is given.
|
||||
|
||||
Options:
|
||||
-a, --add [KEY] VALUE Add KEY/VALUE pair to FILE. If KEY is omitted,
|
||||
VALUE is used as key, too.
|
||||
[-s, --search] QUERY Search FILE for entries with keys or values containing QUERY.
|
||||
-k, --key QUERY Like `--search` but limit search to keys/aliases.
|
||||
-v, --value QUERY Like `--search` but limit search to values.
|
||||
-p, --parse SOURCE Parse stdin for e-mail addresses in header and add them to FILE.
|
||||
SOURCE might be either --from, --to , --cc, --bcc, or --all.
|
||||
-h, --help Show this help.
|
||||
-V, --version Print version.
|
||||
'
|
||||
}
|
||||
|
||||
checkfilename() {
|
||||
[ $QUIET ] || [ -e "$filename" ] \
|
||||
|| echo "File $filename not found. Creating it." 1>&2
|
||||
}
|
||||
|
||||
keyexists() {
|
||||
escaped=$(echo "$*" | sed 's/[][\.|$(){}?+*^]/\\&/g')
|
||||
# also check display name with/without double quotes
|
||||
quotestoggled=$(echo "$*" | sed -E 's/^"([^"]+)"( +<[^>]+>)/\1\2/;t;s/^([^"]+?)( +<[^>]+>)/"\1"\2/')
|
||||
quotestoggledescaped=$(echo "$quotestoggled" | sed 's/[][\.|$(){}?+*^]/\\&/g')
|
||||
grep -q -E "^$escaped( :|\$)" "$filename" 2> /dev/null \
|
||||
|| grep -q -E "^$quotestoggledescaped( :|\$)" "$filename" 2> /dev/null
|
||||
}
|
||||
|
||||
addentry() {
|
||||
if keyexists "$1"; then
|
||||
[ $QUIET ] || echo "! $1 (skipped)"
|
||||
else
|
||||
[ "$2" ] && line="$1 : $2" || line="$1"
|
||||
[ $QUIET ] || echo "+ $line"
|
||||
echo "$line" >> "$filename"
|
||||
fi
|
||||
}
|
||||
|
||||
add() {
|
||||
checkfilename
|
||||
case $# in
|
||||
1|2) addentry "$@" ;;
|
||||
*) echo "Expected one or two arguments after -a!"; exit 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
addfromstdin() {
|
||||
# Skip lines without "@", skip lines containing no-reply (or similar),
|
||||
# strip \r, strip leading spaces, do the following replacements:
|
||||
# "'John Doe'" <xxx> → "John Doe" <xxx>
|
||||
# 'John Doe' <xxx> → John Doe <xxx>
|
||||
# "john.doe@example.com" <john.doe@example.com> → <john.doe@example.com>
|
||||
# "<john.doe@example.com>" <john.doe@example.com> → <john.doe@example.com>
|
||||
# john.doe@example.com → <john.doe@example.com>
|
||||
grep '@' \
|
||||
| grep -v -i -E '\bnot?[_-]?reply' \
|
||||
| sed 's/\r$//' \
|
||||
| sed -E 's/^ +//g' \
|
||||
| sed -E "s/(\"?)'([^'\"]+)'(\"?)/\1\2\3/" \
|
||||
| sed -E 's/^"<?([^">]*)>?" +<\1>/<\1>/' \
|
||||
| sed -E 's/^[^<>@ ]*@[^<>@ ]+$/<\0>/' \
|
||||
| sort -u \
|
||||
| while read -r line; do addentry "$line"; done
|
||||
}
|
||||
|
||||
searchall() {
|
||||
# show entries with matching alias first
|
||||
searchbyalias "$*"
|
||||
searchbyvalueonly "$*"
|
||||
}
|
||||
|
||||
searchbyalias() {
|
||||
grep -i -E "$* :" "$filename" | sed -E 's/^[^:]+:\s*//'
|
||||
}
|
||||
|
||||
searchbyvalue() {
|
||||
sed -E 's/^[^:]+:\s*//' "$filename" | grep -i -E "$*"
|
||||
}
|
||||
|
||||
searchbyvalueonly() {
|
||||
# exclude matches found by searchbyalias
|
||||
grep -i -E -v "$* :" "$filename" | sed -E 's/^[^:]+:\s*//' | grep -i -E "$*"
|
||||
}
|
||||
|
||||
parsefields() {
|
||||
# Find header fields starting with $1 (p.e. 'To:') plus following lines
|
||||
# starting with a space. Split entries at commas except when quoted. Skip
|
||||
# empty lines. Decode encoded strings. Squeeze double spaces.
|
||||
sed -E '/^\r?$/Q' - \
|
||||
| sed -E -n "/^$1:/{:a ; \$!N ; s/\n\s+/ / ; ta ; P ; D}" \
|
||||
| sed -E "s/^$1:\\s*//" \
|
||||
| grep -v -P '[\x80-\xFF]' \
|
||||
| awk -vFPAT='([^,"]*)("[^"]+")?([^,]*)?' -vOFS='\n' \
|
||||
'{for(i=1;i<=NF;i++) printf("%s\n",$i)}' \
|
||||
| sed -E -e '/^ *$/d' \
|
||||
| perl -CS -MEncode -ne 'print decode("MIME-Header", $_)' \
|
||||
| sed -E -e 's/ +/ /g' \
|
||||
| addfromstdin
|
||||
}
|
||||
|
||||
parse() {
|
||||
checkfilename
|
||||
case "$1" in
|
||||
--all) parsefields '(From|To|Cc|CC|Bcc)' ;;
|
||||
# TODO: Include References, In-Reply-To, Reply-To, Return-Path?
|
||||
--from) parsefields 'From' ;;
|
||||
--to) parsefields 'To' ;;
|
||||
--cc) parsefields '(Cc|CC)' ;;
|
||||
--bcc) parsefields 'Bcc' ;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
-h|--help|'') usage; exit ;;
|
||||
-V|--version) echo "$VERSION"; exit ;;
|
||||
esac
|
||||
|
||||
filename="$1"; shift
|
||||
|
||||
case "$1" in
|
||||
-q|--quiet) shift; QUIET=1 ;;
|
||||
esac
|
||||
|
||||
case "$1" in
|
||||
-a|--add) shift; add "$@" ;;
|
||||
-s|--search) shift; searchall "$*" ;;
|
||||
-k|--key) shift; searchbyalias "$*" ;;
|
||||
-v|--value) shift; searchbyvalue "$*" ;;
|
||||
-p|--parse) shift; parse "$@" ;;
|
||||
*) searchall "$*" ;;
|
||||
esac
|
9
bin/.bin/zoom_screen
Executable file
9
bin/.bin/zoom_screen
Executable file
@ -0,0 +1,9 @@
|
||||
current_resolution=$(xrandr | awk '/DSI1/ {print $4}')
|
||||
|
||||
if [[ $current_resolution == 1920x1200* ]];
|
||||
then
|
||||
xrandr --size 600x960
|
||||
else
|
||||
xrandr --size 1200x1920
|
||||
fi
|
||||
chwp
|
@ -1,2 +1,3 @@
|
||||
vim.g.vimtex_view_method="zathura"
|
||||
vim.opt.completeopt="menu,popup,noinsert,noselect"
|
||||
vim.g.python3_host_prog="/bin/python"
|
||||
|
@ -1,8 +1,5 @@
|
||||
active-opacity = 1.0;
|
||||
inactive-opacity = 0.9;
|
||||
backend = "glx";
|
||||
shadow = true;
|
||||
corner-radius = 10;
|
||||
|
||||
opacity-rule = [
|
||||
"100:name ~?= 'YouTube — Mozilla Firefox'",
|
||||
@ -10,8 +7,3 @@ opacity-rule = [
|
||||
"100:name ~?= 'Netflix — Mozilla Firefox'",
|
||||
"100:class_g = 'Zathura'"
|
||||
]
|
||||
|
||||
animation = ({
|
||||
triggers = ["open", "close"];
|
||||
preset = "appear";
|
||||
})
|
||||
|
@ -1,8 +1,8 @@
|
||||
# bspwm hotkeys
|
||||
#
|
||||
# Cleanly quit bspwm
|
||||
super + shift + a
|
||||
bspc quit 1 && pkill lemonpanel && pkill lemonbar
|
||||
super + shift + q
|
||||
bspc quit 1
|
||||
|
||||
# Show keybindings
|
||||
super + F1
|
||||
@ -96,7 +96,7 @@ super + Return
|
||||
# bspc node -n @/
|
||||
|
||||
# go (Shift=move) to desktop (and focus the monitor that the desktop is located on. Bspwm style)
|
||||
super + {_,shift + }{ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave}
|
||||
super + {_,shift + }{1,2,3,4,5,6,7,8,9,0}
|
||||
bspc {desktop -f,node -d} ^{1-9,10}
|
||||
|
||||
## Alternative: i3 style behavior (focus nth, desktop of the focused monitor)
|
||||
@ -125,7 +125,7 @@ super + Tab
|
||||
WindowSelector
|
||||
|
||||
#Focus windows by direction, works with multihead
|
||||
super + {q,s,z,d}
|
||||
super + {a,s,w,d}
|
||||
focusmover {west,south,north,east}
|
||||
|
||||
super + {h,j,k,l}
|
||||
@ -137,7 +137,7 @@ super + {Left,Down,Up,Right}
|
||||
# Move tiled windows. Moving a tiled window to
|
||||
# preselected one moves into preselection instead.
|
||||
# Moving out of the screen should move the window to next monitor if possible
|
||||
super + shift + {q,s,z,d}
|
||||
super + shift + {q,s,w,d}
|
||||
windowgrabber {west,south,north,east}
|
||||
|
||||
super + shift + {h,j,k,l}
|
||||
@ -148,7 +148,7 @@ super + shift + {Left,Down,Up,Right}
|
||||
euclid_mover {west,south,north,east}
|
||||
|
||||
#resize windows
|
||||
super + ctrl + {q,s,z,d}
|
||||
super + ctrl + {a,s,w,d}
|
||||
bspwm_resize.sh {west,south,north,east}
|
||||
|
||||
super + ctrl + {h,j,k,l}
|
||||
@ -334,6 +334,9 @@ super + ctrl + space
|
||||
{pkill picom ,\
|
||||
picom -b }
|
||||
|
||||
ctrl + alt +t
|
||||
pkill rotateScreen_au || rotateScreen_auto
|
||||
|
||||
# Remove receptacles
|
||||
super + BackSpace
|
||||
for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done
|
||||
|
1
vim/.vim/ftplugin/markdown.vim
Normal file
1
vim/.vim/ftplugin/markdown.vim
Normal file
@ -0,0 +1 @@
|
||||
set tw=120
|
Submodule vim/.vim/pack/autoload/start/loremipsum deleted from 39354ae1c8
Submodule vim/.vim/pack/autoload/start/vimspector deleted from ee3bd01205
@ -188,7 +188,8 @@ bindkey '^[[B' history-substring-search-down
|
||||
# Apply different settigns for different terminals
|
||||
case $(basename "$(cat "/proc/$PPID/comm")") in
|
||||
login)
|
||||
RPROMPT="%{$fg[red]%} %(?..[%?])"
|
||||
RPROMPT="%(?.%{$fg[green]%}✓ %{$reset_color%}.%{$fg[red]%}✗ %{$reset_color%})"
|
||||
# RPROMPT="%{$fg[red]%} %(?..[%?])"
|
||||
alias x='startx ~/.xinitrc' # Type name of desired desktop after x, xinitrc is configured for it
|
||||
;;
|
||||
# 'tmux: server')
|
||||
|
Reference in New Issue
Block a user