v0.82.0

Textualize/textualv0.82.0Oct 3, 2024by willmcgugan

AI Summary

Introduced dynamic keymap support for user-configurable key bindings.

Key Highlights

  • New keymap support for dynamic configuration
  • DOMNode.is_on_screen property added

Breaking Changes

  • Widget.set_loading no longer returns an awaitable

New Features

  • Keymap support for user configurable key bindings
  • DOMNode.is_on_screen property
  • Descriptions to bindings for all internal widgets

Full Release Notes

The highlight of this release is the new [keymap](https://textual.textualize.io/api/app/#textual.app.App.set_keymap) support, which enables dynamic configuration of keys -- so you can now provide a way for users of your app to customize key bindings.

Keymaps aren't documented beyond the API level at the moment. That will happen in a few releases. In the meantime, @darrenburns has written up this new feature (which he also implemented) on his blog. Check it out:

https://darren.codes/posts/textual-keymaps/

See below for the full changes:

## [0.82.0] - 2024-10-03

### Fixed

- Fixed issue with screen not updating when auto_refresh was enabled https://github.com/Textualize/textual/pull/5063
- Fixed issues regarding loading indicator https://github.com/Textualize/textual/pull/5079
- Fixed issues with inspecting the lazy loaded widgets module https://github.com/Textualize/textual/pull/5080

### Added

- Added `DOMNode.is_on_screen` property https://github.com/Textualize/textual/pull/5063
- Added support for keymaps (user configurable key bindings) https://github.com/Textualize/textual/pull/5038
- Added descriptions to bindings for all internal widgets, and updated casing to be consistent https://github.com/Textualize/textual/pull/5062

### Changed

- Breaking change: `Widget.set_loading` no longer return an awaitable https://github.com/Textualize/textual/pull/5079