dotfiles
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
💻 My macOS dotfiles: Zsh, Neovim (LazyVim), Ghostty, tmux and herdr for AI coding agents, lazygit, mise and AeroSpace, all in Bereghici Dark and Light, following the macOS appearance.

~abereghici 💻
My macOS dotfiles: Zsh, Homebrew, Neovim (LazyVim), Ghostty, tmux and herdr for
coding agents, lazygit, mise and AeroSpace. Every themed tool uses Bereghici
Dark or Light and follows the macOS appearance. One script sets up a new Mac;
the configs are symlinks back into this repository, so editing them here is
editing them live.
[!WARNING]
These are my personal settings, andsetup.shchanges your system (see
what it changes). Fork the repository and review the
code before running it, rather than installing it as is.
Contents
- What's inside
- Requirements
- Install
- Local customizations
- Updating
- Uninstalling
- Troubleshooting
- More docs
- Contributing
- License
- Credits
What's inside
| Area | Tools |
|---|---|
| Shell | Zsh with aliases, fzf, zoxide, direnv and a Starship prompt |
| Terminal | Ghostty, tmux and herdr on one prefix (keys) |
| Editor | Neovim on LazyVim; VS Code settings and snippets with default keybindings |
| Git | Git aliases, delta diffs and lazygit |
| Runtimes | Node, Python, Go, Rust, Java, Bun, Maven and uv via mise |
| Theme | Bereghici Dark/Light from abereghici/themes, switched by appearance (how) |
| macOS | Defaults (notes), AeroSpace tiling and a Romanian keyboard layout |
| Apps | Everything in the Brewfile, VS Code extensions included |
| Scripts | bin/, including the projects picker for tmux and herdr and keychain for secrets |
The repository is laid out by where things go: tilde/ is linked into~, bin/ into ~/.local/bin, and the rest bysetup/ (herdr/plugins/,keyboard/, lazygit/, vscode/,launchd/). tests/ checks the result.
Requirements
- macOS 14 (Sonoma) or later; tested on macOS 26 on Apple silicon. The Homebrew
paths for Intel Macs are handled but not tested. - An administrator account (
setup.shusessudo). - Git, from the Xcode Command Line Tools (
xcode-select --install); the
Homebrew installer also offers them.
Install
git clone https://github.com/abereghici/dotfiles.git ~/dotfiles
~/dotfiles/setup.sh
It asks you to press Enter and for your password, then what to do with any file
in the way and the local settings questions. Pass -y for no questions at all:
every file in the way is backed up, and the
local settings are skipped (run setup/local.sh
later). Open a new terminal when it's done. Setting up a new Mac? See the
checklist for what to do around it.
What setup.sh changes
In order, each step a script you can also run on its own:
~/.zshrc: moved to~/.zshrc.backupif it's a real file (a timestamp
is added when that backup exists)./etc/pam.d/sudo_local: created, if missing, so Touch ID can authorizesudo.setup/brew.sh: installs Homebrew if needed, runsbrew updateandbrew upgrade, installs the Brewfile and
runsbrew cleanup.setup/symlinks.sh: linkstilde/,bin/, the
lazygit, lazydocker and VS Code configs and the keyboard layout. A file in
the way is skipped, overwritten or backed up, as you choose (backed up with-y), and links left pointing at removed files are deleted. It also installs
the appearance agent in~/Library/LaunchAgents.setup/local.sh: asks for this machine's private settings
and writes the*.localfiles, mode 600. Skipped
with-y.setup/misc.sh: installs tpm and the tmux plugins, links
the herdr plugins and installs
herdr-reviewr, installs the
mise runtimes and npm packages, clones (or updates)
abereghici/themes into~/.local/share/bereghiciand runs itsinstall.sh, thenappearance sync.
setup/README.md describes each script in detail. A step
that fails, such as one Brewfile entry or an offline clone, is reported and the
rest goes on; re-running setup.sh is safe. The optionalsetup/macos.sh writes macOS defaults and is not part ofsetup.sh.
Local customizations
These optional files extend the dotfiles for one machine and are never checked
in. setup/local.sh writes them from your answers; every
question can be left empty, and a file that exists is kept (delete it to be
asked again).
~/.zsh.local
Sourced by .zshrc after the path, env, aliases, keybindings and completion
setup, and before the plugins and the prompt, so it can add to or override any
of them. local.sh writes the Keychain secrets you name into it, storing their
values in the Keychain, never in a file.
# Extra binaries for this machine only
[ -d "$HOME/.acme/bin" ] && PATH="$HOME/.acme/bin:$PATH"
# Secrets from the macOS Keychain (stored with `keychain set ACME_API_KEY`)
eval "$(keychain export ACME_API_KEY GITHUB_TOKEN)"
~/.gitconfig.local
Included at the end of ~/.gitconfig, so it can override or add to any setting.local.sh writes your name, email and GitHub username, the optional
HTTPS-to-SSH rewrite for GitHub, and a separate identity for a work Git host:
any repository whose remote is on that host includes ~/.gitconfig.work.
[user]
name = "Your Name"
email = "[email protected]"
[includeIf "hasconfig:remote.*.url:https://git.example.com/**"]
path = ~/.gitconfig.work
~/.config/mise/config.local.toml
mise loads it alongside config.toml (seemise config ls), for tools you only need on this machine. ~/.config/mise
links to tilde/.config/mise, so the file lives there, git-ignored.
[tools]
terraform = "latest"
~/.config/herdr/reviewr.local.toml
Settings for herdr-reviewr, such
as a work GitLab host. herdr-reviewr-config merges
it with reviewr.toml into reviewr's
config; run it again after editing either.
gitlab_host = "git.example.com"
~/.macos.local
Personal settings for setup/macos.sh; each one is skipped
when unset.
COMPUTERNAME='my-mac'
LOCALHOSTNAME='my-mac'
LANGUAGES=(en)
LOCALE='en_US'
TIMEZONE='Europe/London' # list: sudo systemsetup -listtimezones
Updating
cd ~/dotfiles
git pull
./setup.sh -y
-y skips the questions, which an update doesn't need. Every step is safe to
run again: links already in place are skipped, and the Homebrew packages, mise
tools and themes are brought up to date. Plugins already installed keep their
version: update them with herdr plugin update and tpm's prefix U.
Uninstalling
~/dotfiles/setup/uninstall.sh -n # print what it would remove
~/dotfiles/setup/uninstall.sh
setup/uninstall.sh removes the links into this
repository and into the themes, the appearance agent and the herdr plugins
linked from here, lists the backups setup.sh made (restore them with mv),
and asks before removing /etc/pam.d/sudo_local. Homebrew and its packages, the
themes clone, the *.local files and any macOS defaults stay.
Troubleshooting
- A command or setting is missing after setup: open a new terminal; the
running one predates the links. brewisn't found after installing Homebrew by hand: runeval "$(/opt/homebrew/bin/brew shellenv)", or open a new terminal.- Two quick
⌥Spacepresses open Claude's Quick Entry: Claude desktop opens
it on a double tap of⌥; set its shortcut to something else in its Settings. ⌃+ arrows switch Spaces instead of resizing Neovim splits: turn off the
Mission Control shortcuts.- A tool didn't switch theme with the appearance: run
appearance sync
(details). - Is everything in place?
npm testruns the bats tests against
this machine; they change nothing.
More docs
- herdr and tmux keys
- Theme and appearance
- macOS defaults, shortcut conflicts and Raycast
- Romanian keyboard layout
- Chrome theme and extensions
- New Mac checklist
- The setup scripts
Contributing
Pull requests that fix bugs or add improvements without breaking changes are
welcome. See CONTRIBUTING.md for the checks to run, and
SECURITY.md to report a vulnerability privately.
License
MIT © Alexandru Bereghici
Credits
Ideas and structure from these repositories and articles:
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi