Skip to content

v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Oct 15:43
· 13 commits to main since this release

Added

  • macOS, arm64 and Intel: release tarballs, the Homebrew formula and
    install.sh. What ranma asks of the OS (a pane's program, command line and
    directory, cpu and mem, an adopted child's exit) comes from libproc,
    sysctl, the host statistics and kqueue there. Configuration and state stay
    in ~/.config, ~/.cache and ~/.local, links open with open, and
    paste_image reads the pasteboard through osascript. Tested in CI, not
    yet by hand on a Mac.
  • wm_mode.hint_at: where the which-key hint stands, on the bar (as
    before) or in a corner or the centre; ranma.mode takes its own.
  • ranma.mode(name, { hint = ... }): a user mode's own which-key pause;
    false keeps the hint out of that mode while WM mode keeps it.
  • Renamed names keep working: an old setting, theme key, action, event or
    option is read as its new name, with a warning naming the file and line,
    and --check-config still passes (CONFIG.md, "Updating").
  • ranma.has(name): a plugin asks whether this build has a capability
    instead of comparing ranma.version (CONFIG.md, "Globals", lists them).
  • Mouse binds: ranma.mouse on a pane's text, its border or the background,
    acting on what was clicked.
  • Hooks: layout_change, pane_resize, float_change, workspace_rename,
    and before_close, whose handler can keep a pane open.
  • Placement policies in Lua: ranma.placement returns a tree of splits, and
    ranma layout-preview draws it.
  • A pane's own looks: a window rule's style, and pane:style, over the
    theme, kept through reloads and upgrades.
  • Window rules match program, cwd and host, can set a pane's name and
    badge, and group = NAME tabs matched panes into one named group per
    workspace.
  • Nested bar: a module the inner ranma also has is drawn from the inner's
    value while the inner is focused, and ranma.module's nested option
    (follow, own, hide) chooses per module.
  • Gradient borders: colors.border_*_gradient along border.gradient_angle,
    with a slider for the angle in the settings panel.
  • Themes: [roles.<name>], styles of the theme's own that bar modules ask
    for by name, and [palette], the colours programs in panes draw with.
  • choose_theme (leader y t): a picker that shows each theme as it is
    selected; Enter keeps it in settings.toml.
  • The picker, redrawn: a tinted selection, a query row, columns and a footer
    of keys; menus as narrow as their entries.
  • Page Up/Down and Home/End in pickers, plugin screens and the settings panel.
  • A Homebrew tap, brew install masshirodev/tap/ranma.

Changed

  • In a user mode, a key the mode does not bind runs its global bind
    (alt+arrows, alt+digits, ...) and the mode stays; before, it was
    swallowed. Plain WM mode is unchanged.
  • leader U updates in the background behind a toast with a spinner, which
    survives the server's own upgrade, instead of opening a floating pane.

Fixed

  • In a user mode the mouse works as it does outside WM mode: dragging in a
    pane selects, mouse = "hover" focuses, programs that use the mouse get
    their clicks, and right-click opens the pane menu. It was WM mode's mouse,
    which does none of those.
  • In a user mode the which-key hint is titled with the mode's label, not
    the leader, and its keys are under the label rather than yours.
  • A ranma inside another one shows its user mode's label in the outer bar
    (⧉ NORMAL), not ⧉ WM. Both sides need this build; an older outer
    still says WM.