Skip to content
Henry Schreiner edited this page Jun 15, 2026 · 1 revision

Welcome to the histoprint wiki!

Feature requests:

🤖 AI text below 🤖

I've gathered enough. Here's the consolidated list of suggested improvements from the open issues, deduplicated and with difficulty estimates.

Suggested improvements from open issues

Navigation & search (issues #192, #32, #33)

These three issues overlap heavily — most of the asks reduce to a handful of features.

# Improvement Source Difficulty
1 Fuzzy / filter search of branches — a text field (regex or fzf-style) to filter the sidebar tree, optionally across levels (treename/branchname) #192, #32, #33 Hard — needs a filtered/dynamic tree model in Textual; the biggest single ask, but the most requested
2 Type-to-jump — start typing a name to jump the cursor to the nearest matching node (a "jump mode" to avoid clashing with existing key bindings) #32 Medium — Textual's Tree has some built-in type-ahead; wiring a dedicated mode is moderate
3 Enter/exit levels with arrows (h/l or left/right to collapse/ascend) #32 Easy — mostly key bindings on the existing tree
4 Page up/down jumps a page; vim-style scrolloff; multi-line skips #32, #33 Easy–Medium — page jump likely already works via Textual; scrolloff is custom
5 Scroll/focus quirks — keyboard nav dead until sidebar clicked; clicking the plot loses keyboard nav; clicked entry not highlighted like scrolled #32, #33 Medium — focus-management in Textual; partly addressed already (several #33 boxes are checked)

Plotting features (issues #33, #28)

# Improvement Source Difficulty
6 Plot multiple variables on one axis (overlay) #33 Medium–Hard — UI to select/combine multiple branches plus plot.py support
7 Apply cuts (tree->Draw("MyVar","PT>1000")-style selection) #33 Medium — the expr-eval box already exists; needs a cut expression evaluated against arrays
8 Set axis range / binning from the UI #33 Medium — extends the existing plot-input/expr mechanism
9 Draw expressions, not just variables #33 Medium — partly enabled already via the expr eval box (h[:] slicing)
10 histoprint outputshow subcommand or plot --histoprint #28 Easy–Medium — well-scoped, labelled good first issue; YeungOnion volunteered

Bugs / robustness (issues #175, #50, #94, #33)

# Improvement Source Difficulty
11 Display TH2D / 2D histograms instead of raising #175 Hard — blocked upstream on plotext (axis support is poor); tracked at plotext#214
12 Don't crash on non-serializable content (RooFit objects in CMS Combine files) — show a traceback in the right pane instead #50 Medium — should already route to the error view; needs the dispatch/iteration path to catch and continue
13 Better error messaging — show the actual error + a friendly "type probably not supported" hint instead of a bare traceback #33 Easy–Medium — improve the Error widget/message text
14 Plot artifacts — second bar starts higher than first; needs proper axis tick placement #94 Hard — upstream plotext limitation; tick placement on terminals is intrinsically constrained

iTerm / rendering (issues #100, #33, #39)

# Improvement Source Difficulty
15 Transparent background for --iterm plots so they suit dark themes #100, #33 Easy–Medium — matplotlib savefig(transparent=True) in plot_mpl.py, but interacts with dark-line visibility
16 --iterm support inside browse (inline images in the TUI) #33 Hard — needs Rich/Textual to render binary image blobs; henryiii investigated and hit a wall (bytes not renderable)
17 README plot misalignment in Firefox (ui-monospace font) #39 Easy (workaround/doc) — not really a code bug; could add a note or use a font hint, true fix is out of scope

Summary by effort

  • Easy / good-first-issue: #10 (histoprint), #3 (arrow level nav), #13 (error message), #17 (README note)
  • Medium: #2, #4, #5, #7, #8, #9, #12, #15
  • Hard (often blocked upstream): #1 (fuzzy filter — most-requested), #6 (overlay plots), #11 (TH2D, blocked on plotext), #14 (plot artifacts/ticks, plotext), #16 (iTerm in TUI, blocked on Textual)

A few notes on what's already partly done: the expr eval box (#9) and several #33 navigation bugs (uppercase footer, keyboard-after-launch, page jump) are checked off in the issue. The highest-value untouched items are the branch filter/fuzzy search (#1, requested in three separate issues) and histoprint (#28, scoped and has a volunteer).

Want me to open this as a tracking issue, or draft an implementation plan for any specific one (histoprint and the filter are the natural starting points)?