Skip to content

snics/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

409 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Nico's dotfiles

macOS.png

Welcome to my world. This is an advanced macOS development setup optimized for modern software development.

This setup works perfectly for developers and software architects who work with macOS. If this particular setup doesn't work for you, please feel free to borrow some ideas from it. Pull requests, comments, requests, and any other contributions are welcome!

๐Ÿ“‹ Contents

โœจ Features

  • ๐ŸŽจ Beautiful terminal setup with Ghostty and tmux
  • ๐Ÿ”ง Comprehensive ZSH configuration with custom themes
  • ๐Ÿ“ฆ Automated installation and setup process
  • ๐ŸŽฏ Version management with asdf
  • ๐ŸŽจ Catppuccin Mocha theme across all tools
  • ๐Ÿ“Š Advanced system monitoring with btop and k9s
  • ๐Ÿš€ Git workflow optimization with lazygit
  • ๐Ÿ” Secure secrets management
  • ๐Ÿ“ Organized project folder structure

๐Ÿ“ฆ What's Included

Core Tools

  • ๐Ÿบ Homebrew - Package manager for macOS with comprehensive Brewfile
    • 270+ packages, casks, and Mac App Store apps
    • Organized with taps for specialized tools
    • Automated installation and updates
  • ๐Ÿš ZSH - Advanced shell configuration
    • Custom aliases and functions
    • Catppuccin Mocha syntax highlighting
    • Integration with bat, eza, and fzf
    • Optimized completion system
  • ๐Ÿ“ Neovim - Modern text editor configuration
    • Extensible plugin setup
    • Custom keybindings and workflows
    • Integrated with terminal tools
  • ๐Ÿ”€ Git - Version control with custom configurations
    • Catppuccin theme integration
    • Git Delta for beautiful diffs
    • Git LFS support
    • GitHub CLI (gh) and GitLab CLI (glab)
  • ๐Ÿ”ง asdf - Universal version manager
    • Node.js, Deno, Python, Rust
    • Kubernetes tools (kubectl, helm)
    • Unified version management
  • ๐Ÿณ Docker - Container management
    • Docker Compose integration
    • Lazydocker for easy management
    • Container security tools (Trivy, Dockle)
  • ๐Ÿฆญ Podman - Daemonless container engine
    • Drop-in replacement for Docker
    • Rootless containers
    • Podman Compose for Docker Compose compatibility
    • Podman Desktop for GUI management

Terminal & CLI Tools

  • ๐Ÿ‘ป Ghostty - Modern, fast terminal emulator
    • GPU-accelerated rendering
    • Catppuccin Mocha theme support
  • ๐Ÿ–ฅ๏ธ tmux - Terminal multiplexer
    • Custom keybindings and workflows
    • Plugin manager integration
    • Catppuccin theme configuration
    • Session management with sesh
  • ๐Ÿฆ‡ bat - Enhanced cat with syntax highlighting
    • Git integration
    • Custom themes
  • ๐ŸŒณ eza - Modern, colorful ls replacement
    • File type icons
    • Git status integration
  • ๐Ÿ” fzf - Fuzzy finder for command-line
    • ZSH integration
    • File and history search
  • ๐Ÿ“Š btop - Beautiful resource monitor
    • CPU, memory, disk, network stats
    • Process management
    • Catppuccin Mocha theme
  • ๐ŸŽฎ k9s - Kubernetes CLI manager
    • Real-time cluster monitoring
    • Pod and container management
    • Log viewing and resource editing
  • ๐ŸฆŽ lazygit - Simple terminal UI for git
    • Visual git workflow
    • 14 Catppuccin color variants included
    • Interactive staging and commits
  • ๐Ÿณ lazydocker - Simple Docker/container TUI
    • Container and image management
    • Real-time stats and logs
  • ๐Ÿš€ starship - Minimal, fast, customizable shell prompt
    • Cross-shell compatibility
    • Rich status information
  • ๐Ÿ”Ž ripgrep - Ultra-fast recursive search tool
  • ๐Ÿ” fd - Fast, user-friendly alternative to find
  • ๐ŸŒ glow - Render markdown in the terminal
  • ๐Ÿ“š tldr - Simplified, practical man pages
  • ๐Ÿ—‘๏ธ trash - Move files to macOS Trash from CLI
  • ๐Ÿ”„ zoxide - Smarter cd command
  • ๐ŸŽฏ direnv - Environment switcher for the shell

Development Tools & Languages

  • ๐Ÿ”ง asdf - Universal version manager (see Core Tools)
    • Manages multiple language runtimes
    • Plugin-based architecture
    • Configured plugins: Node.js, Deno, Python, Rust, kubectl, helm
  • ๐Ÿ“ฆ Node.js - JavaScript runtime
    • Managed via asdf
    • npm, yarn, and pnpm support
  • ๐Ÿฆ• Deno - Secure JavaScript/TypeScript runtime
  • ๐Ÿฆ€ Rust - Systems programming language
    • Rustup toolchain manager
    • Cargo package manager
  • ๐Ÿน Go - Go programming language
    • gopls language server
    • delve debugger
    • gox for cross-compilation
  • ๐Ÿ Python - Python 3.11+
    • Managed via asdf and Homebrew
  • โšก Swift - Apple's programming language

Kubernetes & DevOps Tools

  • โ˜ธ๏ธ kubectl - Kubernetes command-line tool
    • Cluster management and deployment
  • ๐Ÿ“ฆ Helm - Kubernetes package manager
  • ๐Ÿ” k9s - Kubernetes CLI manager (see Terminal Tools)
  • ๐Ÿšข kind - Kubernetes in Docker
  • ๐ŸŽฏ minikube - Local Kubernetes
  • ๐ŸงŠ kubectx - Fast context/namespace switching
  • ๐Ÿ”’ kubeseal - Sealed Secrets
  • ๐Ÿ”Ž kubescape - Security posture management
  • ๐Ÿ•ต๏ธ kubeshark - API traffic viewer
  • ๐Ÿ‹ Docker - Container platform
  • ๐Ÿฆญ Podman - Daemonless container engine
  • ๐ŸŒŒ OrbStack - Fast, lightweight containers & VMs for macOS
  • ๐Ÿ”ง Terraform - Infrastructure as Code
  • ๐Ÿ—๏ธ OpenTofu - Open-source Terraform alternative
    • Drop-in replacement for Terraform
    • Community-driven infrastructure as code
  • ๐Ÿ“œ Ansible - Automation and configuration management
  • ๐Ÿ”’ Trivy - Container security scanner
  • ๐Ÿถ Dockle - Container image linter
  • ๐Ÿ” Dive - Docker image exploration tool
    • Layer content analysis
    • Image size optimization
  • ๐Ÿ“‹ Hadolint - Dockerfile linter
    • Best practice validation
    • Inline bash checking
  • ๐Ÿ“ฆ Skopeo - Container image operations tool
    • Image copying and inspection
    • Registry management

Productivity & Apps

  • ๐Ÿ’พ Mackup - Application settings backup and sync
  • ๐Ÿ““ Obsidian - Powerful knowledge base
    • Markdown-based note-taking
    • Second Brain / PARA methodology
    • iCloud sync for macOS and iOS
    • Full configuration automation (in progress)
  • ๐Ÿ” 1Password - Password manager
    • CLI integration included
  • ๐ŸŽจ Cursor - AI-powered code editor
  • ๐ŸŒ Arc Browser - Modern, feature-rich browser
  • ๐Ÿ’ฌ Raycast - Extendable launcher and productivity tool
  • ๐Ÿ“Š Linear - Project management for software teams
  • ๐Ÿ’ผ Notion - All-in-one workspace
  • ๐Ÿ“… Notion Calendar - Calendar integration
  • ๐ŸŽฌ CleanShot - Advanced screenshot and recording tool

Additional Tools & Utilities

The brew/Brewfile contains 270+ additional packages including:

  • ๐Ÿ”’ Security tools (nmap, hydra, wireshark, gpg)
  • ๐ŸŽฅ Media tools (ffmpeg, imagemagick, obs)
  • ๐Ÿ—‚๏ธ File utilities (p7zip, unarchiver, tree)
  • ๐ŸŒ Network tools (wget, curl, ssh)
  • ๐Ÿ“ Documentation tools (pandoc, texlive)
  • โŒจ๏ธ Custom keyboard firmware (QMK, Vial)
  • And many more specialized tools...

๐Ÿš€ Quick Start

Prerequisites

  • macOS (tested on latest versions)
  • Command Line Tools for Xcode
  • Internet connection

Installation

โš ๏ธ Warning: If you want to give these dotfiles a try, you should first fork this repository, review the code, and remove things you don't want or need. Don't blindly use my settings unless you know what they do. Use at your own risk!

Step 1: Clone and Pre-install

Run this command in your terminal to download and prepare the dotfiles:

sh -c "`curl -fsSL https://raw.githubusercontent.com/snics/dotfiles/master/pre-install.sh`"

Step 2: Run Installation Wizard

To run the install wizard, execute:

sh ~/.dotfiles/install.sh

The wizard will guide you through the installation process and let you choose which components to install.

๐Ÿ“ Project Structure

This dotfiles repository uses the following structure:

~/.dotfiles/
โ”œโ”€โ”€ _install/          # Installation scripts for individual tools
โ”œโ”€โ”€ asdf/              # asdf version manager configuration
โ”œโ”€โ”€ brew/              # Homebrew bundle file
โ”œโ”€โ”€ docs/              # Documentation and screenshots
โ”œโ”€โ”€ ghostty/           # Ghostty terminal configuration
โ”œโ”€โ”€ git/               # Git configuration and themes
โ”œโ”€โ”€ k9s/               # Kubernetes CLI configuration
โ”œโ”€โ”€ lazygit/           # Lazygit themes and settings
โ”œโ”€โ”€ macOS/             # macOS-specific settings and scripts
โ”œโ”€โ”€ nvim/              # Neovim configuration
โ”œโ”€โ”€ obsidian/          # Obsidian settings
โ”œโ”€โ”€ planning/          # Project planning and roadmap
โ”œโ”€โ”€ tmux/              # tmux configuration and plugins
โ”œโ”€โ”€ zsh/               # ZSH configuration, themes, and functions
โ”œโ”€โ”€ install.sh         # Main installation script
โ””โ”€โ”€ pre-install.sh     # Pre-installation setup

My Development Folder Structure

I use a well-organized folder structure for all development work. The installation wizard can optionally create this structure for you:

~/Projects/           # Root folder for all development
โ”œโ”€โ”€ GitHub/           # GitHub repositories
โ”œโ”€โ”€ GitLab/           # GitLab repositories
โ”œโ”€โ”€ Scripts/          # Automation scripts and utilities
โ”œโ”€โ”€ Tools/            # Tools and utilities in development
โ”œโ”€โ”€ Learning/         # Learning projects and experiments
โ”œโ”€โ”€ Clients/          # Client projects (optional)
โ”œโ”€โ”€ Startups/         # Startup projects (optional)
โ”œโ”€โ”€ Non-Profit/       # Non-profit organization projects (optional)
โ”œโ”€โ”€ Talks/            # Presentations and talk materials (optional)
โ”œโ”€โ”€ Workshop/         # Workshop materials and projects (optional)
โ””โ”€โ”€ Throwaway/        # Temporary projects and experiments

โš™๏ธ Configuration Details

Neovim Setup

terminal.gif

Neovim should work out of the box once the correct plugins are installed. To install the plugins, open Neovim with:

nvim +PlugInstall

NeoVim.png

Setup ~/.secrets

For sensitive information like API keys and tokens, create a ~/.secrets file. An example template is provided:

cp -f ~/.dotfiles/.secrets.example ~/.secrets

Edit the file and add your secrets:

vim ~/.secrets

The .secrets file is sourced by ZSH and should contain bash-compatible environment variable exports.

Customizing the Setup

Each configuration directory contains settings for its respective tool. Feel free to customize:

  • ZSH: Edit files in zsh/settings/
  • Git: Modify git/catppuccin.gitconfig
  • tmux: Adjust tmux/.config/tmux/tmux.conf
  • Ghostty: Configure ghostty/ settings

๐Ÿ”„ Updates & Maintenance

Updating your installed applications and tools is simple! I've created a convenient alias that updates everything at once:

update

This command will:

  • Update Homebrew and all installed packages
  • Update ZSH plugins
  • Update asdf plugins and tool versions
  • Perform system maintenance tasks

You can find the implementation in zsh/settings/functions/update.zsh.

๐Ÿ“ Planning & Roadmap

I maintain a structured planning system for future improvements and features. Check out the planning/ directory for:

  • Roadmap: High-level plans and timeline
  • Backlog: Ideas and future enhancements
  • In Progress: Currently working on features

Feel free to suggest new features or improvements by opening an issue!

What's Next

Some planned improvements include:

  • Obsidian Second Brain Setup - Complete automation with templates, plugins, and PARA methodology
  • Further automation of the installation process
  • Additional tool integrations
  • Enhanced documentation
  • More themes and customization options

See the full roadmap in planning/backlog.md for details.

๐Ÿค Contributing

Suggestions and improvements are welcome!

If you'd like to contribute:

  1. Fork this repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes using emojis (git commit -m 'โœจ Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Commit Conventions

This project uses emojis in commit messages for better readability:

  • โœจ New feature or major addition
  • ๐Ÿ“ Documentation updates
  • ๐Ÿ”ง Configuration changes
  • โ™ป๏ธ Refactoring or code cleanup
  • ๐Ÿ› Bug fixes
  • ๐Ÿ”ฅ Removing code or files
  • ๐ŸŽจ Styling or UI improvements
  • โšก Performance improvements
  • ๐Ÿš€ Deployment or release changes

Recent Contributions

  • ๐Ÿ“ Update license to MIT (Nov 2024)
  • โ™ป๏ธ Remove PHP and Kotlin from setup (Nov 2024)
  • โœจ Add Non-Profit and Workshop folders to project structure (Nov 2024)
  • ๐Ÿ“ Restructure README with improved organization (Nov 2024)
  • โœจ Create planning system with backlog and roadmap (Nov 2024)

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Feel free to use, modify, and share these dotfiles as you wish!

๐Ÿ‘ค Author

LinkedIn/NicoSwiatecki
Nico Swiatecki

๐Ÿ™ Acknowledgments

This dotfiles repository was inspired by and borrows ideas from many amazing developers:

Dotfiles Inspiration

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published