Skip to content

eljulians/dotfiles

Repository files navigation

Dotfiles

My dotfiles: zshrc, aliases, functions, gitconfig, tmux.conf, ripgreprc, p10k.zsh, and more.

Uses Nix and Home Manager for declarative, cross-distro package management and dotfile symlinking.

Vim is managed separately by vimrc.

Prerequisites

1. Install Nix

sh <(curl -L https://nixos.org/nix/install) --daemon

Restart your terminal (or source /etc/profile).

2. Install Home Manager

nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
nix-channel --update
nix-shell '<home-manager>' -A install

Installation

git clone <this-repo> ~/workspace/dotfiles
cd ~/workspace/dotfiles
./install.sh

The install script is idempotent - safe to run multiple times.

What it does:

  1. Installs packages via Home Manager (ripgrep, fzf, bat, tmux, git, etc.)
  2. Symlinks all dotfiles to $HOME via Home Manager
  3. Installs oh-my-zsh if not present
  4. Clones/updates the zsh theme and plugins
  5. Installs fonts for powerlevel10k
  6. Installs TPM (tmux plugin manager)

Adding/Removing Tools

Edit home.nix and add/remove packages from home.packages, then run:

home-manager switch

Zsh setup

Theme: powerlevel10k

Dependencies (installed by scripts/_fonts.sh):

Terminal font: Inconsolata Nerd Font (installed via Home Manager)

Config: ~/.p10k.zsh (run p10k configure to regenerate)

Plugins (third-party, cloned by install.sh):

Plugins (built-in to oh-my-zsh):

  • git
  • kubectl
  • aws

Making changes

Edit a dotfile (aliases, functions, zshrc, etc.):

  1. Edit the file in this repo (the symlink points here)
  2. Commit and push
  3. On other machines: git pull

Change powerlevel10k prompt:

  1. Run p10k configure
  2. This overwrites ~/.p10k.zsh (symlinked to this repo)
  3. Commit and push if you want to keep the changes

Add a new zsh plugin:

  1. Add the clone_or_pull line to scripts/_zsh-plugins.sh
  2. Add the plugin name to the plugins=() array in zshrc
  3. Run ./install.sh to install it

Tmux

TPM (plugin manager) is installed by scripts/_tmux.sh.

After install, start tmux and press prefix + I to install the plugins.

Plugins:

Powerline customization:

  • tmux-powerline.conf.sh - segment settings (colors, symbols, API configs)
  • tmux-powerline-theme.sh - which segments to show and their order

After editing, run home-manager switch and restart tmux.

Secrets

Some features require API keys. These are stored in secrets.sh which is gitignored.

To set up:

cp secrets.sh.example secrets.sh
# Edit secrets.sh with your values

Currently used for:

About

Dotfiles for zsh, tmux, etc

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors