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:
- Emacs, my text editor, with an extensive literate elisp configuration hosted at https://github.com/quarkQuark/emacs-config. The best way to read it, however, is at https://quarkQuark.github.io/config/emacs, where it is built into its own webpage.
- My configuration for the XMonad tiling window manager is in a separate repository because it is structured as a Haskell project.
There is also a separate repository containing my disorganised collection of useful shell scripts.
- Install optional CLI dependencies:
exa neofetch neovim starship
- 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
- 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")'
- To install the plugins for
neovim
, installgo
(to buildvim-hexokinase
) andpython-pynvim
then follow the README for Vim-plug. My neovim configuration also needs the packagesnnn
,fzy
andripgrep
. - 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 installingstack
andghc
throughghcup
, which can also be installed from the AUR). - 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.
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
.
- Initialise
.dotfiles-git
as a local bare repositorymkdir $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
- Add some config files to back up (
.bashrc
used as an example)git add .bashrc git commit -m "Add .bashrc"
- Create a new GitHub repository called
dotfiles
and pushdotfiles remote add origin git@github.com:quarkQuark/dotfiles.git dotfiles push -u origin master