Commit Graph
11 Commits
Author SHA1 Message Date
dissimulo 40622a84ca Remove symlinks pointing at files deleted upstream years ago
.aprc, .escaped_colors.rb and .unescaped_colors.rb were tracked at the repo
root as symlinks (mode 120000) to .yadr/irb/<file>. Two things were wrong:

  - Those targets were deleted upstream in 9aac908 (Colorized irb prompt).
    Only irb/pryrc survives, so the links could never resolve.
  - The target path is relative to the link's own directory, so from inside
    the repo they resolved to ~/.yadr/.yadr/irb/... They only ever made sense
    sitting in $HOME, not committed into the repo root.

install.sh was still deploying five dead entries: those three plus .editrc
and .inputrc, which belonged to vimify and went away with it. A re-bootstrap
would have recreated all five as dangling links.

The matching broken links in /root and /home/dissimulo are removed too, along
with .steampath, which pointed at a steam binary that is not in .steam/sdk32
(Steam recreates it on launch).
2026-08-25 12:31:48 -07:00
dissimulo 4fa6f90a9e Strip vim entirely; EDITOR is nano
dissimulo does not use vim. Removes the editor, its config tree, its plugin
manager, and everything that would reinstall it on a re-bootstrap.

Deleted (82 files):
  vim/ (64)          the whole config tree, 1.7M
  doc/vim/ (8)       its documentation
  .vimrc, vimrc, .vim
  bin/yadr/vundle.rb, yadr-vim-{add,delete,list}-plugin
  bin/fix_macvim_external_display.sh   MacVim on macOS, dead here anyway
  vimify/            vi keybindings for readline/libedit, dropped on request

Edited:
  Rakefile        drop the vundle require, the vim install block, the
                  vundle_migration and install_vundle tasks, their two helper
                  methods, and the macvim homebrew line. Without this a
                  re-bootstrap would pull all of it straight back.
  install.sh      .vim/.vimrc out of the symlink list
  zsh/vi-mode.zsh EDITOR/VISUAL now nano. The zsh vi keybindings stay; they
                  are not vim.
  zsh/aliases.zsh yav/ydv/ylv, the MacVim detection block and ve removed;
                  ae/ze/gi now open nano
  git/gitconfig   mvimdiff mergetool removed, editor set to nano
  .tmux.conf      vim-tmux-navigator replaced with direct select-pane binds.
                  It ran ps piped to grep on EVERY C-h/j/k/l press to ask
                  whether vim held the pane: two forks per pane switch for a
                  question that can now only answer no. mode-keys and
                  status-keys vi stay, being tmux own key style, unrelated to
                  the editor.
  .gitignore/.dockerignore/Dockerfile   dead paths and the vim package

Also renames the installer banner to DRUNKENDOTFILES, piped through lolcat
when present with a plain-text fallback.

Left alone: the .yadr paths (renaming the checkout is a separate job), generic
swap-file ignores, the fasd viminfo support (third-party), and prose mentions.
2026-08-25 12:22:43 -07:00
dissimulo 1b60a9364d Add portable Claude Code config
Saves ~/.claude/settings.json (user-level prefs + Bash/Read permissions
allowlist) so the same Claude Code config can be replicated on other
hosts via install.sh.

What gets deployed:
- .claude/settings.json — theme, verbose, defaultMode, skipAutoPermissionPrompt
  and the cumulative "approve once" allowlist for common ops (systemctl,
  iptables, journalctl, git, curl, etc.). Server-specific allow entries
  (e.g. /home/mastodon/* paths) are dead weight elsewhere but harmless.
- .claude/.gitignore — explicit deny-list so a future `git add .claude`
  doesn't accidentally pull in credentials, session logs, project
  memories, file-history, telemetry, caches, or settings.local.json.

What is NOT tracked (by design):
- .credentials.json (auth)
- history.jsonl, sessions/, projects/ (chat data, project memories)
- settings.local.json (per-machine overrides — by Claude Code convention)
- file-history/, plans/, paste-cache/, shell-snapshots/, session-env/,
  telemetry/, downloads/, cache/, backups/, mcp-needs-auth-cache.json
- plugins/ (marketplace install paths are absolute and host-specific)

deploy_dir's merge semantics mean: on a host that already has
~/.claude/.credentials.json or ~/.claude/projects/, those stay untouched
because the repo doesn't track them. Only the files we explicitly
include get installed.

Existing settings.json on the target host is moved aside to
~/.drunkendotfiles.bak.<timestamp>/ before being replaced.
2026-05-06 10:06:36 +00:00
dissimulo 5208e9a5bb install.sh: repoint dangling claude symlink to latest installed version
The committed ~/.local/bin/claude symlink targets a specific Claude Code
version path (whatever was current when this snapshot was taken). On any
host that has Claude Code installed at a different version, that symlink
arrives dangling.

Old behavior: just delete the dangling link and rely on the Claude
installer to recreate it. That doesn't help when the host has Claude
installed but at a version other than the one in the snapshot, and we
also support skipping the installer via DRUNKENDOTFILES_SKIP_CLAUDE=1
(used when the binary is already on disk but at a different version).

New behavior: when the deployed symlink is dangling, scan
~/.local/share/claude/versions/ and repoint the symlink to the highest
installed version (semver sort). Only fall back to deleting the link if
no version is installed at all.
2026-05-06 09:45:52 +00:00
dissimuloandClaude Opus 4.7 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
dissimulo 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
dissimulo 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
dissimulo 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
Mulia Arifandi Nasution 17fbcc3292 Make installation more faster
Clone only the latest history
2015-03-14 00:29:11 +07:00
alex-frost df9d4fa2e8 change string comparison 2014-04-01 19:53:49 +01:00
Fabio Gallonetto 5df698f6d2 Change installation script
Instead of asking the user to clone the repo and running rake
install, there's is now an easy .sh script that can be downloaded
and invoked in a single line.

The script takes a parameter "ask" if the use prefers to control
which modules of yadr are installed.
2013-04-07 11:25:29 +01:00