2023-11-20 12:05:51 +01:00
|
|
|
require "unibilium"
|
|
|
|
require "tput"
|
|
|
|
|
|
|
|
terminfo = Unibilium::Terminfo.from_env
|
|
|
|
tput = Tput.new terminfo
|
|
|
|
|
|
|
|
# Print detected features and environment
|
|
|
|
p tput.features.to_json
|
|
|
|
p tput.emulator.to_json
|
|
|
|
|
|
|
|
# Set terminal emulator's title, if possible
|
|
|
|
tput.title = "Test 123"
|
|
|
|
|
|
|
|
# Set cursor to red block:
|
|
|
|
tput.cursor_shape Tput::CursorShape::Block, blink: false
|
|
|
|
tput.cursor_color Tput::Color::Red
|
|
|
|
|
|
|
|
# Switch to "alternate buffer", print some text
|
|
|
|
tput.alternate
|
|
|
|
tput.cursor_pos 10, 20
|
|
|
|
tput.echo "Text at position y=10, x=20"
|
|
|
|
tput.bell
|
|
|
|
tput.cr
|
|
|
|
tput.lf
|
|
|
|
|
|
|
|
tput.echo "Now displaying ACS chars:"
|
|
|
|
tput.cr
|
|
|
|
tput.lf
|
|
|
|
tput.smacs
|
|
|
|
tput.echo "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~"
|
|
|
|
tput.rmacs
|
|
|
|
|
|
|
|
tput.cr
|
|
|
|
tput.lf
|
|
|
|
tput.echo "Press any keys; q to exit."
|
|
|
|
|
|
|
|
# Listen for keypresses:
|
|
|
|
tput.listen do |char, key, sequence|
|
|
|
|
# Char is a single typed character, or the first character
|
|
|
|
# of a sequence which led to a particular key.
|
|
|
|
|
|
|
|
# Key is a keyboard key, if any. Ordinary characters like
|
|
|
|
# 'a' or '1' don't have a representation as Key. Special
|
|
|
|
# keys like Enter, F1, Esc etc. do.
|
|
|
|
|
|
|
|
# Sequence is the complete sequence of characters which
|
|
|
|
# were consumed as part of identifying the key that was
|
|
|
|
# pressed.
|
|
|
|
if char == 'q'
|
2023-11-20 12:28:06 +01:00
|
|
|
# tput.normal_buffer
|
2023-11-20 12:05:51 +01:00
|
|
|
# tput.reset_cursor
|
|
|
|
# tput.exit_alt_charset_mode
|
|
|
|
# tput.attr("normal", 1)
|
|
|
|
# tput.soft_reset
|
2023-11-20 12:28:06 +01:00
|
|
|
# system("stty echo")
|
|
|
|
break
|
2023-11-20 12:05:51 +01:00
|
|
|
else
|
|
|
|
tput.cr
|
|
|
|
tput.lf
|
|
|
|
tput.echo "Char=#{char.inspect}, Key=#{key.inspect}, Sequence=#{sequence.inspect}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-11-20 12:28:06 +01:00
|
|
|
tput.normal_buffer
|
|
|
|
# tput.clear
|