Pierre Neidhardt 315f2b6926 pkglists/guix: Add conkeror, gifsicle, git:credential-netrc, xrdb, xss-lock 2 years ago
.asy f9179fda93 Replace TikZ samples for Asymptote samples 5 years ago
.config f009dd08ae config/cron: Update with mcron 1.1.1 fixes 2 years ago
.emacs.d f80bd2cd85 Emacs: Update config to 26 2 years ago
.gnupg 41c01f84a6 gnupg/gpg.conf: Comment out MIT keyserver 2 years ago
.guix-config 6055ccca35 guix-config/config: Use ntfs-3g 2 years ago
.guix-packages 4c49a2ac4d guix-packages/emacs: Remove 2 years ago
.local fbbc97ac21 local/bin/homeclean: Clean more history files 2 years ago
.mpv 6ae7522f07 mpv: Set "i" to default metadata display 2 years ago
.pkglists 315f2b6926 pkglists/guix: Add conkeror, gifsicle, git:credential-netrc, xrdb, xss-lock 2 years ago
.xkb b561cbd3e5 Map Ctrl+Escape to Caps Lock 3 years ago
.Xresources 128948f989 Urxvt: Remove config 3 years ago
.conkyrc 724ebceb3c conky: Document conky race condition with pulseaudio's pactl 2 years ago
.gitconfig d0c8c8f661 gitconfig: Add spacing 2 years ago
.gitignore 02b58cc380 Emacs: Move user-emacs-directory to cache 2 years ago
.mailcap 5984eda22a mime: Init mimeapps.list 2 years ago
.profile a01a7e2297 profile: Don't set volume with amixer since Pulseaudio does better 2 years ago
.toprc ae67889999 top: Init 2 years ago
.uncrustify.cfg 69999c95c0 Uncrustify: Remove blank lines before/after '}'/'{' respectively 4 years ago
.units ebb2a1e518 units: Use currency.units from the user profile 2 years ago
.xbindkeysrc d6f59fe769 xbindkeysrc: Toggle-mute Pulseaudio 2 years ago
.xinitrc 0ae61b0058 ssh: Move to GPG 2 years ago
.xprofile 1deece9750 xprofile: Add 'conkeror' to browser list 2 years ago
.xsession 15d57bffe1 xsession: Use 'exec' 2 years ago 6b44c355ed README: Replace script list with home* script description 2 years ago



I use of Emacs for almost everything, including my window manager (EXWM). See my Emacs pro-tips.

As such, the more-or-less advanced configurations of my former favourite Unix programs are gone (Awesome, cmus, fish, fzf, Mutt, newsbeuter, ranger, urxvt, zathura, zsh). You can search for them before the git commit README: The Big Emacs Shift.


For the list of programs I currently use, see the .pkglists/ folder.

The homeinit script fully bootstraps a user profile with required files, folders, symlinks applications.

The homeclean script removes trash files, caches and warns if critically private data is found (e.g. PGP keys).

The homesync script updates the package lists, prints the status of all known projects and optionally pushes the unmerged changes upstream.

As for managing a dotfiles repository, there are various approaches.

Direct versioning

Git makes it possible to use your home folder as a git repo, thus versioning all files directly.

git init
git remote add origin <repo>
git fetch
git checkout master

GNU Stow

GNU Stow lets you symlink a project's files to an arbitrary folder.

The simplest setup would be to clone the dotfiles to, say, ~/dotfiles then run

cd ~/dotfiles
stow .

This has several advantages over direct versioning:

  • Subfolders in home are not subject to being included into the dotfiles git repository. This is especially relevant for projects under a version control system other than git.

  • No need for a .gitignore.

  • Simplified file control (add/remove/etc.).

  • You can fine-tune which program configuration to synchronize on a per-system basis.

  • You can manage several configurations for the same programs.