Skip to content
dmitanaPublic

About

Modest but effective dotfiles

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Latest commit

 

History

200 Commits

Folders and files

Repository files navigation

Dotfiles

Prerequisites

Installation

  1. Add the .dots directory and the private config directories to the .gitignore file.
$ printf '%s\n' '.dots' '.config/claude/' '.config/awesome/' '.config/awesome-worktrees/' >> .gitignore

.config/claude and .config/awesome are ignored here because each is tracked by a separate private repo — see steps 9 and 10.

  1. Clone the repo.
# SSH
$ git clone --bare git@github.com:dmitana/dotfiles.git $HOME/.dots

# HTTPS
$ git clone --bare https://github.com/dmitana/dotfiles.git $HOME/.dots
  1. Restart shell or define the alias in the current shell scope.
$ alias dots='/usr/bin/git --git-dir=$HOME/.dots/ --work-tree=$HOME'

# Add fetch line if you want behaviour as with a non-bare repository clone.
$ dots config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
  1. Checkout the actual content from the bare repository to your $HOME. $HOME folder might already have some stock configuration files which would be overwritten by Git (e.g. .vimrc, .zshrc, ...).
# Back up the files if you care about them
$ mkdir -p .dots_backup && \
dots checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | \
xargs -I{} mv {} .dots-backup/{}

# Remove them if you don't care
$ dots checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | \
xargs -I{} rm {}

# Checkout the actual content
$ dots checkout
  1. Set the flag showUntrackedFiles to no on this specific (local) repository.
$ dots config --local status.showUntrackedFiles no
  1. Install zsh.

  2. Install powerline for tmux (based on this answer and doc). Quick install (when fonts are already installed).

# Ach
$ yay -S powerline powerline-fonts

# Ubuntu
$ sudo apt install powerline

# Python
$ pip install --user powerline-status
  1. Install nvim.

  2. Install the private Claude Code configuration. It lives in a separate private repo (dmitana/dotfiles-claude) because it holds personal preferences and client-specific skills. $CLAUDE_CONFIG_DIR is already set to ~/.config/claude by .config/zsh/.zshrc, so the config lands where Claude Code looks for it.

$ dots-claude-install

The script is idempotent — re-run it any time to pull updates. It handles a fresh machine, a directory where Claude Code has already written state, and an existing clone. If you don't have access to the private repo it prints a warning and exits successfully, so this repo stays usable by anyone.

  1. Install the private AwesomeWM configuration. It lives in a separate private repo (dmitana/dotfiles-awesome) so it can use a normal git workflow (branches, worktrees, hooks) that a bare $HOME repo cannot offer. Run this before the Optional section — the SDDM step copies wallpapers from ~/.config/awesome/theme/wallpapers/.
$ dots-awesome-install

Same behaviour as dots-claude-install: idempotent, adopts an existing directory, and soft-fails without access to the private repo. Runtime dependencies are listed in the repo's README.

Optional

  1. Use the predefined configurations for X server, Udev rules and SDDM.
# Monitor and X input configuration
$ sudo ln -s ~/etc/xorg/10-monitor.conf /etc/X11/xorg.conf.d/10-monitor.conf
$ sudo ln -s ~/etc/xorg/40-libinput.conf /etc/X11/xorg.conf.d/40-libinput.conf

# Udev rules configuration
$ sudo cp ~/etc/udev/10-ambilight.rules /etc/udev/rules.d/10-ambilight.rules
$ sudo ln -s ~/etc/udev/99-udisks2.rules /etc/udev/rules.d/99-udisks2.rules
$ sudo ln -s ~/etc/tmpfiles/media.conf /etc/tmpfiles.d/media.conf # set mount directory to the /media/$USER instead of /run/media/$USER

# SDDM configuration
$ sudo mkdir /etc/sddm.conf.d
$ sudo cp ~/etc/sddm/general.conf /etc/sddm.conf.d/general.conf
$ sudo ln -s ~/etc/sddm/xorg.conf /etc/sddm.conf.d/xorg.conf
$ sudo ln -s ~/etc/sddm/theme.conf /etc/sddm.conf.d/theme.conf
$ sudo cp ~/.config/awesome/theme/wallpapers/* /usr/share/sddm/themes/Sugar-Candy/Backgrounds # Copy custom wallpapers
$ sudo cp ~/etc/sddm/themes/Sugar-Candy/theme.conf.user /usr/share/sddm/themes/Sugar-Candy/theme.conf.user
$ sudo ln -sf ~/etc/sddm/scripts/Xsetup /usr/share/sddm/scripts/Xsetup

About

Modest but effective dotfiles

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages