My Arch Linux dotfiles for a clean, lightweight Hyprland desktop. Managed with GNU Stow and optimized for a laptop + external monitor workflow.
- Hyprland-based Wayland desktop
- GNU Stow-managed configuration
- Modular package layout
- Laptop + external monitor support
- Waybar status bar
- Rofi application launcher
- Modern terminal workflow
- Neovim development environment
- MPD-based music setup
- Consistent Tokyo Night theme across Ghostty and Neovim
Core
- hyprland – Wayland compositor
- GNU Stow – Symlink manager for dotfiles
- hyprmoncfg – Hyprland monitor layout editor with profile management and hotplug support
UI / Desktop
Editor
CLI Tools
- yazi – terminal file manager
- atac – terminal API client (Postman-like)
- bat – cat clone with syntax highlighting
- btop – system resource monitor
- cava – audio visualizer
- delta – syntax-highlighting pager for Git
- diffnav – Git diff pager built on delta with file tree navigation
- eza – modern replacement for
ls - fzf – command-line fuzzy finder
- fzf-git – shell key bindings for Git objects powered by fzf
- fastfetch – system information tool
- lazygit – terminal UI for Git
Desktop Utilities
Warning
Back up your existing configs before installing.
git clone --recurse-submodules --depth=1 https://github.com/houssamouhra/dotfiles.git ~/dotfiles
cd ~/dotfiles
# verify submodules
git submodule statusNote
Run this only when you want to update a submodule to its latest remote commit.
git submodule update --remoteArch Linux:
sudo pacman -S stow(Use your distro’s package manager if not on Arch.)
Install configs selectively, Stow creates symlinks into $HOME.
stow hypr nvim zshenv zsh ...Some configs require a reload or restart
hyprctl reload
source ~/.config/zsh/.zshrcNote
- Each directory represents a package managed by Stow
- Files are symlinked into
$HOMEfollowing the XDG layout (~/.config/...) - To remove a package:
stow -D <package-name>
![]() |
![]() |
![]() |
![]() |
For Arch Linux, you can install most required packages using the provided script:
Note
The installer is optional. You can install the dependencies manually using your preferred package manager. It also includes a few packages that are part of my personal workflow, so you may not want to install everything.
curl -sL https://raw.githubusercontent.com/houssamouhra/dotfiles/refs/heads/master/packages.sh | shOr, run the script manually:
cd dotfiles
./packages.sh


