\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /opt/chef/embedded/lib/ruby/gems/2.7.0/gems/tty-reader-0.7.0/lib/tty/reader/

Viewing File: keys.rb

# frozen_string_literal: true

module TTY
  class Reader
    # Mapping of escape codes to keys
    module Keys
      def ctrl_keys
        {
          ?\C-a => :ctrl_a,
          ?\C-b => :ctrl_b,
          ?\C-c => :ctrl_c,
          ?\C-d => :ctrl_d,
          ?\C-e => :ctrl_e,
          ?\C-f => :ctrl_f,
          ?\C-g => :ctrl_g,
          ?\C-h => :ctrl_h, # identical to '\b'
          ?\C-i => :ctrl_i, # identical to '\t'
          ?\C-j => :ctrl_j, # identical to '\n'
          ?\C-k => :ctrl_k,
          ?\C-l => :ctrl_l,
          ?\C-m => :ctrl_m, # identical to '\r'
          ?\C-n => :ctrl_n,
          ?\C-o => :ctrl_o,
          ?\C-p => :ctrl_p,
          ?\C-q => :ctrl_q,
          ?\C-r => :ctrl_r,
          ?\C-s => :ctrl_s,
          ?\C-t => :ctrl_t,
          ?\C-u => :ctrl_u,
          ?\C-v => :ctrl_v,
          ?\C-w => :ctrl_w,
          ?\C-x => :ctrl_x,
          ?\C-y => :ctrl_y,
          ?\C-z => :ctrl_z,
          ?\C-@ => :ctrl_space,
          ?\C-| => :ctrl_backslash, # both Ctrl-| & Ctrl-\
          ?\C-] => :ctrl_square_close,
          "\e[1;5A" => :ctrl_up,
          "\e[1;5B" => :ctrl_down,
          "\e[1;5C" => :ctrl_right,
          "\e[1;5D" => :ctrl_left
        }
      end
      module_function :ctrl_keys

      def keys
        {
          "\t" => :tab,
          "\n" => :enter,
          "\r" => :return,
          "\e" => :escape,
          " "  => :space,
          "\x7F"  => :backspace,
          "\e[1~" => :home,
          "\e[2~" => :insert,
          "\e[3~" => :delete,
          "\e[3;2~" => :shift_delete,
          "\e[3;5~" => :ctrl_delete,
          "\e[4~" => :end,
          "\e[5~" => :page_up,
          "\e[6~" => :page_down,
          "\e[7~" => :home, # xrvt
          "\e[8~" => :end, # xrvt

          "\e[A" => :up,
          "\e[B" => :down,
          "\e[C" => :right,
          "\e[D" => :left,
          "\e[E" => :clear,
          "\e[H" => :home,
          "\e[F" => :end,
          "\e[Z" => :back_tab, # shift + tab

          # xterm/gnome
          "\eOA" => :up,
          "\eOB" => :down,
          "\eOC" => :right,
          "\eOD" => :left,
          "\eOE" => :clear,
          "\eOF" => :end,
          "\eOH" => :home,

          "\eOP" => :f1, # xterm
          "\eOQ" => :f2, # xterm
          "\eOR" => :f3, # xterm
          "\eOS" => :f4, # xterm
          "\e[[A" => :f1, # linux
          "\e[[B" => :f2, # linux
          "\e[[C" => :f3, # linux
          "\e[[D" => :f4, # linux
          "\e[[E" => :f5, # linux
          "\e[11~" => :f1, # rxvt-unicode
          "\e[12~" => :f2, # rxvt-unicode
          "\e[13~" => :f3, # rxvt-unicode
          "\e[14~" => :f4, # rxvt-unicode
          "\e[15~" => :f5,
          "\e[17~" => :f6,
          "\e[18~" => :f7,
          "\e[19~" => :f8,
          "\e[20~" => :f9,
          "\e[21~" => :f10,
          "\e[23~" => :f11,
          "\e[24~" => :f12,
          "\e[25~" => :f13,
          "\e[26~" => :f14,
          "\e[28~" => :f15,
          "\e[29~" => :f16,
          "\e[31~" => :f17,
          "\e[32~" => :f18,
          "\e[33~" => :f19,
          "\e[34~" => :f20,
          # xterm
          "\e[1;2P" => :f13,
          "\e[2;2Q" => :f14,
          "\e[1;2S"  => :f16,
          "\e[15;2~" => :f17,
          "\e[17;2~" => :f18,
          "\e[18;2~" => :f19,
          "\e[19;2~" => :f20,
          "\e[20;2~" => :f21,
          "\e[21;2~" => :f22,
          "\e[23;2~" => :f23,
          "\e[24;2~" => :f24,
        }
      end
      module_function :keys

      def win_keys
        {
          "\t" => :tab,
          "\n" => :enter,
          "\r" => :return,
          "\e" => :escape,
          " "  => :space,
          "\b" => :backspace,
          [224, 71].pack('U*') => :home,
          [224, 79].pack('U*') => :end,
          [224, 82].pack('U*') => :insert,
          [224, 83].pack('U*') => :delete,
          [224, 73].pack('U*') => :page_up,
          [224, 81].pack('U*') => :page_down,

          [224, 72].pack('U*') => :up,
          [224, 80].pack('U*') => :down,
          [224, 77].pack('U*') => :right,
          [224, 75].pack('U*') => :left,
          [224, 83].pack('U*') => :clear,

          "\x00;" => :f1,
          "\x00<" => :f2,
          "\x00"  => :f3,
          "\x00=" => :f4,
          "\x00?" => :f5,
          "\x00@" => :f6,
          "\x00A" => :f7,
          "\x00B" => :f8,
          "\x00C" => :f9,
          "\x00D" => :f10,
          "\x00\x85" => :f11,
          "\x00\x86" => :f12
        }
      end
      module_function :win_keys
    end # Keys
  end # Reader
end # TTY