Pretty Good Terminal — Customize Your Shell for Productivity

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

  1. 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.
  2. 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.
  3. 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.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *