Skip to content

akoken/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Dotfiles

Welcome to my dotfiles repository! This contains the configuration files I use for my daily development workflow.

Note

This project is still a work in progress! Use at your own risk.

alt text

Setup

Note

You need to install the XCode CLI tools for macOS configuration.

xcode-select --install

After cloning the repository, you can set up the dotfiles using the install.sh script. Run the script with one of the following commands:

./install.sh help
Usage: install.sh {backup|link|homebrew|shell|macos|all}

Available Setup Options

backup

./install.sh backup

This command creates a backup of your current dotfiles (if any) in ~/.dotfiles-backup/. It scans for files that will be symlinked and moves them to the backup directory. It also handles vim/neovim setups, moving related files into the XDG base directory, e.g., ~/.config.

  • ~/.config/nvim/ - The home of neovim configuration
  • ~/.vim/ - The home of vim configuration
  • ~/.vimrc - The main init file for vim

link

./install.sh link

This command creates symbolic links from the dotfiles directory to your home directory ($HOME). This allows you to keep the configurations in version control while using them in your actual environment.

homebrew

./install.sh homebrew

This command installs Homebrew (macOS/Linux package manager) by downloading and running the Homebrew installer script. If the script detects you're on Linux, it will use Linuxbrew instead.

Once Homebrew is installed, it runs brew bundle to install the packages listed in the Brewfile.

shell

./install.sh shell

This command sets up your shell configuration. It specifically configures the shell to Zsh using the chsh command.

macos

./install.sh macos

This command applies macOS-specific settings using defaults write commands. It modifies various system preferences, including:

  • Show all filename extensions in Finder
  • Show hidden files by default
  • Set UTF-8 encoding in Terminal.app
  • Expand save dialogs by default
  • Enable full keyboard access for all controls
  • Enable subpixel font rendering on non-Apple LCDs
  • Show the Path and Status bars in Finder
  • Enable Safari’s debug menu

all

./install.sh all

This runs all the installation tasks mentioned above (except for backup, which must be run manually).

ZSH Configuration

The prompt for ZSH is configured in the cnofig/zsh/zshrc file and performs the following operations.

  • Sets EDITOR to nvim
  • Recursively searches the $DOTFILES/zsh directory for any .zsh files and sources them
  • Sources a ~/.localrc, if available for configuration that is machine-specific and/or should not ever be checked into git
  • Adds ~/bin and $DOTFILES/bin to the PATH

Neovim Setup

To install Neovim, use Homebrew:

brew install neovim

However, it was likely installed already if you ran the ./install.sh brew command provided in the dotfiles.

All of the configuration for Neovim starts at config/nvim/init.lua, which is symlinked into the ~/.config/nvim directory.

Warning

The first time you run nvim with this configuration, it will likely have a lot of errors. This is because it is dependent on a number of plugins being installed.

Installing plugins

On the first run, all required plugins should automatically installed by lazy.nvim, a plugin manager for neovim.

Note

Plugins can be synced in a headless way from the command line using the vimu alias.

Tmux Setup

Requirements

Installation

Clone the tmux plugin repo:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Then install the plugins with the following command:

CTRL^ + I

alt text

Docker Setup

A Dockerfile is provided to help test the dotfiles setup in a Linux environment. To build the Docker image:

docker build -t dotfiles --force-rm  .

This creates a dotfiles image with the repository cloned. To run the container:

docker run -it --rm dotfiles

This opens a Bash shell in the container, allowing you to test the dotfiles installation process.

Preferred Apps and Tools

I almost exclusively work on macOS, so this list will be specific to that operating system, but several of these reccomendations are also available, cross-platform.