Major mouse improvements, better input parsing, and lots more!
We hope you’re ready for winter. Unless you’re in the southern hemisphere (like @caarlos0) in which case, we hope you’re ready for summer. In either case, we hope you have a happy new year if the Julian calendar is something you’re into.
There are a bunch of good features in this release and a ton of input-related improvements. Read on for more!
Extended Mouse Mode
Bubble Tea now supports Extended Mouse Mode (aka SGR mode) which makes now mouse support in Bubble Tea way, way better.
Prior to this release Bubble Tea used the X10 mouse protocol. X10 was last released in 1986: a time when screen resolutions were smaller, memory limits were low, and a terminal sizes were tiny. For terminals and mice this meant that the mouse tracking stopped after the 127th horizontal cell. Well, thanks to the elite abilities of @aymanbagabas Bubble Tea can now track mouse movements across the entire terminal window, no matter how enormous.
And that's not all: Bubble Tea now has higher fidelity access to mouse operations such as shift, ctrl, and alt modifiers, mouse button release events, and a big range of mouse button and mouse wheel events.
For details see the docs for the new and improved MouseEvent.
Setting the Window Title
@aymanbagabas also wanted to be able to set the terminal window title with Bubble Tea, so he added the SetWindowTitleCmd. Now setting the window title is as simple as:
Have you ever thought “Bubble Tea is too fast and I just can’t handle it?” Or perhaps 60fps is too slow and you want to go full 120fps. Now, thanks to @tomfeigin’s WithFPSProgramOption you can:
// Let’s go with the classic soap opera frame rate
p := tea.NewProgram(model, tea.WithMaxFPS(45))
Better Input, Better Living
@knz is just incredible. He took a look at Bubble Tea’s input parser and whipped it into shape with what felt like a flick of the wrist. Keyboard input is now more efficient than ever and very large amounts of input can be parsed with the greatest of ease. It's hard to overstate how impactful his contributions are—and there are more in the pipe.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/charmbracelet/bubbletea from 0.24.2 to 0.25.0.
Release notes
Sourced from github.com/charmbracelet/bubbletea's releases.
... (truncated)
Commits
e671b84
chore(deps): bump actions/setup-go from 4 to 5 (#881)a154847
feat: extended Coordinates mouse reporting & additional buttons support (#594)2bcb0af
feat: add set-window-title command (#611)bc1c475
docs: add nom rss reader to bubble-tea-in-the-wild185724c
docs: add go-sweep (Minesweeper) to Bubble Tea in the Wilda6f07b8
chore(deps): bump stefanzweifel/git-auto-commit-action from 4 to 5 (#834)5984e69
fix: race changing ignoreSignals (#791)5536bca
fix(key): support very long buffered input (#570)6d07f4a
chore(deps): bump golang.org/x/net from 0.7.0 to 0.17.0 in /examples (#840)365895d
chore(deps): bump github.com/charmbracelet/lipgloss in /examples (#842)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show