Personal configurations for a modern, productive, and minimal shell. Meant to be used with my .zshrc on macOS. This repository contains the configuration files I use daily on macOS/Linux, including:
- ⚡ Zsh with custom plugins and prompt, managed by Zinit
- 📝 Neovim as my favourite editor within the terminal
- 🪞 Ghostty as terminal emulator
- 🛠️ Other CLI tools (SDKMAN, fnm, Starship, etc.)
- 🍺 Homebrew package management via
Brewfile(Homebrew Bundle, brew bundle and Brewfile)
dotfiles/
├── configs/ # Dotfiles go here
│ ├── aerospace/ # Aerospace tiling manager
│ ├── ghostty/ # Ghostty terminal
│ ├── nvim/ # Neovim editor
│ ├── nushell/ # Nushell
│ ├── starship/ # Starship prompt
│ ├── yazi/ # Yazi file manager
│ ├── zellij/ # Zellij multiplexer
│ ├── zsh/ # Zsh shell
│ └── ... # Other tool configs
├── brewfile # Homebrew packages
├── hooks/ # Setup scripts go here
└── secrets/ # Encrypted files go hereMake sure you have installed:
- Git
- Zsh
- Nushell
- Homebrew (on macOS) or an equivalent package manager
- Tuckr for dotfiles management
-
Clone your dotfiles repository into a folder in your home directory:
git clone https://github.com/fraluc06/dotfiles.git ~/.dotfilesor via SSH:
git clone git@github.com:fraluc06/dotfiles.git ~/.dotfilesor via gh CLI:
gh repo clone git@github.com:fraluc06/dotfiles.git ~/.dotfiles -
Change into the dotfiles directory:
cd ~/.dotfiles
-
Use Tuckr to symlink your configs automatically:
tuckr zsh tuckr nvim tuckr ghostty # ...or all with one command
tuckr */ # Everything (the '/' ignores the README)
-
Install all Homebrew packages and casks from your
Brewfile:brew bundle --file=~/dotfiles/Brewfile -
Install npm packages from the JSON file (requires
jq):bat npm-global-packages.json | jq -r '.dependencies | keys[]' | xargs npm install -g
This section explains how to export the package lists for Homebrew and npm.
To update the Brewfile with all currently installed packages, run:
brew bundle dump --file=./Brewfile --forceTo save a list of globally installed npm packages, run:
npm ls -g --json > npm-global-packages.json- Managed with
Zinitfor optimal plugin loading zsh-autosuggestions: Dynamic suggestions while typingfzf-tab: Replace zsh's default completion selection menu with fzffast-syntax-highlighting: Syntax highlighting for commandsforgit: A utility tool powered by fzf for using git interactively.
- To set Nushell as default shell, run:
z Library/LaunchAgents &&
`echo '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0">
<dict>
<key>Label</key><string>my.startup.shell_agnostic.environment</string>
<key>ProgramArguments</key><array><string>sh</string><string>-c</string><string>
launchctl setenv XDG_CONFIG_HOME ~/.config
</string></array>
<key>RunAtLoad</key><true/>
</dict>
</plist>' > ~/Library/LaunchAgents/environment.plist`Then run:
chsh -s /opt/homebrew/bin/nuand finally reboot your machine.
- Ghostty with custom themes and fonts:
- Catppuccin Mocha: Catppuccin is a pastel theme with four warm flavors and 26 eye-candy colors, ideal for coding, designing, and other creative tasks.
- JetBrains Mono Nerd Font: A monospaced font with programming ligatures and Nerd Font glyphs for an enhanced coding experience
MIT – Free to use, modify, and distribute with attribution.
