Skip to content

alecigne/dotfiles

Repository files navigation

Dotfiles

My dotfiles (see definition below), managed using the GNU Stow symlink farm manager.

This repo is used in conjunction with my Ansible-based Debian configuration to document/automate the setup/configuration of my personal workstations.

Table of contents

Dotfiles?

The idea of dotfiles is explained here.

User-specific application configuration is traditionally stored in so called dotfiles (files whose filename starts with a dot). It is common practice to track dotfiles with a version control system such as Git to keep track of changes and synchronize dotfiles across various hosts.

Branching strategy

Every environment I use has its own variation of dotfiles. The master branch is my “main” config (personal workstations). Variations, such as dotfiles adapted to Termux, are kept in separate branches.

About GNU Stow

I use GNU Stow to manage symbolic links to my dotfiles. You can read a short GNU Stow tutorial in my public notes (also available on Github as a “source” Org file).

The stow.bash script automatically stows the packages in the home directory.

Packages

Alacritty

Alacritty is a cross-platform, OpenGL terminal emulator.

cmus

cmus is a small, fast and powerful console music player for Unix-like operating systems.

Common Lisp

My Common Lisp (SBCL) configuration.

ASDF

Another System Definition Facility, a build system for Common Lisp.

This includes the configuration for ASDF’s source-registry. More info here.

SBCL

SBCL, a high performance Common Lisp compiler.

cVim

cVim, an extension adding Vim-like bindings to Google Chrome.

Just load this once in Chrome:

set localconfig
let configpath = '/path/to/.cvimrc'

Emacs

My Emacs configuration, included as a submodule.

Git

My Git configuration. Aliases include a selection of git aliases from the gitalias repository, organized with org-babel for more readability. Please go to the original source for reference.

About the .gitalias.org file:

  • Every section has a Noweb reference.
  • Everything is then fed to a main code block through Noweb (see the bottom of the raw Org file).
  • The result after org-babel-tangle is a .gitalias file.

GnuPG

My GnuPG config files.

Gradle

Gradle settings.

i3

My config for the i3 window manager, including my i3status configuration.

Ledger

My Ledger configuration.

Maven

Settings for Apache Maven.

Pass

My passwords, managed with pass, the standard unix password manager. This is a private submodule pointing to a repository hosted on my local network. Although passwords are safely encrypted with GnuPG, I prefer not to make these files public.

Polybar

Polybar, a fast and easy-to-use status bar. Not used at the moment.

Rclone

My rclone configuration file (encrypted).

Rofi

Rofi, a window switcher, application launcher and dmenu replacement. Used in combination with greenclip.

StumpWM

My StumpWM config, included as a submodule. For when I’m in the mood to experiment.

tmux

tmux, a terminal multiplexer.

urxvt

urxvt, a lightweight terminal emulator. Not used at the moment, replaced by Alacritty.

VSCode

My VSCode config. I keep $HOME/.config/Code/User/settings.json under version control and a list of extensions. A script will install them automatically; I can get them through code --list-extensions.

Wallpapers

Good resources:

Xmodmap

My Xmodmap config.

Zsh

A great shell.