omp-manager 0.1.2

A TUI manager for Oh My Posh - browse themes, install fonts, and configure shells with zero effort
omp-manager-0.1.2 is not a library.

Oh My Posh Manager

A terminal UI (TUI) that sets up Oh My Posh from scratch - no prior knowledge needed.

You don't need Oh My Posh installed. The app detects what's missing and walks you through everything: installing Oh My Posh, picking a Nerd Font, previewing and applying a theme, and configuring your shell. Just run it and follow the wizard.

Built with Rust, Ratatui, and a PowerShell-blue color scheme.

Screenshot


Installation

Cargo (from crates.io)

cargo install omp-manager

Chocolatey (Windows)

choco install omp-manager

Winget (Windows)

winget install marlocarlo.omp-manager

From source

git clone https://github.com/marlocarlo/omp-manager.git
cd omp-manager
cargo install --path .

Then run:

omp-manager

2. Follow the Setup Wizard

When you launch the app, go to Quick Setup (first item on the Dashboard) and press Enter at each step:

Step What happens
1. Install Oh My Posh Downloads and installs the OMP binary (winget on Windows, brew on macOS, official script on Linux)
2. Install a Nerd Font Presents a curated list of Nerd Fonts - pick one, press Enter, done
3. Pick a Theme Quick-pick from popular themes, or go to the Themes tab to browse all 100+ with live preview
4. Configure Shells Auto-detects your installed shells, toggle which ones to configure, press Enter

After step 4, restart your terminal and your prompt is ready.


Features

Dashboard

System status at a glance - OMP version, active theme, Nerd Font status, shell config status. Quick actions: open Setup Wizard, jump to Themes, install fonts, update, or reset everything to default.

Themes Browser

Browse 100+ built-in themes with:

  • Category sidebar - Popular, Minimal, Powerline, Colorful, Dark, Light
  • Live search - press / and type to filter
  • Visual preview - see colored PowerLine segments, blocks, and colors rendered in your terminal before applying
  • One-key apply - press Enter to download (if needed) and apply any theme

Themes are auto-downloaded from the official Oh My Posh GitHub repo on demand. No manual file management needed.


Keybindings

Key Action
Tab / 1-3 Switch tabs
Navigate lists
Switch panels / categories
/ Search themes
Enter Execute / Apply
Space Toggle (setup shells)
R Reset to default (dashboard)
q Quit

Mouse is fully supported - click tabs, click list items, scroll with the wheel, right-click themes for options.


Supported Shells

The app auto-detects which of these are installed and lets you configure any combination:

Shell Config File
PowerShell 7+ $PROFILE
Windows PowerShell ~/Documents/WindowsPowerShell/...profile.ps1
Bash ~/.bashrc
Zsh ~/.zshrc
Fish ~/.config/fish/config.fish
Nushell ~/.config/nushell/config.nu
Cmd (Clink) ~/.config/clink/oh-my-posh.lua
Elvish ~/.config/elvish/rc.elv

How It Works (under the hood)

  1. Detection - On startup, scans for the oh-my-posh binary, checks POSH_THEMES_PATH, detects installed shells and Nerd Fonts
  2. Theme catalog - Merges a built-in catalog of 100+ themes with any .omp.json files found on disk
  3. Downloads - Themes are fetched on demand from https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/
  4. Shell config - Writes the standard OMP init line to each shell's profile file (and can cleanly remove it)

Project Structure

src/
├── main.rs       Entry point, event loop, input handlers
├── app.rs        Central state machine (App struct, Tab/Focus enums)
├── ui.rs         All ratatui rendering - tabs, body, overlays, footer
├── theme.rs      PowerShell-inspired color palette constants
├── detect.rs     OS, Oh My Posh binary, Nerd Font detection
├── install.rs    Platform-specific OMP install, shell configuration
├── themes.rs     100+ built-in theme catalog, discovery from disk
├── config.rs     OMP JSON config parsing (Block, Segment, etc.)
├── segments.rs   70+ segment type catalog with icons/examples
├── fonts.rs      18 Nerd Font catalog, install via `oh-my-posh font`
├── shell.rs      Shell profile paths, init command generation
└── preview.rs    Theme preview renderer (colored PowerLine segments)

Requirements

  • Rust 1.70+ (for building from source)
  • A terminal with 256-color or truecolor support (Windows Terminal, iTerm2, most modern terminals)

You do not need Oh My Posh or a Nerd Font pre-installed - the app installs both for you.

License

MIT