Tasks
✅ Update all documentation (description of default columns, new commands)
✅ Clean up code
deprecate "ui.style.ratio" and "ui.style.progress"
✅ Catch errors thrown by render methods, show error indicator (e.what()).
💡 Add ui.render.cycle = ‹speed›, ‹cmd1›, ‹cmd2›, … to rotate through alternate display values
driven by a tick value (increased per canvas refresh)
‹speed› is measured in ticks
ui.tick and private ui.tick.bump command
this means Ctrl-L can be used to cycle manually (bump tick count artificially in the key binding)
✅ Add a multi-method for column rendering: ui.column.render
Call those methods, order is determined by keys as usual
Keys encode column title + length sort:[?]len[coldef]:title, with optional parts for sacrificial headers (?) and colorization
Chop rendered contents to the length of the header
✅ Make chopping of columns UTF8-aware!
✅ Start out with one of the new fields in Include more columns on collapsed view #29 to make @chros73 happy
✅ X-position (column) must be made dynamic in the code (advance by header length)
✅ Add colouring support (needed for remaining columns)
✅ New ui.color.custom1…9 commands
✅ New private ui.color.*.index commands
✅ New ui.canvas_color[.set] command
✅ Static color definitions in column index (Cidx/len): "180:2C2/2: ↻"
✅ Custom colors moved to index 1…9
✅ System colors – dynamically mapped color index values, starting at index 90
❌ Existing columns might be factored into commands, to make everything configurable (d.‹name›.render)
✅ Move "tagged" to its own column
✅ Add convert.magnitude command (used in scrape columns)
✅ Add string.map=text,{from,to},… (for throttle names)
✅ Add event.view.hide/show multi command, and call them on view changes
method.set_key = event.view.hide, ~log, ((print, ((ui.current_view)), " → ", ((argument.0))))
Example
Custom columns with custom colors (subject to change):
ui.color.custom1.set = 242
ui.color.custom2.set = 105
ui.color.custom3.set = 51
method.set_key = ui.column.render, " 910:4C15/3C21/1: ✇ "
method.set_key = ui.column.render, " 910:4C3/3C2/1: ✇ " , \
((convert.human_size, ((d.size_bytes)) ))
method.set_key = ui.column.render, " 900:4C24/3C21/1: Σ⇈ "
method.insert = _pyro.middot_custom, private|simple, \
" branch=d.up.total=,ui.canvas_color.set=C24/3C2/1,ui.canvas_color.set=C2/4 ; cat=\" · \" "
method.set_key = ui.column.render, " 900:4C24/3C2/1: Σ⇈ " , \
((if, ((d.up.total)), \
((convert.human_size, ((d.up.total)), (value, 10) )), \
((_pyro.middot_custom)) \
))
Tasks
✅ Update all documentation (description of default columns, new commands)
✅ Clean up code
✅ Catch errors thrown by render methods, show error indicator (e.what()).
💡 Add
ui.render.cycle = ‹speed›, ‹cmd1›, ‹cmd2›, …to rotate through alternate display values‹speed›is measured in ticksui.tickand privateui.tick.bumpcommandCtrl-Lcan be used to cycle manually (bump tick count artificially in the key binding)✅ Add a multi-method for column rendering:
ui.column.rendersort:[?]len[coldef]:title, with optional parts for sacrificial headers (?) and colorization✅ Make chopping of columns UTF8-aware!
✅ Start out with one of the new fields in Include more columns on collapsed view #29 to make @chros73 happy
✅ X-position (column) must be made dynamic in the code (advance by header length)
✅ Add colouring support (needed for remaining columns)
ui.color.custom1…9commandsui.color.*.indexcommandsui.canvas_color[.set]commandCidx/len):"180:2C2/2: ↻"❌ Existing columns might be factored into commands, to make everything configurable (
d.‹name›.render)✅ Move "tagged" to its own column
✅ Add
convert.magnitudecommand (used in scrape columns)✅ Add
string.map=text,{from,to},…(for throttle names)✅ Add
event.view.hide/showmulti command, and call them on view changesmethod.set_key = event.view.hide, ~log, ((print, ((ui.current_view)), " → ", ((argument.0))))Example
Custom columns with custom colors (subject to change):