This repository contains configuration files for setting up a development environment on a 2024 MacBook Air M2 with 16GB of RAM. The setup includes configurations for Zsh, Neovim, tmux, iTerm2, and oh-my-zsh, leveraging Homebrew for installation. Apart from iTerm2, the configurations should work on Linux systems as well. Windows configuration is untested.
This configuration is designed for developers seeking a powerful and customizable development environment that is concise, dark mode themed, and minimalistic, tailored for mobile and full-stack web development.
This repository ensures that my development environment is easy to replicate in the worst-case scenario of complete data loss. I made it public so that others can benefit from it.
Use your preferred package manager to install the packages listed in the installation section.
- Zsh (shell) Configuration
- Neovim (editor) Configuration
- tmux (terminal multiplexer) Configuration
- iTerm2 (terminal emulator) Configuration
- oh-my-zsh (shell framework) Configuration
- Additional Configurations
- Other Applications Used
- Contribution
- License
Zsh is a shell designed for interactive use, although it is also a powerful scripting language. Many of the useful features of bash, ksh, and tcsh were incorporated into zsh; many original features were added.
-
Install Zsh:
brew install zsh
-
Install
oh-my-zsh
: oh-my-zsh is a delightful, open source, community-driven framework for managing your Zsh configuration.sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
-
Install Powerlevel10k: Is a great theme for Zsh that adds a lot of useful features, such as a customizable prompt, a git-aware prompt, and a ton of other features.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
-
Install Plugins:
-
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
-
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
-
-
Update the
.zshrc
file: Replace contents of~/.zshrc
with the contents of.zshrc
in this repository. -
Reload the
.zshrc
file:source ~/.zshrc
Alternatively, you can just restart your terminal.
Neovim is a fork of Vim, with a focus on modern features and performance. It is designed to be used as a text editor, but it also has a lot of other features, such as a GUI, a terminal, and a job control system.
-
Install Neovim:
brew install neovim
-
Copy the Neovim configuration files: (Coming Soon)
tmux is a terminal multiplexer that allows you to split your terminal window into multiple panes, each of which can be used to run a separate program in a shell. This makes it easy to run multiple programs side by side, and it allows you to switch between them easily.
-
Install tmux:
brew install tmux
-
Update the tmux configuration file: Replace contents of
~/.tmux.conf
with the contents of.tmux.conf
in this repository.
iTerm2 is a powerful terminal emulator for macOS that is designed to be used with the macOS Terminal application. It is highly customizable and has a lot of features, such as a tabbed interface, a split pane, and a lot of other things.
-
Download and install iTerm2 from here.
-
Import iTerm2 preferences:
- Download or copy the iTerm2 configuration files from this repository.
- Go to
Preferences
>General
>Preferences
. - Check
Load preferences from a custom folder or URL
. - Select the path to your iTerm2 configuration files.
Configuration for oh-my-zsh
is included in the Zsh section above. Please refer to it for details on installation and setup.
-
Open the proper file:
sudo nano /etc/pam.d/sudo
-
Add the following to the file:
auth sufficient pam_tid.so
-
Save and Exit: Press
Ctrl + X
(exit) andY
(save) to save the file. Then pressEnter
to exit.
fzf is a command-line fuzzy finder. It is highly customizable and has a lot of features, such as a preview window, a multi-select mode, and a lot of other things.
-
Install fzf:
brew install fzf
-
Add the following to your
.zshrc
file:source <(fzf --zsh)
zoxide is a command-line tool that allows you to easily navigate your filesystem.
-
Install zoxide:
brew install zoxide
-
Add the following to your
.zshrc
file:eval "$(zoxide init zsh)"
thefuck is a command-line tool that helps you to correct your previous command.
-
Install thefuck:
brew install thefuck
-
Add the following to your
.zshrc
file:eval $(thefuck --alias) eval $(thefuck --alias FUCK)
- GitKraken Free Version: A Git GUI, useful for complex Git workflows.
- Postman: For API testing.
- Android Studio: For Android development.
- Xcode: For iOS development.
- shotrr: Shottr is a tiny and fast mac screenshot tool with annotations, scrolling screenshots and cloud upload capabilities. Built with love and optimized for Apple silicon. ImageOptim: ImageOptim is a free, powerful, high-quality image optimizer for Mac. Latest: Latest is a free and open source app for macOS that checks if all your apps are up to date. Get a quick overview of which apps changed and what changed and update them right away. AdGuard for Safari: AdGuard is a free and open source ad blocker for Safari, iOS and macOS. []
- Brave: Preferred for web development due to its better caching experience compared to Chrome.
- Firefox: Used for testing to ensure browser compatibility.
- Safari: My daily driver.
- Rectangle Pro: A window management app for macOS.
- Velja: A tool for select broswer to launch links.
- Dropover: An amazing clipboard
- Later: A productivity app for macOS that lets you save window sessions allowing for easy closing and re-opening of workspaces.
- Raycast Free Version: A collection of powerful productivity tools all within an extendable launcher. Fast, ergonomic and reliable. AKA better Spotlight.
Feel free to contribute by creating pull requests or reporting issues to improve this configuration.
This project is free for any use and modification.