Personal dotfiles for macOS and Fedora Linux.
git clone https://github.com/onurguven/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh- Modular configuration (options, history, completion, keybindings)
- Oh-My-Posh prompt (cross-shell, customizable)
- Zimfw plugin manager (lightweight, fast)
- Plugins:
- zsh-autosuggestions
- zsh-syntax-highlighting
- zsh-you-should-use
- zsh-completions
- zsh-history-substring-search
- Comprehensive aliases (50+)
- Delta for beautiful diffs
- Modular config with includes
- Global gitignore patterns
| Tool | Replaces | Description |
|---|---|---|
| eza | ls | Modern ls with icons |
| bat | cat | Syntax highlighting |
| fd | find | Fast file finder |
| fzf | - | Fuzzy finder |
| zoxide | cd | Smart directory jumping |
| delta | diff | Beautiful diffs |
| Script | Description |
|---|---|
ports |
Port management tool (list, kill, interactive fzf mode) |
dotfiles |
Dotfiles management (update, edit, backup) |
- Brewfile with all packages and casks
- System defaults configuration
- DNF package list
- Flatpak applications
- GNOME settings and extensions
dotfiles/
├── shell/ # Shell configurations
│ ├── zsh/ # Zsh config files
│ │ ├── .zimrc # Zimfw plugin list
│ │ └── ohmyposh.json # Oh-My-Posh prompt config
│ ├── bash/ # Bash config files
│ └── shared/ # Shared aliases & functions
├── git/ # Git configuration
│ └── config/ # Modular git configs
├── tools/ # CLI tool configs
├── terminal/ # Terminal emulator configs
├── editor/ # Editor settings
├── macos/ # macOS specific (Brewfile, defaults, README)
├── linux/ # Linux specific (Fedora README, packages)
├── ssh/ # SSH config templates
├── bin/ # Custom scripts
├── Makefile # Installation commands
└── install.sh # Bootstrap script
make help # Show all available targets
make core # Install shell + git only
make shell # Shell configuration only
make git # Git configuration only
make tools # CLI tools configuration
make macos # Full macOS installation
make fedora # Full Fedora installation
make defaults # Apply macOS system preferences
make homebrew # Install Homebrew packages
make dnf # Install DNF packages (Fedora)
make flatpaks # Install Flatpak apps (Fedora)
make gnome # Apply GNOME settings (Fedora)-
Create local git config:
cp ~/dotfiles/git/.gitconfig.local.example ~/.gitconfig.local # Edit with your name and email
-
Setup SSH:
cp ~/dotfiles/ssh/config.example ~/.ssh/config chmod 600 ~/.ssh/config # Edit with your hosts
-
Restart terminal or run:
source ~/.zshrc
Create local override files (not committed to git):
shell/zsh/local.zsh- Machine-specific shell config~/.gitconfig.local- Private git settings~/.ssh/config- SSH hosts
dotfiles update # Pull latest and reinstall
# or
cd ~/dotfiles && git pull && make coredotfiles update # Update dotfiles
dotfiles edit # Open in editor
dotfiles backup # Backup current configs
dotfiles restore # List backups
dotfiles status # Git statusMIT