____ _ _
(| \ | | o | |
| | __ _|_ | | | | _ ,
_| |/ \_| |/ | |/ |/ / \_
(/\___/ \__/ |_/|__/|_/|__/|__/ \/
|\
|/
Welcome! These are the dotfiles that I use in my daily-driver Void system. The goal was to build a comfy, minimalist system that doesn’t take me out of my workflow. For that reason, I’m using Emacs Keybinds pretty much everywhere. If you don’t need/want that, simply don’t install xkeysnail
.
- Distribution: Void Linux
- Window Manager: bspwm
- Shell: Bash
- Terminal: Urxvt
- Widgets: Eww
- Application Launcher: Rofi
- Notification Daemon: End
- Write an install script: It’s still a pain to get these dotfiles to run.
- Replace xkeysnail with kmonad: Xkeysnail keybinds don’t always work and are hard to debug (also Haskell is cool).
- Setup i3lock screen: A blank white screen isn’t exactly aesthetic.
- Fix external monitor setup: Since I’m using a high DPI notebook it’s a pain to use a second (usually low-DPI) monitor. Font and UI size gets all messed up.
The following is a list of the most important packages I use on my Void installation. Just install their dependencies/build tools as well.
picom
firefox
gtk3
neovim
zathura
rofi
sxhkd
bspwm
i3lock-color
eww
end
xkeysnail
I’m using my own fork of Kenneth Sundqvist’s Key Jump extension to allow for keyboard-only navigation in Firefox.
I wanted to be as flexible as possible when it comes to color schemes and dark/light themes, so I’m managing all colors via Xresources. Unfortunately, many programs use their own configuration files for color customization and don’t care about Xresources. To get around that limitation, I’m using template versions of these config files which contain placeholders for Xresources colors. I then run a script to fill those placeholders using the corresponding Xresources colors. Files starting with three ___underscores are templates.
Some commands, like xkeysnail
and poweroff
have to be run with sudo
, which is a problem if we want to use them in scripts. To avoid being prompted for a password when running these commands, we can add the following line to the sudoers
file, using sudo visudo
:
<USER> ALL=NOPASSWD: <PATH TO COMMAND>
Alternatively, we can create a new file in /etc/sudoers.d
and manage the commands there. To add the most common commands, you can use the following command
cat <<EOT >> /etc/sudoers.d/nopasswds
$USER $HOSTNAME = (root) NOPASSWD: /sbin/shutdown
$USER $HOSTNAME = (root) NOPASSWD: /sbin/reboot
$USER $HOSTNAME = (root) NOPASSWD: /sbin/wpa_supplicant
$USER $HOSTNAME = (root) NOPASSWD: /sbin/poweroff
$USER $HOSTNAME = (root) NOPASSWD: /bin/xkeysnail
$USER $HOSTNAME = (root) NOPASSWD: /bin/light
EOT
Version 9.31 of rxvt-unicode
introduced a very annoying bug regarding the terminal prompt. Due to a race condition, the prompt sometimes starts in the middle of the terminal window. This is apparently “intended behaviour” and not subject to change.
My solution is to downgrade the package to version 9.3. Unfortunately, the XBPS repository does not store old releases, so we have to build it from source. I have a separate repository that contains the necessary build config, leveraging xbps-src
. Just run the following commands.
git clone https://github.com/lucalabs-de/void-packages
cd void-packages
./xbps-src binary-bootstrap
./xbps-src pkg rxvt-unicode
xbps-install --repository hostdir/binpkgs rxvt-unicode