Personal configuration files for macOS, optimized for DevOps and cloud engineering workflows.
.zshrc- Zsh shell configuration with Oh My Zsh framework.tmux.conf- Tmux terminal multiplexer configurationghostty/config- Ghostty terminal emulator configuration (tmux alternative)
- Framework: Oh My Zsh with
robbyrusselltheme - Version Managers: rbenv, nodenv, pyenv, direnv
- Plugins: git, brew, gem, aws, docker, golang, tmux, kubectl, kubetail, terraform
- Cloud Tools: Google Cloud SDK, AWS CLI
- Kubernetes: kubectl, stern, kube-ps1 for context display in prompt
- Developer Tools:
- GitHub CLI (gh) with interactive PR checkout via peco
- Peco for interactive filtering and selection
- GHQ for repository management
- Hub for GitHub operations
- Custom Aliases:
p: Navigate to projects using ghq + pecob: Browse GitHub repository using hub + pecov: Open project in VS Code using ghq + pecoGl: Open project in GoLand IDEi: Open project in IntelliJ IDEAC: Pipe output to clipboard (pbcopy)- Safety aliases:
rm -i,cp -i,mv -i,mkdir -p
- Enhanced Features:
- Syntax highlighting and autosuggestions
- 1M entry command history with deduplication and timestamp
- Case-insensitive completion matching
- Auto-cd by directory name
- Japanese file name support
- Emacs-style keybindings
- Prefix:
Ctrl-T(instead of default Ctrl-B) - Default Shell: Zsh
- Mouse Support: Enabled with scroll wheel
- Clipboard: macOS integration via
reattach-to-user-namespace - Key Bindings:
Ctrl-T: Next windowv: Vertical splith: Horizontal splitShift+Arrow: Navigate panesPrefix + r: Reload config
- History: 5000 lines
- Copy/Paste: Ctrl-C/Ctrl-V for clipboard operations
Modern GPU-accelerated terminal emulator with native multiplexing (alternative to tmux):
- Default Shell: Zsh with native shell integration
- Mouse Support: Enabled with native clipboard integration
- Prefix Key:
Ctrl+T(matching tmux configuration) - Key Bindings (chord-based like tmux):
- Split Management:
Ctrl+T > H: Split leftCtrl+T > J: Split downCtrl+T > K: Split upCtrl+T > L: Split rightCtrl+T > F: Toggle split zoom (maximize/restore)
- Navigation:
Shift+Arrow Keys: Quick navigation between splitsCtrl+T > Arrow Keys: Navigate between splits (prefix style)Ctrl+T > H/J/K/L: Vim-style split navigation
- Tab Management:
Ctrl+T > N: Next tabCtrl+T > P: Previous tabCtrl+T > C: Create new tab
- Clipboard:
Ctrl+T > Shift+C: Copy to clipboardCtrl+T > V: Paste from clipboard
- Configuration:
Ctrl+T > R: Reload configuration
- Split Management:
- Scrollback: 5000 lines
- Terminal: 256 color support (xterm-256color)
- Features: GPU-accelerated rendering, native split panes, session management
# Terminal emulator and multiplexer
brew install ghostty # Modern GPU-accelerated terminal (tmux alternative)
brew install tmux # Traditional terminal multiplexer
brew install peco
brew install reattach-to-user-namespace
# Version managers
brew install rbenv
brew install nodenv
brew install pyenv
brew install direnv
# Git and GitHub tools
brew install ghq
brew install hub
# Kubernetes tools
brew install stern
# Programming languages
brew install go
brew install openjdk
brew install [email protected]
# Google Cloud SDK (via Cask)
brew install --cask google-cloud-sdk# Zsh syntax highlighting
brew install zsh-syntax-highlighting
# Zsh autosuggestions
brew install zsh-autosuggestions
# Kube-ps1 for Kubernetes context
brew install kube-ps1- Clone this repository:
git clone https://github.com/nsega/dotfiles.git ~/dotfiles
cd ~/dotfiles- Backup existing configurations (if any):
mv ~/.zshrc ~/.zshrc.backup
mv ~/.tmux.conf ~/.tmux.conf.backup- Create symlinks:
ln -s ~/dotfiles/.zshrc ~/.zshrc
ln -s ~/dotfiles/.tmux.conf ~/.tmux.conf
# For Ghostty configuration
mkdir -p ~/.config/ghostty
ln -sf ~/dotfiles/ghostty/config ~/.config/ghostty/config- Install Oh My Zsh (if not already installed):
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"-
Install required dependencies (see Requirements section)
-
Reload your shell:
source ~/.zshrcInteractive PR Checkout:
- Press
Ctrl-G Ctrl-Pto interactively select and checkout a GitHub pull request using peco
Project Navigation:
- Use
palias to navigate to projects managed by ghq (uses peco for selection) - Use
balias to browse GitHub repositories in your browser - Use
valias to open projects in VS Code - Use
Glorialiases to open projects in GoLand/IntelliJ
Kubernetes Context:
- Current kubectl context displayed in prompt via kube-ps1
Other Shortcuts:
Ctrl-R: History search with pattern matching| C: Pipe command output to clipboard- Tab completion works case-insensitively
Basic Operations:
- Start tmux:
tmux - New session:
tmux new -s <name> - Attach session:
tmux attach -t <name> - List sessions:
tmux ls
Window Management:
Ctrl-T c: Create new windowCtrl-T: Next windowCtrl-T n: Next windowCtrl-T p: Previous window
Pane Management:
Ctrl-T v: Vertical splitCtrl-T h: Horizontal splitShift+Arrow: Navigate between panes
Getting Started:
- Launch Ghostty from Applications or via
ghosttycommand - Configuration loads automatically from
~/.config/ghostty/config
Split Management:
Ctrl+T > H/J/K/L: Create splits left/down/up/right (vim-style)Shift+Arrow Keys: Quick navigation between splitsCtrl+T > Arrow Keys: Navigate between splits (prefix style)Ctrl+T > F: Toggle split zoom (maximize/restore current split)- Mouse click to focus a split
Tab Management:
Ctrl+T > N: Switch to next tabCtrl+T > P: Switch to previous tabCtrl+T > C: Create new tab- Mouse click on tab bar to switch tabs
Clipboard Operations:
Ctrl+T > Shift+C: Copy selected text to clipboardCtrl+T > V: Paste from clipboard- Native macOS clipboard integration (no reattach-to-user-namespace needed)
Configuration:
Ctrl+T > R: Reload configuration without restarting- Edit
~/dotfiles/ghostty/configto customize settings - Changes take effect immediately after reload
Note: The > symbol indicates a chord sequence - press Ctrl+T, release, then press the next key (similar to tmux prefix behavior)
Benefits over tmux:
- GPU-accelerated rendering for better performance
- Native split panes without separate multiplexer process
- Direct clipboard integration without additional tools
- Modern UI with mouse support out of the box
- Session persistence built-in
The .zshrc configures the following environment variables:
- GOPATH: Set to
$HOME - GOROOT: Points to Homebrew Go installation
- CLOUDSDK_PYTHON: Uses Python 3.8 from Homebrew
- GPG_TTY: Configured for GPG signing
- EDITOR: Set to
/usr/bin/vi - LANG: Set to
en_US.UTF-8
- History: 1,000,000 entries with timestamp format
mm/dd/yyyy - Oh My Zsh Updates: Every 13 days
- Completion: Waiting dots enabled, case-insensitive matching
- Behavior: Auto-cd, auto-pushd, share history across sessions
The configuration adds the following to PATH:
/opt/homebrew/binand/opt/homebrew/sbin/opt/homebrew/opt/openjdk/bin(Java)$HOME/.krew/bin(kubectl plugins)$HOME/.pyenv/shims/python(Python)$HOME/.nodenv/shims/node(Node.js)
Feel free to fork and customize these configurations for your own needs:
- Modify the theme in
.zshrcby changingZSH_THEME - Add/remove Oh My Zsh plugins in the
pluginsarray - Adjust tmux prefix key in
.tmux.conf - Customize Ghostty appearance and behavior in
ghostty/config:- Change
font-familyandfont-sizefor different fonts - Modify
themefor different color schemes - Adjust keybindings to match your workflow
- Configure
background-opacityfor transparency effects
- Change
- Add your own aliases and functions to
.zshrc - Update Python version in
CLOUDSDK_PYTHONif using different Python version
Personal configuration files - use at your own discretion.
nsega