Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
#+TITLE: Dotfiles I am in the process of porting my configurations over to [[https://github.com/nix-community/home-manager][Home Manager]]. This branch will feature no further updates and will be archived once done. ----- * 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: - 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 [[https://github.com/quarkQuark/xmonad-quark][a separate repository]] because it is structured as a Haskell project. There is also a separate repository containing my disorganised collection of [[https://github.com/quarkQuark/scripts][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 [[https://github.com/quarkQuark/scripts][shell script repository]]. #+begin_src shell 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 #+end_src 3. Install Emacs and generate the shell configuration files from [[./.config/Shells.org]] by running #+begin_src shell emacs --batch -l org --eval '(org-babel-tangle-file "~/.config/Shells.org")' #+end_src 4. To install the plugins for =neovim=, install =go= (to build =vim-hexokinase=) and =python-pynvim= then follow the README for [[https://github.com/junegunn/vim-plug][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 [[https://github.com/spicetify/spicetify-cli][Spicetify]]. I use the [[https://github.com/RandomRuskiy/Themes/tree/master/Tree-Green][Tree-Green]] theme, and extensions can be downloaded from [[https://github.com/3raxton/spicetify-custom-apps-and-extensions][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 #+begin_src shell 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 #+end_src 2. Add some config files to back up (=.bashrc= used as an example) #+begin_src shell git add .bashrc git commit -m "Add .bashrc" #+end_src 3. Create a new GitHub repository called =dotfiles= and push #+begin_src shell dotfiles remote add origin git@github.com:quarkQuark/dotfiles.git dotfiles push -u origin master #+end_src