juri/terminal-input
This is a Swift package for reading keyboard input from a terminal emulator. It has been extracted and expanded from [tui-fuzzy-finder].
Usage
import TerminalInput
try await KeyReader.inRawMode(fileHandle: ttyHandle) { rawReader in
loop: for await keyInput in rawReader.keyStream() {
let keyCommand = KeyCommand(keyInput: keyInput)
switch keyCommand {
case .character("Q"):
print("Q pressed, quitting")
break loop
case .up:
print("Up pressed")
default:
print("Received key: \(keyCommand)")
}
}
}Documentation
[Documentation] and Package.swift snippets are available at [Swift Package Index].
[Documentation]: https://swiftpackageindex.com/juri/terminal-input/documentation/terminalinput [Swift Package Index]: https://swiftpackageindex.com/juri/terminal-input
Package Metadata
Repository: juri/terminal-input
Default branch: main
README: README.md