Skip to content
pablassoPublic

About

Configuration files, because we're not in 1980 anymore.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

Dotfiles

I try to maintain here only what I'm currently using. Everything else gets deleted.

Setup

Clone this repo to ~/.dotfiles and use GNU Stow to symlink what you need:

cd ~/.dotfiles
stow editors
stow git
stow herdr
stow rex

Each top-level folder is a stow package. Running stow <folder> creates symlinks from the folder's contents into ~, mirroring the directory structure. For example, stow editors links:

  • editors/.emacs → ~/.emacs
  • editors/.config/nvim/init.vim → ~/.config/nvim/init.vim

Run Stow from ~/.dotfiles so it reads this repo's .stowrc, which enables --no-folding automatically for every package. New links point to individual files rather than whole directories, keeping app-generated state out of the repo. Existing directory symlinks are not automatically converted.

Stow will not overwrite existing files. If a target already exists, it will error out. Back up or remove the conflicting file first, then re-run.

Packages

Folder Contents
editors Emacs, Neovim, EditorConfig
git gitconfig, global gitignore
herdr Herdr config (no session state, logs, or sockets)
rex Rex config (init.lua)
rexurrect-systemd rexurrect autosave timer for Linux (systemd user units)
ssh SSH client config
tmux tmux.conf
tty Ghostty terminal config

rexurrect

rexurrect saves Rex sessions and restores them when the Rex server restarts. The auto-restore hook (rex) and the zsh recorder (zshrc.local) are already here and stay inactive until ~/.cargo/bin/rexurrect exists. On a new machine:

  1. Stow rex and source zshrc.local (see Setup).
  2. Install:
    • macOS: cargo install --git https://github.com/cemcatik/rexurrect --locked.
    • Linux: build a Linux-patched checkout with cargo install --path /path/to/rexurrect --locked. Until upstream supports Linux restoration, the checkout must fix the macOS-only shell launch used when replaying scrollback.
  3. Autosave every 15 minutes:
    • macOS, from a Rex pane: rexurrect autosave install
    • Linux: stow rexurrect-systemd && systemctl --user daemon-reload && systemctl --user enable --now rexurrect-autosave.timer. Also run loginctl enable-linger if the Rex server runs while you're logged out.
  4. Check: rex config check prints a rexurrect auto-restore line, and rexurrect save && rexurrect list shows a snapshot. A server holding only an idle shell in ~ has nothing to save.

Ghostty over SSH

Ghostty sets TERM=xterm-ghostty. If a remote host does not know that terminfo entry, shell editing can behave strangely (for example, backspace may not delete). Install the local terminfo on the remote host with:

infocmp -x xterm-ghostty | ssh <host> 'tic -x -'

Fallback: set TERM=xterm-256color for that host in ~/.ssh/config.

Unlinked

The unlinked/ folder contains files that are not meant to be stowed. They need to be sourced or referenced manually.

  • zshrc.local: Shell config (aliases, history, tools, PATH). Add this to your ~/.zshrc:

    source ~/.dotfiles/unlinked/zshrc.local
  • tmuxline_snapshot.conf: Tmux status bar theme generated by tmuxline.vim. Already referenced by .tmux.conf via source-file, so no extra setup needed if you stow tmux.

  • rexurrect.plugin.zsh: Unmodified copy of rexurrect's zsh recorder, which records each Rex block's last command. Already sourced by zshrc.local on machines where ~/.cargo/bin/rexurrect exists. The auto-restore hook in rex/.config/rex/init.lua is guarded the same way. To refresh it:

    curl -fsSL -o ~/.dotfiles/unlinked/rexurrect.plugin.zsh \
      https://raw.githubusercontent.com/cemcatik/rexurrect/main/rexurrect.plugin.zsh

About

Configuration files, because we're not in 1980 anymore.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages