#! /usr/bin/env bash
#
# bspwm.sh
# Copyright (C) 2018 salt <salt@lap-th-e560-0>
#
# Distributed under terms of the MIT license.
#

main() {
	if ! pgrep -U "$UID" bspwm > /dev/null 2>&1; then
		tsk_log "Not under bspwm" 1
		return 1
	fi
	tsk_log "Configuring bspwm miscellanea"
	## Behavior
	tsk_log "Configuring behavior" 0
	# Tiling behavior
	bspc config split_ratio			0.50
	bspc config remove_disabled_monitors	false
	bspc config remove_unplugged_monitors	true

	# Pointer behavior
	bspc config click_to_focus		any
	bspc config pointer_follows_focus	false
	bspc config pointer_follows_monitor	true
	bspc config pointer_modifier		mod1
	bspc config pointer_action1		move #LMB
	bspc config pointer_action2		resize_corner #RMB

	## Looks
	tsk_log "Configuring looks" 0
	# Padding
	bspc config border_width		${BSPWM_BORDER_WIDTH:-2}
	bspc config window_gap			${BSPWM_WINDOW_GAP:-8}
	bspc config single_monocle		false
	bspc config borderless_monocle		false
	bspc config gapless_monocle		true
	# Colors
	bspc config normal_border_color			"#3c3836" #Unfocused
	bspc config active_border_color			"#458588" #Focused, but current monitor isn't
	bspc config focused_border_color		"#83a598" #Focused completely
	bspc config presel_feedback_color		"#9b9b9b" #???

	tsk_log "Setting window rules" 0
	bspc rule -r '*'
	bspc rule -a Firefox desktop=1
	bspc rule -a Firefox-esr desktop=1
	bspc rule -a Waterfox desktop=1
	bspc rule -a Liferea desktop=6
	bspc rule -a discord desktop=7
	bspc rule -a spotify desktop=8
	bspc rule -a 'Minecraft 1.7.10' state=fullscreen
	bspc rule -a Xephyr state=pseudo_tiled
	# For fullscreen Wine
	bspc rule -a explorer.exe state=fullscreen
	# Plasma rules
	bspc rule -a plasmashell state=floating sticky=on border=off
	bspc rule -a krunner state=floating layer=above sticky=on border=off
	# Widgets
	bspc rule -a Conky state=floating layer=below sticky=on
	bspc rule -a pavucontrol-qt state=floating layer=above sticky=on
}

main $@