Welcome to my dotfiles repository! This repository contains personal configuration files and scripts for setting up a development environment on NixOS or traditional Linux distributions.
This repository provides configuration for:
- NixOS: Declarative system configuration using Nix Flakes
- Traditional Linux (CachyOS, Arch, Ubuntu, Debian, etc.): Configuration management via GNU Stow
Choose the setup method that matches your system.
If you're using NixOS, see the comprehensive guide in nixos/README.md.
Quick start:
git clone https://github.com/your-username/dotfiles.git ~/dotfiles
cd ~/dotfiles
sudo nixos-rebuild switch --flake .#nixosThe nixos/ directory contains:
flake.nix- Flake configuration (entry point)hosts/default/configuration.nix- System-wide settingshosts/default/home.nix- User configuration (Home Manager)hosts/default/hardware-configuration.nix- Hardware settings
For detailed instructions, troubleshooting, and advanced configurations, see nixos/README.md.
The configuration now includes Niri (Scrollable Tiling Compositor) and Noctalia Shell.
To disable Niri/Noctalia and revert to pure Gnome:
- System Config: Comment out
../../modules/system/niri.nixinnixos/hosts/default/configuration.nix. - Home Config: Comment out
../../modules/home/niri.nixand../../modules/home/noctalia.nixinnixos/hosts/default/home.nix. - Flake Input (Optional): Remove
noctaliainput fromnixos/flake.nixif you want to remove the dependency entirely (requires removing arguments fromspecialArgstoo).
To disable Gnome and use only Niri:
- Comment out
../../modules/system/gnome.nixinnixos/hosts/default/configuration.nix. - Comment out
../../modules/home/gnome.nixinnixos/hosts/default/home.nix. Note: GDM (Login Manager) is enabled byniri.nix, so disabling Gnome modules will not break login.
For non-NixOS systems, use GNU Stow to manage configuration files.
Prerequisites:
# Install GNU Stow
sudo pacman -S stow # Arch/CachyOS
sudo apt-get install stow # Debian/UbuntuInstallation:
-
Clone the repository:
git clone https://github.com/your-username/dotfiles.git ~/.dotfiles cd ~/.dotfiles
-
Stow individual directories:
stow alacritty fish git helix starship vim zed
Or stow all at once:
for dir in */; do stow "$dir"; done
-
Backup existing configs first to avoid conflicts.
Available configurations:
alacritty/- Terminal emulatorfish/- Fish shell configurationgit/- Git global confighelix/- Helix editor with language serverskitty/- Kitty terminal emulatorstarship/- Starship promptvim/- Vim configurationzed/- Zed editor
This repository includes utility scripts for system setup.
Automates installation of development tools on CachyOS:
chmod +x scripts/install_tools-CachyOS.sh
./scripts/install_tools-CachyOS.shFeatures:
- Installs packages from official and AUR repositories
- Configures Docker (adds user to docker group)
- Installs Rust toolchain
- Sets up firewall rules for LocalSend
Available options:
./scripts/install_tools-CachyOS.sh --list # List packages
./scripts/install_tools-CachyOS.sh --skip-confirmation # Skip promptSee the script source for customization.
Automates Nerd Fonts installation with interactive selection:
chmod +x scripts/nerd-fonts-install.sh
./scripts/nerd-fonts-install.shFeatures:
- Downloads Nerd Fonts from GitHub
- Interactive font selection
- Local or global installation support
- Automatic font cache update
dotfiles/
├── alacritty/ # Alacritty terminal config
├── fish/ # Fish shell config
├── git/ # Git configuration
├── helix/ # Helix editor config
├── kitty/ # Kitty terminal config
├── nixos/ # NixOS configuration (see nixos/README.md)
├── scripts/ # Utility scripts
├── starship/ # Starship prompt config
├── vim/ # Vim configuration
├── zed/ # Zed editor config
└── README.md # This file
Helix is configured with language servers for Go, Rust, Python, YAML, Bash, and TOML.
Installation (Traditional Linux):
sudo pacman -S helix
stow helixInstallation (NixOS):
See nixos/README.md — Helix is included in the Home Manager configuration.
Verify language servers:
hx --healthFeel free to fork and customize for your own setup. Some tips:
- Backup your existing dotfiles before stowing
- On NixOS, never use stow — use the flake configuration instead
- Test configuration changes before committing to git
These dotfiles are provided as-is for personal use.