~/.dotfiles 📂
For NixOS and Windows (including WSL)
Powered by chezmoi
Features • Requirements • Getting Started • Credits • License
Elevate your computing experience across platforms with this curated collection of configuration files and setup scripts. From NixOS to Windows and WSL (NixOS), personalize your environment effortlessly. Securely manage diverse machines using chezmoi and leverage seamless deployment and synchronization.
Be sure to ⭐️ or fork this repo if you find it useful!
Warning
The NixOS full system configuration is still incomplete. Key features yet to be implemented include the integration of Astal and AGS. This requires a rewrite from the previous Arch-based version of the dotfiles, meaning there is currently no top or bottom bar, and the power menu is also missing.
This setup operates on the Wayland protocol, utilizing Hyprland as the compositor for smooth and visually pleasing window management. For login management, SDDM is employed with a custom theme, providing a refined interface. The system uses GRUB as the bootloader, enhanced with a theme and os-prober
for seamless dual-booting with Windows or other operating systems. Both Astal and AGS create a cohesive design for app launchers, power and notification menus, top and bottom bars, and more.
Everything is built using a Nix Flake, ensuring the system is reproducible. It also includes features listed in the Cross-Platform and UNIX sections, making it a complete and functional environment.
-
Neovim Configuration (with WSL): Powered by LazyVim, ensuring a robust text editing experience.
-
WezTerm Configuration: Integrated Neovim workflow for a seamless terminal and text editing setup.
-
Oh My Posh Configuration (with WSL): Customized prompt for a visually appealing and informative shell experience.
-
Fastfetch Configuration (with WSL): Customized settings for efficient system information display.
-
Lazygit Configuration (with WSL): Themed with the Catppuccin Mocha theme for a cohesive look and feel.
-
Git Configuration (with WSL): Customized settings for version control.
-
ShellCheck Configuration (with WSL): Setup for shell script analysis.
-
SSH Configuration (with WSL): Consistent and secure SSH setup across systems.
And more to discover.
Ensure you have the latest stable release of NixOS, Windows, or WSL installed.
Ensure you have the latest release of NixOS-WSL downloaded.
Open PowerShell and run:
wsl --import NixOS --version 2 $env:USERPROFILE\NixOS\ nixos-wsl.tar.gz
After the initial installation, update your channels to use nixos-rebuild
:
sudo nix-channel --update
Then rebuild the system:
sudo nixos-rebuild switch
To make NixOS your default distribution, use:
wsl -s NixOS
Ensure you have git
and chezmoi
available when needed in the installation section.
nix-shell -p git chezmoi
Ensure you have git
, chezmoi
, and pwsh
installed.
winget install -e --accept-package-agreements --accept-source-agreements Git.Git twpayne.chezmoi Microsoft.PowerShell
Important
All versions of Windows come with PowerShell 5.1 pre-installed. However, this repository requires PowerShell 7.x or higher. PowerShell 7.x+ does not replace or upgrade PowerShell 5.1; it is installed alongside it.
Clone the dotfiles repository:
git clone https://github.com/Nitestack/dotfiles.git ~/.dotfiles
# or with SSH
git clone git@github.com:Nitestack/dotfiles.git ~/.dotfiles
Before continuing with the installation, initialize the NixOS system:
sudo nixos-rebuild boot --flake "$HOME/.dotfiles/nix#nixstation" --impure
Please reboot the system and then continue with the Final Steps.
Before continuing with the installation, initialize the NixOS WSL system:
sudo nixos-rebuild boot --flake "$HOME/.dotfiles/nix#wslstation" --impure
Execute the following commands in PowerShell to correctly apply the custom username:
wsl -t NixOS
wsl -d NixOS --user root exit
wsl -t NixOS
Start WSL and then continue with the Final Steps.
Initialize chezmoi:
chezmoi init --source="$HOME/.dotfiles" --apply
chezmoi init --source="$env:USERPROFILE\.dotfiles" --apply
- Tom Payne: Creator of chezmoi. Parts of his dotfiles are used.
- Folke Lemaitre: Creator of LazyVim. Parts of his dotfiles are used.
- Aylur: Creator of Ags and Astal. Parts of his Nix configuration were used.
- end-4: Parts of his dotfiles are used.
- Pratik Gayen: Hyprlock config is used.
- Elliott Minns (Dreams of Code): Parts of his Nix configuration were used.
This project is licensed under the Apache-2.0 license.