Contents

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