Configuration for various pieces of software plus some useful scripts. On Linux, I use i3 for a window manager and kitty as a terminal emulator, on Mac Aqua and iTerm2. Everywhere, I run tmux for multiplexing, bash as shell and vim as editor.
Software recommendations/requirements:
- stow (only required for setup)
- jq
- ripgrep
- vim and emacs (gasp)
- pyenv (with python 3.8+)
- i3
- xterm
- kitty
- rofi
- dunst
- dzen2 (for
x11/bin/dvol
)
This repo uses chezmoi
to manage its installation. First, install chezmoi, then run chezmoi init https://github.com/delucks/dotfiles.git
.
Next, create a file ~/.config/chezmoi/chezmoi.toml
with the following contents, editing as necessary:
[data]
laptop = false
wifi_interface = "wlp3s0"
wired_interface = "enp4s0"
cpu_thermal_path = "/sys/devices/virtual/thermal/thermal_zone1/temp"
uses_wal = false
These variables will be interpolated into the templates in this repo to customize the current machine. After this file is created, run chezmoi -v apply
to set up the configurations. If you're planning on using pywal
to manage colorschemes, set "uses_wal", install pywal, and generate a scheme based on your chosen background first.
I use either i3 or herbstluftwm depending on the graphical capacity of the machine. The i3 session configured here is started and managed using systemd user units, including all the software that makes up the "desktop environment" of sorts. This includes a companion daemon for i3, i3-buddy
, which implements detection of xrandr changes, a Quake terminal, and other features. The i3-buddy
companion daemon requires the following python packages in user scope and a python version greater than 3.8 (I use 3.10).
i3ipc
dbussy
xcffib
systemd-python
If you're using the temperatured
script to set OpenRGB color, you'll also need:
py3nvml
openrgb-python
You can install all these requirements with python -m pip install --local i3ipc dbussy xcffib systemd-python py3nvml openrgb-python
.
Some useful scripts are included in this repository. If you're using my dotfiles, they will be symlinked into $HOME/bin
. My favorites:
bin/fileset.py
: compare the contents of two files as if each were a set delinated by newlines.bin/backlight
: adjust the monitor brightness of your Linux laptopbin/license
: retrieve one of a number of common open-source licensesbin/gh-install
: install a binary from the latest release of a project on Githubbin/block
: Blur-LOCK your Linux desktopbin/rofi-man
: Open manual pages in a new terminal using rofi.bin/rofi-tmux
: Open an existing tmux session in a new terminal using rofi.