The Konsole Handbook

The Konsole Handbook

Jonathan Singer

Kurt Hindenburg

Ahmad Samir

developer: Robert Knight
developer: Kurt Hindenburg
developer: Waldo Bastian
reviewer: Mike McBride
Revision KDE Gear 22.12 (2022-11-09)

Konsole is KDE's terminal emulator.


Chapter 1. Introduction

Chapter 1. Introduction

What is a terminal?

Konsole is an X terminal emulator, often referred to as a terminal or a shell. It emulates a command line interface in a text only window.

Konsole typically runs a command shell, an application that executes commands that you type. The shell the Konsole runs depends on your account settings. Consult your operating system documentation to know what the shell is, how to configure it and how to use it.

Scrollback

Scrollback

Konsole uses the notion of scrollback to allow users to view previously displayed output. By default, scrollback is on and set to save 1000 lines of output in addition to what is currently displayed on the screen.

As lines of text scroll off the top of the screen, they can be reviewed by moving the scroll bar upwards, scrolling with a mouse wheel or through the use of the Shift+Page Up (to move back), Shift+Page Down (to move forward), Shift+Up Arrow (to move up a line) and Shift+Down Arrow (to move down a line) keys.

The amount of scrolling using Shift+Page Up/Down can be switched between half and full page in the Scrolling tab of the profile configuration window (use SettingsEdit Current Profile... to open this window).

Selection Mode

Selection Mode

Konsole has a selection by keyboard mode. In this mode it is possible to move around the scrollback and select text without the mouse.

Enter and leave this mode by using the keyboard shortcut (Ctrl+Shift+D by default).

Moving the cursor: Arrows, PageUp, PageDown, Home, End.

Moving the cursor vi style: h,j,k,l, to move one character, Ctrl+b,f,u,d for page up/down or half page up/down.

Select text by using Ctrl or Shift with arrows, or by using V to start selection, moving the cursor and then V again to end selection. Shift+V selects whole lines, instead of characters.

Profiles

Profiles

Profiles allow the user to quickly and easily automate the running of common commands. Examples could include:

  • ssh into another machine

  • starting an irc session

  • use tail to watch a file

All new and changed profiles are saved in the user's local home folder in $XDG_DATA_HOME/konsole.

Procedure to create a new profile:

  1. Click on the menu entry SettingsManage Profiles...

  2. Switch to the Profiles page.

  3. Click on the button New Profile....

  4. Fill in the first entry with a name. This is the name that will show in the menu, and will be the default label instead of Shell when you start a session of this type.

  5. Enter a command just as you normally would if you opened a new shell and were going to issue that command. For our first example above, you might type ssh administration.

  6. On the other tabs of the dialog, configure this session's appearance. You can configure a different font, color scheme, $TERM type and many other settings for each session.

  7. Press the OK button. The new session is now available in the Manage Profiles... dialog.

Mouse Buttons

Mouse Buttons

This section details the use of the mouse buttons for the common right handed mouse button order. For the left handed mouse button order, swap left and right in the text below.

Left

All left mouse button clicks will be sent to a mouse-aware application running in Konsole. If an application will react on mouse clicks, Konsole indicates this by showing an arrow cursor. If not, an I-beam (bar) cursor is shown.

Holding the left mouse button down and dragging the mouse over the screen with a mouse-unaware application running will mark a region of the text. While dragging the mouse, the marked text is displayed in reversed color for visual feedback. Select Copy from the Edit menu to copy the marked text to the clipboard for further use within Konsole or another application. The selected text can also be dragged and dropped into compatible applications. Hold the Ctrl key and drag the selected text to the desired location.

Normally, new-line characters are inserted at the end of each line selected. This is best for cut and paste of source code, or the output of a particular command. For ordinary text, the line breaks are often not important. One might prefer, however, for the text to be a stream of characters that will be automatically re-formatted when pasted into another application. To select in text-stream mode, hold down the Ctrl key while selecting normally.

Pressing the Ctrl and Alt keys along with the left mouse button will select text in columns.

Double-click with the left mouse button to select a word; triple-click to select an entire line.

If the upper or lower edge of the text area is touched while marking, Konsole scrolls up or down, eventually exposing text within the history buffer. The scrolling stops when the mouse stops moving.

After the mouse is released, Konsole attempts to keep the text in the clipboard visible by holding the marked area reversed. The marked area reverts back to normal as soon as the contents of the clipboard change, the text within the marked area is altered or the left mouse button is clicked.

To mark text in a mouse-aware application (Midnight Commander, for example) the Shift key has to be pressed when clicking.

Middle

Pressing the middle mouse button pastes text currently in the clipboard. Holding down the Ctrl key as you press the middle mouse button pastes the text and appends a new-line. That is convenient for executing pasted command quickly, but it can be dangerous so use it with caution.

Note

If you have a mouse with only two buttons, pressing both the left mouse button and right mouse button together emulates the middle mouse button of a three button mouse.

If you have a wheel as the middle button, rolling it in a mouse-unaware program will move Konsole's scrollbar.

Right

These items appear in the menu when the right mouse button is pressed:

  • Copy

  • Paste

  • With a text selection a submenu Search for with a list of the preferred Web Shortcuts and an option to configure web shortcuts.

  • Open File Manager

  • Set Encoding

  • Clear Scrollback

  • Adjust Scrollback...

  • Show Menu Bar, only when the menubar is hidden

  • Switch Profile

  • Edit Current Profile...

  • Close Tab

In a mouse aware application, press the Shift key along with the right mouse button to get the popup menu.

Drag and Drop

Drag and Drop

If you drop a file, folder or URL on a Konsole window, a context menu appears with these actions:

Drag and Drop Context Menu
Move Here (Shift)

Move the dropped item into the current folder. This item only appears in the context menu, if you have the rights to delete the dropped file or folder.

Copy Here (Ctrl)

Copy the dropped item into the current folder.

Link Here (Ctrl+Shift)

Insert a symbolic link to the dropped item.

Paste Location

Insert the full file path of the dropped item at the cursor.

Change Directory To

If a folder is dropped, this action appears in the context menu and allows you to change the working folder of the Konsole session.

Cancel (Esc)

Break the drag and drop action.

If you press the shortcuts before releasing the left mouse button during drag and drop, no context menu appears and the actions will be executed immediately.

If you want to use the Ctrl key for drag and drop or disable the context menu to insert URLs as text by default, enable the corresponding options on the Mouse tab in the profile settings dialog.

Semantic Shell Integration

Semantic Shell Integration

A shell program running in Konsole may emit escape sequences that partition the text displayed into three types: shell prompt, user input and command output. Using this semantic information enables various enhancements in Konsole.

  • Ctrl+Shift+PgUp and Ctrl+Shift+PgDown scroll up/down to previous/next command prompt.

  • Visual hints:

    • A line is displayed above each prompt, prompt colors are less intense, and output colors are more intense.

    • A red bar is displayed to the left of input and output lines of commands that resulted in error

    • A red background for input and output lines of commands that resulted in error

    • A gray bar is displayed to the left of the input and output lines of every other command.

    • A gray background for the input and output lines of every other command.

    Each of those may be configured to never show, always show, or only when URL hints are shown. The configuration is in the Semantic Integration tab of the General page of the profile configuration window.

  • Context menu options Copy user input Copy command output Copy except prompt may be used to filter selection when it is copied to the clipboard.

  • When selection is empty, copy to clipboard action copies the current input line if it is not empty, or the last output if there is no current input.

  • Pressing Up/Down arrow when editing a long input, will instead place the cursor one line up/down by sending the appropriate number of Left/Right key events to the shell. Configurable in the profile settings.

  • Clicking the mouse on text input will place the cursor in the clicked location. Configurable in the profile settings.

Semantic shell integration needs to be setup in the shell. Pressing Ctrl+Alt+] will paste the necessary commands needed in bash. For other shells, such as fish, zsh, python, etc. consult the relevant program's documentation.

Complex Text Layout

Complex Text Layout

In the Complex Text Layout page of the Edit Profile dialog, you will find options that control the rendering of text.

  • Word mode - in this mode (some) strings are displayed in the screen as a whole, instead of a character at a time. This allows Qt to render text correctly when the shape of a character depends on the characters before or after it. This might result in incorrect position of some characters.

    Spaces always break strings, so they are always in the correct positions. This ensures that characters are never too far from their correct position.

  • Use the same attributes for each whole word - When this is enabled, words are rendered with the same attributes (text color, bold, italic, etc.). If an attribute changes mid-word, it will only take effect after the end of the word. When this is disabled, a new word starts when attributes change. This results in characters changing shape and position when moving the cursor or selecting text.

  • ASCII characters - Group ASCII characters into words as described above. The most noticeable effect of this option is that enabling this shows programming ligatures (for fonts that support them). E.g. the string <= may be displayed as ⩽.

  • Brahmic scripts characters - Group Brahmic characters as described above. Without this option (depending on the font) some words may not be connected as they should. With this enabled Brahmic characters may appear out of position. E.g. the third character in the second line might not appear directly under the third character in the first line.

  • Emoji Font: - This allows specifying the font to use for Unicode Emoji characters. If not set, the default profile font will be used, or some fallback font may be used by the system if the glyphs are missing from this font.

  • Bi-Directional text rendering - Reorder right to left characters so Arabic and Hebrew texts appear correctly.

  • force LTR line direction - Lines are always Left to right. Without this, each line's direction is determined by the first character with strong directionality.

  • Table characters BiDi mode override - Consider graphic table characters as strong LTR characters. This allows table containing RTL characters to display correctly, but might cause incorrect order if those characters are used in RTL texts.

Chapter 2. Command Reference

Chapter 2. Command Reference

The Menubar

The menubar is at the top of the Konsole window. If the menubar is hidden, Show Menu Bar can be reached by right clicking in the window (as long as no full screen application is running in that window such as vi, minicom, etc.). The default shortcut is listed after each menu item.

Alternatively you can use the shortcut Ctrl+Shift+M to show or hide the menubar.

File Menu

FileNew Window (Ctrl+Shift+N)

Opens a new separate Konsole window with the default profile

FileNew Tab (Ctrl+Shift+T)

Opens a new tab with the default profile

Note

The first profile in the submenu will always be "Default" which is the built-in profile. All other profiles will be listed below that in alphabetical order. The user specified default profile will be in bold type.

FileClone Tab

Attempts to clone the current tab in a new tab

FileSave Output As... (Ctrl+Shift+S)

Saves the current scrollback as a text or html file

FilePrint Screen ... (Ctrl+Shift+P)

Print the current screen. By default the output is scaled to fit the size of the paper being printed on with black text color and no background. In the print dialog these options can be changed on the Output Options tab.

FileOpen File Manager

Opens KDE's file manager at the current directory. By default, that is Dolphin.

FileClose Session (Ctrl+Shift+W)

Closes the current session

FileClose Window (Ctrl+Shift+Q)

Quits Konsole

Note

Konsole will display a confirmation dialog if there is more than one session open or if there are certain programs running in any session. These dialogs can be disabled by clicking on the Do not ask again checkbox.

Edit Menu

EditCopy (Ctrl+Shift+C)

Copies the selected text to the clipboard

EditPaste (Ctrl+Shift+V)

Pastes text from the clipboard at the cursor location

EditSelect All

Selects all the text in current window

EditCopy Input ToAll Tabs in Current Window

Allows input from the current session to be sent simultaneously to all sessions in current window

EditCopy Input ToSelect Tabs... (Ctrl+Shift+.)

Allows input from the current session to be sent simultaneously to sessions picked by user

EditCopy Input ToNone (Ctrl+Shift+/)

Stop sending input from current session into other sessions

EditSend Signal

Send the specified signal to the shell process, or other process, that was launched when the new session was started.

Currently available signals are:

STOPto stop process
CONTcontinue if stopped
HUPhangup detected on controlling terminal, or death of controlling process
INTinterrupt from keyboard
TERMtermination signal
KILLkill signal
USR1user signal 1
USR2user signal 2

Refer to your system manual pages for further details by giving the command man 7 signal.

EditConfigure Tab Settings... (Ctrl+Alt+S)

Opens a dialog box allowing you to change the name format, the remote tab title format and the color of the current tab (more info)

EditZModem Upload... (Ctrl+Alt+U)

Opens up a dialog to select a file to be uploaded if the required software is installed

EditFind... (Ctrl+Shift+F)

Opens a search bar at the bottom of Konsole's window

This allows for case sensitive, forward or backwards, and regular expressions searches.

EditFind Next (F3)

Moves to the next search instance . If the search bar has the focus, you can use the shortcut Enter as well.

EditFind Previous (Shift+F3)

Moves to the previous search instance . If the search bar has the focus, you can use the shortcut Shift+Enter as well.

View Menu

ViewSplit ViewSplit View Left/Right (Ctrl+()

Splits all the tabs into left and right views

Any output on one view is duplicated in the other view.

ViewSplit ViewSplit View Top/Bottom (Ctrl+))

Splits all the tabs into top and bottom views

Any output on one view is duplicated in the other view.

ViewSplit ViewExpand View (Ctrl+Shift+])

Makes the current view larger

ViewSplit ViewShrink View (Ctrl+Shift+[)

Makes the current view smaller

ViewSplit ViewToggle maximize current view (Ctrl+Shift+E)

Toggles the current view between current size and the maximize size

ViewSplit ViewEqual size to all views (Ctrl+Shift+\)

Sets the same size for all views

ViewDetach Current Tab (Ctrl+Shift+L)

Opens the current tab in a separate window

Quitting the previous Konsole window will not affect the newly created window.

ViewDetach Current View (Ctrl+Shift+H)

Opens the current split view in a separate window

ViewSave tab layout to file

Allows you to save the tab layout of the current view in a specialized Konsole layout file which can then be loaded to restore one of your favorite layouts.

ViewLoad tab layout from file

Allows you to load one of your favorite view layouts from the layout file that has been saved using the ViewSave tab layout to file menu item earlier. The default layouts (2x2, 2x1, and 1x2) can be loaded via toolbar.

ViewMonitor for Silence (Ctrl+Shift+I)

Toggles the monitoring of the current tab for lack of activity

By default, after 10 seconds of inactivity, an info icon will appear on the session's tab. The type of alerts can be changed through SettingsConfigure NotificationsSilence in monitored session.

ViewMonitor for Activity (Ctrl+Shift+A)

Toggles the monitoring of the current tab for activity

Upon any activity, an info icon will appear on the session's tab. The type of alerts can be changed through SettingsConfigure NotificationsActivity in monitored session.

ViewMonitor for Process Finishing

Toggles the monitoring of the current tab for the process finishing.

If checked, upon finishing the current process, Konsole will show a notification The process 'name of the process' has finished running in session 'name of the session'.

ViewRead-only

Toggles the session to be read-only: no input is accepted, drag and drop is disabled.

ViewEnlarge Font (Ctrl++)

Increases the text font size

ViewReset Font Size (Ctrl+0)

Reset the text font size to the profile default

ViewShrink Font (Ctrl+-)

Decreases the text font size

ViewSet Encoding

Sets the character encoding

ViewClear Scrollback

Clears the text in the scrollback

ViewClear Scrollback and Reset (Ctrl+Shift+K)

Clears the text in the current tab and scrollback and resets the terminal

ViewFull Screen Mode (F11)

Toggles Konsole filling the entire screen

Bookmarks Menu

BookmarksAdd Bookmark (Ctrl+Shift+B)

Adds the current location

BookmarksBookmark Tabs as Folder...

Adds all tabs to a bookmark folder

A dialog will open for the bookmark folder name.

BookmarksNew Bookmark Folder...

Adds a new folder to the bookmark list

A dialog will open for the bookmark folder name.

BookmarksEdit Bookmarks

Opens the bookmark editor

Note

The keditbookmarks program must be installed for this menu item to appear.

You can use the bookmark editor to manually add URLs. Currently, Konsole accepts the following:

  • ssh://user@host:port

  • telnet://user@host:port

Plugins Menu

Any installed plugins will be listed or "No plugins available"

Settings Menu

SettingsEdit Current Profile...

Opens a dialog to configure current profile

SettingsSwitch Profile

Switch current profile to a listed profile

SettingsManage Profiles...

Opens an editor for managing profiles

SettingsWindow Color Scheme

Change Konsole's GUI to the specified scheme

SettingsShow Menu Bar (Ctrl+Shift+M)

Toggles the menubar being visible

SettingsToolbars Shown

Allows visibility toggling of the Konsole toolbars

SettingsShow Statusbar

Toggles the statusbar being visible

SettingsConfigure Language...

Opens window to choose an interface translation of Konsole.

SettingsConfigure Keyboard Shortcuts...

Opens the keyboard shortcut editor. More on shortcuts configuration can be found in the KDE Fundamentals.

Additionally Konsole has a few special shortcuts with no corresponding menu item:

ShortcutDescription
Shift+RightNext Tab
Shift+LeftPrevious Tab
Ctrl+Alt+LeftMove Tab Left
Ctrl+Alt+RightMove Tab Right
Ctrl+Shift+InsPaste Selection
SettingsConfigure Toolbars...

Opens the toolbar configuration window

SettingsConfigure Notifications...

Opens the notifications editor

SettingsConfigure Konsole...

Opens the Konsole settings editor

This dialog has options influencing the appearance and behaviour of the Konsole window.

  • The General page allows configuring the menubar visibility, remembering the Konsole window size, running all Konsole windows in a single process, enabling menu accelerators, showing window title on the titlebar, removing window titlebar and frame, and focusing terminals when the mouse pointer is moved over them. It is also possible to configure the search case sensitivity, usage of the regular expression, highlighting all matches, and the search direction (Search backwards is the default). The General page is also the place where you can Enable all "Don't Ask Again" messages again if they were switched off before.

  • The Profiles page is meant for creating and handling profiles.

  • Using the Tab Bar/Splitters page you can configure the visibility and placement of tab bar, define tabs behavior and fine-tune the tab buttons options. It is possible to configure if you want to Show 'New Tab' button and Expand individual tab widths to full window or configure Use user-defined stylesheet. The Behavior tab can be used to define the place for the new tabs (At the end or After current tab) and closing of tabs with a middle mouse button click.

    It is also possible to configure visibility of the split headers (When needed (default), Always, or Never) and define the drag handle size for splits (Small (default), Medium, or Large) using the Splits tab of this configuration page.

  • The Temporary Files page is used to define the scrollback file location.

  • The Thumbnails page can be used to define the thumbnail size and activation options (you can choose the activation control key from Shift, Alt, and Ctrl).

    Note

    To use the thumbnails feature showing image thumbnails in popups when hovering image items with the mouse pointer, you should enable file underlining for your current profile: SettingsEdit Current Profile...MouseMiscellaneousUnderline files.

Help Menu

Konsole has the some of the common KDE Help menu items, for more information read the section about the Help Menu of the KDE Fundamentals.

Konsole Dialogs

Konsole Dialogs

Configure Tab Settings Dialog

The name format, the remote tab title format, and the color of the current tab can be changed from this dialog. The dialog can be displayed via the menu, the shortcut Ctrl+Alt+S or by double-clicking on the tab in the tab bar. These changes are temporary and can be made permanent by editing the current profile.

Konsole will substitute these tokens for local tabs:

  • %n : program name

  • %d : current directory (short)

  • %D : current directory (long)

  • %h : local host (short)

  • %u : user name

  • %B : user's Bourne prompt sigil ($ = normal user, # = superuser)

  • %w : window title set by shell

  • %# : session number

Konsole will substitute these tokens for remote tabs:

  • %c : current program

  • %h : remote host (short)

  • %H : remote host (long)

  • %u : user name

  • %U : user name@ (if given)

  • %w : window title set by shell

  • %# : session number

Examples:

  • %d : %n with /usr/src as current directory and running bash will display src : bash

  • %D : %n with /usr/src as current directory and running top will display /usr/src : top

  • %w (%#) with ~ as current directory and running vim in the first tab will display [No Name] (~) - VIM(1)

Copy Input Dialog

The text entered in one tab can simultaneously be sent to other tabs. This dialog allows you to select which tabs will get that input. The current tab will be greyed out.

Adjust Scrollback Dialog

The scrollback options for the history size can be changed in this dialog. Any changes are for the current tab only and will not be saved to the profile.

Chapter 3. Command-line Options

Chapter 3. Command-line Options

When Konsole is started from the command line, various options can be specified to modify its behavior.

--help

List various options.

--profile file

Start Konsole using the specified profile instead of the default profile.

--layout file

Start Konsole using a saved JSON layout file.

--builtin-profile

Use the built-in profile instead of the current default profile.

--workdir dir

Open with dir as the initial working directory.

--hold, --noclose

Do not close the initial session automatically when it ends.

--new-tab

Create a new tab in an existing window rather than creating a new window.

--tabs-from-file file

Create tabs as specified in the given tabs configuration file.

Note

The file has one tab per line in the following format:

Each line specifies a tab to open using up to 4 fields specifying how it is to open. Fields are delimited with ;; and a field name must have a : appended. Empty lines or lines with # at the beginning are ignored, so you can use line beginning with # to add comments.

title: a name for this tab, tab default if blank or not specified
workdir: working directory, ~ if blank or not specified
profile: a Konsole profile to use, the default if blank or not specified
command: a command to run

Each line should contain at least one of command or profile field.

Example: title: %n;; command: /usr/bin/top ;; profile: Shell

--background-mode

Start Konsole in the background and bring to the front when Ctrl+Shift+F12 (by default) is pressed.

--separate, --nofork

Run the new instance of Konsole in a separate process.

--show-menubar

Show the menubar, overriding the default behavior.

--hide-menubar

Hide the menubar, overriding the default behavior.

--show-tabbar

Show the tabbar, overriding the default behavior.

--hide-tabbar

Hide the tabbar, overriding the default behavior.

--fullscreen

Start Konsole in fullscreen mode.

--notransparency

Disable transparent backgrounds, even if the system supports them.

--list-profiles

List all available profiles.

--list-profile-properties

List all possible properties with name and type. See option -p.

For more information, please visit Konsole API Reference.

-p property=value

Change the value of a profile property.

-e command

Execute command instead of the normal shell.

Note

This option will catch all following arguments passed to Konsole, and execute it as command. So this option should always be used as the last option.

Konsole also accepts generic Qt™ and KDE Frameworks 5 options, see man pages qt5options and kf5options.

Chapter 4. Scripting Konsole

Chapter 4. Scripting Konsole

Konsole does support numerous methods that can be used with D-Bus.

There are two ways to use the D-Bus interface: Qt™'s GUI qdbusviewer and the command line qdbus.

Examples:

  • % qdbus will display all services available.

  • % qdbus org.kde.konsole will display the D-Bus interface for Konsole.

  • % qdbus org.kde.konsole /Windows/1 will display methods for controlling window 1.

  • % qdbus org.kde.konsole $KONSOLE_DBUS_WINDOW will display methods for controlling the current window.

  • % qdbus org.kde.konsole /Sessions/1 will display methods for controlling session 1.

  • % qdbus org.kde.konsole $KONSOLE_DBUS_SESSION will display methods for controlling the current session.

  • % qdbus $KONSOLE_DBUS_SERVICE $KONSOLE_DBUS_SESSION will display methods for controlling the current Konsole's session.

If any of the above commands outputs: Service 'org.kde.konsole' does not exist, change org.kde.konsole to one of the following:

  • org.kde.konsole-`pidof -s konsole` (will select first pid)

  • $KONSOLE_DBUS_SERVICE (this can be used from the current Konsole)

  • select one from the output of 'qdbus | grep konsole'

For more information, please visit D-Bus tutorial.

Chapter 5. Terminal Key Bindings

Chapter 5. Terminal Key Bindings

How Konsole Uses Key Bindings

Introduction

Konsole uses *.keytab files to translate key combinations into control characters and escape sequences that are sent to the shell or to interactive programs (typically programs that use the Alternate Screen buffer, e.g. vim, less, screen) running in the shell.

Users can customize the key bindings settings in Konsole using the Key Bindings Editor. A key combination can be configured to send a specific control or escape sequence to the terminal.

You can open the Key Bindings Editor from the menu entry SettingsEdit Current Profile, and going to the Keyboard tab. Listed there are the Key Bindings schemas that come by default with Konsole.

Key Combinations and Modes

Key combinations follow the pattern:

Key (+|-) Modes

for example:

Up+Shift+AppScreen
Down+Shift-AppScreen
Space+Ctrl

Key names are defined in the qnamespace.h header file, with the Qt::Key_ prefix removed, for a list of key names check the Qt::Key enumeration in the Qt™ documentation.

A + preceding a Mode name means that mode is set; for a modifier key, that means it's pressed, whereas for all other modes it means that particular mode is in effect (i.e. active). For example +Ctrl means the key combination will work only if the Ctrl key is pressed.

A - preceding a Mode name means that mode is reset; basically this is the opposite of putting + before a Mode name, so for a modifier key that means the key isn't pressed, whereas for all other modes it means that particular mode is inactive. For example -Ctrl means the key combination will work only if the Ctrl key is not pressed.

Note

If a Mode name isn't present in a key combination, its state is ignored.

The supported Key Bindings modes are listed below:

Alt, Ctrl, Shift

One or more of these Modes can be used in a key combination, if any of them is set, the key combination uses that modifier key, respectively; and vice versa if it's reset

AnyModifier

If this mode is set, the key combination uses any modifier key (any of the previous three modifier keys); and vice versa if it's reset

Ansi

If this mode is set, Konsole will send ANSI escape and control sequences

If this mode is reset Konsole will send VT52 escape and control sequences

AppScreen

If this mode is set, the key combination will only affect interactive programs that use the Alternate Screen buffer

If this mode is reset the key combination will only affect the terminal when it's using the Normal Screen buffer

Note

Konsole makes use of two screen buffers:

  • The Normal Screen buffer (default): allows you to scroll back to view previous lines of output, this is the default buffer you usually use to execute commands... etc.

  • The Alternate Screen buffer: the terminal switches to this buffer when you run an interactive program (e.g. less, vim, screen, tmux... etc.)

KeyPad

If this mode is set, the key combination uses a key on the Keypad (Number Pad). This mode is useful to distinguish between keys on the keyboard and keys on the Keypad. For example when Num Lock is on you can configure two separate key combinations, one using the key labelled 1 on the keyboard (usually under the F1 key) and the other using the key labelled 1 on the Keypad. The same concept applies when Num Lock is off for the End, Home, Cursor Keys ...etc on the Keypad

AppCursorKeys

This mode implements the VT100 Cursor Keys Mode (DECCKM). It controls the escape sequences each Cursor Key (Up, Down, Right, Left) sends, depending on whether this mode is set or reset

By default Konsole follows the XTerm behavior of treating the Home and End keys as cursor keys with respect to DECCKM

AppKeyPad

If this mode is set, the key combination will only work when the Keypad is in Application Mode (DECKPAM)

If this mode is reset, the key combination will only work when the Keypad is in Numeric Mode (DECKPNM)

NewLine

If this mode is set, the Return (Enter) key on the keyboard will send both Carriage Return "\r" and New Line "\n" control characters

If this mode is reset, the Return key will send only a Carriage Return "\r"

The same applies to the Enter key on the Keypad

This mode emulates the LNM - Line Feed/New Line Mode

Note that each combination of Key and Modes (set/reset) must be unique. For example, consider the following two rules:

  • A+Shift : A

  • a : a

Konsole will not accept the small letter a rule, you have to add a -Shift to that rule to make it work.

The Output Field

In the Output field you can add the escape sequences or control characters that you want Konsole to send to the terminal when the associated key combination is pressed.

You can also use any of the following keywords, each of which has a special meaning in Konsole:

  • scrollUpLine : scroll up one line in the shell history scrollback buffer

  • scrollUpPage : scroll up one page in the shell history scrollback buffer

  • scrollDownLine : scroll down one line in the shell history scrollback buffer

  • scrollDownPage : scroll down one page in the shell history scrollback buffer

  • scrollUpToTop : scroll up to the begining of the shell history scrollback buffer

  • scrollDownToBottom : scroll down to the end of the shell history scrollback buffer

You can also use strings with C-string syntax; you may use the following escapes sequences:

  • \E : Escape

  • \\ : Backslash

  • \" : Double quote

  • \t : Tab

  • \r : Carriage Return

  • \n : New line

  • \b : Backspace

  • \xHH : where HH are two hex digits

    Tip

    This can be used to send ASCII control characters, e.g. \x00 which is the NUL character

Other System Resources

There are other system resources that can affect terminal Key Bindings:

  • Consult the terminfo or termcap database for the expected escape sequences and control characters that each key combination is supposed to send.

  • It is likely that your system has other keyboard databases which have to be in sync too, (e.g. /etc/inputrc and readline for the BASH shell) as they affect the operations (interactions) bound to key combinations.

Further Reading

For more information on escape sequences and control characters, check the following documentation:

Chapter 6. Using Style Sheet for the Tab Bar

Chapter 6. Using Style Sheet for the Tab Bar

The default style sheet for the tab bar sets the minimum and maximum tab widths. The user can create a .css file and have Konsole use that as the style sheet for the tab bar. In the .css file, the widget to use is QTabBar::tab.

For more information, consider reading Qt™ Style Sheets

Examples:

  • Change the selected tab's background to a light gray

    QTabBar::tab:selected {
        background: #999999
    }
    

  • Change the selected tab's text to red

    QTabBar::tab:selected {
        color: red
    }
    

  • All tabs will be at least 200 pixels in width

    QTabBar::tab {
        min-width: 200px
    }
    

  • Only the selected tab will be at least 200 pixels in width

    QTabBar::tab::selected {
        min-width: 200px
    }
    

  • Any of these can be combined in one file

    QTabBar::tab::selected {
        background: #999999;
        color: red;
        min-width: 200px;
    }
    QTabBar::tab {
        min-width: 100px
    }
    

Chapter 7. Did You Know?, Common Issues and More

Chapter 7. Did You Know?, Common Issues and More

Did You Know?

  • Pressing Ctrl while selecting text will cause lines breaks to be converted to spaces when pasted.

  • Pressing the Ctrl+Alt keys while selecting text will select columns.

  • The Ctrl+Wheel combination will zoom text size, like in konqueror and firefox.

  • When a program evaluates either mouse button, pressing the Shift key will allow the popup menu to appear.

  • The Ctrl+Shift+F10 shortcut will activate the menu.

  • The Shift+Insert keys will insert the clipboard.

  • Double-clicking will select a whole word. Continuing to hold the mouse button and moving the mouse will extend the selection.

  • Triple-clicking will select a whole line. Continuing to hold the mouse button and moving the mouse will extend the selection.

  • There is a hidden feature for the "%d" formatter in tab title. You can tell Konsole to abbreviate a directory name into its first character. For example, "/path/to/konsole/src" can be abbreviated into "konsole/s". If you want to enable and control this hidden feature, open konsolerc in qtpaths --paths GenericConfigLocation and add following lines:

    [ProcessInfo]
    CommonDirNames=name1,name2,name3...
    

    Note

    If you are using Yakuake, you need to edit yakuakerc in qtpaths --paths GenericConfigLocation instead.

Common Issues

Common Issues

  • Some fonts might be unavailable for usage in Konsole, although they are available in other applications. That doesn't mean there is a bug in Konsole. Konsole requires monospaced fonts to provide the best visual result, so it asks Qt™ to only list monospaced fonts.

    Starting with version 16.08 (August 2016), Konsole can be configured to allow selecting any font with the caveat that the display may not be correct.

  • Since KDE4 all the tabs use the same process ID. This has the side-effect that if one tab's process has issues, all the other tabs may experience issues as well.

    This is most noticeable when a command that connects to an external device or system (ssh, nfs) has issues.

  • Konsole treats arguments after the -e option as one command and runs it directly, instead of parsing it and possibly dividing it into sub-commands for execution. This is different from xterm.

    • konsole -e "command1 ; command2" does not work

    • konsole -e $SHELL -c "command1 ; command2" works

  • Konsole doesn't provide convenience for running login shell, because developers don't like the idea of running login shell in a terminal emulator.

    Of course, users still can run login shell in Konsole if they really need to. Edit the profile in use and modify its command to the form of starting a login shell explicitly, such as "bash -l" and "zsh -l".

  • The --new-tab option sometimes behaves strangely. It may create new window, or it may create new tab in another existing Konsole window instead of the current Konsole window.

    Those behaviors feel strange, but they are not necessarily bugs. The --new-tab option tries to reuse existing Konsole windows, but not all Konsole windows are reusable. All Konsole windows opened through KRunner are reusable, while most Konsole windows opened from command line are not.

Chapter 8. Credits and Copyright

Chapter 8. Credits and Copyright

Konsole is currently maintained by Kurt Hindenburg

Previous Konsole maintainers include: Robert Knight and Waldo Bastian

The application Konsole Copyright (c) 1997-2008 Lars Doelle

This document was originally written by Jonathan Singer

This document was updated for KDE 4.x by Kurt Hindenburg

This document was updated for KDE 3.4 by Kurt Hindenburg

Originally converted to DocBook SGML by Mike McBride and Lauri Watts

This documentation is licensed under the terms of the GNU Free Documentation License.

This program is licensed under the terms of the GNU General Public License.

Appendix A. Links