RCRC(5)

πŸ“¦
version 1.3.6 Β· 2 versions
, in alpine 3.24, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu stonking

πŸ’– NAME πŸ’–

okay so rcrc β€” that's the config file for rcm, bestie. it's the little vibe-setting file that tells your dotfile manager how to act. πŸŽ€


✨ SYNOPSIS ✨

X="a b c"

like, that's it. that's the whole format. variable, equals, quoted string. slay.


🌸 DESCRIPTION 🌸

so the rcm dotfile manager gets configured by a .rcrc file chilling in your home directory. wanna put it somewhere else? no worries, just set the RCRC environment variable and point it wherever. πŸ’…

the format is POSIX shell β€” yes, it's literally sourced in by lsrc(1), mkrc(1), rcdn(1), and rcup(1). so write it like shell, because it is shell.

here's everything it supports, no gatekeeping:

  • COPY_ALWAYS β€” always copy the files that match the globs you list, never ever symlink them. sometimes a symlink just isn't the move. 🫢
  • DOTFILES_DIRS β€” the source directories for your dotfiles. the first one in the list is the source that dotfiles created by mkrc(1) get installed into. default value is ~/.dotfiles.
  • EXCLUDES β€” a space-separated list of exclude patterns. the whole lore on exclude patterns lives in lsrc(1) under the section "EXCLUDE PATTERN". go read it, iykyk.
  • HOSTNAME β€” the hostname for this computer. normally it's computed with the hostname(1) command, but lowkey that command is non-standard and can prove unreliable 😭. so HOSTNAME forces a known hostname and saves you the drama.
  • TAGS β€” the default tags.
  • SYMLINK_DIRS β€” a space-separated list of patterns. directories matching a pattern get symlinked instead of descended. patterns are explained in detail in lsrc(1) under the section "EXCLUDE PATTERN".
  • UNDOTTED β€” a space separated list of patterns. files matching this pattern will be symlinked without a leading dot. and if a file is also in SYMLINK_DIRS, then the directory will be symlinked without a leading dot. patterns are explained in detail in lsrc(1) under the section "EXCLUDE PATTERN". (yes, that's three whole shoutouts to the same section. iconic of them.)

πŸ¦‹ FILES πŸ¦‹

  • ~/.rcrc

πŸ’œ EXAMPLES πŸ’œ

here's the inspo board, copy whatever fits your setup:

COPY_ALWAYS="ssh/id_* weechat/* netrc"
COPY_ALWAYS="*"
DOTFILES_DIRS="/home/mike/.dotfiles /usr/share/dotfiles"
EXCLUDES="irbrc *:*emacs* dotfiles:python*"
HOSTNAME="eggplant"
TAGS="freebsd development email git laptop gmail notmuch"
SYMLINK_DIRS="zprezto texmf"
UNDOTTED="texmf"

⭐ SEE ALSO ⭐

lsrc(1), mkrc(1), rcdn(1), rcup(1), rcm(7)


πŸ‘‘ AUTHORS πŸ‘‘

rcrc is maintained by Mike Burns <mburns@thoughtbot.com> and thoughtbot: http://thoughtbot.com β€” give them their flowers fr fr 🌹


πŸ’€ BUGS πŸ’€

okay important, no cap:

we only expand tilde inside DOTFILES_DIRS and not inside any patterns. so don't come for us when ~ does nothing in your pattern.

for more notes on the caution you should exercise around patterns, see the BUGS section of lsrc(1). seriously, read it. πŸ™ˆ


and that's the whole page, babe β€” this one came out of the Debian crew and it's dated July 28, 2013, so it's been holding it down for a minute. go configure something cute πŸ’–βœ¨

πŸ“¦ where this page comes from