get rid of bspwm, as awesome as it is, it is unusible for me for now
This commit is contained in:
		
							parent
							
								
									c132453f4e
								
							
						
					
					
						commit
						71a65b5043
					
				
					 17 changed files with 0 additions and 861 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +0,0 @@
 | 
			
		|||
wallpaper="${HOME}/Pictures/wallpaper.png"
 | 
			
		||||
[[ -r "$wallpaper" ]] && feh --bg-center "$wallpaper"
 | 
			
		||||
setxkbmap -layout us,ru -variant altgr-intl,typewriter -option ctrl:nocaps,grp:win_space_toggle,grp_led:scroll,compose:menu
 | 
			
		||||
xfce4-panel &
 | 
			
		||||
nm-applet &
 | 
			
		||||
| 
						 | 
				
			
			@ -1,9 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
source "$HOME/.config/bspwm/common"
 | 
			
		||||
 | 
			
		||||
dmenu -fn "$fontspec" \
 | 
			
		||||
      -nb "#$colour_bg_normal" \
 | 
			
		||||
      -nf "#$colour_fg_normal" \
 | 
			
		||||
      -sb "#$colour_bg_focused" \
 | 
			
		||||
      "$@"
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
source "$HOME/.config/bspwm/common"
 | 
			
		||||
 | 
			
		||||
dmenu_path | /home/von/.config/bspwm/bspmenu -p 'run' "$@" | ${SHELL:-"/bin/sh"} &
 | 
			
		||||
| 
						 | 
				
			
			@ -1,15 +0,0 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
get_bookmarks() {
 | 
			
		||||
	while read url title; do
 | 
			
		||||
		echo "$url"
 | 
			
		||||
	done < "$HOME/.config/bookmarks"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
	uri=$(get_bookmarks | /home/von/.config/bspwm/bspmenu -p 'url' "$@")
 | 
			
		||||
	[ "$uri" ] && { sx-open "$uri"; }
 | 
			
		||||
	echo "$uri"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main "$@"
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
source "$HOME/.config/bspwm/common"
 | 
			
		||||
 | 
			
		||||
bspc desktop -t floating
 | 
			
		||||
bspc control --get-status > "$panel_fifo"
 | 
			
		||||
| 
						 | 
				
			
			@ -1,9 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
bsp_status=$( bspc control --get-status )
 | 
			
		||||
layout="${bsp_status##*:}"
 | 
			
		||||
 | 
			
		||||
case "$layout" in
 | 
			
		||||
	LT) bspc desktop -l monocle;;
 | 
			
		||||
	LM) bspc desktop -l tiled;;
 | 
			
		||||
esac
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
source "$HOME/.config/bspwm/common"
 | 
			
		||||
 | 
			
		||||
#xsetroot -cursor_name left_ptr
 | 
			
		||||
 | 
			
		||||
bspc config focused_border_color            "#$colour_bg_focused"
 | 
			
		||||
bspc config normal_border_color             "#$colour_bg_normal"
 | 
			
		||||
bspc config urgent_border_color             "#$colour_urgent"
 | 
			
		||||
bspc config focused_sticky_border_color     "#$colour_sticky_focused"
 | 
			
		||||
bspc config top_padding                     "$panel_h"
 | 
			
		||||
bspc config border_width                    "$bspwm_border_width"
 | 
			
		||||
bspc config window_gap                      "$bspwm_window_gap"
 | 
			
		||||
 | 
			
		||||
bspc config focus_follows_pointer           'true'
 | 
			
		||||
bspc config pointer_follows_monitor         'true'
 | 
			
		||||
bspc config split_ratio                     '0.50'
 | 
			
		||||
bspc config borderless_monocle              'true'
 | 
			
		||||
bspc config gapless_monocle                 'true'
 | 
			
		||||
bspc config focus_by_distance               'true'
 | 
			
		||||
#bspc config ignore_ewmh_focus               'true'
 | 
			
		||||
#bspc config initial_polarity                'second_child'
 | 
			
		||||
 | 
			
		||||
bspc monitor -d                             1 2 3 4 5
 | 
			
		||||
 | 
			
		||||
bspc rule -a Gimp desktop=^8 follow=on floating=on
 | 
			
		||||
bspc rule -a Steam desktop=^4 follow=off floating=on
 | 
			
		||||
bspc rule -a mpv floating=on
 | 
			
		||||
| 
						 | 
				
			
			@ -1,44 +0,0 @@
 | 
			
		|||
# vim: ft=sh
 | 
			
		||||
# common config
 | 
			
		||||
colour_fg_normal='f9f9f9'
 | 
			
		||||
colour_fg_focused=$colour_fg_normal
 | 
			
		||||
colour_bg_normal='2d2d2d'
 | 
			
		||||
colour_bg_focused='00612b'
 | 
			
		||||
#colour_fg_normal_alpha='00'
 | 
			
		||||
#colour_fg_focused_alpha=$colour_fg_normal_alpha
 | 
			
		||||
#colour_bg_normal_alpha='00'
 | 
			
		||||
#colour_bg_focused_alpha='00'
 | 
			
		||||
 | 
			
		||||
colour_urgent='610000'
 | 
			
		||||
colour_sticky_focused='030061'
 | 
			
		||||
 | 
			
		||||
xset +fp /home/von/.fonts/terminus/PCF
 | 
			
		||||
fontspec='-*-terminus-medium-*-normal-*-14-*-*-*-*-*-iso10646-*'
 | 
			
		||||
font_bold='-*-terminus-bold-*-normal-*-14-*-*-*-*-*-iso10646-*'
 | 
			
		||||
 | 
			
		||||
# bspwm config
 | 
			
		||||
bspwm_border_width='1'
 | 
			
		||||
bspwm_window_gap='3'
 | 
			
		||||
 | 
			
		||||
# root win
 | 
			
		||||
#IFS='x' read -r root_win_w root_win_h < <( xwininfo -root | awk '/geometry/ { split($2,g,"+"); printf("%s", g[1]) }' )
 | 
			
		||||
 | 
			
		||||
# panel config
 | 
			
		||||
panel_bg_normal="${colour_bg_normal_alpha}${colour_bg_normal}"
 | 
			
		||||
panel_bg_focused="${colour_bg_focused_alpha}${colour_bg_focused}"
 | 
			
		||||
panel_fg_normal="${colour_fg_normal_alpha}${colour_fg_normal}"
 | 
			
		||||
panel_fg_focused="${colour_fg_focused_alpha}${colour_fg_focused}"
 | 
			
		||||
panel_fifo="/tmp/panel${DISPLAY}-fifo"
 | 
			
		||||
panel_h='18'
 | 
			
		||||
panel_w='100%'
 | 
			
		||||
panel_show_empty_tags=0
 | 
			
		||||
# taskbar
 | 
			
		||||
panel_taskbar_enable=1
 | 
			
		||||
panel_taskbar_max_length=160
 | 
			
		||||
panel_taskbar_max_title=32
 | 
			
		||||
 | 
			
		||||
## dmenu in place of bar
 | 
			
		||||
#dmenu_w=$panel_w
 | 
			
		||||
#dmenu_h=$panel_h
 | 
			
		||||
#dmenu_x=$bspwm_window_gap
 | 
			
		||||
#dmenu_y=$bspwm_window_gap
 | 
			
		||||
| 
						 | 
				
			
			@ -1,199 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
source "$HOME/.config/bspwm/common"
 | 
			
		||||
 | 
			
		||||
cleanup() {
 | 
			
		||||
	jobs=( $(jobs -p) )
 | 
			
		||||
 | 
			
		||||
	if [[ "$jobs" ]]; then
 | 
			
		||||
		kill "${jobs[@]}"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	bspc config top_padding 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
get_line() {
 | 
			
		||||
	declare counter=0 line=$1
 | 
			
		||||
 | 
			
		||||
	while read; do
 | 
			
		||||
		if (( counter == line )); then
 | 
			
		||||
			printf '%s\n' "$REPLY"
 | 
			
		||||
			return 0
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		(( counter++ ))
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
parse_fifo_data() {
 | 
			
		||||
	declare msg desktop_spec
 | 
			
		||||
	declare -g win_name misc bspwm_status
 | 
			
		||||
 | 
			
		||||
	while read; do
 | 
			
		||||
		case "$REPLY" in
 | 
			
		||||
			cmd::*)
 | 
			
		||||
				read -r cmd args <<< "${REPLY#cmd::}"
 | 
			
		||||
 | 
			
		||||
				case "$cmd" in
 | 
			
		||||
					redraw)
 | 
			
		||||
						printf 'Redraw triggered\n'
 | 
			
		||||
						sleep 1
 | 
			
		||||
						printf '%s\n' "$msg"
 | 
			
		||||
					;;
 | 
			
		||||
					respawn)
 | 
			
		||||
						printf 'Dying...\n'
 | 
			
		||||
						sleep 1
 | 
			
		||||
						rexec
 | 
			
		||||
					;;
 | 
			
		||||
					run)
 | 
			
		||||
						$args
 | 
			
		||||
						rexec
 | 
			
		||||
					;;
 | 
			
		||||
				esac
 | 
			
		||||
			;;
 | 
			
		||||
			updates::*) updates="${REPLY#*updates::}";;
 | 
			
		||||
			date::*) date="${REPLY#*date::}";;
 | 
			
		||||
			T*)
 | 
			
		||||
				if (( panel_taskbar_enable )); then
 | 
			
		||||
					unset win_title
 | 
			
		||||
					unset taskbar taskbar_windows taskbar_length
 | 
			
		||||
 | 
			
		||||
					panel_taskbar_max_title_current=$panel_taskbar_max_title
 | 
			
		||||
 | 
			
		||||
					while read -r _ _ _ wid _ _ _ _ focus; do
 | 
			
		||||
						if [[ "$wid" =~ [0-9]x[0-9A-F] ]]; then
 | 
			
		||||
							if [[ "$focus" == '*' ]]; then
 | 
			
		||||
								taskbar_windows+=( "$wid::F" )
 | 
			
		||||
							else
 | 
			
		||||
								taskbar_windows+=( "$wid::u" )
 | 
			
		||||
							fi
 | 
			
		||||
						fi
 | 
			
		||||
					done < <( bspc query -T -d focused )
 | 
			
		||||
 | 
			
		||||
					taskbar_windows_n="${#taskbar_windows[@]}"
 | 
			
		||||
 | 
			
		||||
					if (( taskbar_windows_n )); then
 | 
			
		||||
						until (( taskbar_length )) && (( taskbar_length <= panel_taskbar_max_length )); do
 | 
			
		||||
							unset taskbar
 | 
			
		||||
							taskbar_length=$(( (taskbar_windows_n * 2) + 2 ))
 | 
			
		||||
							
 | 
			
		||||
							for w in "${taskbar_windows[@]}"; do
 | 
			
		||||
								IFS='::' read -r wid _ state <<< "$w"
 | 
			
		||||
								win_title=$( xtitle -f '%s' -t "${panel_taskbar_max_title_current}" "$wid" )
 | 
			
		||||
								win_title_length="${#win_title}"
 | 
			
		||||
 | 
			
		||||
								taskbar_length=$(( taskbar_length + win_title_length ))
 | 
			
		||||
 | 
			
		||||
								if [[ "$state" == 'F' ]]; then
 | 
			
		||||
									taskbar+=" %{B#${panel_bg_focused}}%{F#${panel_bg_normal}}%{F-} ${win_title} %{B-}%{F#${panel_bg_focused}}%{F-}"
 | 
			
		||||
								else
 | 
			
		||||
									taskbar+=" %{A:bspc window -f ${wid}:}  ${win_title}  %{A}"
 | 
			
		||||
								fi
 | 
			
		||||
							done
 | 
			
		||||
								
 | 
			
		||||
							(( panel_taskbar_max_title_current-- ))
 | 
			
		||||
						done
 | 
			
		||||
					fi
 | 
			
		||||
				else
 | 
			
		||||
					win_title="${REPLY#*T}"
 | 
			
		||||
					if [[ "$win_title" ]]; then
 | 
			
		||||
						taskbar=" %{B#${panel_bg_focused}}%{F#${panel_bg_normal}}%{F-} ${win_title} %{B-}%{F#${panel_bg_focused}}%{F-}"
 | 
			
		||||
					else
 | 
			
		||||
						unset taskbar
 | 
			
		||||
					fi
 | 
			
		||||
				fi
 | 
			
		||||
			;;
 | 
			
		||||
			WM*)
 | 
			
		||||
				unset desktop_spec
 | 
			
		||||
				IFS=':' read -a bspwm_status <<< "$REPLY"
 | 
			
		||||
 | 
			
		||||
				for i in "${bspwm_status[@]}"; do
 | 
			
		||||
					if [[ "$i" =~ ^[oOfFuU].+ ]]; then
 | 
			
		||||
						n="${i#*[oOfFuU]}"
 | 
			
		||||
 | 
			
		||||
						case "$i" in
 | 
			
		||||
							O*|F*|U*) desktop_spec+="%{B#${panel_bg_focused}} $n %{B-}";;
 | 
			
		||||
							u*) desktop_spec+="%{B#${colour_urgent}}%{A:bspc desktop -f $n:} $n %{A}%{B-}";;
 | 
			
		||||
							o*) desktop_spec+="%{B-}%{A:bspc desktop -f $n:} $n %{A}";;
 | 
			
		||||
							f*)
 | 
			
		||||
								(( panel_show_empty_tags )) && {
 | 
			
		||||
									desktop_spec+="%{B-} $n "
 | 
			
		||||
								}
 | 
			
		||||
							;;
 | 
			
		||||
						esac
 | 
			
		||||
					fi
 | 
			
		||||
				done
 | 
			
		||||
 | 
			
		||||
				read _ _ _ _ layout float _ < <( bspc query -T -d focused | get_line 1 )
 | 
			
		||||
 | 
			
		||||
				if [[ "$float" == 'f' ]]; then
 | 
			
		||||
					float_flag='f'
 | 
			
		||||
				else
 | 
			
		||||
					float_flag=''
 | 
			
		||||
				fi
 | 
			
		||||
 | 
			
		||||
				case "$layout" in
 | 
			
		||||
					T) layout_flag='t';;
 | 
			
		||||
					M) layout_flag='m';;
 | 
			
		||||
				esac
 | 
			
		||||
 | 
			
		||||
				desktop_spec+=" %{A:bsptl:}[${layout_flag}${float_flag}]%{A}"
 | 
			
		||||
			;;
 | 
			
		||||
		esac
 | 
			
		||||
 | 
			
		||||
		msg="$desktop_spec"
 | 
			
		||||
 | 
			
		||||
		[[ "$taskbar" ]] && { msg+="$taskbar"; }
 | 
			
		||||
 | 
			
		||||
		msg+="%{r}%{F#${colour_bg_focused}}%{F-}%{B#${panel_bg_focused}} $updates $date "
 | 
			
		||||
		msg+='%{B-}%{F-}'
 | 
			
		||||
 | 
			
		||||
		printf '%s\n' "$msg"
 | 
			
		||||
	done < "$panel_fifo"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
misc_status() {
 | 
			
		||||
	declare ip msg date
 | 
			
		||||
 | 
			
		||||
	while sleep 1; do
 | 
			
		||||
		date=$( date +%A,\ %Y.%m.%d\ %H:%M:%S )
 | 
			
		||||
		msg="[ $date ]"
 | 
			
		||||
		printf 'S:%s\n' "$msg"
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
rexec() {
 | 
			
		||||
	kill $(jobs -p)
 | 
			
		||||
	exec "$0"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
	trap 'cleanup' EXIT TERM INT
 | 
			
		||||
	trap 'rexec' HUP
 | 
			
		||||
 | 
			
		||||
	[[ -e "$panel_fifo" ]] && {
 | 
			
		||||
		rm "$panel_fifo" || { return 1; }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	mkfifo "$panel_fifo"
 | 
			
		||||
 | 
			
		||||
	if (( panel_taskbar_enable )); then
 | 
			
		||||
		xtitle -s -t "$panel_taskbar_max_title" -f 'T%s' > "$panel_fifo" &
 | 
			
		||||
	else
 | 
			
		||||
		xtitle -s -f 'T%s' > "$panel_fifo" &
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	bspc control --subscribe > "$panel_fifo" &
 | 
			
		||||
	/home/von/.config/bspwm/panel/panel_status &
 | 
			
		||||
 | 
			
		||||
	bspc config top_padding "$(( panel_h + bspwm_window_gap ))"
 | 
			
		||||
 | 
			
		||||
	parse_fifo_data | lemonbar -g "1280x16+0+0" \
 | 
			
		||||
                         -f "$fontspec" \
 | 
			
		||||
                         -f "$font_bold" \
 | 
			
		||||
                         -F "#${panel_fg_normal}" \
 | 
			
		||||
                         -B "#${panel_bg_normal}" | sh &
 | 
			
		||||
	wait
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main
 | 
			
		||||
| 
						 | 
				
			
			@ -1,53 +0,0 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
source "$HOME/.config/bspwm/common"
 | 
			
		||||
 | 
			
		||||
status::date() {
 | 
			
		||||
	while true; do
 | 
			
		||||
		printf 'date::%%{T2}%s%%{T}\n' "$(date '+%a %d %H:%M')"
 | 
			
		||||
		sleep 1
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
status::updates() {
 | 
			
		||||
	declare pkgs
 | 
			
		||||
 | 
			
		||||
	while true; do
 | 
			
		||||
		pkgs=( $(pacman -Qqu) )
 | 
			
		||||
		pkgs_n=${#pkgs[@]}
 | 
			
		||||
 | 
			
		||||
		if (( pkgs_n )); then
 | 
			
		||||
			printf 'updates::[ Updates: %s ]\n' "${#pkgs[@]}"
 | 
			
		||||
		else
 | 
			
		||||
			printf 'updates::[ No updates ]\n'
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		sleep 5
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cleanup() {
 | 
			
		||||
	kill $(jobs -p)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
rexec() {
 | 
			
		||||
	kill $(jobs -p)
 | 
			
		||||
	exec "$0"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
	declare msg date
 | 
			
		||||
 | 
			
		||||
	trap cleanup EXIT TERM INT
 | 
			
		||||
	trap rexec HUP
 | 
			
		||||
 | 
			
		||||
	modules=( date )
 | 
			
		||||
 | 
			
		||||
	for i in "${modules[@]}"; do
 | 
			
		||||
		"status::${i}" > "$panel_fifo" &
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	wait
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main
 | 
			
		||||
| 
						 | 
				
			
			@ -1,78 +0,0 @@
 | 
			
		|||
#
 | 
			
		||||
# bspwm hotkeys
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
alt + control + c
 | 
			
		||||
	bspc window -c
 | 
			
		||||
 | 
			
		||||
alt + control + k
 | 
			
		||||
	bspc window -k
 | 
			
		||||
 | 
			
		||||
alt + Return
 | 
			
		||||
	bspc window -t fullscreen
 | 
			
		||||
 | 
			
		||||
alt + {j,k}
 | 
			
		||||
	bspc window -f {next,prev}
 | 
			
		||||
 | 
			
		||||
alt + shift + {j,l}
 | 
			
		||||
	bspc window -e {down,right} +32
 | 
			
		||||
 | 
			
		||||
alt + shift + {k,h}
 | 
			
		||||
	bspc window -e {down,right} -32
 | 
			
		||||
 | 
			
		||||
alt + Tab
 | 
			
		||||
	bspc window -t floating
 | 
			
		||||
 | 
			
		||||
alt + Return
 | 
			
		||||
	bspc window -s biggest
 | 
			
		||||
 | 
			
		||||
alt + {1-9}
 | 
			
		||||
	bspc desktop -f {1-9}
 | 
			
		||||
 | 
			
		||||
alt + shift + {1-9}
 | 
			
		||||
	bspc window -d {1-9}
 | 
			
		||||
 | 
			
		||||
alt + t
 | 
			
		||||
	bspc desktop -R 90
 | 
			
		||||
 | 
			
		||||
alt + m
 | 
			
		||||
	bspc desktop -l next
 | 
			
		||||
 | 
			
		||||
alt + f
 | 
			
		||||
	/home/von/.config/bspwm/bsptf
 | 
			
		||||
 | 
			
		||||
~button{1-3}
 | 
			
		||||
	bspc pointer -g focus
 | 
			
		||||
 | 
			
		||||
alt + button{1-3}
 | 
			
		||||
	bspc pointer -g {move,resize_side,resize_corner}
 | 
			
		||||
 | 
			
		||||
alt + !button{1-3}
 | 
			
		||||
	bspc pointer -t %i %i
 | 
			
		||||
 | 
			
		||||
alt + @button{1-3}
 | 
			
		||||
	bspc pointer -u
 | 
			
		||||
 | 
			
		||||
alt + x
 | 
			
		||||
	termite
 | 
			
		||||
 | 
			
		||||
alt + {r,u}
 | 
			
		||||
	/home/von/.config/bspwm/bspmenu_{run,url}
 | 
			
		||||
 | 
			
		||||
alt + F2
 | 
			
		||||
	dmenu_run
 | 
			
		||||
 | 
			
		||||
alt + z
 | 
			
		||||
	bash -c "until i3lock -entc 661111 -i /home/von/Pictures/wallpaper.png; do :; done"
 | 
			
		||||
 | 
			
		||||
Print
 | 
			
		||||
	xfce4-screenshooter
 | 
			
		||||
 | 
			
		||||
alt + shift + F12
 | 
			
		||||
	/home/von/vscripts/compton_toggle
 | 
			
		||||
 | 
			
		||||
alt + {Left,Up,Right,Down}
 | 
			
		||||
	bspc window --presel {left,up,right,down}
 | 
			
		||||
 | 
			
		||||
alt + o
 | 
			
		||||
	bspc monitor -f {right,left}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,44 +0,0 @@
 | 
			
		|||
#!/usr/bin/env zsh
 | 
			
		||||
export BSPWM_SOCKET='/tmp/bspwm_sock'
 | 
			
		||||
bspwm&
 | 
			
		||||
until [[ -e $BSPWM_SOCKET ]]; do
 | 
			
		||||
	sleep 1
 | 
			
		||||
done
 | 
			
		||||
export bspwm_config_dir="$HOME/vdotfiles/bspwm-zsh"
 | 
			
		||||
source $bspwm_config_dir/common
 | 
			
		||||
# bspwm general settings
 | 
			
		||||
/usr/bin/bspc config focused_border_color $colors_bg_focused
 | 
			
		||||
/usr/bin/bspc config normal_border_color $colors_bg_normal
 | 
			
		||||
/usr/bin/bspc config urgent_border_color $colors_urgent
 | 
			
		||||
/usr/bin/bspc config focused_sticky_border_color $colors_sticky_focused
 | 
			
		||||
/usr/bin/bspc config top_padding 18
 | 
			
		||||
/usr/bin/bspc config border_width 1
 | 
			
		||||
/usr/bin/bspc config window_gap 5 
 | 
			
		||||
/usr/bin/bspc config focus_follows_pointer true
 | 
			
		||||
/usr/bin/bspc config pointer_follows_monitor true
 | 
			
		||||
/usr/bin/bspc config split_ratio 0.50
 | 
			
		||||
/usr/bin/bspc config borderless_monocle true
 | 
			
		||||
/usr/bin/bspc config gapless_monocle true
 | 
			
		||||
/usr/bin/bspc config focus_by_distance true
 | 
			
		||||
/usr/bin/bspc config ignore_ewmh_focus true
 | 
			
		||||
# bspwm window placement rules
 | 
			
		||||
/usr/bin/bspc rule -a URxvt desktop=^2 follow=on floating=on
 | 
			
		||||
/usr/bin/bspc rule -a Steam desktop=^4 follow=off floating=on
 | 
			
		||||
# bspwm create tags
 | 
			
		||||
/usr/bin/bspc monitor -d 1 2 3 4 5
 | 
			
		||||
# the rest of it
 | 
			
		||||
job_list=()
 | 
			
		||||
# sxhkd kill / spawn (there can only be one)
 | 
			
		||||
/usr/bin/pkill sxhkd 2>&1 >/dev/null
 | 
			
		||||
/usr/bin/sxhkd -f 60 -c $bspwm_config_dir/sxhkdrc&
 | 
			
		||||
# panel
 | 
			
		||||
fontdir="$HOME/.fonts/terminus/PCF"
 | 
			
		||||
/usr/bin/xset +fp $fontdir
 | 
			
		||||
$bspwm_config_dir/panel&
 | 
			
		||||
# trap to kill all the jobs when killing the script itself
 | 
			
		||||
trap 'cleanup' EXIT TERM INT
 | 
			
		||||
function cleanup
 | 
			
		||||
{
 | 
			
		||||
	eval "kill ${${jobstates##*:*:}%=*}"
 | 
			
		||||
}
 | 
			
		||||
wait
 | 
			
		||||
							
								
								
									
										24
									
								
								bspwm/common
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								bspwm/common
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,24 +0,0 @@
 | 
			
		|||
# vim: ft=sh
 | 
			
		||||
# common config
 | 
			
		||||
# fonts
 | 
			
		||||
font_norm='-*-terminus-medium-*-normal-*-14-*-*-*-*-*-iso10646-*'
 | 
			
		||||
font_bold='-*-terminus-bold*-normal-*-14-*-*-*-*-*-iso10646-*'
 | 
			
		||||
# colors
 | 
			
		||||
colors_fg_normal='#f9f9f9'
 | 
			
		||||
colors_fg_focused=$colors_fg_normal
 | 
			
		||||
colors_bg_normal='#2d2d2d'
 | 
			
		||||
colors_bg_focused='#00612b'
 | 
			
		||||
colors_urgent='#610000'
 | 
			
		||||
colors_sticky_focused='#030061'
 | 
			
		||||
# date format
 | 
			
		||||
date_format='+%a %d %H:%M'
 | 
			
		||||
 | 
			
		||||
# panel config
 | 
			
		||||
panel_fifo="/tmp/panel$DISPLAY-sock"
 | 
			
		||||
bspwm_sock="/tmp/bspwm$DISPLAY-sock"
 | 
			
		||||
panel_h='14'
 | 
			
		||||
panel_show_empty_tags=0
 | 
			
		||||
# taskbar
 | 
			
		||||
panel_taskbar_enable=1
 | 
			
		||||
panel_taskbar_max_length=160
 | 
			
		||||
panel_taskbar_max_title=32
 | 
			
		||||
							
								
								
									
										207
									
								
								bspwm/panel
									
										
									
									
									
								
							
							
						
						
									
										207
									
								
								bspwm/panel
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,207 +0,0 @@
 | 
			
		|||
#!/usr/bin/env zsh
 | 
			
		||||
source $bspwm_config_dir/common
 | 
			
		||||
 | 
			
		||||
cleanup() {
 | 
			
		||||
	jobs=${${jobstates##*:*:}%=*}
 | 
			
		||||
 | 
			
		||||
	if [[ "$jobs" ]]; then
 | 
			
		||||
		eval "kill $jobs"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	bspc config top_padding 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
get_line() {
 | 
			
		||||
	declare counter=0 line=$1
 | 
			
		||||
 | 
			
		||||
	while read; do
 | 
			
		||||
		if (( counter == line )); then
 | 
			
		||||
			printf '%s\n' "$REPLY"
 | 
			
		||||
			return 0
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		(( counter++ ))
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
parse_fifo_data() {
 | 
			
		||||
	declare msg desktop_spec
 | 
			
		||||
	declare -g win_name misc bspwm_status
 | 
			
		||||
 | 
			
		||||
	while read; do
 | 
			
		||||
		case "$REPLY" in
 | 
			
		||||
			cmd::*)
 | 
			
		||||
				read -r cmd args <<< "${REPLY#cmd::}"
 | 
			
		||||
 | 
			
		||||
				case "$cmd" in
 | 
			
		||||
					redraw)
 | 
			
		||||
						printf 'Redraw triggered\n'
 | 
			
		||||
						sleep 1
 | 
			
		||||
						printf '%s\n' "$msg"
 | 
			
		||||
					;;
 | 
			
		||||
					respawn)
 | 
			
		||||
						printf 'Dying...\n'
 | 
			
		||||
						sleep 1
 | 
			
		||||
						rexec
 | 
			
		||||
					;;
 | 
			
		||||
					run)
 | 
			
		||||
						$args
 | 
			
		||||
						rexec
 | 
			
		||||
					;;
 | 
			
		||||
				esac
 | 
			
		||||
			;;
 | 
			
		||||
			updates::*) updates="${REPLY#*updates::}";;
 | 
			
		||||
			date::*) date="${REPLY#*date::}";;
 | 
			
		||||
			T*)
 | 
			
		||||
				if (( panel_taskbar_enable )); then
 | 
			
		||||
					unset win_title
 | 
			
		||||
					unset taskbar taskbar_windows taskbar_length
 | 
			
		||||
 | 
			
		||||
					panel_taskbar_max_title_current=$panel_taskbar_max_title
 | 
			
		||||
 | 
			
		||||
					while read -r _ _ _ wid _ _ _ _ focus; do
 | 
			
		||||
						if [[ "$wid" =~ [0-9]x[0-9A-F] ]]; then
 | 
			
		||||
							if [[ "$focus" == '*' ]]; then
 | 
			
		||||
								taskbar_windows+=( "$wid::F" )
 | 
			
		||||
							else
 | 
			
		||||
								taskbar_windows+=( "$wid::u" )
 | 
			
		||||
							fi
 | 
			
		||||
						fi
 | 
			
		||||
					done < <( bspc query -T -d focused )
 | 
			
		||||
 | 
			
		||||
					taskbar_windows_n="${#taskbar_windows[@]}"
 | 
			
		||||
 | 
			
		||||
					if (( taskbar_windows_n )); then
 | 
			
		||||
						until (( taskbar_length )) && (( taskbar_length <= panel_taskbar_max_length )); do
 | 
			
		||||
							unset taskbar
 | 
			
		||||
							taskbar_length=$(( (taskbar_windows_n * 2) + 2 ))
 | 
			
		||||
							
 | 
			
		||||
							for w in "${taskbar_windows[@]}"; do
 | 
			
		||||
								IFS='::' read -r wid _ state <<< "$w"
 | 
			
		||||
								win_title=$( xtitle -f '%s' -t "${panel_taskbar_max_title_current}" "$wid" )
 | 
			
		||||
								win_title_length="${#win_title}"
 | 
			
		||||
 | 
			
		||||
								taskbar_length=$(( taskbar_length + win_title_length ))
 | 
			
		||||
 | 
			
		||||
								if [[ "$state" == 'F' ]]; then
 | 
			
		||||
									taskbar+=" %{B${colors_bg_focused}}%{F${colors_bg_normal}}%{F-} ${win_title} %{B-}%{F${colors_bg_focused}}%{F-}"
 | 
			
		||||
								else
 | 
			
		||||
									taskbar+=" %{A:bspc window -f ${wid}:}  ${win_title}  %{A}"
 | 
			
		||||
								fi
 | 
			
		||||
							done
 | 
			
		||||
								
 | 
			
		||||
							(( panel_taskbar_max_title_current-- ))
 | 
			
		||||
						done
 | 
			
		||||
					fi
 | 
			
		||||
				else
 | 
			
		||||
					win_title="${REPLY#*T}"
 | 
			
		||||
					if [[ "$win_title" ]]; then
 | 
			
		||||
						taskbar=" %{B${colors_bg_focused}}%{F${colors_bg_normal}}%{F-} ${win_title} %{B-}%{F${colors_bg_focused}}%{F-}"
 | 
			
		||||
					else
 | 
			
		||||
						unset taskbar
 | 
			
		||||
					fi
 | 
			
		||||
				fi
 | 
			
		||||
			;;
 | 
			
		||||
			WM*)
 | 
			
		||||
				unset desktop_spec
 | 
			
		||||
				IFS=':' read -A bspwm_status <<< "$REPLY"
 | 
			
		||||
 | 
			
		||||
				for i in "${bspwm_status[@]}"; do
 | 
			
		||||
					if [[ "$i" =~ ^[oOfFuU].+ ]]; then
 | 
			
		||||
						n="${i#*[oOfFuU]}"
 | 
			
		||||
 | 
			
		||||
						case "$i" in
 | 
			
		||||
							O*|F*|U*) desktop_spec+="%{B${colors_bg_focused}} $n %{B-}";;
 | 
			
		||||
							u*) desktop_spec+="%{B${colour_urgent}}%{A:bspc desktop -f $n:} $n %{A}%{B-}";;
 | 
			
		||||
							o*) desktop_spec+="%{B-}%{A:bspc desktop -f $n:} $n %{A}";;
 | 
			
		||||
							f*)
 | 
			
		||||
								(( panel_show_empty_tags )) && {
 | 
			
		||||
									desktop_spec+="%{B-} $n "
 | 
			
		||||
								}
 | 
			
		||||
							;;
 | 
			
		||||
						esac
 | 
			
		||||
					fi
 | 
			
		||||
				done
 | 
			
		||||
 | 
			
		||||
				read _ _ _ _ layout float _ < <( bspc query -T -d focused | get_line 1 )
 | 
			
		||||
 | 
			
		||||
				if [[ "$float" == 'f' ]]; then
 | 
			
		||||
					float_flag='f'
 | 
			
		||||
				else
 | 
			
		||||
					float_flag=''
 | 
			
		||||
				fi
 | 
			
		||||
 | 
			
		||||
				case "$layout" in
 | 
			
		||||
					T) layout_flag='t';;
 | 
			
		||||
					M) layout_flag='m';;
 | 
			
		||||
				esac
 | 
			
		||||
 | 
			
		||||
				desktop_spec+=" %{A:bsptl:}[${layout_flag}${float_flag}]%{A}"
 | 
			
		||||
			;;
 | 
			
		||||
		esac
 | 
			
		||||
 | 
			
		||||
		msg="$desktop_spec"
 | 
			
		||||
 | 
			
		||||
		[[ "$taskbar" ]] && { msg+="$taskbar"; }
 | 
			
		||||
 | 
			
		||||
		msg+="%{r}%{F${colors_bg_focused}}%{F-}%{B${colors_bg_focused}} $updates $date "
 | 
			
		||||
		msg+='%{B-}%{F-}'
 | 
			
		||||
 | 
			
		||||
		printf '%s\n' "$msg"
 | 
			
		||||
	done < "$panel_fifo"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
misc_status() {
 | 
			
		||||
	declare ip msg date
 | 
			
		||||
 | 
			
		||||
	while sleep 1; do
 | 
			
		||||
		date=$( date +%A,\ %Y.%m.%d\ %H:%M:%S )
 | 
			
		||||
		msg="[ $date ]"
 | 
			
		||||
		printf 'S:%s\n' "$msg"
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
rexec() {
 | 
			
		||||
	eval "kill ${${jobstates##*:*:}%=*[@]}"
 | 
			
		||||
	exec "$0"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function panel_geometry
 | 
			
		||||
{
 | 
			
		||||
	xrandr|grep -Eo '[[:digit:]]+x[[:digit:]]+\+[[:digit:]]+\+[[:digit:]]+'|awk -F'x|+' '{print $1,$2,$3,$4}'|read -A screen_geometry
 | 
			
		||||
	((panel_h)) || panel_h=20
 | 
			
		||||
	((panel_w)) || panel_w=$screen_geometry[2]
 | 
			
		||||
	((panel_l)) || panel_l=$screen_geometry[3]
 | 
			
		||||
	((panel_d)) || panel_d=$screen_geometry[4]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
	trap 'cleanup' EXIT TERM INT
 | 
			
		||||
	trap 'rexec' HUP
 | 
			
		||||
 | 
			
		||||
	[[ -e "$panel_fifo" ]] && {
 | 
			
		||||
		rm "$panel_fifo" || { return 1; }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	mkfifo "$panel_fifo"
 | 
			
		||||
 | 
			
		||||
	if (( panel_taskbar_enable )); then
 | 
			
		||||
		xtitle -s -t "$panel_taskbar_max_title" -f 'T%s' > "$panel_fifo" &
 | 
			
		||||
	else
 | 
			
		||||
		xtitle -s -f 'T%s' > "$panel_fifo" &
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	bspc control --subscribe > "$panel_fifo" &
 | 
			
		||||
	$bspwm_config_dir/panel_status &
 | 
			
		||||
 | 
			
		||||
	bspc config top_padding "$(( panel_h + bspwm_window_gap ))"
 | 
			
		||||
 | 
			
		||||
	parse_fifo_data | lemonbar -g "${panel_w}x${panel_h}+${panel_l}+${panel_d}" \
 | 
			
		||||
                         -f "$font_norm" \
 | 
			
		||||
                         -f "$font_bold" \
 | 
			
		||||
                         -F "$colors_fg_normal" \
 | 
			
		||||
                         -B "$colors_bg_normal" | zsh &
 | 
			
		||||
	wait
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main
 | 
			
		||||
| 
						 | 
				
			
			@ -1,54 +0,0 @@
 | 
			
		|||
#!/usr/bin/env zsh
 | 
			
		||||
 | 
			
		||||
source $bspwm_config_dir/common
 | 
			
		||||
 | 
			
		||||
status::date() {
 | 
			
		||||
	while true; do
 | 
			
		||||
		printf 'date::%%{T2}%s%%{T}\n' "$(date '+%a %d %H:%M:%S')"
 | 
			
		||||
		sleep 1
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
status::updates() {
 | 
			
		||||
	declare pkgs
 | 
			
		||||
 | 
			
		||||
	while true; do
 | 
			
		||||
		pkgs=( $(pacman -Qqu) )
 | 
			
		||||
		pkgs_n=${#pkgs[@]}
 | 
			
		||||
 | 
			
		||||
		if (( pkgs_n )); then
 | 
			
		||||
			printf 'updates::[ Updates: %s ]\n' "${#pkgs[@]}"
 | 
			
		||||
		else
 | 
			
		||||
			printf 'updates::[ No updates ]\n'
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		sleep 5
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cleanup() {
 | 
			
		||||
	eval "kill ${${jobstates##*:*:}%=*}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
rexec() {
 | 
			
		||||
	eval "kill ${${jobstates##*:*:}%=*}"
 | 
			
		||||
	exec "$0"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
	declare msg date
 | 
			
		||||
	typeset -a modules
 | 
			
		||||
 | 
			
		||||
	trap cleanup EXIT TERM INT
 | 
			
		||||
	trap rexec HUP
 | 
			
		||||
 | 
			
		||||
	modules=( date )
 | 
			
		||||
 | 
			
		||||
	for i in "${modules[@]}"; do
 | 
			
		||||
		"status::${i}" > "$panel_fifo" &
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	wait
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main
 | 
			
		||||
| 
						 | 
				
			
			@ -1,78 +0,0 @@
 | 
			
		|||
#
 | 
			
		||||
# bspwm hotkeys
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
alt + control + c
 | 
			
		||||
	bspc window -c
 | 
			
		||||
 | 
			
		||||
alt + control + k
 | 
			
		||||
	bspc window -k
 | 
			
		||||
 | 
			
		||||
alt + Return
 | 
			
		||||
	bspc window -t fullscreen
 | 
			
		||||
 | 
			
		||||
alt + {j,k}
 | 
			
		||||
	bspc window -f {next,prev}
 | 
			
		||||
 | 
			
		||||
alt + shift + {j,l}
 | 
			
		||||
	bspc window -e {down,right} +32
 | 
			
		||||
 | 
			
		||||
alt + shift + {k,h}
 | 
			
		||||
	bspc window -e {down,right} -32
 | 
			
		||||
 | 
			
		||||
alt + Tab
 | 
			
		||||
	bspc window -t floating
 | 
			
		||||
 | 
			
		||||
alt + Return
 | 
			
		||||
	bspc window -s biggest
 | 
			
		||||
 | 
			
		||||
alt + {1-9}
 | 
			
		||||
	bspc desktop -f {1-9}
 | 
			
		||||
 | 
			
		||||
alt + shift + {1-9}
 | 
			
		||||
	bspc window -d {1-9}
 | 
			
		||||
 | 
			
		||||
alt + t
 | 
			
		||||
	bspc desktop -R 90
 | 
			
		||||
 | 
			
		||||
alt + m
 | 
			
		||||
	bspc desktop -l next
 | 
			
		||||
 | 
			
		||||
alt + f
 | 
			
		||||
	/home/von/.config/bspwm/bsptf
 | 
			
		||||
 | 
			
		||||
~button{1-3}
 | 
			
		||||
	bspc pointer -g focus
 | 
			
		||||
 | 
			
		||||
alt + button{1-3}
 | 
			
		||||
	bspc pointer -g {move,resize_side,resize_corner}
 | 
			
		||||
 | 
			
		||||
alt + !button{1-3}
 | 
			
		||||
	bspc pointer -t %i %i
 | 
			
		||||
 | 
			
		||||
alt + @button{1-3}
 | 
			
		||||
	bspc pointer -u
 | 
			
		||||
 | 
			
		||||
alt + x
 | 
			
		||||
	termite
 | 
			
		||||
 | 
			
		||||
alt + {r,u}
 | 
			
		||||
	/home/von/.config/bspwm/bspmenu_{run,url}
 | 
			
		||||
 | 
			
		||||
alt + F2
 | 
			
		||||
	dmenu_run
 | 
			
		||||
 | 
			
		||||
alt + z
 | 
			
		||||
	bash -c "until i3lock -entc 661111 -i /home/von/Pictures/wallpaper.png; do :; done"
 | 
			
		||||
 | 
			
		||||
Print
 | 
			
		||||
	xfce4-screenshooter
 | 
			
		||||
 | 
			
		||||
alt + shift + F12
 | 
			
		||||
	/home/von/vscripts/compton_toggle
 | 
			
		||||
 | 
			
		||||
alt + {Left,Up,Right,Down}
 | 
			
		||||
	bspc window --presel {left,up,right,down}
 | 
			
		||||
 | 
			
		||||
alt + o
 | 
			
		||||
	bspc monitor -f {right,left}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,3 +0,0 @@
 | 
			
		|||
#!/usr/bin/env zsh
 | 
			
		||||
/usr/bin/sxhkd -f 60&
 | 
			
		||||
wait
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue