Skip to main content

Scripts

Helper scripts live in .local/bin and are installed to ~/.local/bin, which is on PATH. Most are wired to keybindings or the bar, and all of them can be run from a terminal.

Audio​

ScriptDescription
audio-switch.shCycle through available audio output devices, for a bind of your own
hyprsimple-clipboard-menu.shOpens the bar's clipboard history panel, behind SUPER + V
volume-notify.shShow the current PipeWire volume as a notification
record-audio.shRecord audio from the default input to ~/Music

Display, theme and wallpaper​

ScriptDescription
brightness-notify.shShow the current screen brightness as a notification
keyboard-brightness.shControl the keyboard backlight (up / down / cycle)
toggle-nightlight.shToggle a warm screen temperature via hyprsunset
theme-switcher.shSwitch theme via the visual picker, or apply one directly by name
theme-apply-templates.shGenerate themed app configs from a theme's colors.toml
wallpaper-switcher.shPick, add, delete or cycle a wallpaper within the current theme. next cycles, for a bind of your own
hyprsimple-theme-picker.shList one row per theme, with its wallpaper and colour swatches, for the bar's theme picker
hyprsimple-wallpaper-picker.shList one row per wallpaper in the current theme, newest first, for the bar's wallpaper picker
hyprsimple-thumbnails.shSwap the image in each of those rows for a small cached thumbnail, which is what the pickers show
live-wallpaper-toggle.shTurn live wallpaper on or off (cycling backgrounds or a static one), behind the switch in the wallpaper picker
monitor-mirror-toggle.shToggle between extending to and mirroring on an external monitor
virtual-mirror-toggle.shMirror a monitor into a window (via wl-mirror) for screen sharing

Screenshot and recording​

ScriptDescription
screenshot.shTake a screenshot. smart, behind Print, picks on a frozen screen and both saves and copies. The other modes capture one thing: region / window / monitor, or region-clipboard / window-clipboard / clipboard
screen-record.shStart or stop screen recording (region, window or output, with mic, internal, or no audio)
hyprsimple-record-menu.shOpens the bar's record panel, behind SUPER + R, which picks what to record and starts or stops it
screen-record-active.shReport whether a screen recording is running

Network​

ScriptDescription
hyprsimple-audio-autoswitch.shMove the sound to a bluetooth device when one connects, run as a user service
wifi.shList and connect to WiFi networks, asking for the password when one is needed
hyprsimple-network-setup.shMake NetworkManager run the network, which the bar's network panel needs. A machine on iwd is moved over with its saved networks, and moved back if the network does not return. One already on NetworkManager is left alone
wifi-powersave.shToggle WiFi power saving (on / off)
hotspot.shCreate a WiFi hotspot with internet sharing
setup-dns.shConfigure the DNS provider (Cloudflare / Google / DHCP)

System and power​

ScriptDescription
battery-monitor.shAt a low battery, warns, dims the screen and switches to power saver. On the charger, puts both back and says so
bluetooth-toggle.shToggle Bluetooth adapter power
toggle_cpu_mode.shSwitch CPU governor between performance and powersave
hyprsimple-hw-intel-laptop.shExit 0 on an Intel laptop new enough for thermald (used as a condition)
toggle-idle.shToggle hypridle (lock on idle) on or off
hypr-logout.shClose all windows and stop the Hyprland session

Input and notifications​

ScriptDescription
capslock-notify.shNotify on Caps Lock state changes
notification-dismiss.shDismiss every notification on screen

Search and keybindings​

ScriptDescription
search.shFuzzy file finder (ripgrep + fzf) that opens the result in nvim
search_by_keyword.shFuzzy content search (ripgrep + fzf) that opens the match in nvim
show-keybindings.shOpen the bar's keybindings panel, a searchable list of every Hyprland keybinding. --list prints them instead

hyprsimple management​

ScriptDescription
hyprsimple-update.shPull hyprsimple, refresh scripts and packages, run pending migrations. --stable or <branch> switches channel
hyprsimple-pluginInstall, enable, disable, update, list or remove trusted external plugins
hyprsimple-migrate.shRun any migrations that have not run on this machine yet
hyprsimple-refresh-config.shReset one ~/.config file to the shipped default, with a backup and a diff
hyprsimple-restart-bar.shStart or restart the bar. --if-running restarts a running bar and does nothing otherwise, --toggle hides or shows a running bar and starts a stopped one
hyprsimple-debug.shCollect system diagnostics into one file to view, save, or upload
hyprsimple-session.shAdd a "Hyprsimple" entry to the login screen, or remove it. It starts the same config as the stock Hyprland entry
hyprsimple-uninstall.shRemove hyprsimple from your account and restore your backups. Packages and system changes stay
hyprsimple-dev-add-migration.shCreate a new migration file (for contributors)

External plugins​

See the plugin author guide for the manifest and QML contract.

Run hyprsimple-plugin install OWNER/REPO to install the newest release of a trusted plugin, or add --branch main to lock it to a branch. hyprsimple-plugin update ID --stable returns it to releases. Use hyprsimple-plugin list, disable ID, enable ID, update ID or remove ID to manage it. Plugins run code from their repository, so review it before installing.

Plugin code lives in ~/.local/share/hyprsimple-plugins, outside the core checkout. Enablement, placement and plugin settings live in ~/.config/hyprsimple/plugins.json. Developers can override the code directory with HYPRSIMPLE_PLUGIN_ROOT. Plugins bind no keys. Each one names a panel alias, and you bind a key to it in ~/.config/hypr/bindings/applications.lua. The default Muslimtify plugin's alias is prayer:

hl.bind("SUPER + P", hl.dsp.exec_cmd(vars.barPanel .. "prayer"), { description = "Prayer Times (panel)" })

If the plugin is installed but disabled, run hyprsimple-plugin enable muslimtify. If the download failed, retry hyprsimple-plugin install https://github.com/muslimtify-org/muslimtify-hyprsimple.git. For an enabled plugin whose daemon is stopped, run muslimtify daemon install first. Removing the plugin keeps application settings and installed packages.

The delivery suites need a checkout of the published plugin at 2f2b9028b3833e6cb4dc25b5b138fc18ef74bfea. Set MUSLIMTIFY_PLUGIN_FIXTURE to that checkout, then run bash test/plugin-migration-test.sh and bash test/plugin-default-install-test.sh. The local default is /tmp/muslimtify-hyprsimple. CI fetches the pinned fixture into RUNNER_TEMP before running either suite. The suites map the public URL to that local origin and perform no network, package or service operations.

Shell init and internal helpers​

These are sourced by other files rather than run directly.

ScriptDescription
bashrc.sh / zsh.sh / fish.fishPer-shell init (zoxide, fzf, starship, aliases) sourced from your shell's rc file
terminal.shDetect your login shell and wire the matching init script into its rc file
hypr-helpers.shShared hyprpaper helper functions used by the wallpaper scripts
hyprsimple-aur-helper.shReports which AUR helper is installed, so the installer, the updater and the plugin manager all use the one you already have
hyprsimple-require.shLoads the helpers a script needs, and stops it rather than letting it run with them missing
hyprsimple-theme-deliver.shPuts a theme's generated files where each program reads them, shared by the theme switcher and the updater
hyprsimple-hw-battery.shExits 0 when this machine has a battery, which is how hyprsimple decides it is a laptop
hyprsimple-hw-nvidia.shExits 0 when this machine has an NVIDIA GPU