Modular Wayland dotfiles centered on Quickshell, with Hyprland and Niri support.
20260723_154437.mp4
- A Wayland bar with compositor-agnostic workspace, monitor, keyboard-layout, and active-window services for Hyprland and Niri.
- Freedesktop notifications, system tray, OSD, application launcher, Polkit agent, and WlSessionLock screen.
- Per-monitor wallpapers with animated transitions, plus the Niri overview wallpaper.
- Audio, privacy, power, brightness, networking, Bluetooth, weather, updates, recording, and input-overlay controls.
- MPRIS media controls with optional Cava visualization.
Deployment requires Git and GNU Stow. The shell requires Quickshell, either Hyprland or Niri, and the CaskaydiaCove Nerd Font Propo and JetBrainsMono Nerd Font Mono font families.
Desktop integrations use NetworkManager, PipeWire/WirePlumber, BlueZ and bluez-utils, UPower, power-profiles-daemon, Polkit, brightnessctl, wl-clipboard, libnotify, and xdg-terminal-exec.
Optional features are detected at runtime:
- Screen recording:
gpu-screen-recorderandslurp. - Input overlay:
showmethekey-cli. - Media visualization:
cava. - System information:
nvtop,lm_sensors, andedid-decode. - Arch updates:
checkupdatesfrompacman-contribandexpac. - Clipboard persistence:
wl-clip-persist --clipboard regular. hdrshot: Hyprland,flock,hyprshot,satty, andwl-copy.
Adjust package names for your distribution.
Warning
Back up any existing dotfiles that share these paths, and review Configuration before starting a compositor session.
Clone the repository and deploy the core configurations:
git clone https://github.com/anasgets111/dotfiles.git
cd dotfiles
stow -t "$HOME" home config xdg-desktop-portal quickshell hypr niri fish nvim kitty mpv binDeploy any additional terminal or shell configurations you use:
stow -t "$HOME" ghostty alacritty foot wezterm nushellChoose either a Hyprland or Niri session; both start Quickshell. QML changes reload automatically.
Remove a deployed package with:
stow -D -t "$HOME" <package>These are personal dotfiles, not generic compositor defaults. Review them before starting a session:
- Adapt the host-specific Hyprland monitor profiles in
monitors.lua, or the Niri outputs and workspace assignments inconfig.kdl. - Remove unwanted applications from the Hyprland and Niri startup lists.
- Set your wallpaper directory and weather location in
Settings.qmlbefore first launch. Runtime settings are persisted in$XDG_CONFIG_HOME/Obelisk/settings.json, or~/.config/Obelisk/settings.jsonby default.
| Path | Contents |
|---|---|
quickshell/ |
Obelisk Shell: QML components, services, panels, shaders, and themes. |
hypr/, niri/ |
Hyprland Lua configuration and Niri KDL configuration. |
home/, config/ |
Shell profile plus shared XDG, Starship, Fastfetch, and application flag configuration. |
fish/, nushell/, nvim/ |
Shell and editor configuration. |
kitty/, ghostty/, alacritty/, foot/, wezterm/ |
Terminal emulator configurations. |
mpv/ |
mpv configuration and scripts. |
bin/ |
Local utilities, including update, backup, screenshot, logging, and setup helpers. |
NixConfig/ |
Inactive NixOS flake with Wolverine (NVIDIA/Hyprland) and Mentalist (Intel/Niri) hosts. |
- Hyprlock, Swaylock, Hypridle, and Swayidle configurations are not included; Quickshell owns locking and idle handling.
Thanks to the Linux, Hyprland, Niri, and Quickshell communities, and to the following shells for inspiration: