Skip to content

Rail v0.8.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 23:43
· 43 commits to main since this release
2d8fef5

Key presets: start from the keys you know. keymap chooses rail, vim, mutt, emacs,
gmail or outlook; :keymap switches and asks whether to keep the new keys, and the setup
wizard offers them on the first run (#153).

Added

  • Key presets. keymap under [general] chooses the keys every action starts from, and
    [keys] goes over it. :keymap lists the presets and switches at once, then asks Keep these
    keys?
    : y saves them, and n, Esc or 15 s without an answer go back to the keys before.
    A switch that [keys] clashes with is refused and the keys stay. The first preset besides
    rail is vim: h/l go out and in, u undoes, U marks read or unread, Z snoozes,
    L labels, D trashes without asking and Ctrl-f/Ctrl-b page (#153). Prompted by
    @coko7's request for bash's editing keys in text fields (#152).
  • The mutt preset (keymap = "mutt"): s moves, F stars, N marks read or unread,
    t selects, l filters, g replies to everyone, m writes, $ syncs and u undoes; d
    still asks and D trashes without asking. Top and bottom are = and *, the links Ctrl-o
    and Ctrl-b, select all or by sender T a and T f; in the reader h shows the headers,
    i goes back, v lists the attachments and P loads the pictures. Rail's own keys are
    unchanged (#153).
  • The emacs preset (keymap = "emacs") adds emacs's keys beside Rail's own: Ctrl-n/
    Ctrl-p move, Ctrl-v/Alt-v page, Alt-</Alt-> go to the top and bottom, Ctrl-s
    filters, Ctrl-g backs out and Alt-x opens the palette; Ctrl-x u undoes and Ctrl-x o
    moves between the sidebar and the list. In the composer Ctrl-x Ctrl-s saves to Drafts,
    Ctrl-x i attaches and Ctrl-x k discards. n/p move through the list (#153).
  • The gmail preset (keymap = "gmail") follows Gmail's web shortcuts: o opens, u
    goes back to the list, I/U mark read and unread, # trashes without asking, v moves,
    b snoozes, x selects, * n clears the selection, a replies to everyone, N syncs, g i
    goes to the inbox and Ctrl-s saves the draft. The sidebar moves to B, a range to V, the
    attachments to A and trusting a sender's pictures to T (#153).
  • The outlook preset (keymap = "outlook") follows Outlook for Windows and on the web:
    Delete trashes without asking, Backspace archives, Insert stars, Ctrl-q/Ctrl-u mark
    read and unread, Ctrl-z undoes, Ctrl-n writes, Ctrl-r replies, Ctrl-f forwards, v
    moves, Ctrl-e filters, Ctrl-a selects all and F9 syncs; Alt-s sends and Ctrl-s saves
    a draft. A range moves to V (#153).
  • The setup wizard's first run ends with Choose your keys: Rail's own keys or any preset,
    saved as keymap (#153). A preset that the config's [keys] clash with is refused, and the
    wizard still finishes, saying :keymap can choose the keys later.
  • F2 opens the palette in every preset, whatever [keys] says, so switching presets never
    hides the way back.
  • list.trash_now: move to the trash without asking, still undoable and still asked about for a
    large selection (bulk_confirm) and in Drafts. It has no key in the rail preset: D in vim
    and mutt, # in gmail, Delete in outlook.
  • list.mark_read and list.mark_unread: mark read, or mark unread, whatever the threads show,
    where u toggles. Neither has a key in the rail preset: I/U in
    gmail, Ctrl-q/Ctrl-u in outlook (#153).
  • delete, backspace and insert are key names for [keys], shown as Del, Bksp and
    Ins in help. No default key uses them.

Changed

  • The README is now a short overview, and the full documentation lives in docs/: account
    setup, reading, acting on and writing mail, keys, configuration, commands, MCP, security and
    troubleshooting, with docs/README.md as the index. Release archives carry docs/ too.
  • Messages that pointed to the README now name the page: the Microsoft 365 consent error says
    see "Work or school accounts and admin consent" in docs/accounts.md, and an unknown [keys]
    action says (docs/keys.md lists them).
  • Updated async-executor to 1.14.1: 1.14.0, which keyring's Linux Secret Service client
    pulls in, was yanked.

Fixed

  • Keys reach the mail screen when the terminal never answers Rail's picture query, as in a tmux
    session with no client attached or a pseudo-terminal nothing reads. The unanswered query left
    a reader behind that took every key and later turned raw mode off, so keys echoed and the
    screen ignored them. Rail now asks only a terminal that answers, and only a tmux session with
    a client attached; any other gets half-block pictures (#155).

Upgrading

  • A [keys] entry that binds F2 to another action now stops Rail from starting; move that
    action to another key.
  • An older Rail refuses a config.toml that contains keymap; remove it before going back.
    It also refuses [keys] entries naming delete, backspace or insert.

Downloads

Archive For
rail-v0.8.0-x86_64-unknown-linux-gnu.tar.gz Linux x86_64, glibc 2.36 or newer
rail-v0.8.0-aarch64-unknown-linux-gnu.tar.gz Linux ARM64, glibc 2.36 or newer
rail-v0.8.0-aarch64-apple-darwin.tar.gz macOS 11 or newer on Apple Silicon
rail-v0.8.0-x86_64-apple-darwin.tar.gz macOS 11 or newer on Intel

Each archive holds the rail binary, the README and docs/, the changelog, the licences and
BUILD-INFO.txt. Extract it and put rail in a directory on your PATH.

Check an archive against SHA256SUMS, and check where it was built:

sha256sum -c --ignore-missing SHA256SUMS   # macOS: shasum -a 256 -c --ignore-missing SHA256SUMS
gh attestation verify rail-v0.8.0-<target>.tar.gz --repo vitosans/rail

On other systems, build from the tag with Rust 1.88 or newer:

git clone --branch v0.8.0 --depth 1 https://github.com/vitosans/rail.git
cd rail
cargo install --locked --path crates/rail