Skip to content

anmoljagetia/dotfiles

Repository files navigation

                   d88P          888          888     .d888 d8b 888
                  d88P           888          888    d88P"  Y8P 888
 d888b  d88      d88P            888          888    888        888
d888888888P     d88P         .d88888  .d88b.  888888 888888 888 888  .d88b.  .d8888b
88P  Y888P     d88P         d88" 888 d88""88b 888    888    888 888 d8P  Y8b 88K
              d88P          888  888 888  888 888    888    888 888 88888888 "Y8888b.
             d88P       d8b Y88b 888 Y88..88P Y88b.  888    888 888 Y8b.          X88
            d88P        Y8P  "Y88888  "Y88P"   "Y888 888    888 888  "Y8888   88888P'


Dotfiles

I really like to configure my system in every possible way so that it can be used for a more personalized experience. This repository holds how I do it. The goal here is to update my machine with better™ system defaults, preferences, software configuration and even auto-install some handy development tools and apps.

Installation

The easiest way to install these dotfiles is to clone the repository and then run the installer script. This will install the necessary packages, clone other dependent repositories and try and configure the system in as automated fashion as possible.

git clone git@github.com:anmoljagetia/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh

The Directory Structure

The dotfiles are organized in the following way

directorypurpose
TerminalSettings for the colors and settings for the macos terminal and iterm
bashMy bash shell configurations
binStores all the handy nifty binaries that I use. This directory is also added to system path
external_binStores all the external binaries that need to be added to PATH
emacsMy emacs settings
functionsThese functions are lazy loaded using z shell
gitMy git settings
hammerspoonHammerspoon settings for macos automation
install.shThe installer script
nodeNode packages and defaults
sublimeSettings for ST3. Slightly outdated since I don’t use sublime extensively anymore
tmuxMy tmux configuration
vimMy vim configuration
zshMy z-shell configuration

Terminal

This directory contains the custom colorschemes that I use with iterm and terminal applications. These colors are optimised for dark backgrounds and my colorschemes.

bash

There are two major files here. bash_profile and bashrc. Since I don’t use bash extensively, my bashrc is pretty basic however I use bash_profile to load all the folders that I need to add to system PATH and configure other environments.

bin/external_bin

This directory is added to path and containes lot of nice small utilities that I use frequently. The external_bin directory is used to store binaries that are downloaded of the internet. This is done to avoid adding them to version control and have a central place where they can be accessed and re-downloaded on any new computer. There is also a documentation available in the external_bin repo.

emacs

This directory contains my .spacemacs and my .spacemacs.d directories. These personal configs will be moved to a personal layer in the future.

functions

This is where all functions are stored. These are lazy loaded at run-time so the prompt doesn’t get slow. There are a lots of them and they provide for accessing utilities that are installed on the system in a more efficient manner.

git

This is where my git_config sits. It’s extremely minimal and there is also a global gitignore_global that I use.

hammerspoon

This is one of the most important folders in my dotfiles. Hammerspoon has transformed the way I use my mac. I have so many additonal shortcuts and customizations setup using Hammerspoon that I will have to maintain a seperate Wiki for the same.

node

Configurations for nodejs installation.

sublime

Configuration for Sublime Text. These are old and unmaintained since I don’t use Sublime Text anymore.

tmux

vim

zsh