Skip to content

quarkQuark/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Notable programs

Most of my user configuration files are stored in this repository. However, two of the programs with the most interesting configurations are hosted in their own repositories. These are:

There is also a separate repository containing my disorganised collection of useful shell scripts.

Setup with XMonad on a fresh Arch Linux install

  1. Install optional CLI dependencies: exa neofetch neovim starship
  2. Clone this repository as well as my shell script repository.
    alias dotfiles='git --git-dir=$HOME/.dotfiles-git/ --work-tree=$HOME'
    echo .dotfiles-git >> .gitignore
    git clone --bare --recurse-submodules git@github.com:quarkQuark/dotfiles $HOME/.dotfiles-git
    dotfiles checkout
    dotfiles config --local status.showUntrackedFiles no
    git clone git@github.com:quarkQuark/scripts $HOME/.scripts/repo
        
  3. Install Emacs and generate the shell configuration files from ./.config/Shells.org by running
    emacs --batch -l org --eval '(org-babel-tangle-file "~/.config/Shells.org")'
        
  4. To install the plugins for neovim, install go (to build vim-hexokinase) and python-pynvim then follow the README for Vim-plug. My neovim configuration also needs the packages nnn, fzy and ripgrep.
  5. Xmonad is built via stack-static from the AUR. Arch has packages available from the standard repositories, but these are prone to breakage due to dynamic linking. See https://github.com/quarkQuark/xmonad-quark for installation instructions. (I have recently switched to installing stack and ghc through ghcup, which can also be installed from the AUR).
  6. Spotify can be themed and extended using Spicetify. I use the Tree-Green theme, and extensions can be downloaded from here. The Spicetify configuration file doesn’t lend itself well to source control as it hardcodes the version number, but it can be set up quite quickly.

Initial repositary setup

I store my dotfiles using a git bare repository. This allows me to store files from anywhere in my home directory without messing with existing git repositories. The repository is managed using ordinary git commands, simply replacing the word git with the alias dotfiles.

  1. Initialise .dotfiles-git as a local bare repository
    mkdir $HOME/.dotfiles-git
    git init --bare $HOME/.dotfiles-git
    alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles-git/ --work-tree=$HOME'
    dotfiles config --local status.showUntrackedFiles no
        
  2. Add some config files to back up (.bashrc used as an example)
    git add .bashrc
    git commit -m "Add .bashrc"
        
  3. Create a new GitHub repository called dotfiles and push
    dotfiles remote add origin git@github.com:quarkQuark/dotfiles.git
    dotfiles push -u origin master