164 lines
3.3 KiB
Bash
Executable File
164 lines
3.3 KiB
Bash
Executable File
#!/bin/sh
|
|
export SCHEME="$(xrescat basilisk.theme)"
|
|
export BAS_ROOT="$(dirname "$(realpath "$0")")/../"
|
|
restart_panel() {
|
|
pkill waybar
|
|
shchemes inject "${BAS_ROOT}/waybar/style.css"
|
|
waybar \
|
|
-c "${BAS_ROOT}/waybar/config.jsonc" \
|
|
-s "${BAS_ROOT}/waybar/style.css" & disown
|
|
|
|
}
|
|
notifs() {
|
|
rofication-gui
|
|
|
|
}
|
|
power-off-monitors() {
|
|
niri msg action power-off-monitors
|
|
|
|
}
|
|
lock() {
|
|
img="/tmp/basilisk-lock.png"
|
|
niri msg action screenshot-screen -p false -d true --path "/tmp/basilisk-lock-raw.png"
|
|
inotifywait -q -e close_write /tmp/basilisk-lock-raw.png | head -n1
|
|
magick "/tmp/basilisk-lock-raw.png" \
|
|
-set colorspace Gray \
|
|
"$img"
|
|
swaylock -i "$img" & disown
|
|
|
|
}
|
|
suspend() {
|
|
systemctl suspend && lock
|
|
|
|
}
|
|
logout() {
|
|
loginctl terminate-session ${XDG_SESSION_ID-}
|
|
|
|
}
|
|
shutdown() {
|
|
systemctl poweroff
|
|
|
|
}
|
|
reboot() {
|
|
systemctl reboot
|
|
|
|
}
|
|
reload_compositor() {
|
|
shchemes inject "${BAS_ROOT}/niri/config.kdl"
|
|
|
|
}
|
|
reload_shell() {
|
|
"${BAS_ROOT}/genctl"
|
|
|
|
}
|
|
timeout_daemon() {
|
|
pkill swayidle
|
|
swayidle -w \
|
|
timeout 300 'bas lock' \
|
|
timeout 360 'bas power-off-monitors' \
|
|
before-sleep 'bas power-off-monitors && bas lock' & disown
|
|
|
|
}
|
|
notif_daemon() {
|
|
pkill -f rofication-daemon
|
|
rofication-daemon & disown
|
|
|
|
}
|
|
wallpaper() {
|
|
pkill swaybg
|
|
swaybg -i "$(xrescat basilisk.wallpaper)"
|
|
|
|
}
|
|
theme_apps() {
|
|
shchemes inject "$HOME/.config/qutebrowser/config.py"
|
|
shchemes create_theme css > "$HOME/.config/base16.css"
|
|
shchemes create_theme css > "$HOME/.config/qutebrowser/base16.css"
|
|
pkill -HUP qutebrowser
|
|
shchemes create_theme rofi > "$HOME/.config/rofi/theme.rasi"
|
|
|
|
|
|
}
|
|
load() {
|
|
reload_shell
|
|
"$0" reload_compositor
|
|
"$0" restart_panel
|
|
"$0" notif_daemon
|
|
"$0" timeout_daemon
|
|
"$0" wallpaper
|
|
"$0" theme_apps
|
|
|
|
}
|
|
rofi_report() {
|
|
[ -n "$BASILISK_ROFI_REPORT_STATE" ] && printf %s\n >> "$BASILISK_ROFI_REPORT_STATE"
|
|
rofi -dmenu -format i -matching prefix -auto-select -markup -theme-str '
|
|
element { font: "Noto Mono 11"; }
|
|
' $BASILISK_ROFI_ARGS
|
|
[ -n "$BASILISK_ROFI_REPORT_STATE" ] && printf %s\n >> "$BASILISK_ROFI_REPORT_STATE"
|
|
}
|
|
if [ -z "$1" ]; then
|
|
case "$(printf %s\\n ' rb. Restart Panel
|
|
n. Notifications
|
|
pm. Power Off Monitors
|
|
l. Lock
|
|
ps. Suspend
|
|
pe. Log Out
|
|
pdy. Shutdown
|
|
pry. Reboot
|
|
rc. Reload Compositor
|
|
rs. Reload Shell
|
|
rdt. Reload Timeout Daemon
|
|
rdn. Reload Notification Daemon
|
|
rw. Reload Wallpaper
|
|
rat. Reload App Themes
|
|
rr. Reload All'| rofi_report)" in
|
|
0) restart_panel ;;
|
|
1) notifs ;;
|
|
2) power-off-monitors ;;
|
|
3) lock ;;
|
|
4) suspend ;;
|
|
5) logout ;;
|
|
6) shutdown ;;
|
|
7) reboot ;;
|
|
8) reload_compositor ;;
|
|
9) reload_shell ;;
|
|
10) timeout_daemon ;;
|
|
11) notif_daemon ;;
|
|
12) wallpaper ;;
|
|
13) theme_apps ;;
|
|
14) load ;;
|
|
esac
|
|
else
|
|
case "$1" in
|
|
"restart_panel") restart_panel ;;
|
|
"notifs") notifs ;;
|
|
"power-off-monitors") power-off-monitors ;;
|
|
"lock") lock ;;
|
|
"suspend") suspend ;;
|
|
"logout") logout ;;
|
|
"shutdown") shutdown ;;
|
|
"reboot") reboot ;;
|
|
"reload_compositor") reload_compositor ;;
|
|
"reload_shell") reload_shell ;;
|
|
"timeout_daemon") timeout_daemon ;;
|
|
"notif_daemon") notif_daemon ;;
|
|
"wallpaper") wallpaper ;;
|
|
"theme_apps") theme_apps ;;
|
|
"load") load ;;
|
|
"rb") restart_panel ;;
|
|
"n") notifs ;;
|
|
"pm") power-off-monitors ;;
|
|
"l") lock ;;
|
|
"ps") suspend ;;
|
|
"pe") logout ;;
|
|
"pdy") shutdown ;;
|
|
"pry") reboot ;;
|
|
"rc") reload_compositor ;;
|
|
"rs") reload_shell ;;
|
|
"rdt") timeout_daemon ;;
|
|
"rdn") notif_daemon ;;
|
|
"rw") wallpaper ;;
|
|
"rat") theme_apps ;;
|
|
"rr") load ;;
|
|
esac
|
|
fi
|