Commit Graph

1290 Commits

Author SHA1 Message Date
700da3aa0b Make tmux/tmux.conf a relative symlink to ../.tmux.conf
YADR's Rakefile maps tmux/tmux.conf -> $HOME/.tmux.conf, but the
canonical, customized tmux config has lived at the repo root since
3d2508a (when the relationship was inverted). Re-running rake install
on its own (without the bash installer's subsequent personal-deploy
overlay) was therefore replacing the deployed real .tmux.conf with a
symlink to the older 3987-byte tmux/tmux.conf, dropping the IP/host
status-right and the bumped history limit.

Pointing tmux/tmux.conf at ../.tmux.conf via a relative symlink fixes
this on any machine, regardless of where ~/.yadr lives or which user
owns it: rake install's symlink chain now resolves to the customized
config no matter the install order.
2026-05-06 02:24:32 -07:00
fb80b6dfb2 gitconfig: use absolute include path for .gitconfig.user
The previous `[include] path = .gitconfig.user` was resolved relative to
the config file being read, which — because `~/.gitconfig` is a symlink
to `~/.yadr/git/gitconfig` — meant git looked for the user-identity
override at `~/.yadr/git/.gitconfig.user` instead of the conventional
`~/.gitconfig.user`. Switch to an absolute path so the include picks up
the homedir file regardless of symlink layout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 07:41:12 -07:00
1d7df94a1d install.sh: merge PERSONAL_DIRS contents instead of wholesale replace
The previous deploy_one() did `mv $HOME/<dir> $BACKUP_DIR/<dir>` then
`cp -a $YADR_DIR/<dir> $HOME/<dir>` for every entry in PERSONAL_DIRS.
For dirs the repo only partially populates (notably .local — repo only
tracks .local/bin/), this swept away unrelated user data: the most
recent re-bootstrap moved ~/.local/share/fonts/ (Intel One Mono, Open
Gorton, Roboto Mono, GALLAUDET, code128) into the timestamped backup,
making them appear missing.

Rework deploy logic:
- deploy_file: copies one file/symlink, backing up only the conflicting
  destination (if any). Idempotent via paths_equivalent() so re-runs
  with no changes produce no output and no spurious backups.
- deploy_dir: walks the repo's tree for that dir and deploys each leaf
  via deploy_file. Files in $HOME the repo doesn't know about are left
  untouched. Subdirs are mkdir'd as needed.

Also: track the personal fonts at .local/share/fonts/ so they redeploy
on every install, and run fc-cache -f at the end so apps see them
without a logout/login.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 07:28:40 -07:00
065686f341 spam-ascii: "*" dumps entire ~/ascii; alias quotes $0 to preserve it
Some checks failed
Close stale issues / stale (push) Has been cancelled
2026-04-22 07:00:52 -07:00
079bee5774 spam-ascii: pass -L to find so it dereferences ~/ascii when symlinked
Some checks failed
Close stale issues / stale (push) Has been cancelled
~/ascii is a symlink to ~/.yadr/ascii. Without -L, 'find <symlink>'
treats the link itself as the starting point, -type f rules it out,
and fuzzy matches return nothing.
2026-04-21 10:01:08 -07:00
4813512731 spam-ascii: fuzzy-match helper for /spam alias
New .local/bin/spam-ascii POSIX shell script: resolves a pattern to
a file in ~/ascii with this order:

  1. exact filename match
  2. exact name + common ASCII-art extension (.txt/.ans/.asc)
  3. first case-insensitive substring match (sorted alphabetically)

Non-zero exit + stderr-ish error if nothing matches, so /spam
prints 'no match in ~/ascii for: <pattern>' instead of spewing
a missing-file error.

Rewire the irssi /spam alias to call the script instead of
hardcoding 'cat ~/ascii/$0'. Now:

  /spam mario     -> matches ~/ascii/mario.txt or ~/ascii/Mario_art.ans
  /spam MARIO     -> case-insensitive
  /spam nothere   -> 'no match in ~/ascii for: nothere'
2026-04-21 09:48:40 -07:00
7b47e38f53 Add ascii art collection 2026-04-21 09:41:46 -07:00
a6c2b5de40 irssi/config: add /spam alias — cat file from ~/ascii to channel
/spam <name> runs 'cat ~/ascii/<name>' via EXEC -out, which sends
each line of output as a message to the current channel/query. Good
for posting ASCII art.

Usage: /spam <filename>  (file lives at ~/ascii/<filename>)
2026-04-21 09:32:48 -07:00
4ca7f9714d rainbow-dark: drop rainbow dashes, add rainbow-timestamp.pl
- rainbow-dark.theme: revert line_start back to the stock '-!-' pattern.
- .irssi/scripts/autorun/rainbow-timestamp.pl: new autorun script that
  hooks 'print text', matches a leading HH:MM[:SS], and reruns it
  through rainbow.pl's make_colors (same palette [4,8,9,11,12,13],
  same 2-char stride, same phase-advance on each line). The result
  is that every successive timestamp is a 5-character rainbow
  gradient that also shifts starting colour line-to-line.
2026-04-21 09:27:03 -07:00
2dbc05bc0b irssi/config: revert active theme to rainbow-dark 2026-04-21 09:21:24 -07:00
dcde950329 Add claude.theme (ports Claude Code's default dark palette)
claude.theme: a dark irssi theme whose colours map 1:1 to the roles
Claude Code uses in its default dark UI:

  #8c8c8c  dim        timestamps, brackets, connective text
  #f85149  red        errors, netsplits, parts, private msg frames
  #56d364  green      joins, ctcp, dcc, netjoins, quiet activity
  #e3b341  yellow     messages-to-me, /me, statusbar chatter
  #4a9eff  blue       channel names, pubnicks, diff-style accents
  #c9a3ff  magenta    own nick / prompt / notices / hilights
  #4ec9b0  cyan       whois field names, info lines

Uses 24-bit true-colour escapes (%z<rrggbb>) so the shades land
exactly regardless of terminal palette. Requires irssi 1.2+ and a
truecolour-capable terminal (modern xterm/tmux both are).

irssi/config: switch the active theme from rainbow-dark to claude.
2026-04-21 09:15:42 -07:00
92b9e0ec99 irssi: dynamic-nick.pl — set default nick to `|<hostname> at startup
Autorun script so the same drunkendotfiles deploy gives each host a
distinctive nick without per-host config hand-edits. Trims FQDNs to
the short hostname before composing. Static 'nick = "`"' in
config stays as a fallback if the script ever fails to load.
2026-04-21 09:07:09 -07:00
6f86285f71 irssi/config: set nick to backtick 2026-04-21 09:05:54 -07:00
eac005ad3c irssi/config: activate rainbow-dark as the default theme 2026-04-21 09:05:18 -07:00
c5ccf351de rainbow-dark: line_start uses ROYGBIV (7 colours)
R-Y-G-C-B-M was only six. Full spectrum now: red, orange (%y dark
yellow, renders brown-orange on most terminals), yellow, green,
blue, indigo (%b dark blue as the closest ANSI indigo), violet
(%M bright magenta). Stays ANSI-only so it renders reliably
regardless of 24-bit truecolor support.
2026-04-21 09:01:20 -07:00
1d4d454434 rainbow-dark: reset to default.theme + minimal rainbow
Scrap the over-engineered version. Start from irssi's default theme
(already dark-safe) and apply rainbow only where it actually earns
its keep:

- line_start: the leading '-!-' on non-message lines gets a full
  R-Y-G-C-B-M dash sequence instead of blue-blue.
- sb_act_msg: drop the %W (white) on statusbar activity — on a dark
  terminal this was the one stark-white glyph. Re-colour the whole
  activity band as a rainbow escalation: %G (quiet) -> %Y (chatter)
  -> %R (hilight), so urgency tracks the colour.
- sb_act_sep: comma separator drops to %K (dark grey) so the rainbow
  entries stand apart.

Everything else stays untouched from default.theme. No invented
24-bit escapes, no format overrides.
2026-04-21 08:59:13 -07:00
99049754f9 rainbow-dark: swap teal accent for diff-style blue (#4a90e2)
Teal wasn't landing; try diff-header blue instead. Same %z<rgb>
24-bit foreground mechanism, just a different colour value.
2026-04-21 08:54:54 -07:00
415ee5028c rainbow-dark: %z not %Z (lowercase is fg, uppercase is bg)
Previous commit used %Z005f5f, which irssi 1.4 interprets as a
24-bit *background* colour. That rendered as 'teal background
behind each affected character' — easy to miss on short glyphs,
invisible on whitespace. Foreground is %z (lowercase).
2026-04-21 08:52:06 -07:00
92c4f0bdc1 rainbow-dark: use 24-bit true-colour #005f5f for the teal accent
Earlier pass tried %X17 (256-palette idx 23), but %X isn't the
256-colour code in modern irssi — 1.4+ treats %X as a no-op for
unknown sequences, so every intended teal element was silently
falling through to the terminal default (= bright white).

irssi 1.4.5 supports %Z<rrggbb> for 24-bit foreground colour, so
use it directly: %Z005f5f renders as exactly #005f5f (dark teal),
no palette guessing.
2026-04-21 08:50:08 -07:00
6314406506 rainbow-dark: swap dark-grey accents for very dark bluish-teal
Every %K (dark grey / bright-black) swapped for %X17 — 256-colour
foreground 0x17 == palette index 23, RGB #005f5f, a very dark
teal/cyan. Applies to: body text, bracket/punctuation replaces,
message-body dim, connective text in join/part/quit/etc. formats,
dccfile name, whois values, servernotice body, wallop body.

Requires a 256-colour-capable terminal; irssi renders %X17 as
palette 23 when the terminal advertises 256 colour support (most
modern terminals do — .tmux.conf already sets TERM=screen-256color).
2026-04-21 08:44:27 -07:00
50449d73c4 rainbow-dark: more aggressive darkening
- Body text color bumped from %w (light grey, sometimes renders ~white)
  to %K (dark grey / 'bright black'), affecting msgnick and all action
  templates.
- Statusbar / info bg changed from %8 (terminal default, which some
  terminals render as reverse-video white) to explicit %0 (black) so
  the bar is reliably dark everywhere.
- Added color to spots that were falling through to terminal default:
  whois values, servernotice body, wallop_nick, wallop_action body,
  dccfile.
- Expanded 'fe-common/core' formats block to override joins, parts,
  quits, kicks, nick/topic/mode changes, aways etc. — coloured nicks
  via the existing abstracts but the surrounding 'has joined' /
  'changed the topic' verbiage now renders in dim grey instead of
  stark white.
2026-04-21 08:36:05 -07:00
6bbe277ea9 rainbow-dark: less white in message bodies; irssi: /wN window aliases
rainbow-dark.theme:
- Message body text now tinted dim grey (%w) instead of inheriting
  terminal-default (usually stark white) — done via a trailing %w in
  the msgnick template.
- Own nick in public, private, and DCC contexts switches from bold
  white (%W) to bold bright magenta (%M) so 'you' stays distinct but
  stops looking like every other bright-white element.
- Action bodies (public, private, DCC) get the same %w dim-grey tint.

.irssi/config: add W1..W99 aliases so /w1, /w2, ... /w99 jump
directly to that window (pair to the existing bare numeric /1 /2
aliases, for users whose muscle memory has 'w' in it).
2026-04-21 08:25:38 -07:00
af13d65e7d zsh/theme.zsh: drop ruby version from right prompt
Blank RPROMPT after prompt skwp loads so the right side stays clean.
2026-04-21 08:19:34 -07:00
45fc664976 zsh/theme.zsh: restore prezto fpath before loading skwp prompt
The skwp prompt's precmd calls git-info and ruby-info (prezto module
functions that live in ~/.zprezto/modules/{git,ruby}/functions). On
interactive shell startup, something — likely compinit's
insecure-directory pruning when parent dirs are group-writable —
strips those paths from $fpath after pmodload seeded them.

When precmd then references the autoload-declared-but-unfindable
functions, zsh fails to locate the definition file, aborts the
prompt render midway through, and zsh-syntax-highlighting latches
onto the broken half-prompt. Observed symptoms:

  prompt_skwp_precmd: git-info: function definition file not found
  prompt_skwp_precmd: ruby-info: function definition file not found
  zsh: bad math expression: operand expected at '%F{135}%n%...'
  _zsh_highlight_call_widget:2: bad math expression: operand...

Defensive re-seed: before calling 'prompt skwp', prepend the helper,
git, and ruby module function dirs to $fpath if they aren't already
present. Idempotent, cheap, and masks any upstream stripping
regardless of cause.
2026-04-21 08:17:21 -07:00
62add4988d install.sh: install Claude Code if not already present
Adds a step after personal-dotfile deploy that runs Anthropic's
official one-liner installer (curl -fsSL https://claude.ai/install.sh | bash)
when no 'claude' binary is found. No-ops if claude is already on the
machine. Opt out with DRUNKENDOTFILES_SKIP_CLAUDE=1. Install failures
are non-fatal — the rest of the flow still completes.

README: document the new step + the opt-out env var + curl in the
required tools list.
2026-04-21 08:08:12 -07:00
1e39d19ab2 Ensure Prezto submodule is initialized on clone/install
install.sh: use --recurse-submodules on the initial clone, and always
run 'git submodule update --init --recursive' before rake install so a
fresh checkout doesn't leave zsh/prezto empty.

README: document --recurse-submodules for manual clones; mention the
recovery command for existing shallow clones.

Fixes: bad math expression errors and 'no such file or directory:
~/.zprezto/runcoms/zshrc' on fresh shell startup when the Prezto
submodule hadn't been initialized.
2026-04-21 08:06:07 -07:00
e455702f01 Add rainbow-dark irssi theme
Dark-background theme with a full rainbow of accent colors for nicks,
statusbar items, and event markers.

Activate with:
  /set theme rainbow-dark
  /save
2026-04-21 07:58:46 -07:00
23e3c770dd README: add Upgrading section (pull, rake update, install.sh) 2026-04-21 07:49:38 -07:00
bcbb88bddc README: lowercase dissimulo to match handle 2026-04-21 07:29:34 -07:00
18ddfc9ad6 tmux-ip: fix DO metadata path (address -> ip_address)
The DigitalOcean metadata endpoint for reserved/floating IPv4 is
/metadata/v1/{reserved,floating}_ip/ipv4/ip_address, not .../address.
The .../active check works but the wrong IP path returned an empty
body, causing the script to silently fall through to ipify on every
droplet with a reserved/floating IP attached.

Verified on a droplet:
  curl .../reserved_ip/ipv4/ip_address -> 45.55.111.240
  curl .../reserved_ip/ipv4/address    -> (empty)
2026-04-21 07:20:51 -07:00
129d77471b tmux-ip: prefer DigitalOcean reserved/floating IP when on a droplet
If /sys/class/dmi/id/sys_vendor says DigitalOcean and the droplet has
a reserved_ip or floating_ip assigned, use that over the ipify-based
egress IP. Keeps the ipify/hostname -I fallback intact for other hosts.

Gated on the DMI check so non-DO hosts skip the metadata probe entirely
and the tmux status bar refresh stays fast.
2026-04-21 07:10:13 -07:00
41fb30ddc1 Add drunkendotfiles installer and rewrite README
install.sh: curl-pipe installer that clones to ~/.yadr, runs YADR's
native rake install, then layers personal dotfiles on top of $HOME
with backups on collision.

README.md: replace YADR's upstream readme with drunkendotfiles-
specific usage docs, credit, and refresh-from-upstream instructions.
2026-04-21 06:51:13 -07:00
65f583fd2b Scrub hardcoded /home/dissimulo paths; use $HOME / relative symlinks
- Convert 21 absolute-path symlinks into YADR to relative paths
  (e.g. .vimrc -> .yadr/vimrc), so they resolve correctly under
  any user's $HOME after a standard YADR install.
- .fehbg: replace hardcoded background path with $HOME-based one
- .gtk-bookmarks: remove (trivially personal; GTK regenerates)
- .themes/*/index.theme: drop BackgroundImage= lines pointing at
  personal image files that other users won't have.
- .xscreensaver: scrub username from header comment.
- .irssi/config: generic dcc_download_path.
2026-04-21 06:48:06 -07:00
f4d8679398 Increase tmux history limit to 80000 2026-04-21 06:16:16 -07:00
852a682df5 Update claude binary 2026-04-21 06:16:16 -07:00
3d2508a785 Replace .tmux.conf symlink with real file; add IP to status-right, interval 60 2026-04-21 06:16:16 -07:00
0affdd1fb7 Add tmux-ip helper script with public/internal IP fallback 2026-04-21 06:16:16 -07:00
bc9f9d8094 Add dotfiles from home directory
Tracks shell configs (zsh/bash), vim, tmux, irssi, fonts, themes,
and ~/.local/bin scripts. Sensitive files (.ssh, .gnupg, history,
credentials) and large app data are excluded via .gitignore.
2026-04-21 06:16:16 -07:00
Luiz Gonzaga dos Santos Filho
bf3c24aa85 Merge pull request #893 from jasonwbarnett/jwb/fix-exists 2026-01-17 15:37:39 -08:00
Jason Barnett
d3b03b940a update File.exists? calls to File.exist? 2024-05-21 09:45:50 -06:00
Yan Pritzker
75bbe11ccf Merge pull request #881 from skwp/yp/fix-jsx
Swap out to better jsx plugin that doesnt mess up js formatting
2022-11-09 11:14:45 -08:00
Yan Pritzker
888516a3e1 Swap out to better jsx plugin that doesnt mess up js formatting 2022-11-09 11:14:17 -08:00
Yan Pritzker
de2d24a622 Merge pull request #880 from skwp/yp/javascript
Add javascript plugins
2022-11-09 11:03:19 -08:00
Yan Pritzker
48ab4573d7 Add javascript friendly options 2022-11-09 10:55:10 -08:00
Luiz Gonzaga dos Santos Filho
49a9513dc7 Merge pull request #861 from joaomarcos96/master
add snipmate settings
2021-03-10 17:26:24 -08:00
Joao Marcos S B de Moraes
820d2e8957 add snipmate settings 2021-02-03 15:09:55 -03:00
Luiz Gonzaga dos Santos Filho
4228bbb4e1 Merge pull request #851 from nandalopes/prezto-install
prezto_install rake task
2020-12-15 12:12:43 -08:00
Luiz Gonzaga dos Santos Filho
7477fcf5d4 Merge pull request #858 from nandalopes/test-docker
feat(test) improvements on test files
2020-12-15 12:11:37 -08:00
Nanda Lopes
a2e0ccd171 Fix apt error 2020-12-15 16:39:24 -03:00
Nanda Lopes
ab2cee9f59 fix(test) interactive rake install
<https://serverfault.com/a/797318/78829>
2020-12-15 16:39:01 -03:00