Development environment configuration files for macOS and Ubuntu.
- Shell: Zsh with Oh My Zsh and Powerlevel10k theme
- Terminal Multiplexer: Tmux with custom Catppuccin theme
- Editor: Neovim with custom Lua configuration
- Terminal: Alacritty and Ghostty configuration
- CLI Tools: fzf, fd, bat, eza, zoxide, ripgrep, lazygit
Run this command to automatically set up your development environment:
curl -fsSL https://raw.githubusercontent.com/tonmoy0010/dev-environment-files/main/install-macos.sh | bashOr clone and run manually:
git clone https://github.com/tonmoy0010/dev-environment-files.git
cd dev-environment-files
chmod +x install-macos.sh
./install-macos.shRun this command to automatically set up your development environment:
curl -fsSL https://raw.githubusercontent.com/tonmoy0010/dev-environment-files/main/install-ubuntu.sh | bashOr clone and run manually:
git clone https://github.com/tonmoy0010/dev-environment-files.git
cd dev-environment-files
chmod +x install-ubuntu.sh
./install-ubuntu.sh- macOS: Homebrew
- Ubuntu: apt-get
neovim- Modern Vim-based text editortmux- Terminal multiplexerfzf- Fuzzy finderfd- Fast alternative to findbat- Cat clone with syntax highlightingeza- Modern ls replacementzoxide- Smarter cd commandripgrep- Fast grep alternativelazygit- Terminal UI for git commandsgit- Version controlgpg- GNU Privacy Guardyara- Pattern matching toolexiftool- Metadata reader/writer
- Oh My Zsh
- Powerlevel10k theme
- zsh-autosuggestions plugin
- zsh-syntax-highlighting plugin
- tmux-sensible
- tmux-resurrect
- tmux-continuum
- tmux-yank
After running the installation script:
-
Restart your terminal or run:
source ~/.zshrc
-
Install Tmux plugins:
- Open tmux:
tmux - Press
Ctrl+athenShift+Ito install plugins
- Open tmux:
-
Neovim plugins:
- Open nvim:
nvim - Plugins should auto-install on first launch
- Open nvim:
-
Optional: Configure Powerlevel10k:
p10k configure
.zshrc- Zsh configuration.tmux.conf- Tmux configuration.config/nvim/- Neovim configuration.config/alacritty/- Alacritty terminal configuration.config/ghostty/- Ghostty terminal configuration
- The script creates symlinks for
fdandbatcommands in~/.local/bin - Clipboard support uses
xclip(installed automatically) - If you want GUI apps like Alacritty, install separately:
sudo add-apt-repository ppa:aslatter/ppa sudo apt update sudo apt install alacritty
- On Apple Silicon Macs, Homebrew is installed to
/opt/homebrew - Clipboard support uses
pbcopy(built-in) - If you want Alacritty, install via Homebrew:
brew install --cask alacritty
Problem: When trying to make signed Git commits in Ghostty terminal, cannot enter passphrase.
Solution: Configure GPG to use pinentry-tty for terminal-based passphrase entry.
-
Create or edit the GPG agent configuration file:
echo "pinentry-program $(which pinentry-tty)" > ~/.gnupg/gpg-agent.conf
-
Restart the GPG agent to apply the configuration:
gpgconf --kill gpg-agent gpg-agent --daemon
-
Reload your shell configuration:
source ~/.zshrc
Or close and reopen your Ghostty terminal.
The GPG agent will now prompt for your passphrase directly in the terminal when making signed commits.
brew install bat eza ripgrep fd tldr delta dust procs btop lazygit zoxide fzf git jq tmux vim nvimsudo apt-get install git curl wget build-essential zsh tmux ripgrep neovim fd-find bat
# lazygit (install from GitHub releases)
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
rm lazygit lazygit.tar.gzPrefix Key: Ctrl+a (instead of default Ctrl+b)
prefix + r- Reload tmux configurationprefix + c- Create new windowprefix + |- Split pane verticallyprefix + -- Split pane horizontally
Ctrl+h- Move to left paneCtrl+j- Move to down paneCtrl+k- Move to up paneCtrl+l- Move to right pane
prefix + h- Resize pane leftprefix + j- Resize pane downprefix + k- Resize pane upprefix + l- Resize pane right
prefix + [- Enter copy modev- Begin selection (in copy mode)y- Copy selection (in copy mode)- Mouse drag +
y- Select and copy text
prefix + Shift+I- Install TPM pluginsprefix + U- Update pluginsprefix + Alt+u- Uninstall plugins
Leader Key: Space
jk- Exit insert mode (alternative to ESC)<leader>nh- Clear search highlights
<leader>+- Increment number under cursor<leader>-- Decrement number under cursor
<leader>sv- Split window vertically<leader>sh- Split window horizontally<leader>se- Make splits equal size<leader>sx- Close current split
<leader>to- Open new tab<leader>tx- Close current tab<leader>tn- Go to next tab<leader>tp- Go to previous tab<leader>tf- Open current buffer in new tab
<leader>ee- Toggle file explorer<leader>ef- Toggle file explorer on current file<leader>ec- Collapse file explorer<leader>er- Refresh file explorer
<leader>ff- Find files in current directory<leader>fr- Find recent files<leader>fs- Live grep (search string in project)<leader>fc- Find string under cursor<leader>ft- Find TODO comments<leader>fk- Find keymaps<leader>fz- Find directories with zoxide
Telescope Navigation (in picker):
Ctrl+k- Move to previous resultCtrl+j- Move to next resultCtrl+q- Send selected to quickfix listCtrl+t- Open in Trouble
gR- Show referencesgD- Go to declarationgd- Go to definitiongi- Show implementationsgt- Show type definitionsK- Show hover documentation<leader>ca- Show code actions<leader>rn- Rename symbol<leader>D- Show diagnostics for file<leader>d- Show diagnostics for current line[d- Go to previous diagnostic]d- Go to next diagnostic<leader>rs- Restart LSP server
<leader>xx- Toggle diagnostics list<leader>xw- Toggle workspace diagnostics<leader>xd- Toggle document diagnostics<leader>xq- Toggle quickfix list<leader>xl- Toggle location list<leader>xt- Toggle TODO comments in Trouble
]t- Next TODO comment[t- Previous TODO comment
<leader>lg- Open LazyGit interface
Ctrl+T- Fuzzy find files in current directoryCtrl+R- Fuzzy search command historyAlt+C- Fuzzy change directory
z <partial-path>- Jump to a directory (e.g.,z proj)zi- Interactive directory selection
ESC ESC- Addsudoto current command (sudo plugin)
MIT License - See LICENSE file for details