- Python 42.2%
- QML 16.3%
- Shell 13.8%
- JavaScript 13.6%
- Lua 10.8%
- Other 3.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| bash | ||
| bat | ||
| bspwm | ||
| dunst | ||
| ghostty | ||
| helium | ||
| hypr | ||
| irssi | ||
| kitty | ||
| mattermost | ||
| misc | ||
| murmur | ||
| nvim | ||
| pi | ||
| picom | ||
| polybar | ||
| pypr | ||
| qtile | ||
| quickshell | ||
| rofi | ||
| satty | ||
| sesh | ||
| starship | ||
| sxhkd | ||
| system | ||
| templates | ||
| themes | ||
| tmux | ||
| waybar | ||
| wireplumber | ||
| zellij | ||
| zsh | ||
| .gitignore | ||
| alacritty.toml | ||
| authorized_keys | ||
| catppuccin-macchiato.toml | ||
| commit-template.txt | ||
| dir_colors | ||
| fb-clean-my-feeds_settings.json | ||
| gitconfig | ||
| gitignore | ||
| mostrc | ||
| neofetch | ||
| nord | ||
| README.md | ||
| ticker.yaml | ||
| Xresources | ||
Dotfiles
Personal configuration files for a keyboard-driven Linux desktop. Currently using
Arch Linux with Hyprland or Qtile on Wayland, plus a legacy bspwm/X11 config.
Coordinated Nord, Dracula and Catppuccin Mocha profiles are documented in
themes/README.md. Nord remains the fallback.
Companion shell scripts live in a separate repository: duct-tape - backup helpers, additional Rofi helpers, notification scripts, etc.
Before deploying the Rofi/Waybar consumer configs, run desktop-theme install nord --no-reload from the companion toolbox: their imports require the initial
generated palette. Routine desktop-theme set NAME switches stay outside Git.
Then symlink configs to ~/.config/ as needed:
ln -s ~/dotfiles/hypr ~/.config/hypr
ln -s ~/dotfiles/nvim ~/.config/nvim
# etc.
rofi/README.md- Vendored themes, application launcher and power menuhypr/README.md- Hyprland keybindings and dependenciesqtile/README.md- Qtile Wayland setup, dependencies and checkspi/README.md- Symlinked Pi configuration (no secrets/runtime), Nord footer and Powerline appearance patches
Waybar
The custom/codex-limit module refreshes the remaining weekly Codex quota every
60 seconds through ~/.local/bin/codex-limits (also used by Quickshell). Its live
probe has a 20-second RPC timeout and a 25-second outer timeout, then falls back
to the latest local snapshot. The module stays Nord
blue at >=30% (#81a1c1), yellow from 20% to <30% (#ebcb8b), orange
from 10% to <20% (#d08770), and red below 10% remaining (#bf616a,
also used for unavailable data in Quickshell).
The tooltip includes the additional credit balance, available bonus reset count,
and each available reset's expiration in local time. Bonus resets come from the
same RPC via codex-limits >= 0.2.2; they are not automatically redeemed.
Quickshell shows one ★ per available bonus reset before the percentage,
without spacing between stars: dark gray (#3b4252) normally, Nord red
(#bf616a) individually when that reset expires in strictly less than 7 days
(future expiration only), or Nord yellow (#ebcb8b) on orange/red backgrounds
for contrast. Robot, quota text and backgrounds retain their
original colors. The shared JSON exposes reset_expiring, an array of booleans
(one per available reset, sorted by expiration; unknown dates remain gray),
and reset_status: none, available, or expiring.
Offline tests: python3 waybar/test-codex-limit.py.
The module intentionally has no Waybar signal: defining one disables polling
by interval. It requires jq, GNU timeout, Codex CLI, and the companion
codex-limits
script.
The indicator adds ~/.npm-global/bin to its PATH so it can find the locally
installed Codex CLI even when the graphical session has a minimal environment.
System configuration
The files under system/battery-care/ implement the
ASUS 80% battery charge limit. They are copied to their privileged locations by
the install-battery-care command from the companion duct-tape repository;
they are not symlinked into /etc because early-boot configuration should not
depend on a user home directory being available.