Skip to content

graysurf/night-owl-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

29 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ™ Night Owl CLI Theme Suite

A fully synchronized CLI color theme based on the famous Night Owl palette, redesigned for low-light, high-focus terminal environments.

This project brings Night Owl's signature cool tones and soft contrasts to your favorite command-line tools, including:

  • ๐Ÿ™ delta โ€“ Git diff viewer
  • ๐ŸŒณ git โ€“ log/branch colors
  • ๐Ÿฑ bat โ€“ Syntax-highlighting cat replacement
  • ๐Ÿฆ‰ eza โ€“ Modern ls replacement
  • ๐Ÿ› k9s โ€“ Kubernetes TUI client
  • ๐Ÿงฌ fzf โ€“ Fuzzy finder with preview integration
  • ๐Ÿ”ฎ iterm2 โ€“ Terminal emulator color scheme
  • ๐Ÿงช tmux โ€“ Status line and pane border theming
  • ๐Ÿš€ starship โ€“ Minimal prompt with semantic color cues

๐ŸŽฏ Philosophy

Night Owl is more than a theme โ€” itโ€™s a workspace ritual.

  • Optimized for focus and clarity in low-light environments
  • Reduces eye strain without sacrificing syntax readability
  • Carefully selected saturation and brightness levels per tool

๐Ÿ“ Directory Structure

night-owl-cli/
โ”‚
โ”œโ”€โ”€ delta/night-owl-delta.ini
โ”œโ”€โ”€ git/night-owl-colors.gitconfig
โ”œโ”€โ”€ bat/Night-Owl.tmTheme
โ”œโ”€โ”€ eza/night-owl.yml
โ”œโ”€โ”€ k9s/night-owl.yaml
โ”œโ”€โ”€ fzf/fzf-night-owl.zsh
โ”œโ”€โ”€ iterm2/Night-Owl.itermcolors
โ”œโ”€โ”€ tmux/night-owl.tmux
โ”œโ”€โ”€ starship/
โ”‚   โ”œโ”€โ”€ starship.toml
โ”‚   โ””โ”€โ”€ random_emoji_cmd.sh
โ”‚
โ”œโ”€โ”€ scripts/
โ”‚   โ”œโ”€โ”€ manifest.sh        # single source of truth: what installs where
โ”‚   โ”œโ”€โ”€ check.sh           # one entrypoint for all checks (local + CI)
โ”‚   โ”œโ”€โ”€ check-palette.sh   # palette drift guard
โ”‚   โ””โ”€โ”€ check-iterm.py     # iTerm2 palette cross-check
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ install.bats       # install/uninstall round-trip tests
โ”œโ”€โ”€ PALETTE.md             # canonical colour reference
โ”œโ”€โ”€ install.sh
โ””โ”€โ”€ uninstall.sh

๐Ÿ”ง Setup Instructions

๐Ÿ”น Quick Start (Optional)

A helper script is available for auto-installation of supported components:

./install.sh

This script:

  • Installs each theme only if the related tool is installed
  • Backs up an existing, differing config once (.bak) before replacing it
  • Symlinks (or copies, where the tool needs a real file) into the right location
  • Is safe to re-run โ€” it won't pile up backups of its own files

โš ๏ธ If you already have custom config for any tool, review and merge manually. Do not run blindly unless you're fully aware of the changes.

When in doubt: install one tool at a time by following the steps below.


๐Ÿ™ delta

  1. Copy delta/night-owl-delta.ini to ~/.config/delta/themes/night-owl.ini

  2. In ~/.gitconfig, include the theme config:

    [include]
        path = ~/.config/delta/themes/night-owl.ini
    
    [delta]
        syntax-theme = "Night-Owl"
        features = "night-owl"

โœ… Note: Do not manually copy the [delta "night-owl"] block into ~/.gitconfig. Use [include] instead to ensure full compatibility with delta's features mechanism.

Preview


๐ŸŒณ git

  1. Copy git/night-owl-colors.gitconfig to ~/.config/git/night-owl-colors.gitconfig

  2. In ~/.gitconfig, include the config:

    [include]
        path = ~/.config/git/night-owl-colors.gitconfig
  3. Try:

    git log --graph --decorate --oneline --all

Preview


๐Ÿฑ bat

  1. Copy bat/Night-Owl.tmTheme to ~/.config/bat/themes/
  2. Run: bat cache --build
  3. Set theme: export BAT_THEME="Night-Owl"

Preview


๐Ÿฆ‰ eza

  1. Copy eza/night-owl.yml to ~/.config/eza/theme.yml

  2. Set config directory (e.g. in your .zshrc / .bashrc):

    export EZA_CONFIG_DIR=~/.config/eza

Preview


๐Ÿ› k9s

  1. Copy k9s/night-owl.yaml to ~/.config/k9s/skins/night-owl.yaml (the installer uses $XDG_CONFIG_HOME/k9s/skins/; run k9s info to confirm your skins dir if it differs)

  2. Point k9s at the skin in its config.yaml. Recent k9s (v0.30+):

    k9s:
      ui:
        skin: night-owl

    Older k9s versions use a top-level k9s.skin: night-owl.

Preview


๐Ÿงฌ fzf

  1. The installer places the file at ~/.config/zsh/tools/fzf-night-owl.zsh. Source it from your shell config (.zshrc):

    source ~/.config/zsh/tools/fzf-night-owl.zsh

Preview


๐Ÿ”ฎ iterm2

  1. Go to Preferences โ†’ Profiles โ†’ Colors โ†’ Color Presets... โ†’ Import...
  2. Select iterm2/Night-Owl.itermcolors
  3. Apply the theme from the Presets dropdown

Preview


๐Ÿงช tmux

The tmux theme is colours only โ€” it does not touch your prefix key or other settings, and the installer never overwrites your ~/.tmux.conf.

  1. The installer places tmux/night-owl.tmux at ~/.config/tmux/night-owl.tmux.

  2. Source it from your own ~/.tmux.conf:

    source-file ~/.config/tmux/night-owl.tmux
  3. Reload: tmux source-file ~/.tmux.conf

Night Owl uses 24-bit hex colours. For exact rendering, enable truecolor: set -as terminal-features ",*:RGB"

Preview


๐Ÿš€ starship

  1. Replace or merge into ~/.config/starship.toml
  2. random_emoji_cmd.sh powers the [custom.emoji] prompt segment. install.sh copies it to ~/.config/zsh/tools/random_emoji_cmd.sh and marks it executable automatically. Installing starship.toml by hand? Place the script there yourself and chmod +x it, or update the path in starship.toml.

This script generates a random emoji for each prompt refresh ๐ŸŽฒ

Preview


๐Ÿ—‘๏ธ Uninstall Instructions

To remove all installed Night Owl configurations, run:

  ./uninstall.sh

This will:

  • Remove all Night Owl theme/config files installed by install.sh
  • Restore any .bak backups that were created during installation

To preview what would be removed without making changes:

  ./uninstall.sh --dry-run

โš ๏ธ iTerm2 color presets must be removed manually: Preferences โ†’ Profiles โ†’ Colors โ†’ Color Presets... โ†’ Remove 'Night Owl'

โš ๏ธ If you added a Git [include] path = ~/.config/git/night-owl-colors.gitconfig, remove it manually.

This script only affects files created by install.sh. If you've merged configs manually, please review them before running uninstall.

๐Ÿ›  Development

The colour set lives in PALETTE.md and what-installs-where lives in scripts/manifest.sh โ€” both single sources of truth. One script runs every check (shellcheck, shfmt, palette drift, iTerm2 palette cross-check, install/uninstall round-trip tests, dry-run smoke), locally and in CI (.github/workflows/ci.yml):

./scripts/check.sh          # needs shellcheck, shfmt (+ bats, python3 for the full set)

Adding a new tool is one line in scripts/manifest.sh (key|command|source|destination|mode), shared by install and uninstall. See CONTRIBUTING.md.

๐Ÿชช License

License: MIT

This project is licensed under the MIT License. See LICENSE. Theme color values adapted from Night Owl VSCode theme by Sarah Drasner.

This project is a CLI-oriented adaptation for personal and community use.


Contributions welcome. Pull requests for additional tool integrations or refinements appreciated.

About

A fully synchronized CLI color theme based on the famous Night Owl palette, redesigned for low-light, high-focus terminal environments.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors