Skip to content

vimkin/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

My modular dotfiles configuration for macOS (Homebrew) and Linux (Arch and Debian downstreams like Ubuntu and Pop!_OS) using GNU Stow for symlink management.

Each tool's configuration is organized in its own directory, making it easy to install or remove specific components as needed.

Features

Some of the configurations included:

  • Nushell: Modern shell configuration with custom scripts and completions
  • Neovim: Text editor configuration with plugins and custom settings
  • Git: Version control system configuration and aliases
  • Tmux: Terminal multiplexer configuration
  • Starship: Cross-shell prompt with custom theming
  • Zellij: Terminal workspace manager configuration
  • Atuin: Shell history sync and search configuration
  • Fastfetch: System information tool configuration
  • Hammerspoon: macOS automation and window management (macOS only)
  • Startup: macOS launch agent configurations (macOS only)

Installation

Prerequisites

Important

macOS: Ensure you have Homebrew installed on your system. Linux: If using Debian downstreams on LTS, the best way to get the latest packages is the nix package manager. Ensure it is installed on your system.

Setup

  1. Clone the repository:
git clone https://github.com/vimkin/dotfiles.git ~/dotfiles
cd ~/dotfiles
  1. Install dependencies and configure:

macOS:

# Install everything (CLI, GUI app, App Store apps, fonts) at once with Homebrew
brew bundle install

Linux (Debian downstreams):

# Install packages and fonts with nix
nix-env -if packages.nix
# Install Flatpak packages from sysconfig.yaml. Some apps are better to install from official .deb files; check which software distributions are recommended by developers.
flatpak install flathub $(yq '.packages.flatpak[]' sysconfig.yaml)

Linux (Arch-based):

sudo pacman -S --needed $(yq '.packages.pacman.cli[]' sysconfig.yaml)
sudo pacman -S --needed $(yq '.packages.pacman.gui[]' sysconfig.yaml)
sudo pacman -S --needed $(yq '.packages.pacman.fonts[]' sysconfig.yaml)
paru -S --needed $(yq '.packages.paru.cli[]' sysconfig.yaml)
paru -S --needed $(yq '.packages.paru.gui[]' sysconfig.yaml)
flatpak install flathub $(yq '.packages.flatpak[]' sysconfig.yaml)
  1. Run the bootstrap script:
nu ./bootstrap.nu

The above command will:

  • ‼️ Set Nushell as the default shell
  • Set up rustup and install Rust toolchains
  • Use GNU Stow to create symlinks for each configuration module (nushell, nvim, etc.)
  • Clone and link additional Nushell scripts from the community repository

Manual Configuration

For selective installation, use Stow directly:

stow nushell  # Install only Nushell config
stow nvim     # Install only Neovim config
stow starship # Install only Starship config

About

my dotfiles

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published