class Riffer::Rig::Terminal::KeyPipeline
Constants
- BRACKETED_PASTE_OFF
- BRACKETED_PASTE_ON
- IDLE_SECONDS
- KITTY_KEYBOARD_OFF
- KITTY_KEYBOARD_ON
-
Terminals without the Kitty keyboard protocol ignore both sequences and keep sending legacy bytes.
Public Class Methods
(input: IO, output: IO, ?decoder: Riffer::Rig::Terminal::KeyDecoder) → void
Source
# File lib/riffer/rig/terminal/key_pipeline.rb, line 30 def initialize(input:, output:, decoder: Riffer::Rig::Terminal::KeyDecoder.new) @input = input @output = output @decoder = decoder @queue = Queue.new @thread = nil @stopping = false end
@rbs input: IO @rbs output: IO @rbs decoder: Riffer::Rig::Terminal::KeyDecoder @rbs return: void
Public Instance Methods
() → Thread::Queue[Riffer::Rig::Terminal::Key]
Source
# File lib/riffer/rig/terminal/key_pipeline.rb, line 40 def keys @queue end
@rbs return: Thread::Queue
() → void
Source
# File lib/riffer/rig/terminal/key_pipeline.rb, line 45 def start return @queue.close unless @input.tty? write(KITTY_KEYBOARD_ON) write(BRACKETED_PASTE_ON) @stopping = false @thread = Thread.new { read_loop } end
@rbs return: void
() → void
Source
# File lib/riffer/rig/terminal/key_pipeline.rb, line 55 def stop thread = @thread @thread = nil return unless thread @stopping = true thread.join write(BRACKETED_PASTE_OFF) write(KITTY_KEYBOARD_OFF) end
@rbs return: void