It now gives the primary monitor the first few workspaces, then distributes the rest over the remaining secondary monitors
116 lines
4.0 KiB
Bash
Executable File
116 lines
4.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2018 rehashedsalt/vintagesalt
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
# of this software and associated documentation files (the "Software"), to deal
|
|
# in the Software without restriction, including without limitation the rights
|
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
# copies of the Software, and to permit persons to whom the Software is
|
|
# furnished to do so, subject to the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in all
|
|
# copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
# SOFTWARE.
|
|
|
|
## Clean up some variables that I use in device-specific scripts
|
|
# Polybar
|
|
unset PB_MONITOR
|
|
unset PB_WM_RESTACK
|
|
unset PB_BAR_WIDTH
|
|
unset PB_BAR_PRIMARY_MODULES_LEFT PB_BAR_PRIMARY_MODULES_CENTER PB_BAR_PRIMARY_MODULES_RIGHT
|
|
unset PB_BAR_PRIMARY_2_MODULES_LEFT PB_BAR_PRIMARY_2_MODULES_CENTER PB_BAR_PRIMARY_2_MODULES_RIGHT
|
|
unset PB_BAR_SECONDARY_MODULES_LEFT PB_BAR_SECONDARY_MODULES_CENTER PB_BAR_SECONDARY_MODULES_RIGHT
|
|
unset PB_BAR_SECONDARY_2_MODULES_LEFT PB_BAR_SECONDARY_2_MODULES_CENTER PB_BAR_SECONDARY_2_MODULES_RIGHT
|
|
unset PB_MODULE_BAR_WIDTH
|
|
unset PB_MODULE_WLAN_INTERFACE
|
|
# bspwm monitorset.sh
|
|
unset BSPWM_DESKTOPS_TOTAL
|
|
unset BSPWM_DESKTOPS_PRIMARY
|
|
|
|
## Patch path, if not already done
|
|
if [[ "$PATH" != "*$HOME/.local/bin*" ]]; then
|
|
printf "[INFO] Patching path for $HOME/.local/bin\n"
|
|
export PATH="$HOME/.local/bin:$PATH"
|
|
fi
|
|
|
|
## Load device-specific scripts
|
|
if [[ -x "$HOME/.config/dtfscripts/$(hostname).rc" ]]; then
|
|
printf "[INFO] Sourcing ~/.config/dtfscripts/$(hostname).rc\n"
|
|
source $HOME/.config/dtfscripts/$(hostname).rc
|
|
fi
|
|
|
|
printf "[INFO] Performing simple configuration\n"
|
|
## SIMPLE CONFIGURATION
|
|
xset -b
|
|
xset -dpms
|
|
xset s off
|
|
# This depends on a script found at rehashedsalt/bin
|
|
xrdbupdate
|
|
|
|
## SERVICES AND DAEMONS
|
|
# Kill everything
|
|
printf "[INFO] Stopping existing services\n"
|
|
services="plasmashell krunner xfdesktop polybar compton conky sxhkd dunst"
|
|
for service in $services; do
|
|
printf " [INFO] Sending signal to all $service\n"
|
|
killall $service
|
|
done
|
|
# Wait for them to die
|
|
for service in $services; do
|
|
while pgrep $service > /dev/null 2>&1; do
|
|
printf " [INFO] Waiting on $service\n"
|
|
sleep 0.5
|
|
done
|
|
done
|
|
|
|
# Start them back up
|
|
printf "[INFO] Starting services\n"
|
|
# Start with key functionality
|
|
if pgrep bspwm > /dev/null 2>&1; then
|
|
printf " [INFO] Found bspwm, starting sxhkd\n"
|
|
if [[ $(uname) == "OpenBSD" ]]; then
|
|
printf " [INFO] Starting OpenBSD variant\n"
|
|
sxhkd -c $XDG_CONFIG_HOME/sxhkd/sxhkdrc-obsd &
|
|
else
|
|
sxhkd &
|
|
fi
|
|
fi
|
|
# Don't start the compositor in a VM
|
|
if [[ $(hostname) != "vm"* ]]; then
|
|
printf " [INFO] Starting compton\n"
|
|
compton &
|
|
else
|
|
printf " [INFO] In a VM, not starting compositor\n"
|
|
fi
|
|
printf " [INFO] Starting polybar\n"
|
|
$HOME/.config/polybar/start.sh &
|
|
printf " [INFO] Starting dunst\n"
|
|
dunst&
|
|
printf " [INFO] Starting conky\n"
|
|
conky&
|
|
# Wallpaper management
|
|
printf "[INFO] Setting wallpaper\n"
|
|
if which xfdesktop > /dev/null 2>&1; then
|
|
printf " [INFO] Starting xfdesktop\n"
|
|
xfdesktop --disable-wm-check&
|
|
elif which feh > /dev/null 2>&1; then
|
|
printf " [INFO] Setting wallpaper with feh\n"
|
|
printf " [WARN] This solution may cause problems on multi-monitor systems\n"
|
|
feh --randomize --bg-fill ~/Pictures/Wallpapers/.active &
|
|
elif which xsetroot > /dev/null 2>&1; then
|
|
printf " [INFO] Setting root window color\n"
|
|
xsetroot -solid "#282828"
|
|
else
|
|
printf " [WARN] Could not find any wallpaper manager\n"
|
|
fi
|
|
printf "[INFO] Finished initialization\n"
|
|
|