Skip to content

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ย ๐Ÿ“‚
Cross-Platform & Cross-Shell Dotfiles
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 macOS and Windows, 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, macOS, Windows)

  • Neovim Configuration: 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: Customized prompt for a visually appealing and informative shell experience

  • Fastfetch Configuration: Customized settings for a fast and efficient system information display

  • Lazygit Configuration: Themed with the Catppuccin Mocha theme for a cohesive look and feel

  • Git Configuration: Customized settings for version control

  • ShellCheck Configuration: Setup for shell script analysis

  • SSH Configuration: Consistent and secure SSH setup across systems

UNIX (NixOS, macOS)

  • 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: Powered by Oh My Zsh, this configuration includes styled prompts, shell completions, optimized history settings, and useful aliases for a seamless command-line experience

macOS

  • Dependency Management: Managed with Homebrew, including formulae, casks, fonts, and Mac App Store applications (via mas), all bundled using brew bundle

  • System Settings: Configured using defaults to set macOS system preferences and settings

Windows

  • WSL Configuration: 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


And more to discover.

โš™๏ธ Requirements

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

Dependencies

NixOS users can skip this section.

Homebrew (macOS only)

curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | /bin/bash

Git

macOS:

brew install git

Windows:

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

chezmoi

macOS:

brew install chezmoi

Windows:

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

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

To install on UNIX systems, run the following command in your terminal:

curl -fsSL https://raw.githubusercontent.com/Nitestack/dotfiles/HEAD/scripts/install.sh | bash

Or, using wget:

wget -qO- https://raw.githubusercontent.com/Nitestack/dotfiles/HEAD/scripts/install.sh | bash

Windows

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

iwr https://raw.githubusercontent.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://raw.githubusercontent.com/Nitestack/dotfiles/HEAD/scripts/install.sh | BRANCH="dev" bash
iwr https://raw.githubusercontent.com/Nitestack/dotfiles/HEAD/scripts/install.ps1 | iex -Branch "dev"

๐Ÿ“– Documentation

๐Ÿ™Œ Credits

๐Ÿ“ License

This project is licensed under the Apache-2.0 license.