Personal configuration files for CachyOS/Arch Linux with Hyprland and Niri window managers.
# Clone this repository
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Install all dependencies (Hyprland, Niri, tools, etc.)
./install.sh
# Symlink all configuration files
./setup.sh
# Reboot
sudo reboot- Hyprland - Dynamic tiling Wayland compositor
- Niri - Scrollable-tiling Wayland compositor
- Walker - Application launcher
- Wofi - Application launcher
- Noctalia Shell - Custom shell components
- Fish - Default shell
- Zsh - Alternative shell with plugins
- Starship - Cross-shell prompt
- Ghostty - Terminal emulator
- Neovim Nightly - Text editor
- Jujutsu (jj) - Version control
- Git - Version control
- GitHub CLI - GitHub integration
- Lazygit - Git TUI
- Node.js & npm - JavaScript runtime
- Rust & Cargo - Rust toolchain
- Zig - Zig compiler
- Go - Go compiler
- Waybar - Status bar
- Dunst - Notifications
- SwayOSD - On-screen display
- Grim + Slurp - Screenshots
- Brightnessctl - Brightness control
- Playerctl - Media control
- Fcitx5 - Input method
- Zoxide - Smart cd
- Eza - Better ls
- Bat - Better cat
- Fzf - Fuzzy finder
- Ripgrep - Fast grep
- Btop - System monitor
- Fastfetch - System info
- Firefox - Web browser
- Discord - Chat
- Dolphin - File manager
- Steam - Gaming
- Faugus Launcher - Game launcher
- Wine Staging - Windows compatibility
- AMD GPU drivers - Full Vulkan/Mesa support
- 32-bit libraries - For gaming compatibility
~/dotfiles/
โโโ .config/
โ โโโ hypr/ # Hyprland configuration
โ โโโ niri/ # Niri configuration
โ โโโ waybar/ # Status bar
โ โโโ nvim/ # Neovim config
โ โโโ fish/ # Fish shell
โ โโโ ghostty/ # Terminal
โ โโโ noctalia/ # Shell components
โ โโโ jj/ # Jujutsu config
โ โโโ fastfetch/ # System info
โโโ git/ # Git configuration
โโโ zsh/ # Zsh plugins
โโโ starship.toml # Prompt config
โโโ .zshrc # Zsh config
โโโ install.sh # Dependency installer
โโโ setup.sh # Dotfiles symlinker
โโโ flake.nix # Nix flake (optional)
โโโ home.nix # Home Manager config (optional)
โโโ 50-vial-webhid.rules # Keyboard udev rules
Modular configuration split across:
hyprland.conf- Main configmonitors.conf- Display setupinput.conf- Keyboard/mousebindings.conf- Keybindingslooknfeel.conf- Themingautostart.conf- Startup appsenvs.conf- Environment variables
Common aliases set in both Fish and Zsh:
lsโezawith icons and colorscdโ smart directory jumping with zoxidecatโbatwith syntax highlighting../.../....โ quick parent navigation
Includes full AMD GPU support with:
- Vulkan drivers (64-bit & 32-bit)
- Mesa drivers
- Wine Staging
- Steam
- Faugus Launcher for managing game launchers
Vial WebHID udev rules for custom keyboard support automatically installed to /etc/udev/rules.d/.
Created in ~/.config/environment.d/:
- Qt theming - Uses qt6ct
- Wine settings - Integer scaling for games
- Wayland support - Force apps to use Wayland
For a declarative, reproducible setup across machines, see README-NIX.md.
# Install Nix
sh <(curl -L https://nixos.org/nix/install) --daemon
# Switch to Home Manager
home-manager switch --flake .#mikkuchsh -s $(which fish) # or $(which zsh)yay -SyuAll configs are symlinked from ~/dotfiles/ - edit there and changes apply immediately.
- Default shell: Fish (set during install)
- Terminal: Ghostty with Cascadia Code Nerd Font
- Theme: Custom Osmium colors with Rose Pine accents
- Input method: Fcitx5 for multi-language support
- Display: Configured for AMD GPUs with Wayland
Configurations inspired by various dotfile repos and customized for personal workflow.
Maintainer: mikkurogue
License: MIT
My personal configuration files for Hyprland desktop environment.
- waybar - Status bar configuration
- nvim - Neovim configuration
- hypr - Hyprland window manager configuration
- ghostty - Ghostty terminal emulator configuration
- starship.toml - Starship prompt configuration
- zsh - Zsh shell configuration and plugins
.zshrc- Zsh configuration filezsh-syntax-highlighting- Syntax highlighting plugin
- fish - Fish shell configuration (feature parity with Zsh)
config.fish- Fish configuration filefunctions/cd.fish- Custom cd function with zoxide integration
All configurations are hardcoded with the Tokyo Night color scheme for consistency across Hyprland, Waybar, and Hyprlock.
# Clone the repository
git clone <your-repo-url> ~/dotfiles
cd ~/dotfiles
# Install all dependencies (requires yay or will install it)
./install.sh
# Setup dotfiles (create symlinks)
./setup.sh
# Log out and log back in for shell changes to take effectIf you prefer to install components manually:
# Clone the repository
git clone <your-repo-url> ~/dotfiles
# Create symlinks (backup your existing configs first!)
ln -sf ~/dotfiles/.zshrc ~/.zshrc
ln -sf ~/dotfiles/starship.toml ~/.config/starship.toml
ln -sf ~/dotfiles/.config/waybar ~/.config/waybar
ln -sf ~/dotfiles/.config/nvim ~/.config/nvim
ln -sf ~/dotfiles/.config/hypr ~/.config/hypr
ln -sf ~/dotfiles/.config/ghostty ~/.config/ghostty
ln -sf ~/dotfiles/.config/fish ~/.config/fishThis dotfiles repository supports both Zsh and Fish shells with feature parity.
To try Fish temporarily:
fishTo switch default shell to Fish:
chsh -s $(which fish)To switch back to Zsh:
chsh -s $(which zsh)See DEPENDENCIES.md for a complete list of required packages.
github-notifications.sh- GitHub notifications integrationkeyboard-layout.sh- Keyboard layout displaykb-layout-switch.sh- Switch keyboard layoutsget-kb-layout.sh- Get current keyboard layout
get-kb-layout.sh- Keyboard layout helperkb-layout-switch.sh- Layout switching utilitygithub-notifications.sh- Notificationskeyboard-layout.sh- Layout indicator
- Make sure to review and adjust paths in configuration files after installation
- Some scripts may require additional dependencies
- Omarchy defaults: The
defaults/directory contains copies of Omarchy's default configurations. See.config/hypr/defaults/README.mdfor details about replacing omarchy-specific commands if you don't have Omarchy installed.