From a1fe1323bb9433bd3ee39c0c26bfc11092ad8d48 Mon Sep 17 00:00:00 2001
From: Salt <rehashedsalt@cock.li>
Date: Tue, 19 Jan 2021 01:32:29 -0600
Subject: [PATCH] Add Firestarter, my custom DE script suite

---
 .gitmodules                                |  3 ++
 firestarter/.config/firestarter/akonadi    |  3 ++
 firestarter/.config/firestarter/audiod     |  3 ++
 firestarter/.config/firestarter/bar        | 13 ++++++
 firestarter/.config/firestarter/cloud      |  3 ++
 firestarter/.config/firestarter/compositor | 11 +++++
 firestarter/.config/firestarter/conky      | 11 +++++
 firestarter/.config/firestarter/hkd        |  3 ++
 firestarter/.config/firestarter/im         |  7 ++++
 firestarter/.config/firestarter/mpd        |  5 +++
 firestarter/.config/firestarter/networkd   |  3 ++
 firestarter/.config/firestarter/notifyd    |  9 +++++
 firestarter/.config/firestarter/polkitd    | 37 +++++++++++++++++
 firestarter/.config/firestarter/powerd     | 15 +++++++
 firestarter/.config/firestarter/redshift   |  5 +++
 firestarter/.config/firestarter/settingsd  | 13 ++++++
 firestarter/.config/firestarter/steam      |  3 ++
 firestarter/.config/firestarter/syncthing  |  5 +++
 firestarter/.config/firestarter/telegram   |  3 ++
 firestarter/.config/firestarter/wallet     |  3 ++
 firestarter/.config/firestarter/wallpaper  | 11 +++++
 firestarter/.config/firestarter/wm         |  7 ++++
 firestarter/.firestarter                   |  1 +
 firestarter/.xinitrc                       | 47 ++++++++++++++++++++++
 firestarter/.xsessionrc                    | 47 ++++++++++++++++++++++
 25 files changed, 271 insertions(+)
 create mode 100755 firestarter/.config/firestarter/akonadi
 create mode 100644 firestarter/.config/firestarter/audiod
 create mode 100755 firestarter/.config/firestarter/bar
 create mode 100755 firestarter/.config/firestarter/cloud
 create mode 100755 firestarter/.config/firestarter/compositor
 create mode 100644 firestarter/.config/firestarter/conky
 create mode 100755 firestarter/.config/firestarter/hkd
 create mode 100755 firestarter/.config/firestarter/im
 create mode 100755 firestarter/.config/firestarter/mpd
 create mode 100755 firestarter/.config/firestarter/networkd
 create mode 100755 firestarter/.config/firestarter/notifyd
 create mode 100755 firestarter/.config/firestarter/polkitd
 create mode 100755 firestarter/.config/firestarter/powerd
 create mode 100755 firestarter/.config/firestarter/redshift
 create mode 100644 firestarter/.config/firestarter/settingsd
 create mode 100755 firestarter/.config/firestarter/steam
 create mode 100755 firestarter/.config/firestarter/syncthing
 create mode 100755 firestarter/.config/firestarter/telegram
 create mode 100755 firestarter/.config/firestarter/wallet
 create mode 100755 firestarter/.config/firestarter/wallpaper
 create mode 100755 firestarter/.config/firestarter/wm
 create mode 160000 firestarter/.firestarter
 create mode 100755 firestarter/.xinitrc
 create mode 100755 firestarter/.xsessionrc

diff --git a/.gitmodules b/.gitmodules
index 485bcdf0..ccdfbd7e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -34,3 +34,6 @@
 [submodule "vim/.vim/bundle/vim-ansible-yaml"]
 	path = vim/.vim/bundle/vim-ansible-yaml
 	url = https://github.com/chase/vim-ansible-yaml
+[submodule "firestarter/.firestarter"]
+	path = firestarter/.firestarter
+	url = git@git.desu.ltd:salt/firestarter
diff --git a/firestarter/.config/firestarter/akonadi b/firestarter/.config/firestarter/akonadi
new file mode 100755
index 00000000..69d0fa2b
--- /dev/null
+++ b/firestarter/.config/firestarter/akonadi
@@ -0,0 +1,3 @@
+#.fsdefaults
+command -v akonadictl
+akonadictl start
diff --git a/firestarter/.config/firestarter/audiod b/firestarter/.config/firestarter/audiod
new file mode 100644
index 00000000..6331ef89
--- /dev/null
+++ b/firestarter/.config/firestarter/audiod
@@ -0,0 +1,3 @@
+#.fsdefaults
+command -v pulseaudio
+pulseaudio
diff --git a/firestarter/.config/firestarter/bar b/firestarter/.config/firestarter/bar
new file mode 100755
index 00000000..2cc379b2
--- /dev/null
+++ b/firestarter/.config/firestarter/bar
@@ -0,0 +1,13 @@
+#.fsdefaults
+command -v tint2
+tint2
+command -v polybar && [ -r "$HOME/.config/polybar/launch.sh" ]
+sleep 3 && "$HOME/.config/polybar/launch.sh"
+command -v lxpanel
+lxpanel
+command -v lxqt-panel
+lxqt-panel
+command -v mate-panel
+mate-panel
+command -v xfce4-panel
+xfce4-panel
diff --git a/firestarter/.config/firestarter/cloud b/firestarter/.config/firestarter/cloud
new file mode 100755
index 00000000..ef469b7d
--- /dev/null
+++ b/firestarter/.config/firestarter/cloud
@@ -0,0 +1,3 @@
+#.fsdefaults
+command -v nextcloud && [ -d "$HOME/.config/Nextcloud" ]
+nextcloud --background
diff --git a/firestarter/.config/firestarter/compositor b/firestarter/.config/firestarter/compositor
new file mode 100755
index 00000000..164496ab
--- /dev/null
+++ b/firestarter/.config/firestarter/compositor
@@ -0,0 +1,11 @@
+#.fsdefaults
+[ -z "$DISPLAY" ]
+:
+command -v unagi
+unagi
+command -v picom
+picom
+command -v compton
+compton
+command -v xcompmgr
+xcompmgr
diff --git a/firestarter/.config/firestarter/conky b/firestarter/.config/firestarter/conky
new file mode 100644
index 00000000..6aeaf9ee
--- /dev/null
+++ b/firestarter/.config/firestarter/conky
@@ -0,0 +1,11 @@
+#.fsdefaults
+[ -z "$DISPLAY" ]
+:
+# Note: the dumb sleep hack is because Conky crashes with window_type override if the WM hasn't loaded yet
+# This gives the WM ample time to load up
+[ "$THEME" == "light" ]
+:
+command -v conky && [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/conky/conky-clock.conf" ] && [[ "$HOSTNAME" == "lap"* ]]
+sleep 3 && conky -c "${XDG_CONFIG_HOME:-$HOME/.config}/conky/conky-clock.conf"
+command -v conky && [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/conky/conky.conf" ]
+sleep 3 && conky
diff --git a/firestarter/.config/firestarter/hkd b/firestarter/.config/firestarter/hkd
new file mode 100755
index 00000000..dc3a4609
--- /dev/null
+++ b/firestarter/.config/firestarter/hkd
@@ -0,0 +1,3 @@
+#.fsdefaults
+command -v sxhkd
+sxhkd
diff --git a/firestarter/.config/firestarter/im b/firestarter/.config/firestarter/im
new file mode 100755
index 00000000..0f74e73b
--- /dev/null
+++ b/firestarter/.config/firestarter/im
@@ -0,0 +1,7 @@
+#.fsdefaults
+[ -z "$DISPLAY" ]
+:
+command -v uim-toolbar-gtk3-systray
+uim-toolbar-gtk3-systray
+command -v ibus-daemon
+ibus-daemon -rx
diff --git a/firestarter/.config/firestarter/mpd b/firestarter/.config/firestarter/mpd
new file mode 100755
index 00000000..6a8cde71
--- /dev/null
+++ b/firestarter/.config/firestarter/mpd
@@ -0,0 +1,5 @@
+#.fsdefaults
+command -v mopidy
+mopidy
+command -v mpd
+mpd
diff --git a/firestarter/.config/firestarter/networkd b/firestarter/.config/firestarter/networkd
new file mode 100755
index 00000000..77933bac
--- /dev/null
+++ b/firestarter/.config/firestarter/networkd
@@ -0,0 +1,3 @@
+#.fsdefaults
+command -v nm-applet
+nm-applet
diff --git a/firestarter/.config/firestarter/notifyd b/firestarter/.config/firestarter/notifyd
new file mode 100755
index 00000000..4c52cdcf
--- /dev/null
+++ b/firestarter/.config/firestarter/notifyd
@@ -0,0 +1,9 @@
+#.fsdefaults
+[ -z "$DISPLAY" ]
+:
+command -v dunst && [ "$THEME" == "light" ]
+dunst -conf ~/.config/dunst/dunstrc-light
+command -v dunst
+dunst
+command -v lxqt-notificationd
+notificationd
diff --git a/firestarter/.config/firestarter/polkitd b/firestarter/.config/firestarter/polkitd
new file mode 100755
index 00000000..1df871d3
--- /dev/null
+++ b/firestarter/.config/firestarter/polkitd
@@ -0,0 +1,37 @@
+#.fsdefaults
+command -v lxqt-policykit-agent
+lxqt-policykit-agent
+command -v lxpolkit
+lxpolkit
+command -v mate-polkit
+mate-polkit
+command -v polkit-efl-authentication-agent-1
+polkit-efl-authentication-agent-1
+[ -x "/usr/lib/ts-polkitagent" ]
+/usr/lib/ts-polkitagent
+[ -x "/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1" ]
+/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
+[ -x "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" ]
+/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+# Debian locations
+# On generation time, your architecture is filled in here
+[ -x "/usr/lib/x86_64-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1" ]
+"/usr/lib/x86_64-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1"
+[ -x "/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1" ]
+"/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1"
+# Arch locations
+[ -x "/usr/lib/mate-polkit/polkit-mate-authentication-agent-1" ]
+/usr/lib/mate-polkit/polkit-mate-authentication-agent-1
+[ -x "/usr/lib/polkit-kde-authentication-agent-1" ]
+/usr/lib/polkit-kde-authentication-agent-1
+# Fedora locations
+[ -x "/usr/libexec/xfce-polkit" ]
+/usr/libexec/xfce-polkit
+[ -x "/usr/libexec/lxqt-policykit-agent" ]
+/usr/libexec/lxqt-policykit-agent
+[ -x "/usr/libexec/polkit-mate-authentication-agent-1" ]
+/usr/libexec/polkit-mate-authentication-agent-1
+[ -x "/usr/libexec/kf5/polkit-kde-authentication-agent-1" ]
+/usr/libexec/kf5/polkit-kde-authentication-agent-1
+[ -x "/usr/libexec/polkit-gnome-authentication-agent-1" ]
+/usr/libexec/polkit-gnome-authentication-agent-1
diff --git a/firestarter/.config/firestarter/powerd b/firestarter/.config/firestarter/powerd
new file mode 100755
index 00000000..fc7e9505
--- /dev/null
+++ b/firestarter/.config/firestarter/powerd
@@ -0,0 +1,15 @@
+#.fsdefaults
+command -v batterymon
+batterymon
+command -v cbatticon
+cbatticon
+command -v lxqt-powermangement
+lxqt-powermanagement
+command -v xfce4-power-manager
+xfce4-power-manager
+command -v mate-power-manager
+mate-power-manager
+[ -x "/usr/lib/x86_64-linux-gnu/libexec/org_kde_powerdevil" ]
+/usr/lib/x86_64-linux-gnu/libexec/org_kde_powerdevil
+command -v gnome-power-manager
+gnome-power-manager
diff --git a/firestarter/.config/firestarter/redshift b/firestarter/.config/firestarter/redshift
new file mode 100755
index 00000000..3914a896
--- /dev/null
+++ b/firestarter/.config/firestarter/redshift
@@ -0,0 +1,5 @@
+#.fsdefaults
+command -v redshift-gtk
+redshift-gtk
+command -v redshift
+redshift
diff --git a/firestarter/.config/firestarter/settingsd b/firestarter/.config/firestarter/settingsd
new file mode 100644
index 00000000..9c5b5228
--- /dev/null
+++ b/firestarter/.config/firestarter/settingsd
@@ -0,0 +1,13 @@
+#.fsdefaults
+command -v xsettingsd
+xsettingsd
+command -v xsettings-kde
+xsettingskde
+command -v lxsettings-daemon
+lxsettings-daemon
+command -v xfsettingsd
+xfsettingsd
+command -v mate-settings-daemon
+mate-settings-daemon
+command -v gnome-settings-daemon
+gnome-settings-daemon
diff --git a/firestarter/.config/firestarter/steam b/firestarter/.config/firestarter/steam
new file mode 100755
index 00000000..2946b4a0
--- /dev/null
+++ b/firestarter/.config/firestarter/steam
@@ -0,0 +1,3 @@
+#.fsdefaults
+command -v steam && [ -e ~/.steam ]
+steam -nochatui -nofriendsui -silent
diff --git a/firestarter/.config/firestarter/syncthing b/firestarter/.config/firestarter/syncthing
new file mode 100755
index 00000000..e39132b6
--- /dev/null
+++ b/firestarter/.config/firestarter/syncthing
@@ -0,0 +1,5 @@
+#.fsdefaults
+command -v syncthing-gtk && [ -d "$HOME/.config/syncthing" ]
+syncthing-gtk
+command -v syncthing && [ -d "$HOME/.config/syncthing" ]
+syncthing
diff --git a/firestarter/.config/firestarter/telegram b/firestarter/.config/firestarter/telegram
new file mode 100755
index 00000000..3e487b9c
--- /dev/null
+++ b/firestarter/.config/firestarter/telegram
@@ -0,0 +1,3 @@
+#.fsdefaults
+command -v telegram-desktop && [ -d "$HOME/.local/share/TelegramDesktop" ]
+telegram-desktop -startintray
diff --git a/firestarter/.config/firestarter/wallet b/firestarter/.config/firestarter/wallet
new file mode 100755
index 00000000..28c1e179
--- /dev/null
+++ b/firestarter/.config/firestarter/wallet
@@ -0,0 +1,3 @@
+#.fsdefaults
+command -v kwalletd5
+kwalletd5
diff --git a/firestarter/.config/firestarter/wallpaper b/firestarter/.config/firestarter/wallpaper
new file mode 100755
index 00000000..76089714
--- /dev/null
+++ b/firestarter/.config/firestarter/wallpaper
@@ -0,0 +1,11 @@
+#.fsdefaults
+[ -z "$DISPLAY" ]
+:
+command -v nitrogen && [ -r "$HOME/.config/nitrogen/bg-saved.cfg" ]
+nitrogen --restore
+command -v feh && [ -r "$HOME/.fehbg" ]
+~/.fehbg
+command -v hsetroot && [ -r ~/.config/firestarter/tile.png ] && [ "$(hostname)" == "dsk-cstm-0" ]
+hsetroot -tile "$HOME/.config/firestarter/tile.png"
+command -v hsetroot && [ -r ~/.config/firestarter/tile.png ] && [ -r ~/.config/firestarter/center.png ]
+hsetroot -tile "$HOME/.config/firestarter/tile.png" -center "$HOME/.config/firestarter/center.png"
diff --git a/firestarter/.config/firestarter/wm b/firestarter/.config/firestarter/wm
new file mode 100755
index 00000000..4fa2b3da
--- /dev/null
+++ b/firestarter/.config/firestarter/wm
@@ -0,0 +1,7 @@
+#.fsdefaults
+[ -z "$DISPLAY" ]
+:
+command -v ksmserver && ksmserver -h | grep -ie '-w' && command -v bspwm
+ksmserver -w bspwm
+command -v bspwm
+bspwm
diff --git a/firestarter/.firestarter b/firestarter/.firestarter
new file mode 160000
index 00000000..bcf9c80e
--- /dev/null
+++ b/firestarter/.firestarter
@@ -0,0 +1 @@
+Subproject commit bcf9c80efb34b1573bf9e8f68a46a31f074dbf80
diff --git a/firestarter/.xinitrc b/firestarter/.xinitrc
new file mode 100755
index 00000000..d0330153
--- /dev/null
+++ b/firestarter/.xinitrc
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# Straight up bail of we have a special file
+if [ -f "$HOME/.skipxinit" ]; then
+	return
+fi
+# Nest protection
+if [ -n "$FIRESTARTER" ]; then
+	echo "Firestarter is already running in this session"
+	exit 50
+fi
+# Find our terminal
+for term in mate-terminal lxterminal xfce4-terminal konsole urxvt xterm; do
+	if command -v "$term" > /dev/null 2>&1; then
+		export TERMINAL="$term"
+		break
+	fi
+done
+# Monitor setup
+case $(hostname) in
+	vm-*)
+		xrandr --output Virtual-1 --mode 1920x1080 --rate 60 --primary
+		;;
+	dsk-cstm-0*)
+		xrandr --output DisplayPort-1 --mode 2560x1440 --rate 144 --primary
+		xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --pos 2560x360
+		;;
+esac
+# Wallpaper generation because why not
+#if [ -x "$HOME/.wpgen/wpgen" ]; then
+#	resolutions=($(xrandr -q | grep '*' | awk '{print $1}'))
+#	for res in ${resolutions[@]}; do
+#		"$HOME/.wpgen/wpgen" "$res"
+#	done
+#fi
+# Session execution
+if [ -x "$HOME/.config/conky/gen.sh" ]; then
+	"$HOME/.config/conky/gen.sh"
+fi
+if [ -x "$HOME/.firestarter/firestarter" ]; then
+	export FS_DIEONWM=true
+	export STARTUP="$HOME/.firestarter/firestarter"
+fi
+# We'd rather let the system-wide Xsession handle this
+if ! [ -f "/etc/X11/Xsession.d/99x11-common_start" ]; then
+	exec $STARTUP
+fi
diff --git a/firestarter/.xsessionrc b/firestarter/.xsessionrc
new file mode 100755
index 00000000..d0330153
--- /dev/null
+++ b/firestarter/.xsessionrc
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# Straight up bail of we have a special file
+if [ -f "$HOME/.skipxinit" ]; then
+	return
+fi
+# Nest protection
+if [ -n "$FIRESTARTER" ]; then
+	echo "Firestarter is already running in this session"
+	exit 50
+fi
+# Find our terminal
+for term in mate-terminal lxterminal xfce4-terminal konsole urxvt xterm; do
+	if command -v "$term" > /dev/null 2>&1; then
+		export TERMINAL="$term"
+		break
+	fi
+done
+# Monitor setup
+case $(hostname) in
+	vm-*)
+		xrandr --output Virtual-1 --mode 1920x1080 --rate 60 --primary
+		;;
+	dsk-cstm-0*)
+		xrandr --output DisplayPort-1 --mode 2560x1440 --rate 144 --primary
+		xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --pos 2560x360
+		;;
+esac
+# Wallpaper generation because why not
+#if [ -x "$HOME/.wpgen/wpgen" ]; then
+#	resolutions=($(xrandr -q | grep '*' | awk '{print $1}'))
+#	for res in ${resolutions[@]}; do
+#		"$HOME/.wpgen/wpgen" "$res"
+#	done
+#fi
+# Session execution
+if [ -x "$HOME/.config/conky/gen.sh" ]; then
+	"$HOME/.config/conky/gen.sh"
+fi
+if [ -x "$HOME/.firestarter/firestarter" ]; then
+	export FS_DIEONWM=true
+	export STARTUP="$HOME/.firestarter/firestarter"
+fi
+# We'd rather let the system-wide Xsession handle this
+if ! [ -f "/etc/X11/Xsession.d/99x11-common_start" ]; then
+	exec $STARTUP
+fi