# blacklayer A lightweight, per-monitor screen saver for Hyprland that automatically dims inactive displays and instantly restores them on focus. # ✅ Works On wlroots-based Wayland compositors (Hyprland, Sway, River, Wayfire, Hikari, Labwc(wlroots based) ) # ⚠️ PARTIALLY / LIMITED GNOME (Wayland), KDE Plasma (Wayland) !Not tested! ## [blacklayer.conf] - Stores Blacklayer configuration and resource settings - Blacklayer’a ait ayarların ve kaynakların tutulduğu dosyadır ## [call-blacklayer.sh] - Toggles Blacklayer by starting or stopping blacklayer-worker - Çağrıldığında blacklayer-worker’ı başlatır veya tüm işlemleri sonlandırır (toggle) ## [blacklayer-worker.sh] - Counts idle time and activates the screensaver while hiding other UI elements - Zamanı sayarak ekran koruyucuyu açar ve Waybar gibi diğer arayüzleri gizler ## [blacklayer] - Displays a fullscreen color, image, or animated GIF on the screen - Ekranda tercihe göre sadece renk, resim ya da GIF oynatır ## [event-driven.sh] - Listens for input events and stops Blacklayer when user activity is detected - Blacklayer aktifken çalışır ve mouse/etkileşim algılandığında ekran koruyucuyu kapatır ## [generate-waybar-configs.sh] - Generates one Waybar config per monitor from a single base config - Tek bir config dosyasından her monitör için ayrı Waybar config’i üretir ## [start-waybars.sh] - Starts all Waybar instances simultaneously - Tüm Waybar’ları aynı anda çalıştırmak için kullanılır # Blacklayer configration files (Setup Section) Required packets Arch ``` sudo pacman -S gtk3 gdk-pixbuf2 gtk-layer-shell jq ``` Debian / Ubuntu ``` sudo apt install \ libgtk-3-0 \ libgdk-pixbuf-2.0-0 \ libgtk-layer-shell0 \ jq ``` Fedora ``` sudo dnf install \ gtk3 \ gdk-pixbuf2 \ gtk-layer-shell \ jq ``` ``` mkdir -p ~/.config/blacklayer cp blacklayer event-driven.sh blacklayer.conf blacklayer-worker.sh call-blacklayer.sh start-waybars.sh generate-waybar-configs.sh ~/.config/blacklayer/ sudo chown -R bob:bob ~/.config/blacklayer/ chmod 700 ~/.config/blacklayer chmod +x ~/.config/blacklayer/*.sh 2>/dev/null || true chmod 600 ~/.config/blacklayer/*.conf 2>/dev/null || true [ -f ~/.config/blacklayer/blacklayer ] && chmod +x ~/.config/blacklayer/blacklayer ``` # If you want to disappear waybar when blacklayer is active follow these steps: sudo chown -R "$USER:$USER" ~/.config/waybar chmod 700 ~/.config/waybar cd ~/.config/blacklayer/ ``` ./generate-waybar-configs.sh ``` Change these codes in your hyprland.conf document ❌ exec-once = waybar & ✅ exec-once = ~/.config/blacklayer/start-waybars.sh Run/Stop ``` ~/.config/blacklayer/call-blacklayer.sh ``` # If you want to compile your special blacklayer.c document: Arch ``` sudo pacman -S gcc pkgconf gtk3 gdk-pixbuf2 gtk-layer-shell jq ``` Debian / Ubuntu ``` sudo apt install \ build-essential \ pkg-config \ libgtk-3-dev \ libgdk-pixbuf-2.0-dev \ libgtk-layer-shell-dev \ jq ``` Fedora ``` sudo dnf install \ gcc \ pkg-config \ gtk3-devel \ gdk-pixbuf2-devel \ gtk-layer-shell-devel \ jq ``` Compile: ``` gcc -o ~/.config/blacklayer/blacklayer \ ~/blacklayer/blacklayer.c \ $(pkg-config --cflags --libs gtk+-3.0 gdk-pixbuf-2.0) \ -lgtk-layer-shell ``` ## Roadmap - [x] Changeable background(png,jpg,gif) using by .conf - [ ] Run logout codes when detect no movement # Tips To verify whether the blacklayer process is running, use: ps aux | grep call-blacklayer.sh Note: The `grep` command itself may appear in the output. # Fast Installation sudo pacman -Syu git git clone https://github.com/furk4ngg/blacklayer.git cd blacklayer chmod +x install.sh ./install.sh