Just my dotfiles

dc0d345 [waybar] Fix double unit for disk module

11 days ago

4cdba62 [waybar] Add volume slider

21 days ago


These are my dotfiles, not much more to say.


No additional software is needed to make use of these dotfiles. However, most environment variables are set through environment.d(5) and when the user session isn't started through systemd, 30-systemd-environment-d-generator is invoked to set these environment variables.

  • EDITOR is set to vim
  • PAGER is set to less
  • gbt is used to render the zsh prompt if it's installed


ohmyzsh plugins

A few plugins are activated by default:

  • dotenv
  • git
  • vi-mode
  • zsh-autosuggestions

Several other plugins are loaded if the relevant commands are found in $PATH:

  • bazel
  • docker
  • docker-compose
  • gcloud
  • gh
  • gpg-agent
  • kubectl
  • terraform
  • virtualenvwrapper

Required software for graphical environments listed below


alias home="git --work-tree=${HOME} --git-dir=${HOME}/.files.git"

home init &&
home remote add origin https://git.sr.ht/~evybongers/dotfiles &&
home fetch &&
home reset --hard origin/main &&
home branch -m main &&
home submodule update --recursive --init &&
home branch --set-upstream-to=origin/main main &&
home remote set-url --push origin git@git.sr.ht:~evybongers/dotfiles

#GnuPG agent

These dotfiles configured aliases and shell environment in such a way that most software these dotfiles apply to adhere to the [XDG Base Directory specification][xdg-base-dir]. For GnuPG agent specifically, this results in unusable systemd units because GnuPG uses [a predictable subdirectory][gnupg-socket-dir] for the sockets.

xdg-base-dir gnupg-socket-dir

The socket directory name is based on a hash the GnuPG home directory, which is part of this dotfiles and therefore depends on the user's home directory. As a result, the only way to have function systemd sockets for GnuPG, is by manually specifying them:

GNUPG_SOCKET_DIR="$(gpgconf --list-dirs socketdir)"
systemctl --user enable dirmngr@${GNUPG_SOCKET_DIR}.socket
systemctl --user enable gpg-agent-browser@${GNUPG_SOCKET_DIR}.socket
systemctl --user enable gpg-agent-extra@${GNUPG_SOCKET_DIR}.socket
systemctl --user enable gpg-agent-ssh@${GNUPG_SOCKET_DIR}.socket
systemctl --user enable gpg-agent@${GNUPG_SOCKET_DIR}.socket

#Graphical environments

To make use of configured features, some additional software needs to be installed as well.

  • sway (SwayWM)
  • waybar (status bar)
    • pydbus (custom modules: darkmode and spotify)
  • swayidle and swaylock (lock screen)
  • wlogout (shutdown/restart helper)
  • wofi (launcher)
  • pactl (libpulse; audio controls)
  • brightnessctl (screen brightness control)
  • wob (overlay bar)
  • playerctl (media controls)
  • blueman-applet (bluetooth tray icon)
  • grim (screenshot utility, optional)
    • jq (filtering visible windows)
    • slurp (select screen region)
    • swappy (screenshot editor)
  • kanshi (dynamic output configuration)
  • darkman (dark and light mode switching)
    • geoclue (determining location)
  • batsignal (battery warnings)