Compare commits

...

16 Commits

Author SHA1 Message Date
Anthony Debucquoy
d5c4d917df
bin 2025-04-17 18:12:16 +02:00
5adad59b39
adding dunst 2024-10-17 16:53:35 +02:00
2a6eb125d6
configured 2024-10-15 09:55:29 +02:00
377f19c997
Merge remote-tracking branch 'origin/master' into mininux 2024-10-15 09:53:18 +02:00
750a43c708
vim to neovim 2024-08-24 12:21:51 +02:00
446a7a9e1e
Merge remote-tracking branch 'origin/master' into mininux 2024-06-21 17:58:27 +02:00
e5c35cde47
Merge branch 'master' into mininux 2024-06-20 14:54:00 +02:00
b582b5daab
notification toggler 2024-04-19 20:55:24 +02:00
37ba913453
lombok 2024-04-16 12:29:05 +02:00
f5f394f8f7
adding tmux 2024-04-15 17:06:49 +02:00
39e2301518
logiscool 2024-03-08 08:12:36 +01:00
c301c0c984
fap and dog commands 2024-03-08 08:10:57 +01:00
244ccad598
vim 2024-02-29 14:49:05 +01:00
Debucquoy
9baf9fe901
Merge branch 'master' into mininux 2024-01-24 08:56:41 +01:00
4f5edb6932
Adding submodules 2024-01-24 08:55:17 +01:00
Debucquoy
a009c1049b
Mininux specials 2024-01-24 08:40:04 +01:00
12 changed files with 434 additions and 9 deletions

4
bin/.bin/0x0 Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
curl -F"file=@$@" https://0x0.st | tee >(xclip -sel clip)

8
bin/.bin/disc Executable file
View 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
View 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
View 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

258
dunst/.config/dunst/dunstrc Normal file
View File

@ -0,0 +1,258 @@
[global]
font =Fira Code 14
# Allow a small subset of html markup:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# If markup is not allowed, those tags will be stripped out of the
# message.
markup = yes
plain_text = no
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# Markup is allowed
format = "<b>%s</b>\n%b"
# Sort messages by urgency.
sort = no
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = center
# The frequency with wich text that is longer than the notification
# window allows bounces back and forth.
# This option conflicts with "word_wrap".
# Set to 0 to disable.
bounce_freq = 0
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = -1
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Hide duplicate's count and stack them
stack_duplicates = yes
hide_duplicates_count = yes
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectevly.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
#geometry = "250x50-40+40"
geometry = "300x50-15+49"
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing windowmanager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 5
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
idle_threshold = 0
# Which monitor should the notifications be displayed on.
monitor = 1
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a windowmanager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern windowmanagers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 15
# Display indicators for URLs (U) and actions (A).
show_indicators = no
# The height of a single line. If the height is smaller than the
# font height, it will get raised to the font height.
# This adds empty space above and under the text.
line_height = 3
# Draw a line of "separatpr_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 6
# Horizontal padding.
horizontal_padding = 6
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = auto
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/qutebrowser -t
# Align icons left/right/off
icon_position = off
max_icon_size = 80
# Paths to default icons.
icon_path = /usr/share/icons/Paper/16x16/mimetypes/:/usr/share/icons/Paper/48x48/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/48x48/notifications/:/usr/share/icons/Paper/48x48/emblems/
frame_width = 1
frame_color = "#8EC07C"
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = ctrl+space
# Close all notifications.
close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1".
history = ctrl+grave
# Context menu.
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
frame_color = "#3B7C87"
foreground = "#3B7C87"
background = "#191311"
#background = "#2B313C"
timeout = 4
[urgency_normal]
frame_color = "#5B8234"
foreground = "#5B8234"
background = "#191311"
#background = "#2B313C"
timeout = 6
[urgency_critical]
frame_color = "#B7472A"
foreground = "#B7472A"
background = "#191311"
#background = "#2B313C"
timeout = 8
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
# Messages can be matched by "appname", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
# Shell-like globbing will get expanded.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
# vim: ft=cfg

View File

@ -1,2 +1,3 @@
vim.g.vimtex_view_method="zathura"
vim.opt.completeopt="menu,popup,noinsert,noselect"
vim.g.python3_host_prog="/bin/python"

View File

@ -1,6 +1,7 @@
bin
bspwm
dmenu
dunst
feh
git
nvim

View File

@ -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

View File

@ -0,0 +1 @@
set tw=120

@ -1 +0,0 @@
Subproject commit 39354ae1c86c89bf36a4af7c6d4b9ca0c0a9eedf

@ -1 +0,0 @@
Subproject commit ee3bd0120525978521168eda1c3a64ef24e3cb86

View File

@ -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')