"A man and his tools make a man and his trade". -Vita Sackville-West
This repository contains all configuration files for my desktop setup. The entire system configuration is defined in a declarative way, so recreating it and rolling back and forth can be done with confidence.
There's a few sets of files here:
dotfiles: These are user-specific configuration for applications. This
includes compositor setup, neovim configuration, terminal theme, and settings
for a lot of other applications. Symlinks are placed in the home directory
pointing to the files inside this repository, so it's easy to track any
changes using just
ansible: Some ansible playbooks to configure dconf-based applications and
install flatpaks I use. Due to how ansible handles
sudo, it can't be used for
anything system wide. There's also bootstrapping issues in trying to use it to
configure pristine systems, so the scope of what ansible handles will likely
continue being rather narrow.
packages: These are meta-packages that install all desired packages and
configure them. See
packages/README.md for details.
sysconfig: This is a deprecated system-wide configuration package, and is
gradually being moved into
v: My portable neovim setup. See
v/README.md. Directory name is due to my
shortcut alias to run it:
I use my own rust-based tool (see
src/) to keep this repository in sync with
my actual dotfiles using symlinks.
It gets the job done, and builds to a static binary, which makes bootstrapping
simpler. I'd love to drop my own custom tool and just rely on something
maintained by someone else. However, I've yet to find something that does
homesick used to work, but it's given me issues with major ruby
updates over the years. A binary-compiled
homesick clone would be great.
Note: This is legacy and being repaced by
The system configuration is installed by an ArchLinux package. See sysconfig/README.md for more details on that.
sway: desktop compositor
waybar: system status bar
neovim: code editor (using LSP, tree-sitter, and quite a few plugins)
zsh: shell and main working environment (it's designed for interactive use)
foot: very fast terminal emulator in C with great defaults
gammastep: screen colour temperature based on sunrise and sundown
darkman: automatic dark mode based on sundown and sunrise
I try to upstream any fixes, tweaks and improvements whenever possible, and limit this repository to customisations and very opinionated settings only.
I try to keep things relatively well documented. Some settings or overrides require attention only once every couple of years (e.g.: Firefox style overrides), and keeping comments around lets me figure out what existing code does, and where I got it from.
git blame and
git log $FILE are generally be rather useful too.
rustup default stable.
Need to initialise himitsu:
Also need to initialise
nix-channel --add https://nixos.org/channels/nixpkgs-unstable nix-channel --update
Copyright 2012-2022, Hugo Osvaldo Barrera firstname.lastname@example.org
This repository is licensed under the ISC licence. See LICENCE for details.