From Zero to Pro with Pretty Good Terminal: Setup and ShortcutsPretty Good Terminal (PGT) is designed for people who want a fast, reliable, and pleasant command-line environment without spending weeks on configuration. This guide walks you from a fresh install to a professional, efficient workflow with practical setup steps, sensible defaults, and keyboard shortcuts that actually matter. Whether you’re new to the terminal or returning after a break, you’ll finish with a setup that’s stable, customizable, and focused on velocity.
Why choose Pretty Good Terminal?
- Balanced defaults: PGT ships with sane defaults that work for most tasks out of the box, reducing the time spent tweaking.
- Performance-first: Lightweight components keep startup fast and responsiveness high.
- Customization without chaos: Powerful theming and plugin options that don’t require a PhD in dotfiles.
- Practical ergonomics: Shortcuts and behaviors are curated to minimize keystrokes for common tasks.
1. Installation and first run
-
Install PGT:
- macOS: use Homebrew — brew install pretty-good-terminal
- Linux: use your distro package manager or download the AppImage/DEB/RPM from the official repository.
- Windows: install via Scoop or Chocolatey, or use the Windows Subsystem for Linux (WSL) with a terminal emulator.
-
Launch PGT for the first time:
- Accept the default profile on the welcome screen. Defaults include a readable font size (14px), true-color support, and a monospace font optimized for ligatures off by default.
-
Configure shell:
- Choose your shell (bash, zsh, fish). PGT works well with any; fish and zsh offer modern conveniences out of the box.
- If you plan to use WSL, set PGT to start WSL shells by default.
2. Core settings to tweak immediately
Tweak these only if you find the defaults lacking.
- Appearance:
- Increase font size for long sessions.
- Enable “soft wrap” for easier reading of long lines.
- Performance:
- Disable GPU acceleration if you see graphical glitches; enable it if you want smoother animations.
- Clipboard:
- Enable “paste without formatting” to avoid stray control characters.
- Profiles:
- Create separate profiles for development, remote work, and monitoring (each with its own colors and startup command).
3. Shell choice and configuration
- zsh + Oh My Zsh: quick productivity gains via plugins (git, zsh-autosuggestions, zsh-syntax-highlighting).
- fish: excellent defaults, autosuggestions, and a simpler configuration model.
- bash: stable and ubiquitous; add bash-completion for parity with zsh.
Example minimal zsh setup (~/.zshrc):
export ZSH="$HOME/.oh-my-zsh" ZSH_THEME="agnoster" plugins=(git zsh-autosuggestions zsh-syntax-highlighting) source $ZSH/oh-my-zsh.sh export EDITOR="nvim"
4. Plugin and tool recommendations
- fzf — fuzzy finder for files, history, and commands.
- ripgrep (rg) — fast recursive search.
- bat — cat clone with syntax highlighting.
- exa — modern ls replacement with colors and icons.
- starship — minimal, fast prompt for zsh/fish/bash.
Install example (macOS Homebrew):
brew install fzf ripgrep bat exa starship
Then add starship init to ~/.bashrc or ~/.zshrc:
eval "$(starship init zsh)"
5. Useful shortcuts and workflows
PGT provides both built-in shortcuts and makes it easy to map custom ones. Below are effective shortcuts and their rationale.
- Pane and tab navigation:
- Split pane vertically: Ctrl+Shift+E
- Split pane horizontally: Ctrl+Shift+S
- Next pane: Ctrl+ArrowKey
- Close current pane: Ctrl+W
- Copy/Paste:
- Copy selection: Ctrl+Shift+C
- Paste: Ctrl+Shift+V
- Paste as plain text: Ctrl+Shift+Alt+V
- Search:
- Open terminal search (find text in scrollback): Ctrl+F
- History and command finder:
- Open fzf-based command history: Ctrl+R (with fzf integration)
- Zoom and font:
- Increase font: Ctrl+Plus
- Decrease font: Ctrl+Minus
- Quick commands:
- Quick command palette (run aliases/snippets): Ctrl+P
Tip: map frequently used repo or server log tails to profiles so they open with a single click.
6. Advanced productivity patterns
- Hot-start sessions: save a workspace with named panes and startup commands. Use for recurring tasks: frontend dev, backend services, logs, database shells.
- Triggered commands: configure quick actions in the palette — e.g., “Restart server,” “Run tests,” “Open docs.”
- Contextual prompts: use starship modules to show git status, elapsed time, and CI hints only when relevant.
- Prompt minimalism for speed: prefer brief prompts showing only necessary context (git branch, error state). Long prompts slow down remote sessions.
7. Remote development and SSH
- SSH config: use ~/.ssh/config for aliases, keys, and ControlMaster multiplexing to speed up repeated connections.
- Use PGT’s SSH profiles to open persistent connections in named tabs.
- For remote development, combine with VS Code Remote or tmux on the server to retain sessions.
Example ~/.ssh/config:
Host webprod HostName 192.0.2.10 User deploy IdentityFile ~/.ssh/deploy_id_rsa ControlMaster auto ControlPath ~/.ssh/cm-%r@%h:%p ControlPersist 10m
8. Troubleshooting common issues
- Slow startup: check shell init files for blocking network calls; profile with zsh’s zprof or bash’s PS4 tracing.
- Weird colors: ensure TERM is set to a truecolor-capable value (e.g., xterm-256color or tmux-256color); enable truecolor in your shell and tools.
- Clipboard issues on WSL: enable PGT’s WSL clipboard integration or use wl-clipboard/clip.exe bridge.
9. Example dotfiles layout
- ~/.config/pgt/config.toml — terminal settings
- ~/.zshrc or ~/.config/fish/config.fish — shell config
- ~/.config/starship.toml — prompt config
- ~/.config/fzf — fzf defaults/keys
- ~/.ssh — SSH keys and config
10. Quick reference: must-know commands
- Search project: rg “pattern”
- Open fuzzy file finder: fzf
- Preview file: bat file.txt
- Show git status: git status –short
- Tail logs: tail -f /var/log/app.log
Pretty Good Terminal aims to be pragmatic: fast defaults, sensible ergonomics, and extensibility when you need it. Start with the recommended tools and shortcuts, save a few workspace profiles, and iterate—small, focused tweaks will take you from zero to pro without the configuration fatigue.
Leave a Reply