#!/usr/bin/env bash

if [ -x "$(command -v sxhkd)" ]; then
    sxhkd &
    return_val=$?
    if [ $return_val -ne 0 ]; then
        echo >&2 "Couldn't fire up sxhkd: $return_val. Exiting!"
        bspc quit && exit 1
    fi
else
    echo >&2 "Can't seem to find the sxhkd executable. Exiting!"
    bspc quit && exit 1
fi

if [ ! -x "$(command -v alacritty)" ]; then
    if [ ! -x "$(command -v st)" ]; then
        echo >&2 "Can't seem to find neither the st nor the alacritty executable. Exiting!"
        bspc quit && exit 1
    fi
fi

for monitor in $(bspc query -M); do
    bspc monitor $monitor -d \~
done

bspc config border_width 2
bspc config window_gap 0
bspc config top_padding 20
bspc config bottom_padding 0
bspc config left_padding 0
bspc config right_padding 0
bspc config single_monocle false
bspc config split_ratio 0.50
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc config focus_follows_pointer false
bspc config remove_disabled_monitors true
bspc config merge_overlapping_monitors true
bspc config pointer_modifier mod1
bspc config pointer_action1 move
bspc config pointer_action2 resize_side
bspc config pointer_action3 resize_corner

bspc config normal_border_color "#44475a"
bspc config active_border_color "#bd93f9"
bspc config focused_border_color "#ff79c6"
bspc config presel_feedback_color "#6272a4"

bspc rule -a Screenkey manage=off
bspc rule -a Zathura state=tiled manage=on
bspc rule -a Emacs state=tiled

if [ -x "$(command -v feh)" ]; then
    feh --bg-fill "$HOME/Wallpapers/arch_dracula.png"
else
    if [ -x "$(command -v nitrogen)" ]; then
        nitrogen --restore &
        return_val=$?
        if [ $return_val -ne 0 ]; then
            echo >&2 "Couldn't fire up nitrogen: $return_val"
        fi
    else
        echo >&2 "Can't seem to find neither the feh nor the nitrogen executable"
    fi
fi

if [ -x "$(command -v /usr/bin/lxqt-policykit-agent)" ]; then
    /usr/bin/lxqt-policykit-agent &
    return_val=$?
    if [ $return_val -ne 0 ]; then
        echo >&2 "Couldn't fire up lxqt-policykit: $return_val"
    fi
else
    echo >&2 "Can't seem to find the /usr/bin/lxqt-policykit-agent executable"
fi

if [ -x "$(command -v polybar)" ]; then
    $HOME/.config/polybar/launch
    if [ $? -ne 0 ]; then
        echo >&2 "Couldn't fire up polybar: $?"
    fi
else
    echo >&2 "Can't seem to find the polybar executable. Starting barless!"
    bspc config top_padding 0
fi
