~/.dotfiles 📂
For NixOS and Windows (including WSL)
Powered by chezmoi
Features • Requirements • Getting Started • Documentation • Credits • License
Elevate your computing experience across platforms with this curated collection of configuration files and setup scripts. From NixOS to Windows and WSL (Arch Linux), personalize your environment effortlessly, managed securely across multiple diverse machines using chezmoi. Leverage advanced features like templates, password manager support, file encryption, and script execution for 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! The key feature yet to be implemented is 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 to deliver a smooth and visually pleasing window management experience. For login management, SDDM is employed with a custom theme, providing a refined and polished 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. To further elevate the visual aesthetic, both Astal and AGS are used, creating 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 all the features listed in the Cross-Platform and the UNIX section, making it a complete and fully functional environment.
-
Neovim Configuration (with WSL): Powered by LazyVim, ensuring a robust and efficient text editing experience
-
WezTerm Configuration: Integrated Neovim workflow for a seamless terminal and text editing setup
-
Visual Studio Code Configuration: Settings and extensions for an optimized development environment
-
Oh My Posh Configuration (with WSL): Customized prompt for a visually appealing and informative shell experience
-
Fastfetch Configuration (with WSL): Customized settings for a fast and 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
-
tmux Configuration: Themed with the Catppuccin Mocha theme, featuring session management and an integrated Neovim workflow
-
Zed Configuration: Settings for the new lightweight code editor
-
Zsh Configuration (with WSL): Powered by Oh My Zsh, this configuration includes styled prompts, shell completions, optimized history settings, and useful aliases for a seamless command-line experience
-
Full WSL System: Optimized settings for Windows Subsystem for Linux (WSL) to ensure seamless integration and performance
-
PowerShell Profile: Customized PowerShell profile with a styled prompt, optimized history settings, aliases, and various Linux utilities ported over to PowerShell for enhanced productivity
-
Windows Terminal: Customized Windows Terminal settings with TMUX-like keybindings
And more to discover.
Ensure you have the latest stable release of NixOS, Windows or WSL installed.
Note
If you are on NixOS, just ensure you have git
, chezmoi
and curl
(or wget
) active in your current shell.
Windows:
winget install -e --accept-package-agreements --accept-source-agreements --id Git.Git
WSL (Arch Linux):
sudo pacman -S --needed --noconfirm git
Windows:
winget install -e --accept-package-agreements --accept-source-agreements --id twpayne.chezmoi
WSL (Arch Linux):
sudo pacman -S --needed --noconfirm chezmoi
WSL (Arch Linux):
sudo pacman -S --needed --noconfirm wget curl
PowerShell (Windows only)
All versions of Windows come with PowerShell 5.1 pre-installed. However, please note that this repository requires PowerShell 7.x or higher. PowerShell 7.x+ does not replace or upgrade PowerShell 5.1; instead, it is installed alongside PowerShell 5.1.
winget install -e --accept-package-agreements --accept-source-agreements --id Microsoft.PowerShell
Fonts (Windows only)
To install on UNIX systems, run the following command in your terminal:
curl -fsSL https://github.com/Nitestack/dotfiles/HEAD/scripts/install.sh | bash
Or, using wget
:
wget -qO- https://github.com/Nitestack/dotfiles/HEAD/scripts/install.sh | bash
To install on Windows, run the following command in PowerShell:
iwr https://github.com/Nitestack/dotfiles/HEAD/scripts/install.ps1 | iex
You can customize the installation by passing environment variables to the installation script:
BRANCH
(for Bash) or-Branch
(for PowerShell): Specify the branch you want to install. Defaults tomaster
.SSH
(for Bash) or-SSH
(for PowerShell): Set totrue
if you want to install the dotfiles with SSH. Defaults tofalse
.ONE_SHOT
(for Bash) or-OneShot
(for PowerShell): Set totrue
to install your dotfiles and then remove all traces of chezmoi from the system. Useful for setting up temporary environments (e.g., Docker containers). Defaults tofalse
.
For example, to install using a specific branch:
curl -fsSL https://github.com/Nitestack/dotfiles/HEAD/scripts/install.sh | BRANCH="dev" bash
iwr https://github.com/Nitestack/dotfiles/HEAD/scripts/install.ps1 | iex -Branch "dev"
- Tom Payne
- creator of chezmoi
- parts of his dotfiles are used
- Folke Lemaitre
- creator of LazyVim
- parts of his dotfiles are used
- Felipe Santos
- parts of his README are used
- René-Marc Simard
- the header section of his dotfiles README is used
- Aylur
- end-4
- parts of his dotfiles are used
- Pratik Gayen
- Hyprlock config is used
- Elliott Minns (Dreams of Code)
- parts of his Nix configuration was used
This project is licensed under the Apache-2.0 license.