Skip to content

Commit

Permalink
feat: left right key
Browse files Browse the repository at this point in the history
  • Loading branch information
hstyi committed Jan 22, 2025
1 parent 63b27a2 commit d5157d3
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions src/main/kotlin/app/termora/terminal/KeyEncoderImpl.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package app.termora.terminal

import com.formdev.flatlaf.util.SystemInfo
import java.awt.event.KeyEvent

@Suppress("MemberVisibilityCanBePrivate")
Expand All @@ -24,6 +25,7 @@ open class KeyEncoderImpl(private val terminal: Terminal) : KeyEncoder, DataList
keypadAnsiSequences()
}

configureLeftRight()

putCode(TerminalKeyEvent(keyCode = 8), String(byteArrayOf(127)))

Expand Down Expand Up @@ -102,6 +104,40 @@ open class KeyEncoderImpl(private val terminal: Terminal) : KeyEncoder, DataList
putCode(TerminalKeyEvent(keyCode = 0x27), encode = "${ControlCharacters.ESC}[C")
}

fun configureLeftRight() {
if (SystemInfo.isMacOS) {
putCode(
TerminalKeyEvent(keyCode = KeyEvent.VK_LEFT, TerminalEvent.ALT_MASK),
encode = "${ControlCharacters.ESC}b"
)
putCode(
TerminalKeyEvent(keyCode = KeyEvent.VK_RIGHT, TerminalEvent.ALT_MASK),
encode = "${ControlCharacters.ESC}f"
)
} else {
// ^[[1;5D
putCode(
TerminalKeyEvent(keyCode = KeyEvent.VK_LEFT, TerminalEvent.CTRL_MASK),
"${ControlCharacters.ESC}[1;5D"
)
// ^[[1;5C
putCode(
TerminalKeyEvent(keyCode = KeyEvent.VK_RIGHT, TerminalEvent.CTRL_MASK),
"${ControlCharacters.ESC}[1;5C"
)
// ^[[1;3D
putCode(
TerminalKeyEvent(keyCode = KeyEvent.VK_LEFT, TerminalEvent.ALT_MASK),
"${ControlCharacters.ESC}[1;3D"
)
// ^[[1;3C
putCode(
TerminalKeyEvent(keyCode = KeyEvent.VK_RIGHT, TerminalEvent.ALT_MASK),
"${ControlCharacters.ESC}[1;3C"
)
}
}


fun keypadApplicationSequences() {
// Up
Expand Down

0 comments on commit d5157d3

Please sign in to comment.