bitzdots
gitlabLean Hyprland dotfiles with automatic matugen theming. Low-end optimized, full-stack auto-coloring, 26 Jinja2 templates. Rofi-powered menus, waybar modules, screenshot/recording, event-driven cache daemon.
clone
https://gitlab.com/bitzzdev/bitzdots.gitarchlinuxdotfileshyprlandhyprland-dotfileslow-endminimalricingwallustwaybarwayland
# ScriptsReference for all scripts in bitzdots.## Waybar Scripts (`waybar/scripts/`)17 scripts powering the waybar custom modules.| Script | Purpose | Used By ||--------|---------|---------|| `brightness.sh` | Outputs current brightness % with 4-tier icon as JSON | `custom/brightness` || `launch.sh` | Ensures waybar + swaync are running | Autostart || `media.sh` | playerctl metadata follower (artist/title/album/status) | `custom/media` || `notification.sh` | Bell icon with DnD/notification count | `custom/notification` || `power-profile.sh` | Queries UPower via D-Bus for active profile icon | `custom/power-profiles` || `power-profile-switch.sh` | Cycles to next available power profile via D-Bus | Click handler || `system-power.sh` | Rofi power menu (Lock/Logout/Sleep/Reboot/Shutdown) | `custom/power` || `tui-audio.sh` | Opens pulsemixer in floating kitty | Audio click (waybar) || `tui-bluetooth.sh` | Opens bluetui in floating kitty | Bluetooth click (waybar) || `tui-wifi.sh` | Waits for NetworkManager, then opens impala in floating kitty | Network click (waybar) || `tui-cpu.sh` | Opens btop in floating kitty | CPU click (waybar) || `weather.sh` | Fetches weather from wttr.in (30-min cache) | Optional module || `workspaces.sh` | Batch workspace display (5 at a time) | `custom/workspaces` || `workspace-click.sh` | Determines clicked workspace from pixel offset | Workspace click || `workspace-next.sh` | Focus next workspace | Scroll up || `workspace-prev.sh` | Focus previous workspace | Scroll down |## Utility Scripts (`scripts/`)10 core scripts for theming and recording.### `reload-theme.sh`Applies the generated theme to all running components.```bash~/.config/matugen/reload-theme.sh```**What it does:**1. Reloads swaync CSS (`swaync-client --reload-css`)2. Updates Hyprland border colors from `colors.lua`3. Fixes qt6ct config path if needed4. Restarts waybar for full refresh### `wallpaper-select.sh`Rofi-based wallpaper picker with grid thumbnails.```bash~/.config/matugen/wallpaper-select.sh # Open picker UI~/.config/matugen/wallpaper-select.sh /path/to/image.jpg # Direct set```**Features:**- Grid display of all wallpapers with ImageMagick thumbnails- Separate sections for static wallpapers and live wallpapers- Cached theme switching — uses pre-generated palettes when available- Backup/restore safety on all theme generations- Restarts waybar after theme change### `cache-wallpapers.sh`One-shot pre-cache all wallpapers.```bash~/.config/matugen/cache-wallpapers.sh```Generates matugen palettes and ImageMagick thumbnails for every wallpaper in the directories.### `matugen-cache-daemon.sh`Event-driven background cache daemon.```bash~/.config/matugen/matugen-cache-daemon.sh```**Features:**- Watches wallpaper directories with `inotifywait`- Debounces rapid file changes- Pre-generates palettes in background- 24-hour failure cooldown for problematic images- File locking for single-instance safety- Runs at idle priority (Nice=19)### `record-fullscreen.sh`Toggle fullscreen screen recording.```bash~/.config/matugen/record-fullscreen.sh```- Uses `wf-recorder` with audio (pulse audio)- Toggles: first call starts, second call stops- Saves to `~/Videos/Recordings/Fullscreen/` with timestamped filename- Shows start/stop notifications### `record-region.sh`Toggle region screen recording.```bash~/.config/matugen/record-region.sh```- Uses `slurp` for region selection + `wf-recorder` with audio- Same toggle behavior as fullscreen- Saves to `~/Videos/Recordings/Region/`### `recording-indicator.sh`Blinking indicator for waybar recording module.- Called by waybar polling (10s interval)- Outputs empty JSON when not recording- Alternates between empty and icon JSON when recording (creates blink effect)### `hyprlock-setup.sh`Generates a basic `hyprlock.conf` from current wallpaper.```bash~/.config/matugen/hyprlock-setup.sh```- Uses current wallpaper as lock screen background- Sets JetBrainsMono font for the clock/date### `wifi-fix.sh`Boot-time WiFi stabilizer. Called from `hypr/autostart.lua` a few seconds after login.```bash~/.config/matugen/wifi-fix.sh```**What it does:**1. Waits for NetworkManager to appear on D-Bus (up to 30s)2. Unblocks the WiFi radio (`rfkill unblock wifi`, `nmcli radio wifi on`)3. Waits for an active connection (up to 45s)4. If still offline, reactivates every saved connection5. Retries with a radio toggle (off/on) if neededFixes the boot-time "strikethrough WiFi" waybar icon and impala crashes caused by NetworkManager not being ready.### `font-switch.sh`System font switcher between **Paper Mono** and **JetBrainsMono Nerd Font**.```bashfont-switch.sh [paper | jetbrains]font-switch.sh toggle # or dev font toggle```**What it does:**1. Checks if Paper Mono is installed; if not, downloads and installs it globally (`/usr/local/share/fonts/paper-mono/`).2. Updates `kitty.conf` font family and signals running Kitty instances (`SIGUSR1`) to reload live.3. Updates Waybar text font dynamically while preserving Nerd Font icons across the bar via Pango markup.4. Restarts Waybar smoothly to apply styling changes.## Rofi Scripts (`rofi/scripts/`)### `clipboard.sh`Clipboard history manager.```bash~/.config/rofi/scripts/clipboard.sh # copy mode~/.config/rofi/scripts/clipboard.sh --delete # delete mode```- Lists recent clipboard entries from cliphist- Default mode (`SUPER+V`): decodes and copies selected entry back to clipboard- Delete mode (`SUPER+SHIFT+V`): removes selected entry from clipboard history- Starts cliphist store daemon if not running- Keyboard navigable via rofi### `spotlight.sh`Spotlight-style search (`ALT+SPACE`). One rofi prompt that searches installedapplications, files, folders and the web — live suggestions as you type, eachwith its icon (app logo, folder icon, or browser logo). On-demand only: rofiexits when the menu closes, no background daemon.```bash~/.config/rofi/scripts/spotlight.sh```- Type to filter apps / folders / files under `$HOME` live- `Search the web` (always visible at the top) opens the default browser withthe typed query; pressing Enter with no matching row also does a web search- Apps launch via their `.desktop` entry; files/folders open in the defaultfile explorer (`$FILE_EXPLORER`)- Uses the same matugen-generated rofi template theme as the launcher(`launcher.rasi`); defaults are read from `hypr/defaults.lua`(`BROWSER`, `FILE_EXPLORER`)### `system-power.sh`Power management menu.```bash~/.config/rofi/scripts/system-power.sh```Options:- **Lock** — `hyprlock`- **Logout** — `hyprctl dispatch exit`- **Sleep** — `systemctl suspend`- **Reboot** — `systemctl reboot`- **Shutdown** — `systemctl poweroff`- **Cancel** — Close menuUses themed SVG icons from rofi icons directory.