Skip to content

fodurrr/dotfiles-scripts

Repository files navigation

Peter's Dotfiles

Modern development environment configuration for Linux and macOS. Features a config-driven installation system with YAML configuration, presets, and interactive tool selection.

One-Line Install

curl -fsSL https://raw.githubusercontent.com/fodurrr/dotfiles/main/setup.sh | bash

Or with a preset:

curl -fsSL https://raw.githubusercontent.com/fodurrr/dotfiles/main/setup.sh | bash -s -- --preset developer

Quick Start (Manual)

git clone https://github.com/fodurrr/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh

Installation Modes

Interactive (Recommended)

./install.sh

Walks you through category-by-category tool selection with descriptions.

Using Presets

./install.sh --preset minimal    # Shell + CLI tools (~5 min)
./install.sh --preset developer  # Full dev environment (~15 min)
./install.sh --preset macos      # macOS-optimized setup

Dry Run

./install.sh --preset developer --dry-run

Preview what would be installed without making changes.

What's Included

Shell Environment

  • Zsh with vi-mode
  • Starship prompt
  • Zinit plugin manager

Terminal/Multiplexer

  • tmux - Industry-standard multiplexer (recommended)
  • zellij - Modern Rust-based alternative
  • ghostty, warp, alacritty, kitty, wezterm - GPU-accelerated terminals (GUI)

CLI Tools

  • eza - Modern ls with icons
  • bat - Cat with syntax highlighting
  • fzf - Fuzzy finder
  • zoxide - Smart cd
  • fd - Fast find
  • ripgrep - Fast grep
  • yazi - Terminal file manager
  • jq - JSON processor
  • tldr - Simplified man pages

Development

  • Neovim with LazyVim
  • mise - Polyglot version manager
  • Docker - Container runtime
  • lazygit - Terminal git UI
  • gh - GitHub CLI
  • delta - Beautiful diffs

Editors

  • neovim - Hyperextensible vim-based editor (with LazyVim, NvChad, etc.)
  • zed - Fast native code editor (GUI, recommended)
  • vscode - Popular extensible editor (GUI)
  • cursor - AI-native code editor (GUI)

Configuration

The installer uses dotfiles.yaml for configuration. Create your own or use a preset:

shell: zsh
prompt: starship
plugin_manager: zinit
terminal: tmux

editors:
  - neovim:
      config: lazyvim

version_manager: mise

languages:
  - node: "22"
  - elixir: "1.18"

node_package_manager: bun
container: docker

git_tools:
  - gh
  - lazygit
  - delta

cli_tools:
  - eza
  - bat
  - fd
  - ripgrep
  - zoxide
  - fzf
  - jq
  - tldr

extras:
  - direnv

See dotfiles.example.yaml for all options.

Note: GUI tools (terminals like ghostty/warp, editors like vscode/zed/cursor) require manual installation. The installer will notify you with download links.

Project Structure

dotfiles/
├── .zshrc.d/              # Modular zsh snippets
├── .config/               # App configs (stowed)
│   ├── nvim/             # Neovim (LazyVim)
│   └── starship.toml     # Starship prompt
├── scripts/
│   ├── lib/              # Shared libraries
│   │   ├── common.sh          # Logging, utilities
│   │   ├── package-manager.sh # apt/dnf/brew abstraction
│   │   ├── config-parser.sh   # Parse dotfiles.yaml
│   │   └── interactive.sh     # Gum-based selection UI
│   ├── components/       # Tool installers
│   ├── registry/
│   │   └── tools.yaml    # Tool registry with descriptions
│   └── build-zshrc.sh    # Assembles .zshrc
├── presets/              # Installation presets
│   ├── minimal.yaml
│   ├── developer.yaml
│   └── macos.yaml
├── install.sh            # Main installer
└── dotfiles.example.yaml # Example config

Key Commands

./install.sh                      # Interactive install
./install.sh --preset developer   # Use preset
./install.sh --dry-run            # Preview changes
./scripts/sync.sh                 # Sync dotfiles via stow
./scripts/build-zshrc.sh          # Rebuild .zshrc from snippets

Shell Aliases

Alias Command
ls eza with icons
la eza long format
cat bat with highlighting
gs git status
lg lazygit
z zoxide (smart cd)

Supported Systems

OS Status
Ubuntu 20.04+ Fully Supported
Debian 11+ Fully Supported
Fedora 35+ Fully Supported
macOS Partial (presets ready)

Author

Peter Fodor - @fodurrr

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •