v0.77.0
Textualize/textualv0.77.0Aug 22, 2024by willmcgugan
AI Summary
A large release focused on the command palette, adding a help panel and screenshot functionality. It also removes the deprecated `ClassicFooter` widget and changes the default command palette binding.
Key Highlights
- Command palette now includes a help panel and a 'Save Screenshot' command.
- Removed `ClassicFooter` widget; users should switch to the new `Footer` widget.
- Changed default command palette binding to `Ctrl+P`.
- Added tooltips to bindings and customizable tooltip delay.
Breaking Changes
- Removed `ClassicFooter` widget (please use new `Footer` widget).
New Features
- `tooltip` to Binding
- Link to command palette in Footer (`show_command_palette=False` to disable)
- `TOOLTIP_DELAY` to App
- "Show keys" option in system commands
- "split" CSS style
- `Region.get_spacing_between`
- `App.COMMAND_PALETTE_KEY`
- `App.get_key_display`
- `DOMNode.BINDING_GROUP`
- `DOMNode.HELP` classvar
- `App.get_system_commands`
- "Save Screenshot" system command
Full Release Notes
This is quite a large release! We've done a lot of work on the [command palette](https://textual.textualize.io/guide/command_palette/#system-commands) to make it easier to work with and use. We've also added a "help panel" which you can summon from the command palette. This will give you context sensitive help, and a summary of all the key bindings. Here it is in action: https://github.com/user-attachments/assets/e954325a-7a2a-4a9b-b3a4-43ff80405967 Also in the command palette is a "save screenshot" command, which will save a screenshot of the current screen. Very handy for adding to documentation. There are a number of other smaller changes, fixes, and a few breaking changes. See the detailed release notes below: ## [0.77.0] - 2024-08-22 ### Added - Added `tooltip` to Binding https://github.com/Textualize/textual/pull/4859 - Added a link to the command palette to the Footer (set `show_command_palette=False` to disable) https://github.com/Textualize/textual/pull/4867 - Added `TOOLTIP_DELAY` to App to customize time until a tooltip is displayed - Added "Show keys" option to system commands to show a summary of key bindings. https://github.com/Textualize/textual/pull/4876 - Added "split" CSS style, currently undocumented, and may change. https://github.com/Textualize/textual/pull/4876 - Added `Region.get_spacing_between` https://github.com/Textualize/textual/pull/4876 - Added `App.COMMAND_PALETTE_KEY` to change default command palette key binding https://github.com/Textualize/textual/pull/4867 - Added `App.get_key_display` https://github.com/Textualize/textual/pull/4890 - Added `DOMNode.BINDING_GROUP` https://github.com/Textualize/textual/pull/4906 - Added `DOMNode.HELP` classvar which contains Markdown help to be shown in the help panel https://github.com/Textualize/textual/pull/4915 - Added `App.get_system_commands` https://github.com/Textualize/textual/pull/4920 - Added "Save Screenshot" system command https://github.com/Textualize/textual/pull/4922 ### Changed - Removed caps_lock and num_lock modifiers https://github.com/Textualize/textual/pull/4861 - Keys such as escape and space are now displayed in lower case in footer https://github.com/Textualize/textual/pull/4876 - Changed default command palette binding to `ctrl+p` https://github.com/Textualize/textual/pull/4867 - Removed `ctrl_to_caret` and `upper_case_keys` from Footer. These can be implemented in `App.get_key_display`. - Renamed `SystemCommands` to `SystemCommandsProvider` https://github.com/Textualize/textual/pull/4920 - Breaking change: Removed `ClassicFooter` widget (please use new `Footer` widget) https://github.com/Textualize/textual/pull/4921 - Disallowed `Screen` instances in `App.SCREENS` and `App.MODES` ### Fixed - Fix crash when `validate_on` value isn't a set https://github.com/Textualize/textual/pull/4868 - Fix `Input.cursor_blink` having no effect on the blink cycle after mounting https://github.com/Textualize/textual/pull/4869 - Fixed scrolling by page not taking scrollbar in to account https://github.com/Textualize/textual/pull/4916 - Fixed `App.MODES` being the same for all instances -- per-instance modes now exist internally