https://github.com/phoinixi/dotfiles
dotfiles for frontend development in Mac os X, includes oh-my-zsh, vscode settings and git aliases and several utilities
https://github.com/phoinixi/dotfiles
brewfile dotfiles frontend-development macos-setup vscode zsh
Last synced: 4 months ago
JSON representation
dotfiles for frontend development in Mac os X, includes oh-my-zsh, vscode settings and git aliases and several utilities
- Host: GitHub
- URL: https://github.com/phoinixi/dotfiles
- Owner: phoinixi
- Created: 2017-09-18T18:18:53.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2025-04-17T22:31:55.000Z (about 1 year ago)
- Last Synced: 2025-04-18T12:00:47.758Z (about 1 year ago)
- Topics: brewfile, dotfiles, frontend-development, macos-setup, vscode, zsh
- Language: Shell
- Homepage: https://francescoesposito.dev/blog/developer-dotfiles-guide/
- Size: 47.9 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# macOS Dotfiles for Frontend Development
[](https://opensource.org/licenses/MIT)
This repository contains personal configuration files (dotfiles) optimized for a macOS frontend development environment. It sets up Zsh with Oh My Zsh, installs useful tools and applications via Homebrew, configures Git, and applies various macOS settings.
## Features
- **Shell:** Zsh + Oh My Zsh with useful plugins (`git`, `node`, `npm`, `yarn`, `pnpm`, `docker`, `z`, etc.).
- **Package Management:** Uses [Homebrew](https://brew.sh/) and `brew bundle` to manage CLI tools and GUI applications (`Brewfile`).
- **Node.js Management:** Uses [fnm](https://github.com/Schniz/fnm) for Node.js version management.
- **Git Configuration:** Sensible defaults and useful aliases (`git/.gitconfig`, `git/.gitignore_global`).
- **Editor Configuration:** Basic editor consistency via `.editorconfig`.
- **macOS Settings:** Customizes macOS defaults for Finder, Dock, keyboard, screenshots, and more via scripts in the `osx/` directory (Use with caution, review `osx/utility.sh` and `osx/dock.sh`).
- **Installation Script:** Provides an idempotent `install.sh` script to set up Homebrew, install dependencies, and create necessary symlinks.
## Prerequisites
- macOS
- Git (for cloning)
## Installation
1. **Clone the repository:**
```bash
git clone https://github.com/phoinixi/dotfiles.git ~/.dotfiles
```
_(Using `~/.dotfiles` is a common convention, but you can choose another location)_
2. **Run the installation script:**
```bash
cd ~/.dotfiles
./install.sh
```
The script will:
- Install Homebrew if it's not already present.
- Install all packages and applications listed in the `Brewfile`.
- Install Oh My Zsh if it's not already present.
- Create symbolic links from your home directory (`~/`) to the configuration files in this repository (e.g., `~/.zshrc` -> `~/.dotfiles/.zshrc`). Existing files will be backed up (e.g., `~/.zshrc.bak`).
- Install the LTS version of Node.js using `fnm`.
- Apply macOS settings defined in the `osx/` directory.
3. **Restart your terminal:** Open a new terminal window/tab or run `source ~/.zshrc` for all changes to take effect.
4. **(Manual Step) Configure Git User:** Set your Git user name and email globally:
```bash
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
```
## Key Software Included (via Brewfile)
- **CLI Tools:** `fzf`, `ripgrep`, `bat`, `eza`, `httpie`, `jq`, `watchman`, `gh`, `coreutils`, etc.
- **Frontend:** `fnm`, `pnpm`.
- **Apps:** `hyper`, `visual-studio-code`, `cursor`, `brave-browser`, `google-chrome`, `raycast`, `docker`, `slack`, `telegram`, `whatsapp`, etc. (Check `Brewfile` for the full list).
## Customization
- **Brewfile:** Add or remove packages/casks by editing the `Brewfile` and re-running `brew bundle install --file=~/.dotfiles/Brewfile`.
- **Zsh:** Add custom aliases, functions, or change plugins/theme in `.zshrc`.
- **Git:** Modify `git/.gitconfig` for different Git settings.
- **macOS Settings:** Edit scripts in the `osx/` directory (carefully review changes, especially in `utility.sh`). Remove the call to `source index.sh` in `install.sh` if you don't want these settings applied.
## Structure Overview
```
.
├── Brewfile # Homebrew packages and applications
├── Brewfile.lock.json # Generated by brew bundle
├── README.md # This file
├── .editorconfig # Editor code style consistency
├── .zshrc # Main Zsh configuration (sources OMZ, sets options, aliases)
├── git/
│ ├── .gitconfig # Git configuration (symlinked to ~/.gitconfig)
│ └── .gitignore_global # Source for global gitignore
├── install.sh # Installation and setup script
├── osx/ # macOS customization scripts
│ ├── index.sh # Main script applying macOS settings
└── utils/ # Helper scripts for install.sh
└── utils.sh
```
## Contributing / Issues
Found a bug or want a new feature? Please [create an issue](https://github.com/phoinixi/dotfiles/issues/new).