Terminal update

This commit is contained in:
Ralf
2025-05-26 18:30:33 +03:00
parent 8566b3d802
commit 1cbaecbbcd
7 changed files with 13 additions and 581 deletions
@@ -1,186 +0,0 @@
# Linux Backspace 0x7f Keyboard Table
#
# To customize your keyboard, copy this file to something
# ending with .keytab and change it to meet you needs.
# Please read the README.KeyTab and the README.keyboard
# in this case.
#
# --------------------------------------------------------------
keyboard "Linux Backspace 0x7f"
# --------------------------------------------------------------
#
# Note that this particular table is a "risc" version made to
# ease customization without bothering with obsolete details.
# See VT100.keytab for the more hairy stuff.
#
# --------------------------------------------------------------
# common keys
key Escape : "\E"
key Tab -Shift : "\t"
key Tab +Shift+Ansi : "\E[Z"
key Tab +Shift-Ansi : "\t"
key Backtab +Ansi : "\E[Z"
key Backtab -Ansi : "\t"
key Return-Shift-NewLine : "\r"
key Return-Shift+NewLine : "\r\n"
key Return+Shift : "\EOM"
# Backspace and Delete codes are preserving CTRL-H.
#
# Backspace without CTRL sends '^H'; this matches XTerm behaviour
# BS, hex \x08, \b
# key Backspace -Control : "\b"
key Backspace -Control : "\x7f"
# Match xterm behaviour: Backspace sends '^?' when Control is pressed
# key Backspace +Control : "\x7f"
# Arrow keys in VT52 mode
# shift up/down are reserved for scrolling.
# shift left/right are reserved for switching between tabs (this is hardcoded).
key Up -Shift-Ansi : "\EA"
key Down -Shift-Ansi : "\EB"
key Right-Shift-Ansi : "\EC"
key Left -Shift-Ansi : "\ED"
# Arrow keys in ANSI mode with Application - and Normal Cursor Mode)
key Up -Shift-AnyMod+Ansi+AppCuKeys : "\EOA"
key Down -Shift-AnyMod+Ansi+AppCuKeys : "\EOB"
key Right -Shift-AnyMod+Ansi+AppCuKeys : "\EOC"
key Left -Shift-AnyMod+Ansi+AppCuKeys : "\EOD"
key Up -Shift-AnyMod+Ansi-AppCuKeys : "\E[A"
key Down -Shift-AnyMod+Ansi-AppCuKeys : "\E[B"
key Right -Shift-AnyMod+Ansi-AppCuKeys : "\E[C"
key Left -Shift-AnyMod+Ansi-AppCuKeys : "\E[D"
key Up -Shift+AnyMod+Ansi : "\E[1;*A"
key Down -Shift+AnyMod+Ansi : "\E[1;*B"
key Right -Shift+AnyMod+Ansi : "\E[1;*C"
key Left -Shift+AnyMod+Ansi : "\E[1;*D"
key Up +Shift+AppScreen : "\E[1;*A"
key Down +Shift+AppScreen : "\E[1;*B"
key Left +Shift+AppScreen : "\E[1;*D"
key Right +Shift+AppScreen : "\E[1;*C"
key PgUp +Shift+AppScreen : "\E[5;2~"
key PgDown +Shift+AppScreen : "\E[6;2~"
# Keypad keys with NumLock ON
# (see "Numeric Keypad" section at http://www.nw.com/nw/WWW/products/wizcon/vt100.html )
#
# Not enabled for now because it breaks the keypad in Vim.
#
#key 0 +KeyPad+AppKeyPad : "\EOp"
#key 1 +KeyPad+AppKeyPad : "\EOq"
#key 2 +KeyPad+AppKeyPad : "\EOr"
#key 3 +KeyPad+AppKeyPad : "\EOs"
#key 4 +KeyPad+AppKeyPad : "\EOt"
#key 5 +KeyPad+AppKeyPad : "\EOu"
#key 6 +KeyPad+AppKeyPad : "\EOv"
#key 7 +KeyPad+AppKeyPad : "\EOw"
#key 8 +KeyPad+AppKeyPad : "\EOx"
#key 9 +KeyPad+AppKeyPad : "\EOy"
#key + +KeyPad+AppKeyPad : "\EOl"
#key - +KeyPad+AppKeyPad : "\EOm"
#key . +KeyPad+AppKeyPad : "\EOn"
#key * +KeyPad+AppKeyPad : "\EOM"
#key Enter +KeyPad+AppKeyPad : "\r"
# Keypad keys with NumLock Off
key Up -Shift+Ansi+AppCuKeys+KeyPad : "\EOA"
key Down -Shift+Ansi+AppCuKeys+KeyPad : "\EOB"
key Right -Shift+Ansi+AppCuKeys+KeyPad : "\EOC"
key Left -Shift+Ansi+AppCuKeys+KeyPad : "\EOD"
key Up -Shift+Ansi-AppCuKeys+KeyPad : "\E[A"
key Down -Shift+Ansi-AppCuKeys+KeyPad : "\E[B"
key Right -Shift+Ansi-AppCuKeys+KeyPad : "\E[C"
key Left -Shift+Ansi-AppCuKeys+KeyPad : "\E[D"
key Home +AppCuKeys+KeyPad : "\EOH"
key End +AppCuKeys+KeyPad : "\EOF"
key Home -AppCuKeys+KeyPad : "\E[H"
key End -AppCuKeys+KeyPad : "\E[F"
key Insert +KeyPad : "\E[2~"
key Delete +KeyPad : "\E[3~"
key PgUp -Shift+KeyPad : "\E[5~"
key PgDown -Shift+KeyPad : "\E[6~"
key Clear -AnyMod+KeyPad+AppKeyPad : "\E[OE"
key Clear +AnyMod+KeyPad+AppKeyPad : "\E[1;*E"
# other grey PC keys
key Enter+NewLine : "\r\n"
key Enter-NewLine : "\r"
key Home -AnyMod-AppCuKeys : "\E[H"
key End -AnyMod-AppCuKeys : "\E[F"
key Home -AnyMod+AppCuKeys : "\EOH"
key End -AnyMod+AppCuKeys : "\EOF"
key Home +AnyMod : "\E[1;*H"
key End +AnyMod : "\E[1;*F"
key Insert -AnyMod : "\E[2~"
key Delete -AnyMod : "\E[3~"
key Insert +AnyMod : "\E[2;*~"
key Delete +AnyMod : "\E[3;*~"
key PgUp -Shift-AnyMod : "\E[5~"
key PgDown -Shift-AnyMod : "\E[6~"
key PgUp -Shift+AnyMod : "\E[5;*~"
key PgDown -Shift+AnyMod : "\E[6;*~"
# Function keys
key F1 -AnyMod : "\EOP"
key F2 -AnyMod : "\EOQ"
key F3 -AnyMod : "\EOR"
key F4 -AnyMod : "\EOS"
key F5 -AnyMod : "\E[15~"
key F6 -AnyMod : "\E[17~"
key F7 -AnyMod : "\E[18~"
key F8 -AnyMod : "\E[19~"
key F9 -AnyMod : "\E[20~"
key F10 -AnyMod : "\E[21~"
key F11 -AnyMod : "\E[23~"
key F12 -AnyMod : "\E[24~"
key F1 +AnyMod : "\EO*P"
key F2 +AnyMod : "\EO*Q"
key F3 +AnyMod : "\EO*R"
key F4 +AnyMod : "\EO*S"
key F5 +AnyMod : "\E[15;*~"
key F6 +AnyMod : "\E[17;*~"
key F7 +AnyMod : "\E[18;*~"
key F8 +AnyMod : "\E[19;*~"
key F9 +AnyMod : "\E[20;*~"
key F10 +AnyMod : "\E[21;*~"
key F11 +AnyMod : "\E[23;*~"
key F12 +AnyMod : "\E[24;*~"
# Work around dead keys
key Space +Control : "\x00"
# Some keys are used by konsole to cause operations.
# The scroll* operations refer to the history buffer.
key Up +Shift-AppScreen : scrollLineUp
key PgUp +Shift-AppScreen : scrollPageUp
key Home +Shift-AppScreen : scrollUpToTop
key Down +Shift-AppScreen : scrollLineDown
key PgDown +Shift-AppScreen : scrollPageDown
key End +Shift-AppScreen : scrollDownToBottom
key ScrollLock : scrollLock
@@ -1,133 +0,0 @@
# [vt100.keytab] Konsole Keyboard Table (VT100 keys)
#
# --------------------------------------------------------------
keyboard "vt100 (historical)"
# --------------------------------------------------------------
#
# This configuration table allows to customize the
# meaning of the keys.
#
# The syntax is that each entry has the form :
#
# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
#
# Keynames are those defined in <qnamespace.h> with the
# "Qt::Key_" removed. (We'd better insert the list here)
#
# Mode names are :
#
# - Shift
# - Alt
# - Control
#
# The VT100 emulation has two modes that can affect the
# sequences emitted by certain keys. These modes are
# under control of the client program.
#
# - Newline : effects Return and Enter key.
# - Application : effects Up and Down key.
#
# - Ansi : effects Up and Down key (This is for VT52, really).
#
# Operations are
#
# - scrollUpLine
# - scrollUpPage
# - scrollDownLine
# - scrollDownPage
#
# - emitSelection
#
# If the key is not found here, the text of the
# key event as provided by QT is emitted, possibly
# preceded by ESC if the Alt key is pressed.
#
# --------------------------------------------------------------
key Escape : "\E"
key Tab : "\t"
# VT100 can add an extra \n after return.
# The NewLine mode is set by an escape sequence.
key Return-NewLine : "\r"
key Return+NewLine : "\r\n"
# Some desperately try to save the ^H.
key Backspace : "\x7f"
key Delete : "\E[3~"
# These codes are for the VT52 mode of VT100
# The Ansi mode (i.e. VT100 mode) is set by
# an escape sequence
key Up -Shift-Ansi : "\EA"
key Down -Shift-Ansi : "\EB"
key Right-Shift-Ansi : "\EC"
key Left -Shift-Ansi : "\ED"
# VT100 emits a mode bit together
# with the arrow keys.The AppCuKeys
# mode is set by an escape sequence.
key Up -Shift+Ansi+AppCuKeys : "\EOA"
key Down -Shift+Ansi+AppCuKeys : "\EOB"
key Right-Shift+Ansi+AppCuKeys : "\EOC"
key Left -Shift+Ansi+AppCuKeys : "\EOD"
key Up -Shift+Ansi-AppCuKeys : "\E[A"
key Down -Shift+Ansi-AppCuKeys : "\E[B"
key Right-Shift+Ansi-AppCuKeys : "\E[C"
key Left -Shift+Ansi-AppCuKeys : "\E[D"
# function keys (FIXME: make pf1-pf4)
key F1 : "\E[11~"
key F2 : "\E[12~"
key F3 : "\E[13~"
key F4 : "\E[14~"
key F5 : "\E[15~"
key F6 : "\E[17~"
key F7 : "\E[18~"
key F8 : "\E[19~"
key F9 : "\E[20~"
key F10 : "\E[21~"
key F11 : "\E[23~"
key F12 : "\E[24~"
key Home : "\E[H"
key End : "\E[F"
key PgUp -Shift : "\E[5~"
key PgDown -Shift : "\E[6~"
key Insert -Shift : "\E[2~"
# Keypad-Enter. See comment on Return above.
key Enter+NewLine : "\r\n"
key Enter-NewLine : "\r"
key Space +Control : "\x00"
# some of keys are used by konsole.
key Up +Shift : scrollLineUp
key PgUp +Shift : scrollPageUp
key Down +Shift : scrollLineDown
key PgDown +Shift : scrollPageDown
key ScrollLock : scrollLock
#----------------------------------------------------------
# keypad characters as offered by Qt
# cannot be recognized as such.
#----------------------------------------------------------
# Following other strings as emitted by konsole.
@@ -1,168 +0,0 @@
#
# NOTE: This keyboard binding is not installed because it
# apparently doesn't work with actual VT420 systems
# (see BUG:170220)
#
# [vt420pc.keytab] Konsole Keyboard Table (VT420pc keys)
# adapted by ferdinand gassauer f.gassauer@aon.at
# Nov 2000
#
################################################################
#
# The escape sequences emitted by the
# keys Shift+F1 to Shift+F12 might not fit your needs
#
################# IMPORTANT NOTICE #############################
# the key bindings (Kcontrol -> look and feel -> keybindgs)
# overrule the settings in this file. The key bindings might be
# changed by the user WITHOUT notification of the maintainer of
# the keytab file. Konsole will not work as expected by
# the maintainer of the keytab file.
################################################################
#
# --------------------------------------------------------------
keyboard "DEC VT420 Terminal"
# --------------------------------------------------------------
#
# This configuration table allows to customize the
# meaning of the keys.
#
# The syntax is that each entry has the form :
#
# "key" Keyname { ("+"|"-") Modename } ":" (String|Operation)
#
# Keynames are those defined in <qnamespace.h> with the
# "Qt::Key_" removed. (We'd better insert the list here)
#
# Mode names are :
#
# - Shift
# - Alt
# - Control
#
# The VT100 emulation has two modes that can affect the
# sequences emitted by certain keys. These modes are
# under control of the client program.
#
# - Newline : effects Return and Enter key.
# - Application : effects Up and Down key.
#
# - Ansi : effects Up and Down key (This is for VT52, really).
#
# Operations are
#
# - scrollUpLine
# - scrollUpPage
# - scrollDownLine
# - scrollDownPage
#
# - emitSelection
#
# If the key is not found here, the text of the
# key event as provided by QT is emitted, possibly
# preceded by ESC if the Alt key is pressed.
#
# --------------------------------------------------------------
key Escape : "\E"
key Tab : "\t"
key Backtab: "\E[Z"
# VT100 can add an extra \n after return.
# The NewLine mode is set by an escape sequence.
key Return-NewLine : "\r"
key Return+NewLine : "\r\n"
# Some desperately try to save the ^H.
# may be not everyone wants this
key Backspace : "\x08" # Control H
key Delete : "\x7f"
# These codes are for the VT420pc
# The Ansi mode (i.e. VT100 mode) is set by
# an escape sequence
key Up -Shift-Ansi : "\EA"
key Down -Shift-Ansi : "\EB"
key Right-Shift-Ansi : "\EC"
key Left -Shift-Ansi : "\ED"
# VT100 emits a mode bit together
# with the arrow keys.The AppCuKeys
# mode is set by an escape sequence.
key Up -Shift+Ansi+AppCuKeys : "\EOA"
key Down -Shift+Ansi+AppCuKeys : "\EOB"
key Right-Shift+Ansi+AppCuKeys : "\EOC"
key Left -Shift+Ansi+AppCuKeys : "\EOD"
key Up -Shift+Ansi-AppCuKeys : "\E[A"
key Down -Shift+Ansi-AppCuKeys : "\E[B"
key Right-Shift+Ansi-AppCuKeys : "\E[C"
key Left -Shift+Ansi-AppCuKeys : "\E[D"
# function keys
key F1 -Shift : "\E[11~"
key F2 -Shift : "\E[12~"
key F3 -Shift : "\E[13~"
key F4 -Shift : "\E[14~"
key F5 -Shift : "\E[15~"
key F6 -Shift : "\E[17~"
key F7 -Shift : "\E[18~"
key F8 -Shift : "\E[19~"
key F9 -Shift : "\E[20~"
key F10-Shift : "\E[21~"
key F11-Shift : "\E[23~"
key F12-Shift : "\E[24~"
#
# Shift F1-F12
#
key F1 +Shift : "\E[11;2~"
key F2 +Shift : "\E[12;2~"
key F3 +Shift : "\E[13;2~"
key F4 +Shift : "\E[14;2~"
key F5 +Shift : "\E[15;2~"
key F6 +Shift : "\E[17;2~"
key F7 +Shift : "\E[18;2~"
key F8 +Shift : "\E[19;2~"
key F9 +Shift : "\E[20;2~"
key F10+Shift : "\E[21;2~"
key F11+Shift : "\E[23;2~"
key F12+Shift : "\E[24;2~"
key Home : "\E[H"
key End : "\E[F"
key PgUp -Shift : "\E[5~"
key PgDown -Shift : "\E[6~"
key Insert -Shift : "\E[2~"
# Keypad-Enter. See comment on Return above.
key Enter+NewLine : "\r\n"
key Enter-NewLine : "\r"
key Space +Control : "\x00"
# some of keys are used by konsole.
key Up +Shift : scrollLineUp
key PgUp +Shift : scrollPageUp
key Down +Shift : scrollLineDown
key PgDown +Shift : scrollPageDown
key ScrollLock : scrollLock
#----------------------------------------------------------
# keypad characters as offered by Qt
# cannot be recognized as such.
#----------------------------------------------------------
# Following other strings as emitted by konsole.
@@ -1,71 +0,0 @@
# [x11r5.Keytab] Keyboard Table for X11 R5
keyboard "XTerm (XFree 3.x.x)"
# --------------------------------------------------------------
#
# Note that this particular table is a "risc" version made to
# ease customization without bothering with obsolete details.
# See VT100.keytab for the more hairy stuff.
#
# --------------------------------------------------------------
# common keys
key Escape : "\E"
key Tab : "\t"
key Return : "\r"
# Backspace and Delete codes are preserving CTRL-H.
key Backspace : "\x7f"
# cursor keys
key Up -Shift : "\EOA"
key Down -Shift : "\EOB"
key Right -Shift : "\EOC"
key Left -Shift : "\EOD"
# other grey PC keys
key Enter : "\r"
key Home : "\E[1~"
key Insert-Shift : "\E[2~"
key Delete : "\E[3~"
key End : "\E[4~"
key PgUp -Shift : "\E[5~"
key PgDown -Shift : "\E[6~"
# function keys
key F1 : "\E[11~"
key F2 : "\E[12~"
key F3 : "\E[13~"
key F4 : "\E[14~"
key F5 : "\E[15~"
key F6 : "\E[17~"
key F7 : "\E[18~"
key F8 : "\E[19~"
key F9 : "\E[20~"
key F10 : "\E[21~"
key F11 : "\E[23~"
key F12 : "\E[24~"
# Work around dead keys
key Space +Control : "\x00"
# Some keys are used by konsole to cause operations.
# The scroll* operations refer to the history buffer.
key Up +Shift : scrollLineUp
key PgUp +Shift : scrollPageUp
key Down +Shift : scrollLineDown
key PgDown +Shift : scrollPageDown
key ScrollLock : scrollLock
# keypad characters are not offered differently by Qt.
+1 -5
View File
@@ -7,14 +7,10 @@
<file>./color-schemes/MaterialOcean.colorscheme</file>
<file>./kb-layouts/linux_console.keytab</file>
<file>./kb-layouts/linux_default.keytab</file>
<file>./kb-layouts/linux_backspace_7f.keytab</file>
<file>./kb-layouts/macos_default.keytab</file>
<file>./kb-layouts/macos_macbook.keytab</file>
<file>./kb-layouts/solaris.keytab</file>
<file>./kb-layouts/windows_conpty.keytab</file>
<file>./kb-layouts/windows_winpty.keytab</file>
<file>./kb-layouts/solaris.keytab</file>
<file>./kb-layouts/vt420pc.keytab</file>
<file>./kb-layouts/vt100.keytab</file>
<file>./kb-layouts/x11r5.keytab</file>
</qresource>
</RCC>
@@ -93,22 +93,17 @@ KeyboardTranslator * KeyboardTranslatorManager::loadTranslator(const QString &na
}
const KeyboardTranslator *KeyboardTranslatorManager::defaultTranslator() {
// Try to find the default.keytab file if it exists, otherwise
// fall back to the hard-coded one
#if defined(Q_OS_WIN)
#if defined(Q_CC_MSVC)
const KeyboardTranslator *translator =
findTranslator(QLatin1String("windows_conpty"));
const KeyboardTranslator *translator = findTranslator(QLatin1String("windows_conpty"));
#else
const KeyboardTranslator *translator =
findTranslator(QLatin1String("windows_winpty"));
const KeyboardTranslator *translator = findTranslator(QLatin1String("windows_winpty"));
#endif
#elif defined(Q_OS_MAC)
const KeyboardTranslator *translator =
findTranslator(QLatin1String("macos_default"));
const KeyboardTranslator *translator = findTranslator(QLatin1String("macos_default"));
#else
const KeyboardTranslator *translator =
findTranslator(QLatin1String("linux_default"));
const KeyboardTranslator *translator = findTranslator(QLatin1String("linux_default"));
#endif
if (!translator) {
QBuffer textBuffer;
@@ -747,8 +742,7 @@ void KeyboardTranslator::removeEntry(const Entry &entry) {
_entries.remove(entry.keyCode(), entry);
}
KeyboardTranslator::Entry KeyboardTranslator::findEntry(int keyCode, Qt::KeyboardModifiers modifiers,
States state) const {
KeyboardTranslator::Entry KeyboardTranslator::findEntry(int keyCode, Qt::KeyboardModifiers modifiers, States state) const {
for (auto it = _entries.cbegin(), end = _entries.cend(); it != end; ++it) {
if (it.key() == keyCode)
if (it.value().matches(keyCode, modifiers, state))
@@ -154,12 +154,12 @@ void TerminalWidget::SetSettings()
termWidget->setColorScheme("iTerm2 Default");
for (const QString &arg : QApplication::arguments()) {
if (termWidget->availableColorSchemes().contains(arg))
termWidget->setColorScheme(arg);
if (termWidget->availableKeyBindings().contains(arg))
termWidget->setKeyBindings(arg);
}
if (this->agent->data.Os == OS_WINDOWS)
termWidget->setKeyBindings("windows_conpty");
else if (this->agent->data.Os == OS_MAC)
termWidget->setKeyBindings("macos_macbook");
else if (this->agent->data.Os == OS_LINUX)
termWidget->setKeyBindings("linux_console");
termWidget->setContextMenuPolicy(Qt::CustomContextMenu);
}