An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

#  macOS Dotfiles for Frontend Development

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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).