Files
blacklayer/call-blacklayer.sh
2026-01-28 14:11:41 +03:00

105 lines
2.6 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# -------------------------
# Base paths (EN BAŞTA)
# -------------------------
BASE_DIR="$HOME/.config/blacklayer"
CONF_FILE="$BASE_DIR/blacklayer.conf"
[ -f "$CONF_FILE" ] && source "$CONF_FILE"
PID_FILE="$BASE_DIR/blacklayer_worker.pid"
STATE_DIR="$BASE_DIR/blacklayer_state"
COUNT_FILE="$BASE_DIR/blacklayer_count"
WORKER="$BASE_DIR/blacklayer-worker.sh"
BLACKLAYER_BIN="$BASE_DIR/blacklayer"
NEED_HYPRIDLE=false
if [ "$run_lock" = "true" ] || [ "$run_sleep" = "true" ]; then
NEED_HYPRIDLE=true
else
notify-send "Hypridle" "hypridle is disabled via config"
echo "[hypridle] disabled via config"
fi
HYPRIDLE_RUNNING=false
if systemctl --user --quiet is-active hypridle.service; then
HYPRIDLE_RUNNING=true
fi
case "$NEED_HYPRIDLE:$HYPRIDLE_RUNNING" in
true:false)
# Gerekli ama çalışmıyor → BAŞLAT
notify-send "Hypridle" "hypridle is enabled"
systemctl --user start hypridle.service
;;
true:true)
# Gerekli fakat çalışıyor → KAPAT
notify-send "Hypridle" "hypridle is disabled"
systemctl --user stop hypridle.service
;;
false:true)
# Gerekli değil fakat çalışıyor → KAPAT
#If you try to start hypridle.service and its closed by own this >
notify-send "Hypridle" "hypridle is disabled"
systemctl --user stop hypridle.service
;;
*)
;;
esac
# eğer blacklayer kapalıysa çık
if [ "$run_blacklayer" != "true" ]; then
notify-send "Blacklayer" "blacklayer is disabled via config"
echo "[blacklayer] disabled via config"
kill "$(cat "$PID_FILE")" 2>/dev/null
rm -f "$PID_FILE"
# Tüm blacklayer processlerini kapat
pkill -f "$BLACKLAYER_BIN" 2>/dev/null
# State & count temizliği
rm -rf "$STATE_DIR"
rm -f "$COUNT_FILE"
exit 0
fi
# Dizini garanti altına al
mkdir -p "$STATE_DIR"
# -------------------------
# Worker çalışıyorsa → KAPAT
# -------------------------
if [ -f "$PID_FILE" ] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
notify-send "Blacklayer" "blacklayer is stopping"
echo "[blacklayer] stopping..."
# Worker'ı kapat
kill "$(cat "$PID_FILE")" 2>/dev/null
rm -f "$PID_FILE"
# Tüm blacklayer processlerini kapat
pkill -f "$BLACKLAYER_BIN" 2>/dev/null
# State & count temizliği
rm -rf "$STATE_DIR"
rm -f "$COUNT_FILE"
exit 0
fi
# -------------------------
# Çalışmıyorsa → BAŞLAT
# -------------------------
notify-send "Blacklayer" "blacklayer is starting"
echo "[blacklayer] starting..."
nohup bash "$WORKER" >/dev/null 2>&1 &
echo $! > "$PID_FILE"