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

Features โ€ข Requirements โ€ข Getting Started โ€ข Documentation โ€ข Credits โ€ข License

image

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!

๐Ÿš€ Features

NixOS (Full System)

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.

Cross-Platform (NixOS, Windows)

  • 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

UNIX (NixOS)

  • 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

Windows

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

โš™๏ธ Requirements

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

Dependencies

Note

If you are on NixOS, just ensure you have git, chezmoi and curl (or wget) active in your current shell.

Git

Windows:

winget install -e --accept-package-agreements --accept-source-agreements --id Git.Git

WSL (Arch Linux):

sudo pacman -S --needed --noconfirm git

chezmoi

Windows:

winget install -e --accept-package-agreements --accept-source-agreements --id twpayne.chezmoi

WSL (Arch Linux):

sudo pacman -S --needed --noconfirm chezmoi

Wget or curl (WSL only)

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)

๐Ÿ Getting Started

Installation

UNIX (including WSL)

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

Windows

To install on Windows, run the following command in PowerShell:

iwr https://github.com/Nitestack/dotfiles/HEAD/scripts/install.ps1 | iex

Environment Variables

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 to master.
  • SSH (for Bash) or -SSH (for PowerShell): Set to true if you want to install the dotfiles with SSH. Defaults to false.
  • ONE_SHOT (for Bash) or -OneShot (for PowerShell): Set to true 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 to false.

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"

๐Ÿ“– Documentation

๐Ÿ™Œ Credits

๐Ÿ“ License

This project is licensed under the Apache-2.0 license.