Personal macOS-oriented dotfiles, managed with yadm.
By Rémino Rem
https://remino.net/
Configuration is provided for:
- Shell: Zsh, Powerlevel10k, Atuin, and mise-en-scene
- Terminal: Ghostty and tmux
- Development tools: Git, GitHub CLI, ripgrep, bat, Vim, and EditorConfig
- Utilities: Fastfetch, Finicky, yt-dlp, Tridactyl, GnuPG, and OpenSSH
It also contains configuration for cheat, curl, gh, shellcheck, and a
few small helper scripts.
Install yadm first, then clone the repository:
yadm clone https://github.com/remino/dotfilesAfter cloning, review the files yadm manages:
yadm diffThe yadm bootstrap script installs the base Zsh loader when necessary and, when
~/.config/nvim does not already exist, clones
remino/nvim there. The Neovim clone uses an
SSH Git URL, so ensure your GitHub SSH access is configured before running it.
To rerun the bootstrap step manually:
~/.config/yadm/bootstrapOn a machine where you only want a temporary shell, run:
curl -fsSL https://remino.net/run/shell | bashIt requires bash, curl, git, and zsh (plus a standard SHA-256 utility),
creates an isolated temporary home, clones the public Neovim configuration, and
deletes everything when the shell exits. It neither installs packages nor
changes the machine's real home directory. To use a particular commit or release
tag, pass --ref through the pipe:
curl -fsSL https://remino.net/run/shell | bash -s -- --ref masterTo test uncommitted changes from a local checkout, run the executable directly
with --worktree. It snapshots that checkout inside the disposable session and
does not modify it:
.config/dotfiles/bin/portable --worktreeAs with any curl | sh command, inspect it first when you do not already trust
the source:
curl -fsSLO https://raw.githubusercontent.com/remino/dotfiles/master/.config/dotfiles/bin/portable
less portable
bash portableThe durable Zsh configuration lives in ~/.config/zsh/base. The ~/.zshenv and
~/.zshrc loader files may be recreated or modified by other tools without
changing that base configuration. To reinstall those loaders:
~/.config/yadm/install_zshrcSet these values in ~/.zshrc.local or
~/.config/zsh/local/zshrc to customize the intro banner without modifying
the base configuration:
INTRO_LOLCAT=0
INTRO_FIGLET=1
INTRO_FONT=( termino standard )
INTRO_TEXT='Hello, world'
# Or generate the text when intro runs:
INTRO_COMMAND='git -C "$HOME/src/project" branch --show-current'INTRO_COMMAND takes precedence over INTRO_TEXT; if it fails or produces no
output, intro falls back to the normal user-and-host banner. INTRO_FONT is
an ordered list: if none of its fonts are installed, the text is printed
unchanged. Set either rendering flag to 0 to disable it.
The managed ~/.vimrc is a lightweight fallback for machines that
have Vim but not Neovim. It deliberately works without plugins or a network
connection: persistent undo, true colour (when supported), split and completion
defaults, file browsing, and project search are all built in.
<Space> is the leader key and ; enters command-line mode. With
ripgrep installed, these commands and
mappings provide project navigation through Vim's quickfix list:
| Mapping / command | Use |
|---|---|
<Space>ff or :Files |
List project files; opens the quickfix window. |
<Space>fg or :Grep {pattern} |
Search project files; opens quickfix. |
:cnext / :cprev |
Move through the current quickfix results. |
<Space>cq |
Close the quickfix window. |
<Space>e |
Open Vim's built-in file explorer. |
<Space>w |
Save. |
Plugins are optional. To enable the configured plugin set, install vim-plug once, then install the declared plugins:
~/.vim/install-vim-plug
vim +PlugInstall +qallFrom Vim, use :PlugStatus to inspect plugins, :PlugUpdate to update them,
and :PlugClean to remove plugins no longer declared in .vimrc. The current
optional plugins add these conveniences:
| Plugin | How to use it |
|---|---|
editorconfig-vim |
Applies nearby .editorconfig files automatically. |
vim-commentary |
gcc comments the current line; gc followed by a motion comments it; select text and press gc for a visual selection. |
vim-fugitive |
<Space>gg opens :Git; also use :Gdiffsplit, :Gwrite, and :Gread. |
vim-surround |
Use ys{motion}{surround}, cs{old}{new}, and ds{surround}; e.g. ysiw] wraps a word in brackets. |
fzf.vim |
Use :FZF, :Buffers, :History, or :Rg {pattern} (requires the fzf executable; :Rg also requires ripgrep). |
dash.vim |
On macOS with Dash installed, use :Dash to look up the word under the cursor. |
The native :Files command intentionally remains available even after
installing fzf.vim; use :FZF when you want its interactive picker.
This is primarily a personal configuration repository, but focused fixes and improvements are welcome. Please open an issue or pull request with a concise description of the change.
Distributed under the ISC License. See LICENSE.txt.