Skip to content

tqer39/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

216 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ Dotfiles

πŸ‡―πŸ‡΅ ζ—₯本θͺžη‰ˆ

Test Install Pre-commit Terraform Security

macOS Linux Windows

Bash Python Terraform MIT License

This repository contains my public dotfiles with an automated setup script. These configuration files help maintain a consistent development environment across macOS, Linux (Ubuntu), and Windows.

πŸš€ Quick Start

macOS / Linux (Ubuntu)

# Minimal install (dotfiles only)
curl -fsSL https://install.tqer39.dev | bash

# Full install (dotfiles + development environment)
curl -fsSL https://install.tqer39.dev | bash -s -- --full

# Preview changes without executing
curl -fsSL https://install.tqer39.dev | bash -s -- --dry-run

Windows (PowerShell)

# Minimal install
irm https://install.tqer39.dev/windows | iex

# Full install
.\install.ps1 -Full

# If PowerShell's execution policy blocks the script, use:
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Full

# Preview changes
.\install.ps1 -DryRun

✨ Features

  • Idempotent: Safe to run multiple times - existing correct symlinks are skipped
  • Cross-platform: Supports macOS, Linux (Ubuntu), and Windows
  • Location: Repository is cloned to ~/.dotfiles
  • Backup: Existing files are backed up to ~/.dotfiles_backup/
  • Modular: Choose between minimal (dotfiles only) or full (with dev tools) installation

βš™οΈ Command Line Options

Option Description
--full Full setup (dotfiles + development environment)
--minimal Minimal setup (dotfiles only, default)
--skip-packages Skip package manager installation
--skip-languages Skip language runtime installation
--dry-run Show what would be done without executing
-v, --verbose Enable verbose output
--uninstall Remove dotfiles symlinks
--work Work/company mode (skip personal packages)
--ci CI mode (non-interactive)
--doctor Run environment health check

πŸ“ Repository Structure

dotfiles/
β”œβ”€β”€ install.sh              # Unix entry point
β”œβ”€β”€ install.ps1             # Windows PowerShell entry point
β”œβ”€β”€ src/                    # Dotfiles
β”‚   β”œβ”€β”€ .zshrc              # Zsh configuration
β”‚   β”œβ”€β”€ .bashrc             # Bash configuration
β”‚   β”œβ”€β”€ .gitconfig          # Git configuration
β”‚   β”œβ”€β”€ .hammerspoon/       # Window management (macOS)
β”‚   β”œβ”€β”€ .vscode/            # VS Code settings
β”‚   └── .config/
β”‚       β”œβ”€β”€ starship.toml   # Starship prompt
β”‚       β”œβ”€β”€ karabiner/      # Keyboard customization (macOS)
β”‚       └── git/            # Git ignore patterns
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ lib/                # Shared utilities
β”‚   β”œβ”€β”€ installers/         # Package installers
β”‚   └── dotfiles.sh         # Symlink management
└── config/
    β”œβ”€β”€ platform-files.conf # File -> symlink mapping
    └── packages/           # Package lists (Brewfile, etc.)

πŸ“¦ What's Inside

All dotfiles that get symlinked during installation:

🐚 Shell

File Destination Description Platform
.shell_common ~/.shell_common Shared aliases & functions (git, ls, navigation) 🍎 🐧
.zshrc ~/.zshrc Zsh configuration 🍎 🐧
.bashrc ~/.bashrc Bash configuration 🍎 🐧
.bash_profile ~/.bash_profile Bash login shell config 🍎 🐧
Microsoft.PowerShell_profile.ps1 ~/Documents/PowerShell/... PowerShell profile πŸͺŸ

πŸ”€ Git

File Destination Description Platform
.gitconfig ~/.gitconfig Git user config, GPG signing, aliases 🍎 🐧 πŸͺŸ
.gitignore ~/.gitignore_global Global ignore patterns 🍎 🐧 πŸͺŸ
.config/git/ignore ~/.config/git/ignore Additional ignore rules 🍎 🐧 πŸͺŸ

🎨 Terminal & Prompt

File Destination Description Platform
.config/starship.toml ~/.config/starship.toml Starship prompt (Tokyo Night theme) 🍎 🐧
.config/ghostty/config ~/.config/ghostty/config Ghostty terminal config 🍎 🐧
.config/sheldon/plugins.toml ~/.config/sheldon/plugins.toml Zsh plugin manager 🍎 🐧

πŸ”§ Tools

File Destination Description Platform
.config/mise/config.toml ~/.config/mise/config.toml mise version manager (Node.js, Claude Code, etc.) 🍎 🐧 πŸͺŸ

⌨️ macOS Productivity

File Destination Description Platform
.hammerspoon/init.lua ~/.hammerspoon/init.lua Window management automation 🍎
.config/karabiner/karabiner.json ~/.config/karabiner/karabiner.json Keyboard remapping 🍎

πŸ’» VS Code

File Destination Description Platform
.vscode/extensions.json VSCODE_USER_DIR/extensions.json Recommended extensions 🍎 🐧 πŸͺŸ
.vscode/mcp.json VSCODE_USER_DIR/mcp.json MCP server config 🍎 🐧 πŸͺŸ

Legend: 🍎 macOS Β· 🐧 Linux Β· πŸͺŸ Windows

πŸ”Œ Full Installation Includes

When using --full, the following will also be installed:

πŸ“¦ Package Managers

  • macOS/Linux: Homebrew + packages from config/packages/Brewfile
  • Ubuntu: APT packages from config/packages/apt-packages.txt
  • Windows: Scoop (CLI tools) + winget (GUI apps)

πŸ› οΈ Development Tools

  • anyenv: For managing language runtimes (pyenv, nodenv, etc.)
  • VS Code Extensions: From src/.vscode/extensions.json

πŸ“‹ Requirements

  • Git: Required for cloning the repository
  • curl (Unix) or PowerShell 5.1+ (Windows)

πŸ§‘β€πŸ’» Development

This repository uses tools that require macOS or Linux:

  • make bootstrap - Install development dependencies
  • just setup - Configure development environment
  • just lint - Run linters
  • just tf - Run Terraform commands

Windows is supported for using dotfiles, but developing this repository requires macOS or Linux.

πŸ“„ License

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

About

My dotfiles repository

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5