![]() |
![]() |
|---|---|
![]() |
![]() |
Overview:
- HakuSpace is a dotfiles project for Arch Linux, supporting Hyprland, Niri, and MangoWM.
- The main user interaction layer is built around Rofi, Waybar, and SwayNC, while most core behavior is powered by custom scripts in
hakuspace/common/local/bin. - It has grown into a DE-like experience, though it is still actively evolving.
- Designed to be easy to extend and customize for your own workflow.
- Smart Accent Colors: Automatically generates the accent color palette based on your current wallpaper.
- Flexible Waybar Layouts: Supports two standard layouts: Left and Top.
- Unique Cava Underbar: Dynamic audio visualizer waves seamlessly layered directly beneath the Waybar.
- Wallpaper Automation: Wallpapers change automatically every 5 minutes (customizable in the
random_wallpaper.shscript). - Unified Aesthetic: Handcrafted and polished configurations for Waybar, Rofi, Swaync and Thunar theme 100% beautiful for real. :)
See more information in: pkg-core | pkg-service | pkg-optional
| Component | Program |
|---|---|
| Terminal | Kitty |
| App Launcher | Rofi |
| Status Bar | Waybar |
| Shell | Zsh |
| File Manager | Thunar |
| Notifications & Control Center | SwayNC |
| Wallpaper | Awww |
| Idle Management | Hypridle |
| Screen Lock | Hyprlock |
| Login Menu | Ly |
| Editor | VS Code |
| Browser | Zen |
| Screen Recording | Wl-screenrec |
| Display Manager | Ly |
XDG Desktop Portal: GTK by default, but each WM will use its specific, recommended portal according to its official wiki (hyprland uses hyprland, niri uses gnome, and mangowm uses wlr).
Accent Color based on wallpaper using python-colorthief
Important
Prerequisites: You need a pre-installed Arch Linux or an Arch-based Linux Distro (A fresh install is highly recommended). If you already have an existing WM or DE configuration, it is best to only reference the configs in HakuSpace rather than running the installation script directly over your system.
If you prefer to experience the lastest changes (Lastest Git), you can clone the main branch:
cd ~
git clone https://github.com/hakuimaku/hakuspace.git
If you prefer the version I've tested, clone the stable release version v2.1.4 (lastest):
cd ~
git clone --depth 1 --branch v2.1.4 https://github.com/hakuimaku/hakuspace.git
Switch to the hakuspace directory:
cd hakuspacechmod +x install.sh
./install.shAfter running the installation script, restart your computer and log in to either Hyprland, Niri or Mango to experience the new setup.
- Change the GTK theme:
- Go to
GTK Settingsin Rofi App Menu. - Change the theme, icons, and mouse cursor for a better aesthetic.
- Install additional packages:
| waybar-git | waybar-cava |
|---|---|
waybar-git is a lastest git version of Waybar, which is supporting mango/workspaces module if you're using MangoWM. And fix hyprland/workspaces switching if you're using Hyprland. |
waybar-cava is a plugin for Waybar that provides a visualizer for audio output. My waybar top needs this to work properly (cava module). |
- Allow Local Root User to Access X/Xwayland Display
xhost +si:localuser:rootGrants the local root user permission to connect to and launch graphical (GUI) applications (like GParted) within the current user's active X server or Xwayland session.
- Get the lastest version
- Git pull for the lastest git.
cd ~/hakuspace
git pull origin main- Git fetch for the lastest stable release.
cd ~/hakuspace
git fetch --tags
LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
git checkout $LATEST_TAG- Update
- Run
update.shscript in hakuspace folder.
cd ~/hakuspace
chmod +x update.sh
./update.sh(WM: The Window Manager you are currently using, e.g., hyprland, niri, mango).
My dotfiles are very clean. You just need to check the config folders that were copied from common and specific WM in ~/hakuspace, then delete them from ~/.config (During installation, the install.sh script automatically created a backup of your existing configuration files so you can backup your old config).
- Remove all scripts located in
~/.local/bin. - Delete the auto-generated files in
~/.local/state/haku_theme. - If necessary, you can also remove the icons and themes inside
~/.iconsand~/.themes. - Review
pkg-core.txt,pkg-service.txt,pkg-optional.txt(in hakuspace/common) andpkg-WM.txt(in hakuspace/WM) to uninstall any unnecessary packages. - Finally, you can completely delete the
~/hakuspacedirectory.
You can immediately use the plugins that I have pre-configured. Simply install and enable them using the commands below (or tweak them as you like in plugin.lua).
- hyprexpo - Overview layout for your workspaces.
- hypr-dynamic-cursors - Smooth, physics-based dynamic cursor effects.
hyprpm update
hyprpm add https://github.com/virtcode/hypr-dynamic-cursors
hyprpm enable dynamic-cursors
hyprpm add https://github.com/sandwichfarm/hyprexpo
hyprpm enable hyprexpo
hyprpm reloadRead the Wiki for more info: https://wiki.hypr.land/Plugins/Using-Plugins/
- Uncomment the plugin loading line in
hyprland.luato load the plugin configuration on startup - Make sure to set the correct permissions for the plugin binary (if needed) using
hl.permissioninhyprland.lua - Uncomment
hl.exec_cmd("hyprpm reload -n")inautostart.luato automatically reload Hyprland when plugins are enabled/disabled - Customize the plugin configuration in
plugin.luaas needed
| Bind | Function |
|---|---|
| SUPER + Q | Open Kitty Terminal |
| SUPER + C | Kill Focus Window |
| SUPER + TAB | Open Menu |
| SUPER + P | Screenshot |
- Icons:
~/.icons - Themes:
~/.themes - All hakuspace scripts:
~/.local/bin - Fastfetch logo:
~/.config/fastfetch/ - Wallpapers:
~/Pictures/Wallpapers - Lively wallpapers:
~/Videos/Wallpapers - Lively wallpaper thumbnail: in folder Preview
~/Videos/Wallpapers/Previewand add image .jpg/.png (same name with video) to make the thumbnail appear in rofi select menu if you want to use lively wallpaper - Haku Theme for waybar, rofi,... (includes accent_color, font, font size):
~/.local/state/haku_theme - State files for random wallpaper, waybar current mode, and cava underbar:
/tmp/random_wallpaper_status,/tmp/waybar_current_mode,/tmp/cava_underbar_status
- Open your terminal on Workspace 1 and type
hakufor a little surprise. To close them, just append the '--clear' argument (e.g.,haku --clear). - Cava Underbar: To toggle a Cava visualizer right below Waybar, select Cava Underbar from the Haku Menu. It automatically hides during fullscreen and reappears when you exit. To disable it completely, just toggle it again in the Haku Menu.
Waybar bugs:
- Waybar clock: You should set your timezone and locale manually in waybar configuration to ensure the clock displays correctly.
- Waybar cava module: If you encounter issues with the Cava module in Waybar, ensure that you have installed
waybar-cavaand that it is properly configured in your Waybar config file. - If clicking on workspaces in Waybar on Hyprland doesn't switch them, please install
waybar-git. This bug has already been fixed by the author in the latest upstream version. - The MangoWM workspaces module for waybar is still under active development. if you want to use it, you'll need to install
waybar-git(though please note it still has a few bugs).
My dotfiles bugs:
- Currently, my custom
gtk.cssis only compatible with GTK 3 and only supports Dark Mode. If you are using Light Mode, you may encounter some issues with the appearance of GTK applications (Thunar). If you don't want to use my thunar theme, removegtk.cssin~/.config/gtk-3.0/. - Cava Underbar in Niri does not support the no-focus rule. As a result, you might accidentally move it from its original position or close it by mistake.
- Some features might still be missing since I only tested this setup for my personal use. If you need more than what's provided, you'll need to install and configure those parts manually.
- If you don't want to use certain apps (like
wl-screenrec,thunar,lyetc.), you can easily remove and replace them with alternatives. However, some apps are deeply integrated into my scripts or configs, so removing them may break functionality or cause those scripts/configs to stop working. - If you find that the script isn't working, run it directly in the terminal to see what the error is.
- If you encounter any issues during installation or configuration, just ask me in some video on my Tiktok or open an issue on GitHub. I will do my best to help you out.
- This is a personal dotfiles configuration. Feel free to fork and adapt it to your needs!
- tiktok / See more showcase: @hakuimaku2372
See hakuspace-archive for the assets used in this project: hakuspace-archive



