bspwm: Add funky monitor allocation back
This commit is contained in:
parent
13da355781
commit
145ead604f
44
.config/bspwm/bspwmrc
Normal file → Executable file
44
.config/bspwm/bspwmrc
Normal file → Executable file
@ -1,9 +1,49 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# bspwmrc
|
# bspwmrc
|
||||||
# bspwm configuration file
|
# bspwm configuration file
|
||||||
#
|
#
|
||||||
|
|
||||||
|
## Monitor allocation
|
||||||
|
# Honestly pretty complex
|
||||||
|
setmon() {
|
||||||
|
desktops_total=8
|
||||||
|
desktops_primary=6
|
||||||
|
desktops_secondary=$(( desktops_total - desktops_primary ))
|
||||||
|
|
||||||
|
monitor_primary="$(xrandr -q | awk '/primary/{print $1}')"
|
||||||
|
monitors_secondary=($(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}'))
|
||||||
|
# Ensure we have enough for every monitor
|
||||||
|
if (( desktops_secondary < ${#monitors_secondary[@]} )); then
|
||||||
|
echo "Adding more desktops to match connected monitors"
|
||||||
|
desktops_secondary=${#monitors_secondary[@]}
|
||||||
|
desktops_total=$(( desktops_secondary + desktops_primary ))
|
||||||
|
fi
|
||||||
|
if (( ${#monitors_secondary[@]} == 0 )); then
|
||||||
|
echo "Only one monitor allocated"
|
||||||
|
layout=$(seq --separator=" " 1 $desktops_total)
|
||||||
|
echo "Setting layout $layout"
|
||||||
|
bspc monitor $monitor_primary -d $layout
|
||||||
|
else
|
||||||
|
echo "${#monitors_secondary[@]} monitors connected"
|
||||||
|
deskpermon=$(( desktops_secondary / ${#monitors_secondary[@]} ))
|
||||||
|
layout=$(seq --separator=" " 1 $desktops_primary)
|
||||||
|
echo "Setting primary layout $layout"
|
||||||
|
bspc monitor $monitor_primary -d $layout
|
||||||
|
|
||||||
|
for m in $(seq 0 $(( ${#monitors_secondary[@]} - 1 ))); do
|
||||||
|
layout=$(seq --separator=" " \
|
||||||
|
$(( 1 + m + desktops_primary )) \
|
||||||
|
${#monitors_secondary[@]} \
|
||||||
|
"$desktops_total" \
|
||||||
|
)
|
||||||
|
echo "Setting layout for ${monitors_secondary[$m]} to $layout"
|
||||||
|
bspc monitor ${monitors_secondary[$m]} -d $layout
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
setmon
|
||||||
|
|
||||||
## Behavior
|
## Behavior
|
||||||
# Tiling behavior
|
# Tiling behavior
|
||||||
bspc config split_ratio 0.50
|
bspc config split_ratio 0.50
|
||||||
@ -12,7 +52,7 @@ bspc config remove_unplugged_monitors true
|
|||||||
|
|
||||||
# Pointer behavior
|
# Pointer behavior
|
||||||
bspc config click_to_focus any
|
bspc config click_to_focus any
|
||||||
bspc config pointer_follows_focus false
|
bspc config pointer_follows_focus true
|
||||||
bspc config pointer_follows_monitor true
|
bspc config pointer_follows_monitor true
|
||||||
bspc config pointer_modifier mod1
|
bspc config pointer_modifier mod1
|
||||||
bspc config pointer_action1 move #LMB
|
bspc config pointer_action1 move #LMB
|
||||||
|
Reference in New Issue
Block a user