Skip to content

Cross-Platform Dotfiles for Customizing my Development Environment

License

Notifications You must be signed in to change notification settings

Nitestack/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

~/.dotfiles 📂
For NixOS and Windows (including WSL)
Powered by chezmoi

Latest commit GitHub Repo stars Github Created At

FeaturesRequirementsGetting StartedCreditsLicense

image

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!

🚀 Features

NixOS (Full System)

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.

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.

Cross-Platform (NixOS, Windows)

  • 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.

⚙️ Requirements

Ensure you have the latest stable release of NixOS, Windows, or WSL installed.

WSL (NixOS)

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

Post-Install

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

NixOS (including WSL)

Ensure you have git and chezmoi available when needed in the installation section.

nix-shell -p git chezmoi

Windows

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.

Fonts

🏁 Getting Started

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

NixOS

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.

WSL (NixOS)

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.

Final Steps

Initialize chezmoi:

UNIX

chezmoi init --source="$HOME/.dotfiles" --apply

Windows

chezmoi init --source="$env:USERPROFILE\.dotfiles" --apply

🙌 Credits

📝 License

This project is licensed under the Apache-2.0 license.