Skip to main content
Gentleman.Dots provides configurations for three modern shells, each with unique strengths. All configurations share common tools (Starship, Zoxide, Atuin, FZF) while maintaining shell-specific optimizations.

Shell Comparison

Nushell

Modern, structured data shell with pipelines that work like spreadsheets

Fish

Friendly, interactive shell with excellent autosuggestions out of the box

Zsh

Traditional powerhouse with Oh-My-Zsh and Powerlevel10k customization

Quick Comparison

FeatureNushellFishZsh
PhilosophyStructured dataUser-friendlyPOSIX-compatible
Learning CurveModerateEasyEasy-Moderate
ScriptingUnique syntaxFish scriptBash-like
CompatibilityLimitedLimitedExcellent
PerformanceFastFastFast
CustomizationConfig filesFunctionsPlugins

Common Features

All three shell configurations include:
1

Starship Prompt

Beautiful, minimal prompt with git integration and language version detection
2

Zoxide

Smart directory jumping - replaces cd with intelligent path matching
3

Atuin

Magical shell history with sync capabilities and better search
4

FZF Integration

Fuzzy finding for files, history, and commands
5

Carapace Completions

Multi-shell completion engine for hundreds of commands
6

Automatic Tmux

Sessions automatically start inside tmux multiplexer

Which Shell Should I Choose?

Choose Nushell if you:

  • Work with structured data (JSON, CSV, YAML) frequently
  • Want modern language features (type safety, pipelines)
  • Prefer explicit, readable commands over shell shortcuts
  • Don’t need POSIX script compatibility
  • Enjoy functional programming concepts
open data.json | where status == "active" | select name age | to csv

Choose Fish if you:

  • Want immediate productivity without configuration
  • Value syntax highlighting and autosuggestions
  • Prefer web-based configuration
  • Need a friendly interactive experience
  • Don’t require POSIX compatibility
abbr -a gs git status
abbr -a gco git checkout

Choose Zsh if you:

  • Need maximum POSIX/Bash compatibility
  • Want the largest plugin ecosystem (Oh-My-Zsh)
  • Require shell scripts to be portable
  • Prefer traditional Unix shell behavior
  • Want extensive theming options (Powerlevel10k)
plugins=(
  git
  docker
  kubectl
  command-not-found
)

Installation

You can install multiple shells and switch between them. Just set your default shell with:
chsh -s $(which <shell-name>)
Each shell has its own installation guide:

Theme: Gentleman Color Palette

All shells use the custom Gentleman color scheme:
  • Text: #F3F6F9 - Clean, readable foreground
  • Blue: #7FB4CA - Directories, keywords
  • Green: #B7CC85 - Strings, success
  • Yellow: #FFE066 - Warnings, literals
  • Red: #CB7C94 - Errors, operators
  • Purple: #A3B5D6 - Variables, types
  • Pink: #FF8DD7 - Special, highlights
  • Teal: #7AA89F - Cyan alternative

Next Steps

Terminal Emulators

Configure Kitty, Ghostty, or other terminals

Tmux Configuration

Learn about the tmux setup

Build docs developers (and LLMs) love