First Commit
This is a first dotfiles config. I think I have a lot more to add tho...
This commit is contained in:
		
							
								
								
									
										20
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| # Tonitch's Dotfiles | ||||
|  | ||||
| This is mostly my dotfiles. I'm pretty sure I will forget to update it in some times but at least I will have | ||||
| a setup to roll with... | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| some of these folder are stow packages. (see [stowed.list](./stowed.list)) | ||||
|  | ||||
| The best method to install these is: | ||||
| 1) Clone this repo as $HOME/.dotfiles | ||||
| 2) executes the bellow commands | ||||
| ```sh | ||||
| $ git clone https://git.herisson.ovh/tonitch/dotfiles $HOME/.dotfiles | ||||
| $ cd $HOME/.dotfiles | ||||
| $ cat stowed.list | xargs stow | ||||
| ``` | ||||
|  | ||||
| Non-stow config files might have to be placed manually at their correct location. | ||||
| I will try to put a INSTALL.md in folders to know what you are supposed to do with those. | ||||
							
								
								
									
										5
									
								
								bin/.bin/WindowMinimiser
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								bin/.bin/WindowMinimiser
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,5 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| hiddens=$(bspc query --nodes --node .hidden | nl -w1 -s' ') | ||||
| window_choice=$(echo "$hiddens" | cut -d ' ' -f 2 | xargs -L 1 bspc query -T -n | jq -r .client.className | nl -w1 -s' ' | dmenu -l 10 -i | cut -d ' ' -f 1) | ||||
| echo "${hiddens}" | awk 'NR == n {print $2}' n=$window_choice | xargs -I{} bspc node {} --flag hidden | ||||
							
								
								
									
										17
									
								
								bin/.bin/WindowSelector
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								bin/.bin/WindowSelector
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,17 @@ | ||||
| #!/bin/bash | ||||
| # Script copied from AUR package dswitcher, and modified for theming and placement and removed unnecessary functions. | ||||
| if ! [ -f "$HOME/.dmenurc" ]; then | ||||
| 	cp /usr/share/dmenu/dmenurc $HOME/.dmenurc | ||||
| fi | ||||
| . $HOME/.dmenurc | ||||
|  | ||||
| # width=$(wattr w $(lsw -r)) | ||||
| # height=$(wattr h $(lsw -r)) | ||||
| # bar_width=$(( $width / 3 )) | ||||
| # left_shift=$(( ($width - $bar_width) / 2 )) | ||||
| # top_shift=$PANEL_HEIGHT | ||||
|  | ||||
| # num=$(wmctrl -l | sed 's/  / /' | cut -d " " -f 4- | nl -w 3 -n rn | sed -r 's/^([ 0-9]+)[ \t]*(.*)$/\1 - \2/' | dmenu -i -l 10 -x $left_shift -y $top_shift -w $bar_width -fn $DMENU_FN -nb $DMENU_NB -nf $DMENU_NF -sf $DMENU_SF -sb $DMENU_SB | cut -d '-' -f -1) | ||||
| num=$(wmctrl -l | sed 's/  / /' | cut -d " " -f 4- | nl -w 3 -n rn | sed -r 's/^([ 0-9]+)[ \t]*(.*)$/\1 - \2/' | dmenu -i -l 10 -fn $DMENU_FN -nb $DMENU_NB -nf $DMENU_NF -sf $DMENU_SF -sb $DMENU_SB | cut -d '-' -f -1) | ||||
| [[ -z "$num" ]] && exit | ||||
| wmctrl -l | sed -n "$num p" | cut -c -10 | xargs wmctrl -i -a | ||||
							
								
								
									
										26
									
								
								bin/.bin/avol
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								bin/.bin/avol
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,26 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # Manage ALSA Master channel | ||||
|  | ||||
| test "$1" = "-h" && echo "usage `basename $0` [up|down|mute]" && exit 0 | ||||
|  | ||||
| level() { | ||||
|     amixer get Master | sed -n 's/^.*\[\([0-9]\+%\).*$/\1/p' | uniq | ||||
|  | ||||
| } | ||||
|  | ||||
| state() { | ||||
|     amixer get Master | sed -n 's/^.*\[\(o[nf]\+\)]$/\1/p' | uniq | ||||
|  | ||||
| } | ||||
|  | ||||
| test $# -eq 0 && echo "`level` `state`" && exit 0 | ||||
|  | ||||
| case $1 in | ||||
|     up)      amixer set Master ${2:-5}%+ >/dev/null ||autoalsaconfamixer;; | ||||
|     down)      amixer set Master ${2:-5}%- >/dev/null ||autoalsaconf;; | ||||
|     mute)      amixer set Master toggle >/dev/null ||autoalsaconf;; | ||||
|     state|level) $1 ||autoalsaconf;; | ||||
|     set)    amixer set Master $2% >/dev/null ||autoalsaconf;; | ||||
|     *)    amixer set Master $1% >/dev/null ||autoalsaconf;; | ||||
| esac | ||||
							
								
								
									
										13
									
								
								bin/.bin/bspwm_rename_desktop
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								bin/.bin/bspwm_rename_desktop
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,13 @@ | ||||
| #!/bin/bash | ||||
|   | ||||
| DMENU_NF="#A3A6AB" | ||||
| DMENU_NB="#34322E" | ||||
| DMENU_SF="#F6F9FF" | ||||
| DMENU_SB="#5C5955" | ||||
|   | ||||
| DESKTOP_NAME=`echo '' | dmenu -b $DMENU_THEME -p 'Rename:'` | ||||
| if [ -z $DESKTOP_NAME ]; then | ||||
|     exit 0 | ||||
| fi | ||||
|   | ||||
| bspc desktop -n "$DESKTOP_NAME" | ||||
							
								
								
									
										41
									
								
								bin/.bin/bspwm_resize.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										41
									
								
								bin/.bin/bspwm_resize.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,41 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| size=${2:-'10'} | ||||
| dir=$1 | ||||
|  | ||||
| # Find current window mode | ||||
| is_tiled() { | ||||
| bspc query -T -n | grep -q '"state":"tiled"' | ||||
| } | ||||
| # If the window is floating, move it | ||||
| if ! is_tiled; then | ||||
| #only parse input if window is floating,tiled windows accept input as is | ||||
|         case "$dir" in | ||||
|                 west) switch="-w" | ||||
|                 sign="-" | ||||
|                 ;; | ||||
|                 east) switch="-w" | ||||
|                 sign="+" | ||||
|                 ;; | ||||
|                 north) switch="-h" | ||||
|                 sign="-" | ||||
|                 ;; | ||||
|                 south) switch="-h" | ||||
|                 sign="+" | ||||
|                 ;; | ||||
|                 esac | ||||
|  xdo resize ${switch} ${sign}${size} | ||||
|  | ||||
| # Otherwise, window is tiled: switch with window in given direction | ||||
| else | ||||
|      case "$dir" in | ||||
|                 west) bspc node @west -r -$size || bspc node @east -r -${size} | ||||
|                 ;; | ||||
|                 east) bspc node @west -r +$size || bspc node @east -r +${size} | ||||
|                 ;; | ||||
|                 north) bspc node @south -r -$size || bspc node @north -r -${size} | ||||
|                 ;; | ||||
|                 south) bspc node @south -r +$size || bspc node @north -r +${size} | ||||
|                 ;; | ||||
|                 esac | ||||
| fi | ||||
							
								
								
									
										9
									
								
								bin/.bin/colorshow
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								bin/.bin/colorshow
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,9 @@ | ||||
| for x in {0..8}; do  | ||||
|     for i in {30..37}; do  | ||||
|         for a in {40..47}; do  | ||||
| 	echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m " | ||||
|         done | ||||
|         echo | ||||
|     done | ||||
| done | ||||
| echo "" | ||||
							
								
								
									
										22
									
								
								bin/.bin/emoji
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								bin/.bin/emoji
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,22 @@ | ||||
| #!/bin/sh | ||||
| # Give dmenu list of all unicode characters to copy. | ||||
| # Shows the selected character in dunst if running. | ||||
|  | ||||
| # Must have xclip installed to even show menu. | ||||
| xclip -h >/dev/null || exit | ||||
|  | ||||
| if [ -e ~/.config/fontawesome ]; then | ||||
|     chosen=$(grep -v "#" -h ~/.config/emoji ~/.config/fontawesome | dmenu -i -l 20 -fn Monospace-18) | ||||
| else | ||||
|     chosen=$(grep -v "#" ~/.config/emoji | dmenu -i -l 20 -fn Monospace-18) | ||||
| fi | ||||
|  | ||||
| [ "$chosen" != "" ] || exit | ||||
|  | ||||
| c=$(echo "$chosen" | sed "s/ .*//") | ||||
| echo "$c" | tr -d '\n' | xclip -sel clip | ||||
| notify-send "'$c' copied to clipboard." & | ||||
|  | ||||
| s=$(echo "$chosen" | sed "s/.*; //" | awk '{print $1}') | ||||
| echo "$s" | tr -d '\n' | xclip | ||||
| notify-send "'$s' copied to primary." & | ||||
							
								
								
									
										14
									
								
								bin/.bin/euclid_balancer
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										14
									
								
								bin/.bin/euclid_balancer
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,14 @@ | ||||
| #!/bin/dash | ||||
|  | ||||
| if [ "$(pgrep -cx euclid_balancer)" -gt 1 ] ; then  | ||||
| 	killall euclid_balancer && exit 0 | ||||
| else | ||||
|  | ||||
| bspc subscribe node_add node_remove node_state node_geometry | while read line; do | ||||
| 	for wid in $(bspc query -N -d -n .window); do | ||||
| 		bspc node "${wid}#@north" -B || true | ||||
| 		bspc node "${wid}#@south" -B || true | ||||
| 	done | ||||
| done | ||||
|  | ||||
| fi | ||||
							
								
								
									
										15
									
								
								bin/.bin/euclid_mode
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								bin/.bin/euclid_mode
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,15 @@ | ||||
| #! /bin/sh | ||||
|  | ||||
| fwid=$(bspc query -N -n focused.automatic) | ||||
| wid=$1 | ||||
| class=$2 | ||||
| instance=$3 | ||||
| title=$(xtitle "$wid") | ||||
| #floats=$(bspc query -N -n .local.floating | wc -l) | ||||
| if bspc query -N -n "@/.!automatic" > /dev/null ; then | ||||
|     echo "node=@/" | ||||
| fi | ||||
| if [ -n "$fwid" ] ; then | ||||
| 			echo "split_dir=south" | ||||
| fi | ||||
| #window-placer $floats $wid | ||||
							
								
								
									
										85
									
								
								bin/.bin/euclid_mover
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										85
									
								
								bin/.bin/euclid_mover
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,85 @@ | ||||
| #!/bin/bash | ||||
| # Originally by https://github.com/windelicato/ | ||||
|  | ||||
| size=${2:-'20'} | ||||
| dir=$1 | ||||
|  | ||||
| transplanter() { | ||||
| 	bspc node ${dir} -p south && bspc node -n ${dir} | ||||
| } | ||||
|  | ||||
| northplanter() { | ||||
| 	bspc node north -p north && bspc node -n north | ||||
| } | ||||
|  | ||||
| rootplanter() { | ||||
| 	bspc node @/ -p ${dir} && bspc node -n @/ || bspc node -s next.local && bspc node -n @/ | ||||
| 	bspc node @/ -p cancel | ||||
| } | ||||
|  | ||||
| bspc config pointer_follows_focus true | ||||
| # Find current window mode | ||||
| is_floating() { | ||||
| bspc query -T -n | grep -q '"state":"floating"' | ||||
| } | ||||
| # If the window is floating, move it | ||||
| if is_floating; then | ||||
| #only parse input if window is floating,tiled windows accept input as is | ||||
|         case "$dir" in | ||||
|   		west) switch="-x" | ||||
|   		sign="-" | ||||
|         	;; | ||||
|   		east) switch="-x" | ||||
|          	sign="+" | ||||
|        		;; | ||||
|   		north) switch="-y" | ||||
|          	sign="-" | ||||
|         	;; | ||||
|   		*) switch="-y" | ||||
|      		sign="+" | ||||
|      		;; | ||||
|  		esac | ||||
|  xdo move ${switch} ${sign}${size} | ||||
|  | ||||
| # Otherwise, window is tiled: switch with window in given direction | ||||
| else | ||||
| 	 if [[ $(bspc query -N -n .local.\!floating | wc -l) != 2 ]]; then  | ||||
| 	 case "$dir" in | ||||
|   		north) northplanter || rootplanter | ||||
|         	;; | ||||
|   		*) transplanter || rootplanter | ||||
|      		;; | ||||
|  	 esac | ||||
|  	 else | ||||
|  	 case "$dir" in | ||||
|   		east) bspc node -s east || bspc query -N -n west.local || \ | ||||
|         if bspc query -N -n south.local ; then | ||||
|         	bspc node @/ -R 90 | ||||
|         	else | ||||
|         	bspc node @/ -R 270 | ||||
|         fi | ||||
|         	;; | ||||
|         west) bspc node -s west || bspc query -N -n east.local || \ | ||||
|         if bspc query -N -n north.local ; then | ||||
|         	bspc node @/ -R 90 | ||||
|         	else | ||||
|         	bspc node @/ -R 270 | ||||
|         fi | ||||
|         	;; | ||||
|         south) bspc node -s south || bspc query -N -n north.local || \ | ||||
|         if bspc query -N -n west.local ; then | ||||
|         	bspc node @/ -R 90 | ||||
|         	else | ||||
|         	bspc node @/ -R 270 | ||||
|         fi  | ||||
|         	;; | ||||
|   		*) bspc node -s north || bspc query -N -n south.local || \ | ||||
|         if bspc query -N -n west.local ; then | ||||
|         	bspc node @/ -R 270 | ||||
|         	else | ||||
|         	bspc node @/ -R 90 | ||||
|         fi | ||||
|      		;; | ||||
|      esac | ||||
|      fi | ||||
| fi | ||||
							
								
								
									
										13
									
								
								bin/.bin/focusmover
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								bin/.bin/focusmover
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,13 @@ | ||||
| #!/bin/sh | ||||
| #Focus windows by direction, works with multihead | ||||
| #called like this in sxhkdrc: | ||||
| #super +  {a,s,w,d} | ||||
| #   focusmover {west,south,north,east}  | ||||
|     bspc config pointer_follows_monitor true; \ | ||||
|     bspc config pointer_follows_focus true; \ | ||||
|     dir=$@; \ | ||||
|         if ! bspc node -f $dir; then \ | ||||
|     bspc monitor -f $dir; \ | ||||
|     fi; \ | ||||
|     bspc config pointer_follows_monitor false; \ | ||||
|     bspc config pointer_follows_focus false | ||||
							
								
								
									
										22
									
								
								bin/.bin/linkhandler
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								bin/.bin/linkhandler
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,22 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # Feed script a url or file location. | ||||
| # If an image, it will view in sxiv, | ||||
| # if a video or gif, it will view in mpv | ||||
| # if a music file or pdf, it will download, | ||||
| # otherwise it opens link in browser. | ||||
|  | ||||
| # If no url given. Opens browser. For using script as $BROWSER. | ||||
| [ -z "$1" ] && { "$BROWSER"; exit; } | ||||
|  | ||||
| case "$1" in | ||||
| 	*mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*) | ||||
| 		setsid -f mpv -quiet "$1" >/dev/null 2>&1 ;; | ||||
| 	*png|*jpg|*jpe|*jpeg|*gif) | ||||
| 		curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///")" && sxiv -a "/tmp/$(echo "$1" | sed "s/.*\///")"  >/dev/null 2>&1 & ;; | ||||
| 	*mp3|*flac|*opus|*mp3?source*) | ||||
| 		setsid -f tsp curl -LO "$1" >/dev/null 2>&1 ;; | ||||
| 	*) | ||||
| 		if [ -f "$1" ]; then "$TERMINAL" -e "$EDITOR" "$1" | ||||
| 	else setsid -f "$BROWSER" "$1" >/dev/null 2>&1; fi ;; | ||||
| esac | ||||
							
								
								
									
										4
									
								
								bin/.bin/maildecrypt
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								bin/.bin/maildecrypt
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,4 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| gpg --output /tmp/decrypt.html --decrypt "$@"  | ||||
| firefox /tmp/decrypt.html | ||||
							
								
								
									
										5
									
								
								bin/.bin/md2pdf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								bin/.bin/md2pdf
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,5 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| MDFILE="$1" | ||||
|  | ||||
| [ -r $MDFILE -a -f $MDFILE ] && pandoc $MDFILE -t html -o ${MDFILE[@]/%md/pdf} || echo "what a freak" | ||||
							
								
								
									
										4
									
								
								bin/.bin/quickssh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								bin/.bin/quickssh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,4 @@ | ||||
| #!/bin/sh | ||||
| sshchoice=$(grep -Eo '^[^, ]+' $HOME/.ssh/known_hosts | dmenu) | ||||
|  | ||||
| $TERMINAL -e ssh $sshchoice | ||||
							
								
								
									
										7
									
								
								bin/.bin/resetnotify
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								bin/.bin/resetnotify
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,7 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| pidof dunst && killall dunst | ||||
| dunst & | ||||
|  | ||||
| notify-send "Hello, World!" & | ||||
| notify-send "Hello, World!2" --urgency=critical & | ||||
							
								
								
									
										5
									
								
								bin/.bin/scrot_copy
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								bin/.bin/scrot_copy
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,5 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| scrot -s -o /tmp/screenshot.png  | ||||
| xclip -sel clip -i /tmp/screenshot.png -t "image/png" | ||||
|  | ||||
							
								
								
									
										23
									
								
								bin/.bin/search
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								bin/.bin/search
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,23 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| QUERY=$@ | ||||
|  | ||||
| if [[ -z $QUERY ]]; then | ||||
| 	QUERY=$(dmenu -p "Search Query: " < /dev/null ) | ||||
| fi | ||||
|  | ||||
| [[ -n $QUERY ]] || exit | ||||
|  | ||||
| QUERY=$(echo $QUERY | sed 's/ /+/g') | ||||
|  | ||||
| RESULT=$(curl "http://s.herisson.ovh/search?q=$QUERY&format=json") | ||||
|  | ||||
| TITLES=$(echo "$RESULT" | jq -r '.results[] | .title') | ||||
| LINKS=$(echo "$RESULT" | jq -r '.results[] | .url') | ||||
|  | ||||
| SELECT=$(paste -d ": " <(seq $(echo "$TITLES" | wc -l)) <(echo "$TITLES") <(echo "$LINKS")| dmenu -l 15 | cut -d: -f1) | ||||
| 	 | ||||
| [[ -n $SELECT ]] || exit | ||||
|  | ||||
| echo "$LINKS" | head -n $SELECT | tail -1 | xclip -sel clip | ||||
|  | ||||
							
								
								
									
										22
									
								
								bin/.bin/search_open
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								bin/.bin/search_open
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,22 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| QUERY=$@ | ||||
|  | ||||
| if [[ -z $QUERY ]]; then | ||||
| 	QUERY=$(dmenu -p "Search Query: " < /dev/null ) | ||||
| fi | ||||
|  | ||||
| [[ -n $QUERY ]] || exit | ||||
|  | ||||
| QUERY=$(echo $QUERY | sed 's/ /+/g') | ||||
|  | ||||
| RESULT=$(curl "http://s.herisson.ovh/search?q=$QUERY&format=json") | ||||
|  | ||||
| TITLES=$(echo "$RESULT" | jq -r '.results[] | .title') | ||||
| LINKS=$(echo "$RESULT" | jq -r '.results[] | .url') | ||||
|  | ||||
| SELECT=$(paste -d ": " <(seq $(echo "$TITLES" | wc -l)) <(echo "$TITLES") <(echo "$LINKS")| dmenu -l 15 | cut -d: -f1) | ||||
| 	 | ||||
| [[ -n $SELECT ]] || exit | ||||
|  | ||||
| echo "$LINKS" | head -n $SELECT | tail -1 | xargs xdg-open | ||||
							
								
								
									
										1
									
								
								bin/.bin/steamlaunch
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								bin/.bin/steamlaunch
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1 @@ | ||||
| steam steam://runappid/$1 | ||||
							
								
								
									
										17
									
								
								bin/.bin/switchkblayout
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								bin/.bin/switchkblayout
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,17 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| key=`setxkbmap -query | grep "layout\|variant" | awk '{print $2}' | xargs` | ||||
|  | ||||
| if [[ $key = "fr" ]]; then | ||||
| 	setxkbmap us | ||||
| elif [[ $key = "us" ]]; then | ||||
| 	setxkbmap us -variant dvorak	 | ||||
| elif [[ $key = "us dvorak" ]]; then | ||||
| 	setxkbmap fr | ||||
| else  | ||||
| 	setxkbmap fr | ||||
| fi | ||||
|  | ||||
| key=`setxkbmap -query | grep "layout\|variant" | awk '{print $2}' | xargs` | ||||
| notify-send "Keyboard Layout: $key" | ||||
| 	 | ||||
							
								
								
									
										3
									
								
								bin/.bin/tordone
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								bin/.bin/tordone
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,3 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| notify-send "✔ Transmission-daemon" "$TR_TORRENT_NAME has completely downloaded." | ||||
							
								
								
									
										6
									
								
								bin/.bin/transadd
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								bin/.bin/transadd
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,6 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| pgrep -x transmission-da >/dev/null || (transmission-daemon && notify-send "Starting transmission daemon...") && sleep 3 | ||||
|  | ||||
| # ssh 192.168.1.100 "transmission-remote -a \"$@\"" && notify-send "🔻 Transmission-daemon" "Torrent Added." | ||||
| transmission-remote -a "$@" && notify-send "🔻 Transmission-daemon" "Torrent Added." | ||||
							
								
								
									
										8
									
								
								bin/.bin/volume
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								bin/.bin/volume
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,8 @@ | ||||
| #!/bin/bash | ||||
| if [ $(pgrep pulseaudio >/dev/null) ]; then | ||||
| 	volume_command=pulseaudio-ctl | ||||
| else | ||||
| 	volume_command=avol | ||||
| fi | ||||
|  | ||||
| $volume_command $@ | ||||
							
								
								
									
										5
									
								
								bin/.bin/wacom-to-first-screen.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								bin/.bin/wacom-to-first-screen.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,5 @@ | ||||
| Display="DVI-D-0" #find it with xrandr | ||||
|  | ||||
| Stylusid=$(xinput | grep -Po 'Wacom (.*)' | grep -Po 'id=(\d*)' | grep -Po '\d*') | ||||
|  | ||||
| $(echo $Stylusid | tr ' ' '\n' | xargs -i xinput map-to-output {} $Display) | ||||
							
								
								
									
										43
									
								
								bin/.bin/windowgrabber
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										43
									
								
								bin/.bin/windowgrabber
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,43 @@ | ||||
| #!/bin/bash | ||||
| # Originally by https://github.com/windelicato/ | ||||
| # edited beyound recognition | ||||
|  | ||||
| follower() { | ||||
| if [ "$(pgrep -cx windowgrabber)" = 1 ] ; then | ||||
| 	bspc config pointer_follows_focus false | ||||
| fi | ||||
| } | ||||
|  | ||||
| trap 'follower' INT TERM QUIT EXIT | ||||
|  | ||||
| size=${2:-'20'} | ||||
| dir=$1 | ||||
|  | ||||
| bspc config pointer_follows_focus true | ||||
| # Find current window mode | ||||
| is_floating() { | ||||
| bspc query -T -n | grep -q '"state":"floating"' | ||||
| } | ||||
| # If the window is floating, move it | ||||
| if is_floating; then | ||||
| #only parse input if window is floating,tiled windows accept input as is | ||||
|         case "$dir" in | ||||
|   		west) switch="-x" | ||||
|   		sign="-" | ||||
|         	;; | ||||
|   		east) switch="-x" | ||||
|          	sign="+" | ||||
|        		;; | ||||
|   		north) switch="-y" | ||||
|          	sign="-" | ||||
|         	;; | ||||
|   		*) switch="-y" | ||||
|      		sign="+" | ||||
|      		;; | ||||
|  		esac | ||||
|  xdo move ${switch} ${sign}${size} | ||||
|  | ||||
| # Otherwise, window is tiled: switch with window in given direction | ||||
| else | ||||
|         bspc node -n ${dir}.!automatic || bspc node -s ${dir} ||  bspc node -m ${dir} && bspc monitor -f | ||||
| fi | ||||
							
								
								
									
										26
									
								
								bin/.bin/windowpromoter
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								bin/.bin/windowpromoter
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,26 @@ | ||||
| #!/usr/bin/sh | ||||
|  | ||||
| receptacle=$(bspc query -N -n ".leaf.!window.local" | awk NR==1) | ||||
|  | ||||
| window_promotion() | ||||
| { | ||||
| 	if [ -n "$receptacle" ] > /dev/null ; then | ||||
|     bspc node -n "$receptacle"  | ||||
|     elif [ -z "$(bspc query -N -n last.!automatic.local)" ]; then \ | ||||
|         bspc node -s biggest.!focused.local; \ | ||||
|     else \ | ||||
|         bspc node -n last.!automatic.local; \ | ||||
|     fi  | ||||
| } | ||||
|  | ||||
| if bspc query -N -n "@/.!automatic" > /dev/null ; then | ||||
| 	bspc node -n @/ || window_promotion | ||||
| 	else | ||||
|     	if [ -n "$receptacle" ] > /dev/null ; then | ||||
|     			bspc node -n "$receptacle"  | ||||
|     		elif [ -z "$(bspc query -N -n last.!automatic.local)" ]; then \ | ||||
|        			 bspc node -s biggest.!focused.local; \ | ||||
|     		else \ | ||||
|        			 bspc node -n last.!automatic.local; \ | ||||
|     	fi  | ||||
| fi | ||||
							
								
								
									
										51
									
								
								bin/.bin/workspaces_multimonitor
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								bin/.bin/workspaces_multimonitor
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,51 @@ | ||||
| #!/bin/bash | ||||
| #all_monitors=$(xrandr -q | awk '/connected/ {print $1}') | ||||
| #default_screen=$(xrandr | awk '/ connected/ {print $1;exit;}') | ||||
| #extra_monitors=$(xrandr -q | awk '/connected/ {print $1}' | grep -v $default_screen) | ||||
|  | ||||
| ##First, configure stuff with xrandr | ||||
| #[[ $(who) != "" ]] && USER=$(who | grep :0\) | cut -f 1 -d ' ') || \ | ||||
| #USER=$(echo /home/* | cut -f 3 -d '/') | ||||
|  | ||||
| #export DISPLAY=:0.0 | ||||
| #export XAUTHORITY=/home/$USER/.Xauthority | ||||
|  | ||||
| #for monitor in $extra_monitors; do | ||||
| #	prev_mon=$(xrandr | awk '/connected/ {print $1}' | grep -B1 "^$monitor" | grep -vE "^$monitor|^--$") | ||||
| #	xrandr --output $monitor \ | ||||
| #		--auto \ | ||||
| #		--right-of $prev_mon | ||||
| #done | ||||
|  | ||||
| ##Then, create workspaces on all monitors | ||||
|   I=1 | ||||
|   M=$(bspc query -M | wc -l) | ||||
|   if [[ "$M" == 1 ]]; then | ||||
|     bspc monitor -d I II III IV V VI VII VIII IX X | ||||
|   elif [[ "$M" == 2 ]]; then | ||||
|      bspc monitor $(bspc query -M | awk NR==1) -d I II III IV V | ||||
|      bspc monitor $(bspc query -M | awk NR==2) -d VI VII VIII IX X | ||||
|   elif [[ "$M" == 3 ]]; then | ||||
|      bspc monitor $(bspc query -M | awk NR==1) -d I II III IV | ||||
|      bspc monitor $(bspc query -M | awk NR==2) -d V VI VII | ||||
|      bspc monitor $(bspc query -M | awk NR==3) -d VIII IX X | ||||
|   elif [[ "$M" == 4 ]]; then | ||||
|      bspc monitor $(bspc query -M | awk NR==1) -d I II III | ||||
|      bspc monitor $(bspc query -M | awk NR==2) -d IV V VI | ||||
|      bspc monitor $(bspc query -M | awk NR==3) -d VII VIII | ||||
|      bspc monitor $(bspc query -M | awk NR==4) -d IX X | ||||
|   elif [[ "$M" == 5 ]]; then | ||||
|      bspc monitor $(bspc query -M | awk NR==1) -d I II | ||||
|      bspc monitor $(bspc query -M | awk NR==2) -d III IV | ||||
|      bspc monitor $(bspc query -M | awk NR==3) -d V VI | ||||
|      bspc monitor $(bspc query -M | awk NR==4) -d VII VIII | ||||
|      bspc monitor $(bspc query -M | awk NR==5) -d IX X | ||||
|   else | ||||
|     for monitor in $(bspc query -M); do | ||||
|     bspc monitor $monitor \ | ||||
|         -n "$I" \ | ||||
|         -d $I/{a,b,c} | ||||
|      let I++ | ||||
|      done | ||||
|   fi | ||||
|  | ||||
							
								
								
									
										1646
									
								
								bin/.config/emoji
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1646
									
								
								bin/.config/emoji
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1483
									
								
								bin/.config/fontawesome
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1483
									
								
								bin/.config/fontawesome
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										121
									
								
								bspwm/.config/bspwm/bspwmrc
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										121
									
								
								bspwm/.config/bspwm/bspwmrc
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,121 @@ | ||||
| #! /bin/sh | ||||
| gap=10 | ||||
| cgap=5 | ||||
| PANEL_HEIGHT=25 | ||||
| export gap | ||||
| export cgap | ||||
| export PANEL_HEIGHT | ||||
|  | ||||
| #This creates negative padding equal to window gap so that gaps are shown only between windows and not on desktop edges. | ||||
| bspc config window_gap $(($gap+$cgap)) | ||||
| bspc config top_padding $(($PANEL_HEIGHT-$gap)) | ||||
| bspc config left_padding -$gap | ||||
| bspc config right_padding -$gap | ||||
| bspc config bottom_padding -$gap | ||||
|  | ||||
| #Various settings | ||||
| bspc config gapless_monocle     false #Default setup uses negative padding, and gapless monocle looks really weird like that | ||||
| bspc config borderless_monocle  true | ||||
| bspc config single_monocle true | ||||
| bspc config paddingless_monocle false | ||||
| #bspc config ignore_ewmh_focus      true | ||||
| #bspc config initial_polarity second_child | ||||
| bspc config remove_disabled_monitors true | ||||
| bspc config remove_unplugged_monitors true | ||||
| ## Honor size hints: do not make windows smaller than they wish to be | ||||
| #bspc config honor_size_hints true  | ||||
|  | ||||
| ##Color settings | ||||
| bspc config focused_border_color "#1ABB9B" | ||||
| bspc config normal_border_color "#2D2D2D" | ||||
| #"#000000" | ||||
| bspc config presel_feedback_color "#1ABB9B" | ||||
| #"#8F3724" | ||||
| bspc config border_width 2 | ||||
|  | ||||
| bspc config focus_follows_pointer true | ||||
| #bspc config pointer_follows_focus true #Some keybindings automatically enable and disable this setting | ||||
|  | ||||
| #Settings for manual splitting | ||||
| bspc config split_ratio         0.52 | ||||
|  | ||||
| #bspc monitor -d i ii iii iv v vi vii viii ix x | ||||
| #bspc monitor -d One Two Three Four Five Six Seven Eight Nine Ten | ||||
| #bspc monitor -d I II III IV V VI VII VIII IX X | ||||
| #bspc monitor -d • • • • • • • • • • | ||||
| #bspc monitor -d I II III IV V VI | ||||
|  | ||||
| ###This creates and names desktops for multiple monitors. | ||||
| workspaces_multimonitor & | ||||
|  | ||||
| bspc rule -a screenkey --unmanage | ||||
| bspc rule -a gcolor2 state=floating center=true | ||||
| bspc rule -a lxappearance state=floating center=true | ||||
| bspc rule -a gmrun state=floating center=true | ||||
| bspc rule -a lxterminal state=floating center=true sticky=true | ||||
| #bspc rule -a urxvt state=floating center=true | ||||
| bspc rule -a viewnior state=floating center=true | ||||
| bspc rule -a file-roller state=floating center=true | ||||
| bspc rule -a floaterm state=floating center=true | ||||
| bspc rule -a spotify state=pseudo_tiled | ||||
| #bspc rule -a nautilus state=pseudo_tiled | ||||
| #bspc rule -a skype state=pseudo_tiled | ||||
| bspc rule -a file-roller state=pseudo_tiled | ||||
| bspc rule -a transmission-gtk state=pseudo_tiled | ||||
| bspc rule -a conky sticky=on manage=off lower=on | ||||
| bspc rule -a astime sticky=on | ||||
| bspc rule -a yad state=floating | ||||
| bspc rule -a Docky layer=above border=off manage=on | ||||
| bspc rule -a Plank layer=above border=off manage=on | ||||
| bspc rule -a wbar layer=above | ||||
| bspc rule -a dockbarx layer=above | ||||
| bspc rule -a google-chrome-unstable private=on | ||||
| bspc rule -a google-chrome-stable private=on | ||||
| bspc rule -a chromium private=on | ||||
| bspc rule -a firefox private=on fullscreen=on | ||||
| bspc rule -a midori private=on | ||||
| bspc rule -a gnome-pie border=off manage=off | ||||
| bspc rule -a wpa_gui state=pseudo_tiled | ||||
| bspc rule -a libreoffice state=tiled | ||||
| bspc rule -a '*:libreofficedev' state=tiled | ||||
| bspc rule -a '*:soffice' state=tiled | ||||
| #bspc rule -a firefox desktop=I | ||||
| #bspc rule -a calibre desktop=II | ||||
| #bspc rule -a geany desktop=II | ||||
| #bspc rule -a deluge desktop=III | ||||
| bspc rule -a 9menu border=off manage=off | ||||
| bspc rule -a tint2 border=off manage=off | ||||
| #bspc desktop I --layout monocle | ||||
| #bspc desktop II --layout monocle | ||||
| bspc rule -a Godot state=pseudo_tiled | ||||
| bspc rule -a arduino state=pseudo_tiled | ||||
| bspc rule -a Tk state=pseudo_tiled | ||||
| bspc rule -a mcedit.py state=floating | ||||
| bspc rule -a yakuake manage=off layer=above | ||||
| bspc rule -a xsane manage=off layer=above | ||||
|  | ||||
|  | ||||
| ##  Autogap adjusts windowgap automatically according to the number of | ||||
| ##  windows on the desktop. Using it disables negative window gap. | ||||
| # autogap & | ||||
|  | ||||
| ##  This script balances all windows when new one is spawned  | ||||
| #euclid_balancer & | ||||
|  | ||||
| ##Edge-switcher switches to next workspace when moves moves to the  | ||||
| ##edge of the monitor (behavior similar to enlightenment) | ||||
| #edge-switcher & | ||||
|  | ||||
| ###External rules | ||||
| ##Pseudo automatic mode: always splits focused window when opening new window | ||||
| bspc config external_rules_command /usr/bin/pseudo_automatic_mode | ||||
| ##Adjust new window: splits biggest windows to keep windows about the same size | ||||
| #bspc config external_rules_command /usr/bin/adjust-new-window | ||||
|  | ||||
| ##Autostart apps | ||||
| #Keybindings daemon | ||||
| sxhkd & | ||||
| #Source autostartfile. Uncomment this if you use bspwm-git | ||||
| #. $HOME/.config/bspwm/autostart | ||||
| #limepanel & | ||||
| $HOME/.config/polybar/launch.sh & | ||||
							
								
								
									
										73
									
								
								dmenu/.bin/dmenu_recent
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										73
									
								
								dmenu/.bin/dmenu_recent
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,73 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Originally based on code by Dieter Plaetinck. | ||||
| # Pretty much re-written by Mina Nagy (mnzaki) | ||||
|  | ||||
| if ! [ -f "$HOME/.dmenurc" ]; then | ||||
| 	cp /usr/share/dmenu/dmenurc $HOME/.dmenurc | ||||
| fi | ||||
| . $HOME/.dmenurc | ||||
|  | ||||
| #dmenu_cmd="dmenu $DMENU_OPTIONS" | ||||
| dmenu_cmd="dmenu $DMENU_OPTIONS" | ||||
| terminal="$TERMINAL -e" | ||||
| max_recent=199 # Number of recent commands to track | ||||
|  | ||||
| cache_dir="${XDG_CACHE_HOME:-$HOME/.cache}/dmenu-recent" | ||||
| recent_cache="$cache_dir/recent" | ||||
| rest_cache="$cache_dir/all" | ||||
| known_types=" background terminal terminal_hold " | ||||
|  | ||||
| config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/dmenu-recent" | ||||
| mkdir -p "$cache_dir" | ||||
| mkdir -p "$config_dir" | ||||
| touch "$recent_cache" | ||||
|  | ||||
| # Without this, it won't remember $type | ||||
| GREP_OPTIONS='--color=never' | ||||
|  | ||||
| IFS=: | ||||
| if stest -dqr -n "$rest_cache" $PATH 2>/dev/null; then | ||||
|      stest -flx $PATH | sort -u | grep -vf "$recent_cache" > "$rest_cache" | ||||
| fi | ||||
|  | ||||
| IFS=" " | ||||
| cmd=$(cat "$recent_cache" "$rest_cache" | $dmenu_cmd -p run: "$@") || exit | ||||
|  | ||||
| if ! grep -qx "$cmd" "$recent_cache" &> /dev/null; then | ||||
|     grep -vx "$cmd" "$rest_cache" > "$rest_cache.$$" | ||||
|     mv "$rest_cache.$$" "$rest_cache" | ||||
| fi | ||||
|  | ||||
| echo "$cmd" > "$recent_cache.$$" | ||||
| grep -vx "$cmd" "$recent_cache" | head -n "$max_recent" >> "$recent_cache.$$" | ||||
| mv "$recent_cache.$$"  "$recent_cache" | ||||
|  | ||||
| # Figure out how to run the command based on the command name, disregarding | ||||
| # arguments, if any. | ||||
| word0=${cmd%% *} | ||||
| match="^$word0$" | ||||
|  | ||||
| get_type () { | ||||
|     while type=$(echo $known_types | xargs -n1 | $dmenu_cmd -p Type:); do | ||||
|         [[ $known_types =~ " $type " ]] || continue | ||||
|         echo "$word0" >> "$config_dir/$type" | ||||
|         break | ||||
|     done | ||||
|     echo $type | ||||
| } | ||||
|  | ||||
| if ! type=$(grep -lx "$match" -R "$config_dir"); then | ||||
|     type=$(get_type) | ||||
| else  | ||||
|     type=${type##*/} | ||||
|     if ! [[ $known_types =~ " $type " ]]; then | ||||
|         rm "$config_dir/$type" | ||||
|         type=$(get_type) | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| [[ "$type" = "background" ]] && exec $cmd | ||||
| [[ "$type" = "terminal" ]] && exec $TERMINAL -e "$cmd" | ||||
| [[ "$type" = "terminal_hold" ]] && | ||||
|     exec $TERMINAL -e sh -c "$cmd && echo Press Enter to kill me... && read line" | ||||
							
								
								
									
										13
									
								
								dmenu/.dmenurc
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								dmenu/.dmenurc
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,13 @@ | ||||
| #!/bin/bash | ||||
| # ~/.dmenurc | ||||
| #DMENU_FN="Terminus-15" | ||||
| DMENU_FN="consolas-14" | ||||
| #DMENU_FN="TerminessTTF Nerd Font-15" -fn $DMENU_FN | ||||
| DMENU_NB="#2f343f" | ||||
| DMENU_NF="#1ABB9B" | ||||
| DMENU_SB="#1ABB9B" | ||||
| DMENU_SF="#2f343f" | ||||
| TERMINAL_CMD="st" | ||||
| PANEL_HEIGHT="25" | ||||
| DMENU_OPTIONS="-nb $DMENU_NB -nf $DMENU_NF -sf $DMENU_SF -sb $DMENU_SB" | ||||
| export DMENU_FN DMENU_NB DMENU_NF DMENU_SF DMENU_SB DMENU_OPTIONS PANEL_HEIGHT | ||||
							
								
								
									
										3
									
								
								feh/.bin/chwp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								feh/.bin/chwp
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,3 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| /home/tonitch/.fehbg | ||||
							
								
								
									
										4
									
								
								feh/.fehbg
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								feh/.fehbg
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,4 @@ | ||||
| #!/bin/sh | ||||
| wallpaper=$(find $HOME/Pictures/wallpaper -type f | awk '!/.git/' | shuf -n 1) | ||||
| echo $wallpaper > /tmp/currwallpaper.txt | ||||
| feh --no-fehbg --bg-fill "$wallpaper" | ||||
							
								
								
									
										404
									
								
								polybar/.config/polybar/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										404
									
								
								polybar/.config/polybar/config
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,404 @@ | ||||
| ;===================================================== | ||||
| ; | ||||
| ;   To learn more about how to configure Polybar | ||||
| ;   go to https://github.com/jaagr/polybar | ||||
| ; | ||||
| ;   The README contains a lot of information | ||||
| ; | ||||
| ;===================================================== | ||||
| ; find icon name : fc-match -a |grep -i Material | ||||
| ; to find icon: xfd -fa MaterialIcons, | ||||
| ; echo "\ueXXX" to print and paste here | ||||
|  | ||||
| ;This file has been edited by squash | ||||
| [colors] | ||||
| background = ${xrdb:background:#222} | ||||
| foreground = ${xrdb:foreground:#222} | ||||
|  | ||||
| dark-black = ${xrdb:color0:#222} | ||||
| black = ${xrdb:color8:#222} | ||||
|  | ||||
| dark-red = ${xrdb:color1:#222} | ||||
| red = ${xrdb:color9:#222} | ||||
|  | ||||
| dark-green = ${xrdb:color2:#222} | ||||
| green = ${xrdb:color10:#222} | ||||
|  | ||||
| dark-yellow = ${xrdb:color3:#222} | ||||
| yellow = ${xrdb:color11:#222} | ||||
|  | ||||
| dark-blue = ${xrdb:color4:#222} | ||||
| blue = ${xrdb:color12:#222} | ||||
|  | ||||
| dark-magenta = ${xrdb:color5:#222} | ||||
| magenta = ${xrdb:color13:#222} | ||||
|  | ||||
| dark-cyan = ${xrdb:color6:#222} | ||||
| cyan = ${xrdb:color14:#222} | ||||
|  | ||||
| dark-white = ${xrdb:color7:#222} | ||||
| white = ${xrdb:color15:#222} | ||||
|  | ||||
| warning = ${xrdb:color3:#222} | ||||
| active-led = ${xrdb:color1:#222} | ||||
|  | ||||
| foreground-alt = #555 | ||||
| primary = #F1FA8C | ||||
| secondary = #e60053 | ||||
| alert = #FF5555 | ||||
|  | ||||
| [bar/bspbar1] | ||||
| monitor = ${env:MONITOR:DVI-D-0} | ||||
| width = 100%:-10 | ||||
| height = 25 | ||||
| offset-x = 5 | ||||
| offset-y = 5 | ||||
| # radius = 12 | ||||
|  | ||||
| fixed-center = true | ||||
|  | ||||
| background = ${xrdb:background} | ||||
| foreground = ${xrdb:foreground} | ||||
|  | ||||
| line-size = 3 | ||||
|  | ||||
| padding-left = 3 | ||||
| padding-right = 3 | ||||
|  | ||||
| module-margin-left = 2 | ||||
| module-margin-right = 1 | ||||
|  | ||||
| font-0 = Google Sans:style=bold:antialias=true:pixelsize=11;1 | ||||
| font-1 = Material Icons:size=12;2 | ||||
| font-2 = Iosevka:size=12;1 | ||||
|  | ||||
| tray-position = right | ||||
| tray-background = ${colors.background} | ||||
|  | ||||
| modules-left = powermenu bspwm  | ||||
| modules-center = xwindow | ||||
| modules-right = volume date | ||||
|  | ||||
| wm-restack = bspwm | ||||
|  | ||||
| [bar/bspbar2] | ||||
| monitor = ${env:MONITOR:HDMI-0} | ||||
| width = 1910 | ||||
| height = 25 | ||||
| offset-x = 5 | ||||
| offset-y = 5 | ||||
| # radius = 12 | ||||
|  | ||||
| fixed-center = true | ||||
|  | ||||
| background = ${xrdb:background} | ||||
| foreground = ${xrdb:foreground} | ||||
|  | ||||
| line-size = 3 | ||||
|  | ||||
| padding-left = 3 | ||||
| padding-right = 3 | ||||
|  | ||||
| module-margin-left = 2 | ||||
| module-margin-right = 1 | ||||
|  | ||||
| font-0 = Google Sans:style=bold:antialias=true:pixelsize=11;1 | ||||
| font-1 = Material Icons:size=12;2 | ||||
|  | ||||
| font-2 = Iosevka:size=12;1 | ||||
|  | ||||
| modules-left = bspwm | ||||
| modules-center = xwindow | ||||
| modules-right = spotify cpu memory network | ||||
|  | ||||
| tray-position = right | ||||
| tray-background = ${colors.background} | ||||
|  | ||||
| wm-restack = bspwm | ||||
|  | ||||
| [module/xwindow] | ||||
| type = internal/xwindow | ||||
| label = %title:0:35:...% | ||||
|  | ||||
| [module/wlan] | ||||
|  | ||||
| type = internal/network | ||||
| interface = wlp2s0  | ||||
| interval = 3.0 | ||||
|  | ||||
| format-connected = <ramp-signal> <label-connected> | ||||
| ;format-connected-underline = ${colors.primary} | ||||
| label-connected = %essid% | ||||
|  | ||||
| format-disconnected = | ||||
| ;format-disconnected = <label-disconnected> | ||||
| ;format-disconnected-underline = ${self.format-connected-underline} | ||||
| ;label-disconnected = %ifname% disconnected | ||||
| ;label-disconnected-foreground = ${colors.foreground-alt} | ||||
|  | ||||
| ramp-signal-0 =  | ||||
| ramp-signal-1 =  | ||||
| ramp-signal-2 =  | ||||
| ramp-signal-3 =  | ||||
| ramp-signal-4 =  | ||||
| ramp-signal-foreground = ${colors.foreground-alt} | ||||
|  | ||||
| [module/filesystem] | ||||
| type = internal/fs | ||||
| interval = 25 | ||||
|  | ||||
| mount-0 = / | ||||
| format-mounted-prefix = " " | ||||
| label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%% | ||||
| label-unmounted = %mountpoint% not mounted | ||||
| label-unmounted-foreground = ${colors.foreground-alt} | ||||
|  | ||||
| [module/bspwm] | ||||
| type = internal/bspwm | ||||
| module-margin-left = 4 | ||||
| module-margin-right = 4 | ||||
|  | ||||
| index-sort = true | ||||
| fuzzy-match = true | ||||
|  | ||||
| format = <label-state> <label-mode> | ||||
|  | ||||
| ws-icon-0 = "" | ||||
| ws-icon-1 = "♛" | ||||
| ws-icon-2 = graphics;♜ | ||||
| ws-icon-3 = mail;♝ | ||||
| ws-icon-4 = web;♞ | ||||
|  | ||||
| label-focused = %name% | ||||
| label-focused-background = ${xrdb:background} | ||||
| label-focused-underline= ${xrdb:color9} | ||||
| label-focused-padding = 1 | ||||
|  | ||||
| label-occupied = %name% | ||||
| label-occupied-foreground = ${xrdb:foreground} | ||||
| label-occupied-padding = 1 | ||||
|  | ||||
| label-urgent = %name% | ||||
| label-urgent-background = ${xrdb:color3} | ||||
| label-urgent-padding = 1 | ||||
|  | ||||
| label-empty = %name% | ||||
| label-empty-foreground = ${xrdb:color8} | ||||
| label-empty-padding = 1 | ||||
|  | ||||
| [module/spotify] | ||||
| type = custom/script | ||||
| interval = 1 | ||||
| format-prefix = " " | ||||
| format = <label> | ||||
| exec = python $HOME/.config/polybar/polybar-spotify/spotify_status.py -f '{artist}: {song}' | ||||
| format-underline = #1db954 | ||||
| ;control players (optional) | ||||
| click-left = playerctl --player=spotify play-pause  | ||||
| click-right = playerctl --player=spotify next  | ||||
| click-middle = playerctl --player=spotify previous  | ||||
|  | ||||
| [module/mpd] | ||||
| type = internal/mpd | ||||
| format-online = <icon-prev> <toggle> <icon-next> <label-song> | ||||
| # format-online = <icon-prev> <toggle> <icon-next> <label-song>   |   <bar-progress> | ||||
|  | ||||
| format-online-underline = ${colors.dark-yellow} | ||||
| host = 127.0.0.1 | ||||
| port = 6600 | ||||
| icon-prev =  | ||||
| icon-stop =  | ||||
| icon-play =  | ||||
| icon-pause =  | ||||
| icon-next =  | ||||
|  | ||||
| label-song-maxlen = 35 | ||||
| label-song-ellipsis = true | ||||
|  | ||||
| bar-progress-width = 10 | ||||
| bar-progress-indicator = "" | ||||
| bar-progress-fill = ━ | ||||
| bar-progress-empty = ━ | ||||
|  | ||||
| [module/volume] | ||||
| type = internal/pulseaudio | ||||
|  | ||||
| format-volume = <label-volume> <bar-volume> | ||||
| format-volume-underline = ${colors.dark-green} | ||||
| label-volume = " " | ||||
| label-volume-foreground = ${colors.foreground} | ||||
|  | ||||
|  | ||||
| format-muted-prefix = " " | ||||
| format-muted-foreground = ${colors.foreground-alt} | ||||
| format-muted-underline = ${colors.foreground-alt} | ||||
| label-muted = sound muted | ||||
|  | ||||
| bar-volume-width = 10 | ||||
| bar-volume-foreground-0 = ${xrdb:color2} | ||||
| bar-volume-foreground-1 = ${xrdb:color2} | ||||
| bar-volume-foreground-2 = ${xrdb:color2} | ||||
| bar-volume-foreground-3 = ${xrdb:color2} | ||||
| bar-volume-foreground-4 = ${xrdb:color2} | ||||
| bar-volume-foreground-5 = ${xrdb:color3} | ||||
| bar-volume-foreground-6 = ${xrdb:color1} | ||||
| bar-volume-underline = ${xrdb:color1} | ||||
| bar-volume-gradient = true | ||||
| bar-volume-indicator = ━ | ||||
| bar-volume-indicator-font = 1 | ||||
| bar-volume-fill = ━ | ||||
| bar-volume-fill-font = 1 | ||||
| bar-volume-empty = ━ | ||||
| bar-volume-empty-font = 1 | ||||
| bar-volume-empty-foreground = ${xrdb:color0} | ||||
|  | ||||
| [module/network] | ||||
| type = internal/network | ||||
| interface = enp3s0  | ||||
|  | ||||
| format-connected-prefix = "%{T3} %{T-}" | ||||
| format-connected-prefix-foreground = ${colors.foreground} | ||||
| format-connected-prefix-background = ${colors.background} | ||||
| format-connected-underline = ${colors.dark-magenta} | ||||
|  | ||||
| format-connected = <label-connected> | ||||
| format-connected-foreground = ${colors.foreground} | ||||
| format-connected-background = ${colors.background} | ||||
|  | ||||
| label-connected = "%{A1:nm-connection-editor:}%downspeed:9%%{A}" | ||||
| label-connected-foreground = ${colors.foreground} | ||||
| label-connected-background = ${colors.background} | ||||
|  | ||||
| format-disconnected-prefix = "%{T3} %{T-}" | ||||
| format-disconnected-prefix-foreground = ${colors.black} | ||||
| format-disconnected-prefix-background = ${colors.background} | ||||
| format-disconnected-underline = ${colors.black} | ||||
|  | ||||
| format-disconnected = <label-disconnected> | ||||
| format-disconnected-foreground = ${colors.black} | ||||
| format-disconnected-background = ${colors.background} | ||||
|  | ||||
| label-disconnected = "-" | ||||
| label-disconnected-foreground = ${colors.black} | ||||
| label-disconnected-background = ${colors.background} | ||||
|  | ||||
| [module/battery] | ||||
|  | ||||
| type = internal/battery | ||||
| battery = BAT1 | ||||
| adapter = ACAD | ||||
| full-at = 98 | ||||
|  | ||||
| format-charging = <animation-charging> <label-charging> | ||||
| format-charging-underline = ${xrdb:color3} | ||||
| animation-charging-0 =  | ||||
| animation-charging-1 =  | ||||
|  | ||||
| format-discharging = <label-discharging> | ||||
| label-discharging =  %percentage%% | ||||
| format-discharging-underline = ${xrdb:color5} | ||||
|  | ||||
| format-full-prefix = " " | ||||
| format-full-prefix-foreground = ${colors.foreground-alt} | ||||
| format-full-underline = ${xrdb:color2} | ||||
|  | ||||
| ramp-capacity-foreground = ${colors.foreground-alt} | ||||
|  | ||||
| animation-charging-foreground = ${colors.foreground-alt} | ||||
| animation-charging-framerate = 750 | ||||
|  | ||||
| [module/cpu] | ||||
| type = internal/cpu | ||||
| interval = 2 | ||||
| format-prefix = "%{F#fff} %{F-} " | ||||
| format-prefix-foreground = ${colors.foreground-alt} | ||||
| format-underline = ${xrdb:color6} | ||||
| label = %percentage%% | ||||
|  | ||||
| [module/memory] | ||||
| type = internal/memory | ||||
| interval = 2 | ||||
| format-prefix = "%{F#fff} %{F-}" | ||||
| format-prefix-foreground = ${colors.foreground-alt} | ||||
| format-underline = ${xrdb:color1} | ||||
| label = %percentage_used%% | ||||
|  | ||||
| [module/date] | ||||
| type = internal/date | ||||
| interval = 5 | ||||
|  | ||||
| date = " %A, %d %B" | ||||
|  | ||||
| time = %H:%M | ||||
|  | ||||
| format-prefix = " " | ||||
| format-prefix-foreground = ${colors.foreground} | ||||
| format-underline = ${xrdb:color4} | ||||
|  | ||||
| label = %time% %date% | ||||
|  | ||||
| [module/temperature] | ||||
| type = internal/temperature | ||||
| thermal-zone = 0 | ||||
| warn-temperature = 60 | ||||
|  | ||||
| format = <ramp> <label> | ||||
| format-underline = #f50a4d | ||||
| format-warn = <ramp> <label-warn> | ||||
| format-warn-underline = ${self.format-underline} | ||||
|  | ||||
| label = %temperature% | ||||
| label-warn = %temperature% | ||||
| label-warn-foreground = ${colors.secondary} | ||||
|  | ||||
| ramp-0 =  | ||||
| ramp-1 =  | ||||
| ramp-2 =  | ||||
| ramp-foreground = ${colors.foreground-alt} | ||||
|  | ||||
| [module/powermenu] | ||||
| type = custom/menu | ||||
|  | ||||
| expand-right = true | ||||
|  | ||||
| label-open = "  " | ||||
| label-open-foreground = ${colors.dark-red} | ||||
| label-open-underline = ${colors.dark-red} | ||||
|  | ||||
| label-close = "  " | ||||
| label-close-foreground = ${colors.white} | ||||
| label-close-underline = ${colors.white} | ||||
|  | ||||
| menu-0-0 = "  " | ||||
| menu-0-0-foreground = ${colors.dark-cyan} | ||||
| menu-0-0-underline = ${colors.dark-cyan} | ||||
| menu-0-0-exec = betterlockscreen -l | ||||
|  | ||||
| menu-0-1 = "  " | ||||
| menu-0-1-foreground = ${colors.dark-green} | ||||
| menu-0-1-underline = ${colors.dark-green} | ||||
| menu-0-1-exec = kill -9 -1 | ||||
|  | ||||
| menu-0-2 = "  " | ||||
| menu-0-2-foreground = ${colors.dark-yellow} | ||||
| menu-0-2-underline = ${colors.dark-yellow} | ||||
| menu-0-2-exec = shutdown -r now | ||||
|  | ||||
| menu-0-3 = "  " | ||||
| menu-0-3-foreground = ${colors.dark-red} | ||||
| menu-0-3-underline = ${colors.dark-red} | ||||
| menu-0-3-exec = shutdown -h now | ||||
|  | ||||
| [settings] | ||||
| screenchange-reload = true | ||||
| compositing-background = xor | ||||
| ;compositing-background = screen | ||||
| compositing-foreground = source | ||||
| ;compositing-border = over | ||||
|  | ||||
| [global/wm] | ||||
| margin-top = -10 | ||||
| margin-bottom = -10 | ||||
|  | ||||
|  | ||||
| ; vim:ft=dosini | ||||
							
								
								
									
										8
									
								
								polybar/.config/polybar/launch.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								polybar/.config/polybar/launch.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,8 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| killall -q polybar | ||||
|  | ||||
| polybar bspbar1 >> /tmp/polybar1.log 2>&1 & | ||||
| polybar bspbar2 >> /tmp/polybar1.log 2>&1 & | ||||
|  | ||||
| echo "Bars launched..." | ||||
							
								
								
									
										1
									
								
								polybar/.config/polybar/polybar-spotify
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								polybar/.config/polybar/polybar-spotify
									
									
									
									
									
										Submodule
									
								
							 Submodule polybar/.config/polybar/polybar-spotify added at 5edc2e598c
									
								
							
							
								
								
									
										7
									
								
								stowed.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								stowed.list
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| bin | ||||
| bspwm | ||||
| dmenu | ||||
| feh | ||||
| polybar | ||||
| sxhkd | ||||
| vim | ||||
							
								
								
									
										331
									
								
								sxhkd/.config/sxhkd/sxhkdrc
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										331
									
								
								sxhkd/.config/sxhkd/sxhkdrc
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,331 @@ | ||||
| # bspwm hotkeys | ||||
| # | ||||
| # Cleanly quit bspwm | ||||
| super + shift + a | ||||
| 	bspc quit 1 && pkill lemonpanel && pkill lemonbar | ||||
|  | ||||
| # Show keybindings | ||||
| super + F1 | ||||
| 	$TERMINAL -e keybindings.sh | ||||
| # | ||||
| # Window manipulation | ||||
| # ______________ | ||||
|  | ||||
| # Close window | ||||
| super + x | ||||
| 	bspc  node -c | ||||
|  | ||||
| # Kill window | ||||
| super + shift + x | ||||
| 	bspc  node -k | ||||
|  | ||||
| # Toggle tiling mode of window | ||||
| super + shift + t | ||||
| 	bspc node -t {pseudo_tiled,tiled} | ||||
| super + t | ||||
| 	{bspc node -t floating && window-placer $(bspc query -T -d | grep -o '"state":"floating"' | wc -l),bspc node -t tiled} | ||||
| # Force all windows of the desktop to tile | ||||
| super + ctrl + t | ||||
| 	bspcp tile | ||||
| # Force all windows of the desktop to float and arrange them | ||||
| super + ctrl + shift + t | ||||
| 	bspcp float | ||||
| 	 | ||||
| # Toggle fullscreen | ||||
| super + shift + f  | ||||
| 	bspc node -t {fullscreen,tiled}	 | ||||
|  | ||||
| # Try to keep size and position of the selected window | ||||
| super + o | ||||
| 	bspc node -g private | ||||
|  | ||||
| # Make window sticky | ||||
| super + i | ||||
| 	bspc node -g sticky | ||||
|  | ||||
| super + h | ||||
| 	bspc node -g hidden | ||||
|  | ||||
| super + H | ||||
| 	WindowMinimiser | ||||
|  | ||||
| # Lock a window from closing | ||||
| super + Escape | ||||
| 	bspc node -g locked  | ||||
|  | ||||
| # | ||||
| # Window moving and splitting | ||||
| # ______________     | ||||
|  | ||||
| # Autopresel (split window in its largest dimension) | ||||
| super + ctrl + Return | ||||
| 	auto-presel | ||||
| 	 | ||||
| # Presel window for splitting in certain direction | ||||
| alt + ctrl + {q,s,z,d} | ||||
| 	bspc node -p \~{west,south,north,east} -i | ||||
|  | ||||
| alt + ctrl + {h,j,k,l} | ||||
| 	bspc node -p \~{west,south,north,east} | ||||
|  | ||||
| alt + ctrl + {Left,Down,Up,Right} | ||||
| 	bspc node -p \~{west,south,north,east} | ||||
|  | ||||
| # Presel the desktop for splitting in certain direction | ||||
| alt + shift + {q,s,z,d} | ||||
| 	bspc node @/ -p \~{west,south,north,east} | ||||
|  | ||||
| alt + shift + {h,j,k,l} | ||||
| 	bspc node @/ -p \~{west,south,north,east} | ||||
|  | ||||
| alt + shift + {Left,Down,Up,Right} | ||||
| 	bspc node @/ -p \~{west,south,north,east} | ||||
| # Set splitting ratio of windows | ||||
| alt + ctrl + {1-9} | ||||
| 	bspc node -o 0.{1-9} | ||||
| 		 | ||||
| # Move current window to largest space or preselected area if there is one. | ||||
| super + Return | ||||
|     windowpromoter | ||||
|  | ||||
| # # Create a new "master area", splitting the whole desktop instead of just windows. | ||||
| # alt + 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} | ||||
|     bspc {desktop -f,node -d} ^{1-9,10} | ||||
|  | ||||
| ## Alternative: i3 style behavior (focus nth, desktop of the focused monitor) | ||||
| #super + {ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave} | ||||
| #	focusdesktopofthismonitor {1-9} | ||||
| #super + shift + {ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave} | ||||
| #	movetodesktopofthismonitor {1-9,10} | ||||
|  | ||||
| ## Another alternative: xmonad style desktops. You have 10 desktops shared between all monitors, | ||||
| ## and focusing a desktop focuses it on the currently focused monitor | ||||
| #super + {ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave} | ||||
| #	summondesktop.sh {1-9,10} | ||||
| #super + shift + {ampersand,eacute,quotedbl,apostrophe,parenleft,minus,egrave,underscore,ccedilla,agrave} | ||||
| #	bspc node -d ^{1-9,10} | ||||
|  | ||||
| # Select previous / next desktop | ||||
| super + {m,n} | ||||
| 	bspc desktop -f {prev.occupied,next.occupied}  | ||||
|  | ||||
| # cycle windows | ||||
| alt + {_,shift + }Tab | ||||
|     bspc node -f {next,prev} | ||||
|  | ||||
| # Go to specific window | ||||
| super + Tab | ||||
| 	WindowSelector | ||||
| 	 | ||||
| #Focus windows by direction, works with multihead | ||||
| super +  {q,s,z,d} | ||||
|     focusmover {west,south,north,east} | ||||
|  | ||||
| super +  {h,j,k,l} | ||||
|     focusmover {west,south,north,east} | ||||
|  | ||||
| super +  {Left,Down,Up,Right} | ||||
|     focusmover {west,south,north,east} | ||||
|         	 | ||||
| # 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} | ||||
| 	windowgrabber {west,south,north,east} | ||||
|  | ||||
| super + shift + {h,j,k,l} | ||||
| 	windowgrabber {west,south,north,east} | ||||
| 	 | ||||
| # Different style of movement: transplant into window in chosen direction | ||||
| super + shift + {Left,Down,Up,Right} | ||||
| 	euclid_mover {west,south,north,east} | ||||
|  | ||||
| #resize windows | ||||
| super + ctrl + {q,s,z,d} | ||||
| 	bspwm_resize.sh {west,south,north,east} | ||||
|  | ||||
| super + ctrl + {h,j,k,l} | ||||
| 	bspwm_resize.sh {west,south,north,east} | ||||
| 	 | ||||
| super + ctrl + {Left,Down,Up,Right} | ||||
| 	bspwm_resize.sh {west,south,north,east} | ||||
|  | ||||
| # | ||||
| # Layout manipulation/desktop level controls | ||||
| # ______________     | ||||
|  | ||||
| # Toggle monocle mode | ||||
| super + f  | ||||
| 	bspc desktop -l next | ||||
| 	 | ||||
| # Balance tree | ||||
| super + b | ||||
| 	bspc node @/ -B | ||||
|  | ||||
| # Balance brother node. If you do this on biggest window of the desktop, it usually means balancing all windows with except the biggest. | ||||
| super + alt + b | ||||
| 	bspc node @brother -B | ||||
| 	 | ||||
| # Undo balancing (equalize windows) | ||||
| super + ctrl + b | ||||
| 	bspc node @/ -E | ||||
|  | ||||
| # Toggle automatic balancing of windows | ||||
| alt + b | ||||
| 	euclid_balancer | ||||
|  | ||||
| # Mirror and flip leaves of tree | ||||
| super + {comma,period} | ||||
| 	bspc node @/ -F {horizontal,vertical} | ||||
| 	 | ||||
| # Rotate leaves of tree | ||||
| super + shift + {comma,period} | ||||
| 	bspc node @/ -R {90,270} | ||||
|  | ||||
| # Change window gap | ||||
|  | ||||
| super + g | ||||
| 	bspc config -d focused window_gap {$gap,$(($gap+$gap)),$(($gap+$gap+$gap))} | ||||
|  | ||||
| super + button{4,5} | ||||
| 	bspc config -d focused window_gap $((`bspc config -d focused window_gap` {+,-} 2 )) | ||||
| # | ||||
| # mouse bindings | ||||
| # __________________ | ||||
|  | ||||
| ~button1 | ||||
| 	DidIClickDesktop.sh && gapgrab | ||||
|  | ||||
| ~button2 | ||||
| 	DidIClickDesktop.sh && mygtkmenui -- .config/GTKmenu/BspwmDesktopMenui | ||||
| 		 | ||||
| ~button3 | ||||
| 	DidIClickDesktop.sh && mygtkmenui -- .config/GTKmenu/LaunchMenu | ||||
|  | ||||
| # Switch workspace by scrolling on the desktop. Causes scrolling issues on some systems. | ||||
| #~button4 | ||||
| #	DidIClickDesktop.sh && bspc desktop -f next | ||||
| #~button5 | ||||
| #	DidIClickDesktop.sh && bspc desktop -f prev | ||||
| 	 | ||||
| ### Add or remove desktops by scrolling | ||||
| super + ctrl + button5 | ||||
|     bspcp dsktp rm | ||||
|  | ||||
| super + ctrl + button4 | ||||
|     bspcp dsktp add | ||||
|  | ||||
| # Spawn applications popup menu and manually tile selected  | ||||
| # app where your mouse was when you opened the menu. Smartsplit only chooses | ||||
| # biggest dimension of the window, MouseLaunch only cares which edge is closer. | ||||
| # mod5 is alt_gr (first key right from space) on most keyboards.  | ||||
| mod5 + @button1 | ||||
|     MouseLaunch ; mygtkmenui -- .config/GTKmenu/LaunchMenu | ||||
| #	smartsplit ; dboxmenu | ||||
|  | ||||
| # Spawn window manipulation menu | ||||
| # Mod1 is alt | ||||
| #    BspwmWindowMenu | ||||
| #mod1 + @button1 | ||||
| #    mygtkmenui -- .config/GTKmenu/BspwmWindowMenui | ||||
|  | ||||
|  | ||||
| # | ||||
| # Touchpad "gestures" (depend on your touchpad driver, very likely to be unavailable) | ||||
| #_____________________ | ||||
|      | ||||
| # | ||||
| # spawn programs | ||||
| # | ||||
|  | ||||
| # run applications | ||||
| super + space | ||||
| 	dmenu_recent -i -l 14 -w 600 -y $PANEL_HEIGHT | ||||
|  | ||||
| super + p | ||||
| 	st spt | ||||
|  | ||||
| super + shift + Return | ||||
| 	st	 | ||||
|  | ||||
| super + z | ||||
| 	st	 | ||||
|  | ||||
| super + shift + z | ||||
| 	open-terminal-here | ||||
| 	 | ||||
| super + r | ||||
| 	rofi-finder.sh | ||||
|  | ||||
| super + shift + b | ||||
| 	$BROWSER | ||||
|     		 | ||||
| super + e | ||||
| 	spacefm -n | ||||
|  | ||||
| ctrl + alt + n  | ||||
| 	switchkblayout | ||||
|  | ||||
| super + shift + e | ||||
| 	st ranger | ||||
|  | ||||
| super + shift + n | ||||
| 	newsboat | ||||
|  | ||||
| Print | ||||
| 	scrot -s | ||||
|  | ||||
| # | ||||
| # Media keys | ||||
| # | ||||
|  | ||||
| XF86AudioRaiseVolume | ||||
| 	volume up | ||||
|  | ||||
| XF86AudioLowerVolume | ||||
| 	volume down | ||||
|  | ||||
| XF86AudioMute | ||||
| 	volume mute | ||||
| 	 | ||||
| XF86MonBrightnessDown | ||||
|  xbacklight -dec 10 | ||||
|  | ||||
| XF86MonBrightnessUp | ||||
|  xbacklight -inc 10 | ||||
|   | ||||
|  | ||||
| XF86Sleep | ||||
| 	systemctl suspend | ||||
|  | ||||
| XF86AudioPlay | ||||
| 	playerctl play-pause  | ||||
|  | ||||
| XF86AudioPlay | ||||
| 	playerctl stop | ||||
|  | ||||
| XF86AudioPrev | ||||
| 	playerctl previous | ||||
|  | ||||
| XF86AudioNext | ||||
| 	playerctl next | ||||
|  | ||||
| # make sxhkd reload its configuration files: | ||||
| super + shift + Escape | ||||
| 	pkill -USR1 -x sxhkd | ||||
|  | ||||
| # In case bspwmrc fails to execute/you wish have plugged in a new monitor | ||||
| super + shift + r | ||||
| 	bspwmrc | ||||
| # Toggle compositing | ||||
| super + ctrl + space | ||||
| 	{pkill picom ,\ | ||||
| 	picom -b } | ||||
|  | ||||
| # Remove receptacles | ||||
| super + BackSpace | ||||
|   for i in $(bspc query -N -n .leaf.!window.local); do bspc node $i -k; done | ||||
							
								
								
									
										4
									
								
								vim/.vim/UltiSnips/c.snippets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								vim/.vim/UltiSnips/c.snippets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| snippet pline "print a line" i | ||||
| printf("----------------------------------------\n"); | ||||
| endsnippet | ||||
| 	 | ||||
							
								
								
									
										2
									
								
								vim/.vim/UltiSnips/htmljinja.snippets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								vim/.vim/UltiSnips/htmljinja.snippets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| extends jinja | ||||
| extends html | ||||
							
								
								
									
										49
									
								
								vim/.vim/UltiSnips/markdown_tex.snippets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								vim/.vim/UltiSnips/markdown_tex.snippets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| # Md related | ||||
|  | ||||
| snippet check "put a open check box" | ||||
| - [ ] ${1:${VISUAL:item}} $0 | ||||
| endsnippet | ||||
|  | ||||
| # Tex related | ||||
| snippet tex "Inline Latex" i | ||||
| \\\\( ${1:${VISUAL}} \\\\) $0 | ||||
| endsnippet | ||||
|  | ||||
| snippet Tex "Latex block" b | ||||
| \\\\[ | ||||
| 	${1:${VISUAL}} | ||||
| \\\\] | ||||
| $0 | ||||
| endsnippet | ||||
|  | ||||
| snippet bb "mathbb" i | ||||
| \mathbb{${1:${VISUAL:R}}} $0 | ||||
| endsnippet | ||||
|  | ||||
| snippet text "implement text in tex" i | ||||
| \text{ ${1:${VISUAL:text}} } $0 | ||||
| endsnippet | ||||
|  | ||||
| snippet br "break a line in tex mode" i | ||||
| \\\\\\\\ | ||||
| $0 | ||||
| endsnippet | ||||
|  | ||||
| snippet frac "fractions" i | ||||
| \frac{$1}{$2} $0 | ||||
| endsnippet | ||||
|  | ||||
| snippet beg "Beggin and end with the cursor on the type" i | ||||
| \begin{${1:matrix}}} | ||||
| 	${2:${VISUAL}} | ||||
| \end{$1} | ||||
| endsnippet | ||||
|  | ||||
| snippet set "prepare for a set in tex {}" i | ||||
| \\\\{ ${1:${VISUAL:e}} \\\\} $0 | ||||
| endsnippet | ||||
|  | ||||
| priority -1 | ||||
| snippet "(\w+)" "latex default" r | ||||
| \\`!p snip.rv = match.group(1)` $1 | ||||
| endsnippet | ||||
							
								
								
									
										23
									
								
								vim/.vim/compiler/esp.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								vim/.vim/compiler/esp.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | ||||
| " Vim compiler file modified for llvm esp | ||||
| " Compiler:            	llvm  | ||||
| " Previous Maintainer:  Nikolai Weibull <now@bitwi.se> | ||||
| " Latest Revision:     	2023-10-19  | ||||
| " 						forking by tonitch | ||||
|  | ||||
| if exists("current_compiler") | ||||
|   finish | ||||
| endif | ||||
| let current_compiler = "esp" | ||||
|  | ||||
| let s:cpo_save = &cpo | ||||
| set cpo&vim | ||||
|  | ||||
| let g:ycm_clangd_binary_path="/opt/llvm-esp/esp-clang/bin/clangd" | ||||
| YcmRestartServer | ||||
| let &makeprg="idf.py -C .." | ||||
|  | ||||
| "Should do a CompilerSet One day | ||||
|  | ||||
| let &cpo = s:cpo_save | ||||
| unlet s:cpo_save | ||||
|  | ||||
							
								
								
									
										5
									
								
								vim/.vim/ftplugin/c.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								vim/.vim/ftplugin/c.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| " nnoremap <F12> :vert term ./build.sh<CR> | ||||
| " nnoremap <Leader><F12> :execute 'tab term ./'. $prgname<CR> | ||||
|  | ||||
| let $MANPAGER='cat' | ||||
| let $MANWIDTH=(&columns/2-4) | ||||
							
								
								
									
										3
									
								
								vim/.vim/ftplugin/go.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								vim/.vim/ftplugin/go.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| set keywordprg=go\ doc | ||||
| unmap K | ||||
| set makeprg=go\ run\ . | ||||
							
								
								
									
										1
									
								
								vim/.vim/ftplugin/python.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								vim/.vim/ftplugin/python.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| set foldmethod=indent | ||||
							
								
								
									
										61
									
								
								vim/.vim/plugin/Make.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								vim/.vim/plugin/Make.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | ||||
| let s:making = 0 | ||||
|  | ||||
| command -nargs=* Make call s:make(<q-args>) | ||||
|  | ||||
| function s:make(args) abort | ||||
|  | ||||
| 	if s:making | ||||
| 		if bufwinid(s:make_buf) == -1 | ||||
| 			" show making buffer | ||||
| 			exe 'sbuffer' s:make_buf | ||||
| 			wincmd p | ||||
| 		else | ||||
| 			"hide making buffer | ||||
| 			exe printf('%d wincmd q', bufwinnr(s:make_buf)) | ||||
| 		endif | ||||
| 		return | ||||
| 	endif | ||||
|  | ||||
| 	" delete last result | ||||
| 	if exists('s:make_buf') && bufexists(s:make_buf) | ||||
| 		silent! exe 'bdelete' s:make_buf | ||||
| 	endif | ||||
|  | ||||
| 	"spawn new make | ||||
| 	let cmd = &makeprg  | ||||
| 	if !empty(a:args) | ||||
| 		let cmd .= ' ' . a:args | ||||
| 	endif | ||||
|  | ||||
| 	let options = {'close_cb': function('s:make_callback'), 'term_rows': 16} | ||||
|  | ||||
| 	let s:make_buf = term_start(cmd, options) | ||||
| 	let s:making = 1 | ||||
|  | ||||
| 	wincmd p | ||||
| endfunction | ||||
|  | ||||
| func s:make_callback(channel) | ||||
|  | ||||
|   " look, you can not get buffer content directly here. | ||||
|   call timer_start(10, function('s:make_callback_impl')) | ||||
| endfunction | ||||
|  | ||||
| function s:make_callback_impl(timer) abort | ||||
|  | ||||
|   exe 'cgetbuffer' s:make_buf | ||||
|  | ||||
|   " consider entry with num zero bufnr and lnum an error or warning | ||||
|   let qfl = filter(getqflist(), {k,v -> v.bufnr != 0 && v.lnum != 0}) | ||||
|  | ||||
|   if empty(qfl) | ||||
|     echo "make successful" | ||||
|   else | ||||
|     echohl WarningMsg | ||||
|     echom printf('found %d qf entries', len(qfl)) | ||||
|     echohl None | ||||
|   endif | ||||
|  | ||||
|   let s:making = 0 | ||||
|  | ||||
| endfunction | ||||
							
								
								
									
										6
									
								
								vim/.vim/vimfile/after/syntax/html.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								vim/.vim/vimfile/after/syntax/html.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| syn region djangotagmarkers start="{{" end="}}" | ||||
| syn region djangovariablemarkers start="{%" end="%}" | ||||
| command! -nargs=+ HiLink hi def link <args> | ||||
| HiLink djangotagmarkers PreProc | ||||
| HiLink djangovariablemarkers PreProc | ||||
| delcommand HiLink | ||||
							
								
								
									
										194
									
								
								vim/.vimrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										194
									
								
								vim/.vimrc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,194 @@ | ||||
| autocmd Filetype python noremap <F11> <ESC>:vert term python -i %<CR> | ||||
| autocmd Filetype python noremap <F12> <ESC>:vert term python %<CR>  | ||||
|  | ||||
| autocmd Filetype tex noremap <silent> <F12> <ESC>:silent !pdflatex % && mupdf %:r.pdf&<CR> | ||||
|  | ||||
| autocmd FileType asm noremap <F12> <ESC>:execute 'silent !qtspim' expand('%::p')<CR> | ||||
|  | ||||
| " autocmd FileType python set sw=4 | ||||
| " autocmd FileType python set ts=4 | ||||
| " autocmd FileType python set sts=4 | ||||
|  | ||||
| " let g:AutoPairsMapCR = 0 "Workaround for 27_AutoPairsReturn | ||||
| " imap <silent><CR> <CR><Plug>AutoPairsReturn | ||||
|  | ||||
| nnoremap <C-p> :GFiles<CR> | ||||
| nnoremap <C-g> :Ag<CR> | ||||
|  | ||||
| nnoremap <leader><CR> :vert term<CR> | ||||
|  | ||||
| let python_highlight_all=1 | ||||
| let g:pymode_python = 'python3' | ||||
| let g:pymode_options_max_line_length = 120 | ||||
| " let g:ctrlp_cmd = 'CtrlPTag' | ||||
| let g:htmljinja_disable_detection = 1 | ||||
| let g:vimtex_grammar_vlty = {'lt_command': 'languagetool'} | ||||
| let g:vimtex_grammar_textidote = {'jar': '/usr/share/java/textidote.jar'} | ||||
|  | ||||
| let g:vimtex_view_method = 'mupdf' | ||||
|  | ||||
| " nnoremap <c-p> <plug>(YCMFindSymbolInDirectory) | ||||
| " nnoremap <c-P> <plug>(YCMFindSymbolInWorkspace) | ||||
|  | ||||
| function ManPage(expr) | ||||
| 	execute 'silent vert term' &keywordprg a:expr | ||||
| endfunction | ||||
|  | ||||
| nnoremap gd :YcmCompleter GoToDefinition<CR> | ||||
| nnoremap gr :YcmCompleter GoToReferences<CR> | ||||
| nnoremap K :YcmCompleter GetDoc<CR> | ||||
| nnoremap <F12> :Make<CR> | ||||
| nnoremap <leader><F12> :Make run<CR> | ||||
|  | ||||
| "Documentation | ||||
| " nnoremap K :execute 'Man' expand('<cexpr>')<cr> | ||||
| command Curl :execute 'vert term lynx -dump' escape(@+, '#') | ||||
| command OpenLink :silent w !urlscan | ||||
| command -nargs=? Man call fzf#run(fzf#wrap({'source': 'whatis ' .  shellescape(<q-args>) . '| sed -r "s/(^\w*)\s\((.*)\).*/\2 \1/"', 'sink': function('ManPage') , 'options': ['--preview', 'MANPAGER=cat MANWIDTH='.  (&columns/2-4) .' man {1} {2}']})) | ||||
|  | ||||
| " AgIn: Start ag in the specified directory | ||||
| " | ||||
| " e.g. | ||||
| "   :AgIn .. foo | ||||
| function! s:ag_in(bang, ...) | ||||
|   let start_dir=expand(a:1) | ||||
|  | ||||
|   if !isdirectory(start_dir) | ||||
|     throw 'not a valid directory: ' .. start_dir | ||||
|   endif | ||||
|   " Press `?' to enable preview window. | ||||
|   call fzf#vim#ag(join(a:000[1:], ' '), fzf#vim#with_preview({'dir': start_dir}, 'up:50%:hidden', '?'), a:bang) | ||||
|  | ||||
| endfunction | ||||
|  | ||||
| command! -bang -nargs=+ -complete=dir AgIn call s:ag_in(<bang>0, <f-args>) | ||||
|  | ||||
| let g:UltiSnipsExpandTrigger="<c-l>" | ||||
| let g:UltiSnipsListSnipets="<c-h>" | ||||
| let g:UltiSnipsEditSplit="vertical" | ||||
|  | ||||
| let g:cpp_attributes_highlight = 1 | ||||
|  | ||||
| let g:ycm_always_populate_location_list = 1 | ||||
| let g:ycm_goto_buffer_command = "'split-or-existing-window'" | ||||
| let g:ycm_java_binary_path = "/usr/lib/jvm/java-17-openjdk/bin/java" | ||||
|  | ||||
| " let g:completor_clang_binary = "/usr/bin/clang" | ||||
| "fold with space | ||||
| nnoremap <space> za | ||||
| syntax on | ||||
|  | ||||
| set nu | ||||
| set rnu | ||||
| set hls | ||||
| set tabstop=4 | ||||
| set shiftwidth=4 | ||||
| set encoding=utf-8 | ||||
| set nocompatible | ||||
| set ignorecase | ||||
| set nowrap | ||||
| set splitbelow splitright | ||||
| set spelllang+=fr | ||||
| set foldmethod=syntax | ||||
| set foldlevel=99 | ||||
| set incsearch | ||||
| set autochdir | ||||
| " set foldcolumn=1 | ||||
| set clipboard^=unnamed,unnamedplus | ||||
| set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<,space:· | ||||
| set concealcursor= | ||||
| set conceallevel=2 | ||||
| set mouse=a | ||||
|  | ||||
| color desert  | ||||
| hi Normal ctermfg=None ctermbg=None | ||||
| hi NonText ctermfg=None ctermbg=None | ||||
|  | ||||
| packadd termdebug | ||||
|  | ||||
| filetype off | ||||
| set rtp+=$HOME/.vim/bundle/vundle.vim/ | ||||
| call vundle#begin() | ||||
|  | ||||
| "Mandatory | ||||
| Plugin 'vundleVim/Vundle.vim'		"plugin Manager | ||||
|  | ||||
| "Quality of life (any)  | ||||
| Plugin 'itchyny/lightline.vim'		"status bar | ||||
| Plugin 'kien/rainbow_parentheses.vim'	"Better Raimbow Parentheses | ||||
| Plugin 'mhinz/vim-startify'		"start screen  | ||||
| Plugin 'lilydjwg/colorizer'		"color hexcode | ||||
| Plugin 'jiangmiao/auto-pairs'		"auto Pair Brackets | ||||
| " Plugin 'Yggdroot/indentLine'		"show indent - bugging conceal | ||||
| Plugin 'szw/vim-maximizer' | ||||
| " Plugin 'preservim/nerdtree'		"Directory Visulaliser :Nerdtree | ||||
| Plugin 'junegunn/fzf', {'do': { -> fzf#install() }} | ||||
| Plugin 'junegunn/fzf.vim' | ||||
| Plugin 'junegunn/vim-peekaboo'		"see content of register before past for @ C-R and \" | ||||
|  | ||||
| "useful in multiple languages | ||||
| Plugin 'SirVer/ultisnips'		"fast write | ||||
| Plugin 'honza/vim-snippets'		"lib of snips | ||||
| Plugin 'majutsushi/tagbar'		"display tagBar with :TagbarToggle | ||||
| " Plugin 'maralla/completor.vim'		"completion menu | ||||
| " Plugin 'tokorom/completor-shell'	"Add on of completor.vim for shell scripting | ||||
| Plugin 'tpope/vim-commentary'		"comment with <gcc> | ||||
| " Plugin 'dense-analysis/ale'		"Async error checker (test usefulness) | ||||
| Plugin 'puremourning/vimspector'	"Debugger | ||||
|  | ||||
| Plugin 'ycm-core/YouCompleteMe'		"completion tool | ||||
|  | ||||
| "git | ||||
| Plugin 'mhinz/vim-signify'		"git diff show | ||||
| Plugin 'tpope/vim-fugitive'		"for the :Git <command> | ||||
|  | ||||
| "php | ||||
| " Plugin 'StanAngeloff/php.vim'		"php syntax | ||||
| " Plugin 'phpactor/phpactor'		"php auto-completion | ||||
|  | ||||
| "python | ||||
| " Plugin 'python-mode/python-mode'	"A python IDE | ||||
| Plugin 'mitsuhiko/vim-jinja' | ||||
|  | ||||
| "html/css | ||||
| Plugin 'mattn/emmet-vim'		"Fast http | ||||
| Plugin 'vim-scripts/loremipsum'		"ipsum generator :Loremipsum <word> | ||||
| Plugin 'tpope/vim-surround'		"Surround html tags | ||||
| Plugin 'sukima/xmledit'		"Edit XML and HTML | ||||
|  | ||||
| "lua | ||||
| " Plugin 'wsdjeg/vim-lua'			"lua syntax | ||||
|  | ||||
| "markdown | ||||
| Plugin 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vundle'] } | ||||
|  | ||||
| "c & cpp | ||||
| Plugin 'bfrg/vim-cpp-modern'		"Extended vim syntax highlight c++ | ||||
| Plugin 'a.vim'				"go from hpp to cpp with :A | ||||
| " Plugin 'xavierd/clang_complete'		"CLang Complete (don't work with ycm) | ||||
| " Plugin 'ctrlpvim/ctrlp.vim'		"ctrl p support | ||||
| Plugin 'cdelledonne/vim-cmake' | ||||
|  | ||||
| "glsl (shader) | ||||
| Plugin 'tikhomirov/vim-glsl' | ||||
|  | ||||
| "c sharp | ||||
| " Plugin 'OmniSharp/omnisharp-vim' | ||||
|  | ||||
| "java | ||||
|  | ||||
| Plugin 'hdiniz/vim-gradle' | ||||
|  | ||||
| "latex | ||||
|  | ||||
| Plugin 'lervag/vimtex' | ||||
|  | ||||
| "uml | ||||
| Plugin 'weirongxu/plantuml-previewer.vim' | ||||
| Plugin 'tyru/open-browser.vim' | ||||
| Plugin 'aklt/plantuml-syntax' | ||||
|  | ||||
| call vundle#end() | ||||
|  | ||||
| filetype plugin indent on | ||||
| set omnifunc=syntaxcomplete#Complete | ||||
		Reference in New Issue
	
	Block a user