Skip to content

Commit

Permalink
Add ability to remap keys on input
Browse files Browse the repository at this point in the history
  • Loading branch information
mgazza committed Nov 19, 2024
1 parent 9755d1f commit e990ac0
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
8 changes: 7 additions & 1 deletion input.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ func (t *Terminal) TypedKey(e *fyne.KeyEvent) {
return
}

switch e.Name {
keyname := e.Name

if remap, ok := t.keyRemap[e.Name]; ok {
keyname = remap
}

switch keyname {
case fyne.KeyReturn:
_, _ = t.in.Write([]byte{'\r'})
case fyne.KeyEnter:
Expand Down
7 changes: 7 additions & 0 deletions term.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ type Terminal struct {
printer Printer
cmd *exec.Cmd
readWriterConfigurator ReadWriterConfigurator
keyRemap map[fyne.KeyName]fyne.KeyName
}

// Printer is used for spooling print data when its received.
Expand Down Expand Up @@ -465,6 +466,7 @@ func New() *Terminal {
t := &Terminal{
mouseCursor: desktop.DefaultCursor,
highlightBitMask: 0x55,
keyRemap: map[fyne.KeyName]fyne.KeyName{},
}
t.ExtendBaseWidget(t)
t.content = widget2.NewTermGrid()
Expand Down Expand Up @@ -548,3 +550,8 @@ type ReadWriterConfiguratorFunc func(r io.Reader, w io.WriteCloser) (io.Reader,
func (m ReadWriterConfiguratorFunc) SetupReadWriter(r io.Reader, w io.WriteCloser) (io.Reader, io.WriteCloser) {
return m(r, w)
}

// RemapKey remaps a key when processing input.
func (t *Terminal) RemapKey(key fyne.KeyName, remap fyne.KeyName) {
t.keyRemap[key] = remap
}

0 comments on commit e990ac0

Please sign in to comment.