Configuration files for my machines, managed with GNU Stow.
Install these before running the install script:
sudo apt install \
stow \
tmux \
zsh \
git \
pandoc \
wget \
unzip \
fontconfigsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Due to ABI grammar issues, tree-sitter often needs to be built from source:
git clone https://github.com/tree-sitter/tree-sitter.git
cd tree-sitter
git checkout v0.25.0
make
sudo make install
sudo ldconfigDue to issues with Emacs on COSMIC, Emacs is built from source with --with-pgtk:
cd /opt/
sudo mkdir emacs
sudo chown $USER:$USER emacs/
git clone git@github.com:emacs-mirror/emacs.git --single-branch --branch emacs-30
cd emacs/
./autogen.sh
sudo apt install libsqlite3-dev
./configure --with-tree-sitter --with-pgtk --with-sqlite3
make bootstrap -j$(nproc)
# quick test before install
src/emacs -Q
sudo make installgit clone https://github.com/roddarjohn/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.shThe install script will:
- Symlink all config files into
$HOMEvia stow (zsh,tmux,emacs) - Install tpm (tmux plugin manager)
- Install the Meslo Nerd Font
- Configure the COSMIC Terminal font
After install, open tmux and press prefix + I to install tmux plugins via tpm.
The Emacs configuration uses literate programming via org-babel. The main
config lives in emacs/.emacs.d/init.org, which tangles to emacs-config.el.
Key packages: straight.el (package manager), magit, forge, corfu, vertico, consult, embark, eglot, casual-suite, copilot, org-mode, mu4e.
Minimal .zshrc — sets Emacs as the editor and configures oh-my-zsh.
Configures key bindings and the tmux-nova status line theme. Uses tpm for plugin management.
Additional guides live in docs/:
- Syncthing setup — peer-to-peer file sync across machines and Android
On first launch, straight.el will clone and build all packages. This takes a few minutes. Subsequent launches are fast.
For Dropbox-like sync of org files across machines and mobile (Android/Orgzly Revived), see docs/syncthing-setup.md.
Install:
sudo apt install syncthing
systemctl --user enable --now syncthingThen open http://localhost:8384 to configure.