Release v18.12.0

A new release is here! Amongst many other things, we now have custom keybinding support :partying_face:

Thank you so much to everyone who contributed in this release :heart:

Highlights

Custom keybinding system

You can now configure custom keybindings for the search TUI. Remap keys to suit your workflow!

Full docs: Advanced Key Binding - Atuin Documentation

Examples

Simple binding

[keymap.emacs]
"ctrl-c" = "return-original"

Conditional binding (first matching rule wins)

[keymap.emacs]
"left" = [
  { when = "cursor-at-start", action = "exit" },
  { action = "cursor-left" },
]

Boolean condition expressions

[keymap.emacs]
"ctrl-d" = [
  { when = "cursor-at-start && input-empty", action = "return-original" },
  { action = "delete-char-after" },
]

SQLite-backed config storage

We’ve replaced several loose files with a SQLite database. This should improve reliability and make things easier to manage internally.

Sync page size parameter

You can now specify the download/upload page size for sync (#2408) — helpful for tuning sync performance, especially on slower connections or large histories.

Dotfiles: sort and filter for aliases/vars

atuin dotfiles alias and var listing now supports sort and filter options, making it easier to manage larger sets of aliases and variables.

Important note for self-hosters

We’ve changed how the server works! Going forwards, the server is now a separate binary, rather than being bundled with the client.

You can install it with

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/atuinsh/atuin/releases/download/v18.12.0/atuin-server-installer.sh | sh

The docker command now looks like

docker run -d -v "$CONFIG:/config" ghcr.io/atuinsh/atuin:<LATEST TAGGED RELEASE> start

(start, instead of server start)

Changelog

Bug Fixes

  • (powershell) Preserve $LASTEXITCODE (#3120)
  • (powershell) Display search stderr (#3146)
  • (search) Allow hyphen-prefixed query args like --- (#3129)
  • (tui) Space and F1-F24 keys not handled properly by new keybind system (#3138)
  • (ui) Don’t draw a leading space for command
  • (ui) Time column can take up to 9 cells
  • (ui) Align cursor with the expand column (usually the command)
  • (ui) Align cursor when expand column is in the middle (#3103)
  • Zsh import multiline issue (#2799)
  • Do not hit sync v1 endpoints for status
  • Do not hit sync v1 endpoints for status (#3102)
  • Do not set ATUIN_SESSION if it is already set (#3107)
  • Custom data dir test on windows (#3109)
  • New session on shlvl change (#3111)
  • Larger exit column width on Windows (#3119)
  • Halt sync loop if server returns an empty page (#3122)
  • Use directories crate for home dir resolution (#3125)
  • Tab behaving like enter, eprintln (#3135)
  • Issue with shift and modifier keys (#3143)
  • Remove invalid IF EXISTS from sqlite drop column migration (#3145)

Documentation

  • (CONTRIBUTING) Update links (#3117)
  • (README) Update links (#3116)
  • (config) Clarify scope of directory filter_mode (#3082)
  • (configuration) Describe new utility “atuin-bind” for Bash (#3064)
  • (installation) Add mise alternative installation method (#3066)
  • Various improvements to the atuin import docs (#3062)
  • Disambiguate ‘setup’ (noun) vs. ‘set up’ (verb) (#3061)
  • Fix punctuation and grammar in basic usage guide (#3063)
  • Expand and clarify usage of the history prune command (#3084)
  • Small edit to themes website file (#3069)
  • Config/ with initial uid:gid
  • Add PowerShell install instructions
  • Add PowerShell and Windows install instructions (#3096)
  • Update the [keys] docs (#3114)
  • Add history deletion guide (#3130)
  • Update how to use Docker to self-host (#3148)
  • Add IRC contact information to README

Features

  • (dotfiles) Add sort and filter options to alias/var list (#3131)
  • (theme) Note new default theme name and syntax (#3080)
  • (tui) Add clear-to-start/end actions (#3141)
  • (ui) Highlight fulltext search as fulltext search instead of fuzzy search
  • (ui) Highlight fulltext search as fulltext search instead of fuzzy search (#3098)
  • (ultracompact) Adds setting for ultracompact mode (#3079)
  • Add custom column support (#3089)
  • Left arrow/backspace on empty to start edit (#3090)
  • Add more vim movement bindings for navigation (#3041)
  • Support setting a custom data dir in config (#3105)
  • Remove user verification functionality (#3108)
  • Add option to use tmux display-popup (#3058)
  • Move atuin-server to its own binary (#3112)
  • Add a parameter to the sync to specify the download/upload page (#2408)
  • Replace several files with a sqlite db (#3128)
  • Add new custom keybinding system for search TUI (#3127)

Miscellaneous Tasks

  • Remove total_history from api index response (#3094)
    • BREAKING: remove total_history from api index response (#3094)
  • Update to rust 1.93
  • Update to rust 1.93 (#3101)
  • Update changelog
  • Update agents.md (#3126)
  • Update changelog
  • Update changelog
  • Update changelog

Theming

  • Explain how to set ANSI codes directly (#3065)

Faq

  • Add alternative projects (#3076)
6 Likes

We just released 18.12.1, with the following changes

Bug Fixes

  • (shell) Fix ATUIN_SESSION errors in tmux popup (#3170)
  • (tui) Enter in vim normal mode, shift-tab keybind (#3158)
  • Server start commands for Docker. (#3160)

Features

  • Expand keybinding system with vim motions, media keys, and inspector improvements (#3161)
  • Add original-input-empty keybind condition (#3171)
2 Likes