KTech 1.1.0
C++ 2D terminal game engine library
Loading...
Searching...
No Matches
keys.hpp
1/*
2 KTech, Kaup's C++ 2D terminal game engine library.
3 Copyright (C) 2023-2025 Ethan Kaufman (AKA Kaup)
4
5 This file is part of KTech.
6
7 KTech is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 any later version.
11
12 KTech is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with KTech. If not, see <https://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
28namespace KTech::Keys
29{
30 constexpr char const* up = "\x1b[A";
31 constexpr char const* down = "\x1b[B";
32 constexpr char const* right = "\x1b[C";
33 constexpr char const* left = "\x1b[D";
34#ifdef _WIN32
35 constexpr char const* return_ = "\r";
36#else
37 constexpr char const* return_ = "\n";
38#endif
39 constexpr char const* backspace = "\x7f";
40 constexpr char const* escape = "\x1b";
41 constexpr char const* pageUp = "\x1b[5~";
42 constexpr char const* pageDown = "\x1b[6~";
43 constexpr char const* home = "\x1b[H";
44 constexpr char const* end = "\x1b[F";
45 constexpr char const* insert = "\x1b[2~";
46 constexpr char const* delete_ = "\x1b[3~";
47 constexpr char const* f1 = "\x1bOP";
48 constexpr char const* f2 = "\x1bOQ";
49 constexpr char const* f3 = "\x1bOR";
50 constexpr char const* f4 = "\x1bOS";
51 constexpr char const* f5 = "\x1b[15~";
52 constexpr char const* f6 = "\x1b[17~";
53 constexpr char const* f7 = "\x1b[18~";
54 constexpr char const* f8 = "\x1b[19~";
55 constexpr char const* f9 = "\x1b[20~";
56 constexpr char const* f10 = "\x1b[21~";
57 // No F11 because of fullscreen
58 constexpr char const* f12 = "\x1b[24~";
59 constexpr char const* tab = "\x09";
60
62 namespace Shift
63 {
64 constexpr char const* return_ = "\x1bOM";
65 constexpr char const* delete_ = "\x1b[3;2~";
66 constexpr char const* tab = "\x1b[Z";
67 }
68
70 namespace Ctrl
71 {
72 constexpr char const* up = "\33[1;5A";
73 constexpr char const* down = "\33[1;5B";
74 constexpr char const* right = "\33[1;5C";
75 constexpr char const* left = "\33[1;5D";
76 constexpr char const* pageUp = "\x1b[5;5~";
77 constexpr char const* pageDown = "\x1b[6;5~";
78 constexpr char const* home = "\x1b[1;5H";
79 constexpr char const* end = "\x1b[1;5F";
80 constexpr char const* delete_ = "\x1b[3;5~";
81 constexpr char const* backspace = "\x08";
82 }
83
85 namespace Alt
86 {
87 constexpr char const* up = "\33[1;3A";
88 constexpr char const* down = "\33[1;3B";
89 constexpr char const* right = "\33[1;3C";
90 constexpr char const* left = "\33[1;3D";
91 constexpr char const* return_ = "\x1b\x0a";
92 constexpr char const* backspace = "\x1b\x7f";
93 constexpr char const* escape = "\x1b\x1b";
94 constexpr char const* pageUp = "\x1b[5;3~";
95 constexpr char const* pageDown = "\x1b[6;3~";
96 constexpr char const* home = "\x1b[1;3H";
97 constexpr char const* end = "\x1b[1;3F";
98 constexpr char const* insert = "\x1b[2;3~";
99 constexpr char const* delete_ = "\x1b[3;3~";
100 }
101
103 namespace CtrlAlt
104 {
105 constexpr char const* up = "\33[1;7A";
106 constexpr char const* down = "\33[1;7B";
107 constexpr char const* right = "\33[1;7C";
108 constexpr char const* left = "\33[1;7D";
109 constexpr char const* pageUp = "\x1b[5;7~";
110 constexpr char const* pageDown = "\x1b[6;7~";
111 constexpr char const* home = "\x1b[1;7H";
112 constexpr char const* end = "\x1b[1;7F";
113 constexpr char const* insert = "\x1b[2;7~";
114 }
115
117 namespace CtrlShift
118 {
119 constexpr char const* up = "\33[1;6A";
120 constexpr char const* down = "\33[1;6B";
121 constexpr char const* right = "\33[1;6C";
122 constexpr char const* left = "\33[1;6D";
123 }
124}
Various terminal input escape sequences.
Definition ktech.hpp:69