on main help sign in
feat: advanced keyboard
d957f5dKujtim Hoxha
cmd/root.go+2
@@ -117,6 +117,8 @@ to assist developers in writing, debugging, and understanding code directly from
117 program := tea.NewProgram(
117 program := tea.NewProgram(
118 tui.New(app),
118 tui.New(app),
119 tea.WithAltScreen(),
119 tea.WithAltScreen(),
120+ tea.WithKeyReleases(),
121+ tea.WithUniformKeyLayout(),
120 )
122 )
121
123
122 // Setup the subscriptions, this will send services events to the TUI
124 // Setup the subscriptions, this will send services events to the TUI
go.mod+4−7
@@ -38,13 +38,6 @@ require (
38 github.com/stretchr/testify v1.10.0
38 github.com/stretchr/testify v1.10.0
39)
39)
40
40
41−require (
42− github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
43− github.com/disintegration/gift v1.1.2 // indirect
44− github.com/dustin/go-humanize v1.0.1 // indirect
45− github.com/mattn/go-isatty v0.0.20 // indirect
46−)
47−
48require (
41require (
49 cloud.google.com/go v0.116.0 // indirect
42 cloud.google.com/go v0.116.0 // indirect
50 cloud.google.com/go/auth v0.13.0 // indirect
43 cloud.google.com/go/auth v0.13.0 // indirect
@@ -68,6 +61,7 @@ require (
68 github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect
61 github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect
69 github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect
62 github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect
70 github.com/aws/smithy-go v1.20.3 // indirect
63 github.com/aws/smithy-go v1.20.3 // indirect
64+ github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
71 github.com/aymerick/douceur v0.2.0 // indirect
65 github.com/aymerick/douceur v0.2.0 // indirect
72 github.com/charmbracelet/colorprofile v0.3.1 // indirect
66 github.com/charmbracelet/colorprofile v0.3.1 // indirect
73 github.com/charmbracelet/x/cellbuf v0.0.14-0.20250516160309-24eee56f89fa // indirect
67 github.com/charmbracelet/x/cellbuf v0.0.14-0.20250516160309-24eee56f89fa // indirect
@@ -76,7 +70,9 @@ require (
76 github.com/charmbracelet/x/term v0.2.1 // indirect
70 github.com/charmbracelet/x/term v0.2.1 // indirect
77 github.com/charmbracelet/x/windows v0.2.1 // indirect
71 github.com/charmbracelet/x/windows v0.2.1 // indirect
78 github.com/davecgh/go-spew v1.1.1 // indirect
72 github.com/davecgh/go-spew v1.1.1 // indirect
73+ github.com/disintegration/gift v1.1.2 // indirect
79 github.com/dlclark/regexp2 v1.11.4 // indirect
74 github.com/dlclark/regexp2 v1.11.4 // indirect
75+ github.com/dustin/go-humanize v1.0.1 // indirect
80 github.com/felixge/httpsnoop v1.0.4 // indirect
76 github.com/felixge/httpsnoop v1.0.4 // indirect
81 github.com/go-logr/logr v1.4.2 // indirect
77 github.com/go-logr/logr v1.4.2 // indirect
82 github.com/go-logr/stdr v1.2.2 // indirect
78 github.com/go-logr/stdr v1.2.2 // indirect
@@ -91,6 +87,7 @@ require (
91 github.com/inconshreveable/mousetrap v1.1.0 // indirect
87 github.com/inconshreveable/mousetrap v1.1.0 // indirect
92 github.com/kylelemons/godebug v1.1.0 // indirect
88 github.com/kylelemons/godebug v1.1.0 // indirect
93 github.com/lucasb-eyer/go-colorful v1.2.0
89 github.com/lucasb-eyer/go-colorful v1.2.0
90+ github.com/mattn/go-isatty v0.0.20 // indirect
94 github.com/mattn/go-runewidth v0.0.16 // indirect
91 github.com/mattn/go-runewidth v0.0.16 // indirect
95 github.com/mfridman/interpolate v0.0.2 // indirect
92 github.com/mfridman/interpolate v0.0.2 // indirect
96 github.com/microcosm-cc/bluemonday v1.0.27 // indirect
93 github.com/microcosm-cc/bluemonday v1.0.27 // indirect
go.sum−2
@@ -70,8 +70,6 @@ github.com/charlievieth/fastwalk v1.0.11 h1:5sLT/q9+d9xMdpKExawLppqvXFZCVKf6JHnr
70github.com/charlievieth/fastwalk v1.0.11/go.mod h1:yGy1zbxog41ZVMcKA/i8ojXLFsuayX5VvwhQVoj9PBI=
70github.com/charlievieth/fastwalk v1.0.11/go.mod h1:yGy1zbxog41ZVMcKA/i8ojXLFsuayX5VvwhQVoj9PBI=
71github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1.0.20250607113720-eb5e1cf3b09e h1:99Ugtt633rqauFsXjZobZmtkNpeaWialfj8dl6COC6A=
71github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1.0.20250607113720-eb5e1cf3b09e h1:99Ugtt633rqauFsXjZobZmtkNpeaWialfj8dl6COC6A=
72github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1.0.20250607113720-eb5e1cf3b09e/go.mod h1:6HamsBKWqEC/FVHuQMHgQL+knPyvHH55HwJDHl/adMw=
72github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1.0.20250607113720-eb5e1cf3b09e/go.mod h1:6HamsBKWqEC/FVHuQMHgQL+knPyvHH55HwJDHl/adMw=
73−github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3.0.20250602154956-43689cfc0174 h1:TlVW+df0rdU/osP0O8DIVS9WFOAzXe3nuiMwJR4n+CA=
74−github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3.0.20250602154956-43689cfc0174/go.mod h1:oOn1YZGZyJHxJfh4sFAna9vDzxJRNuErLETr/lnlB/I=
75github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3.0.20250609143341-c76fa36f1b94 h1:QIi50k+uNTJmp2sMs+33D1m/EWr/7OPTJ8x92AY3eOc=
73github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3.0.20250609143341-c76fa36f1b94 h1:QIi50k+uNTJmp2sMs+33D1m/EWr/7OPTJ8x92AY3eOc=
76github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3.0.20250609143341-c76fa36f1b94/go.mod h1:oOn1YZGZyJHxJfh4sFAna9vDzxJRNuErLETr/lnlB/I=
74github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.3.0.20250609143341-c76fa36f1b94/go.mod h1:oOn1YZGZyJHxJfh4sFAna9vDzxJRNuErLETr/lnlB/I=
77github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40=
75github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40=
internal/tui/tui.go+8
@@ -90,6 +90,14 @@ func (a *appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
90 var cmd tea.Cmd
90 var cmd tea.Cmd
91
91
92 switch msg := msg.(type) {
92 switch msg := msg.(type) {
93+ case tea.KeyboardEnhancementsMsg:
94+ logging.Info(
95+ "Keyboard enhancements detected",
96+ "Disambiguation", msg.SupportsKeyDisambiguation(),
97+ "ReleaseKeys", msg.SupportsKeyReleases(),
98+ "UniformKeys", msg.SupportsUniformKeyLayout(),
99+ )
100+ return a, nil
93 case tea.WindowSizeMsg:
101 case tea.WindowSizeMsg:
94 return a, a.handleWindowResize(msg)
102 return a, a.handleWindowResize(msg)
95
103