Andrejus e686b6396d Add spinning donut screensaver with matrix rain
Terminal screensaver written in C, triggered by tmux lock-after-time
(180s idle), bind S, or `donut` alias. Features:

- Spinning torus with precomputed trig tables, randomized rotation
- Matrix rain overlay — donut luminance colors the rain characters
- 64-shade teal foreground palette with gradual dimming over time
- Chunky 7x5 clock with shadow, blinking colon, periodic drift
- Activity time display below clock (read from heartbeat state file)
- Rim lighting and ambient occlusion on donut edges
- RLE escape state machine — only emits SGR on shade transitions
- Row-skip rendering — empty/leading/trailing regions use cursor jumps
- Projection runs at adaptive rate (24fps bright, 6fps dim)
- select()-based frame pacing, deep sleep after 2hr (1fps)
- Resume detection — flushes stale PTY output after sleep/lock
- Mouse click to quit (SGR + X11 protocols, release filtered)
- write_all() retries partial writes, SIGPIPE handled gracefully
- Alternate screen buffer preserves shell scrollback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-27 16:56:44 +00:00
2026-02-13 14:59:25 +00:00
2026-02-13 15:25:26 +00:00
2026-02-13 15:13:12 +00:00
2026-02-13 15:13:12 +00:00
2024-03-08 00:04:34 +00:00

andrejusk/dotfiles

Dotfiles CI status badge

A collection of dotfiles and install scripts to set up my development environment 🛠️ 📂 🚀

Usage

A local repository can be installed and updated by running:

./install

A specific script can be installed by running:

./install script1 script2 ...

Automated setup

This repository can be installed without a local copy by invoking the setup-new script directly via curl:

# Inspect source
curl -s https://raw.githubusercontent.com/andrejusk/dotfiles/HEAD/script/setup-new | less

# Run
curl -s https://raw.githubusercontent.com/andrejusk/dotfiles/HEAD/script/setup-new | bash

Keyboard shortcuts

Key Mnemonic Action
^A All commits Git log browser with diff preview
^B Branch Git branch checkout with log preview
^E Edit Find and edit file in $EDITOR
^F Find Find in files (rg + fzf), open at line
^G Go remote SSH/codespace connect (local only)
^J Jump Zoxide directory jump
^K Kommands Command help lookup (tldr/man)
^N Navigate Tmux session create/attach
^O Open Open repo/PR/issues/actions in browser
^P Project Switch to workspace project
^R Reverse Fuzzy search command history (fzf built-in)
^S Session Browse & resume Copilot CLI sessions
^X eXecute Process manager (fzf + kill)
^Y Yank stash Browse git stashes with diff preview
Description
Dotfiles for my Linux environment
Readme 626 KiB
Languages
Shell 72.2%
C 24.5%
Python 2.1%
Dockerfile 1.2%