# The &konsole; Handbook

## Introduction to &konsole;

### What is a terminal?

&UNIX; operating systems were originally designed as text-only systems, controlled by keyboard commands -- what is known as a command-line interface (CLI). The &X-Window; and &kde; and other projects have since added the graphical interface you are now using. However, the underlying CLI system is still there, and is frequently the easiest, fastest and most powerful way to perform many tasks.

&konsole; is what is known as an X terminal emulator, often referred to as a terminal or a shell. It gives you the equivalent of an old-fashioned text screen on your desktop, but one which can easily share the screen with your graphical applications. Windows users may be familiar with the MS-DOS Prompt utility, which has the analogous functionof offering a DOS command-line under &Windows;. (Although the &UNIX; CLIs offer far more power and ease of use than does DOS!)

Explaining the use of the &UNIX; CLI is beyond the scope of this document, as it would require a lengthy book. Fortunately, many such books are available in every language in any good bookstore or library. There are also tutorials available on the Internet. Enjoy &kde;, but don't be shy about learning to use the command-line! You will find that even learning just the basics will make your computer use much more efficient and enjoyable.

### What makes &konsole; special?

&konsole;'s advanced features include simple configuration and the ability to use multiple terminal shells in a single window, making for a less cluttered desktop.

Using &konsole;, a user can open:

- &Linux; console sessions

- Shell sessions

- Screen sessions

- Midnight Commander file manager sessions

- `Root` console sessions

- `Root` Midnight Commander sessions

- User created sessions

These sessions can be renamed to help you keep track of all your shells, or signaled (STOP, CONT, HUP, INT, TERM, KILL).

For more control over &konsole;, a user can:

- hide/show the menubar and/or frame

- select the size of a &konsole; window, fonts, color schemes, and key mapping

- change location of the scrollbar or hide the scrollbar

- change location of the tabbar or hide the tabbar

All chosen settings can be made the default for forthcoming sessions by saving them.

For those with a deep interest in the taxonomy of free X terminals, there are two others of this kind: xterm, the original, written even before X itself (a month or two), and xvt, a lightweight xterm clone, on which most other currently available derivatives (notably eterm) are based.

After a decade, &konsole; is the first rewrite from the ground up. While xterm has definitely been hacked to death (its `README` begins with the words Abandon All Hope, Ye Who Enter Here), &konsole; offers a fresh start using contemporary technologies and understanding of X.

## Use of &konsole;

### Startup

When &konsole; is started, an application (typically a &UNIX; shell) runs in the window. Simply type at the prompt.

&konsole; Screen &konsole; Screen

Konsole with 4 terminal sessions open.

A Tip of the Day window may also appear on startup, offering hints on the use of &konsole;. If you do not wish to receive tips, uncheck the Show tips on startup box.

### History

As lines 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 a page), &Shift;Page Down (to move forward a page), &Shift;Up (to move up a line) and &Shift;Down (to move down a line) keys (provided the History option is on).

In addition, &konsole; mimics the FreeBSD console when scroll lock is pressed. When scroll lock is on, ordinary in- and output from the shell is suspended, and you can scroll through the history with Page Up, Page down, and Up Arrow and Down Arrow.

&konsole;'s history can be configured via Settings History...

&konsole; provides a number of history related actions located in the Edit menu.

- Find in History...

- Find Next

- Find Prev

- Save History As...

- Clear History

- Clear All Histories

In &konsole;, references to history are to the text that is displayed in &konsole;'s window. The shell that is running in &konsole; (e.g. bash) also has a history which is unrelated to &konsole;'s history.

### Sessions

If you often have to log into remote machines, or always run a similar set of terminal applications, you can use &konsole;'s Session feature along with &kde;'s session management to automate a lot of this for you. Let's take the following example: You often have open an ssh session to the machine `administration` ready for generic administration tasks. You may have noticed the New Session button on &konsole;'s tab bar contains a menu if you click and hold on it, and you can choose new session types here. We are going to add new entries to this menu.

1. Click on the menu entry Settings Configure Konsole

2. Choose the Session tab.

3. 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.

4. 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``.

5. On the lower part of the panel, configure this session's appearance. You can have a different font, colour scheme, and $`TERM` type for each session.

6. Press the Save Session... button. A dialog will ask you to confirm the filename.

7. Press OK.

You should now be able to press and hold the New Session button on the tab bar, and select your new session type from the list. A new shell session will open within the &konsole; window, with the result of your executed command. In our example, you will be at an ssh passphrase prompt, and when you provide your passphrase, you will be logged into the remote machine.

You can avoid this step also, by using ssh-agent, but that is a topic for another goodie.

Perhaps you want to remotely tail your http error logs on a webserver, you could use a commandline something like ``ssh` `-f` `webserver` `tail` `-f` ``/var/log/httpd-error.log```.

You can use this to execute local commands as well. Try creating a session where the command is ``tail` `-f` ``/var/log/messages```. In this case, exiting the running application will close the shell session as well.

One really nice use of this feature is if you find you always have the same set of open sessions, &kde; can open them all for you automatically when you start a new &kde; session. Simply have them open as you like when you exit &kde;, and they will be saved with your &kde; session, and restored just like any other application when you restart &kde;.

You can assign shortcuts to any session.

### 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 &LMB; 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 &LMB; down and dragging the mouse over the screen with a mouse-unaware application running will mark a region of the text. While dragging, the marked text is displayed reversed 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. Click on the selected text and drag it to the desired location. Depending on your &kde; settings, you may need to hold the &Ctrl; key while dragging.

  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 &LMB; will select a column of text.

  Double-click with the &LMB; 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 &LMB; is clicked.

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

Middle

- Pressing the &MMB; pastes text currently in the clipboard. Holding down the &Ctrl; key as you press the &MMB; pastes the text and sends it to &konsole;.

  If you have a mouse with only two buttons, pressing both the &LMB; and &RMB; together emulates the &MMB; 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

- The items that appear in the menu when the &RMB; is pressed depend on whether the menu bar is visible.

  Menubar is visible: Set Selection End, Copy, Paste, Send Signal, Detach Session, Rename Session..., Bookmarks and Close Session menu items.

  Menubar is hidden: Show Menubar, Set Selection End, Copy, Paste, Send Signal, New Session, Detach Session, Rename Session..., Bookmarks, Settings and Close Session menu items.

  In a mouse-aware application, press the &Shift; key along with the &RMB; to get the pop-up menu.

  Pressing the &Ctrl; key and &RMB; brings up the Session menu.

### Menu Bar

The menubar is at the top of the &konsole; window. The menubar can be activated and deactivated by the &Alt; key.

Settings Hide Menubar allows the menubar to be hidden. When the menubar is hidden, Show Menubar can be reached by right clicking in the window or by &Alt;&Ctrl;M , which is the default shortcut for activating the menubar. The menubar can also be toggled by assigning it a shortcut.

#### Session Menu

Session New Shell

- Open a new session with a terminal shell. &Alt;&Ctrl;N can also be used, as described in more detail below.

Session New Linux Console

- Open a new session emulating a text-only &Linux; system.

  See the file `README.linux.console` in the &konsole; source package for detailed information on how the &Linux; console differs from a typical &UNIX; console. If this doesn't mean anything to you, you almost certainly don't need to worry about it.

Session New Midnight Commander

- Open a new session with the Midnight Commander file browser.

  This menu entry will only be visible if Midnight Commander (`mc`) is installed on your system.

Session New Root Shell

- Open a new session with a terminal shell, as the `root` user.

  After being prompted for the `root` password, the `#` prompt appears, indicating that the user is working with `root` privileges. This is frequently necessary for installing new software and other system maintenance, but care should be taken to avoid accidental damage.

Session New Root Midnight Commander

- Open a new session with the Midnight Commander file browser, as the `root` user.

  After being prompted for the `root` password, the `#` prompt appears under the browser window, indicating that the user is working with `root` privileges. Again, working as `root` is frequently necessary but care should be taken to avoid accidental damage.

  This menu entry will only be visible if Midnight Commander (`mc`) is installed on your system.

Session New Screen Session

- Open a new session with the Screen virtual terminal manager. See ``man` `screen`` for more information.

  This menu entry will only be visible if Screen (`screen`) is installed on your system.

Session New Shell at Bookmark

- Start a new terminal shell, in a folder chosen from the bookmark list.

Session Print Screen...

- Print the current screen.

Session Close Session

- Close the current session.

Session Quit

- Quit &konsole;, closing all sessions and any applications launched from them.

You can also open a new session with a key shortcut. By default, &Alt;&Ctrl;N is used. You can also define your own key shortcuts through the Settings Configure Shortcuts... menu command.

The list of available sessions will reflect what programs are installed along with any user defined sessions. The session list will be alphabetized for quick viewing.

Finally, note that the session types can be modified, and new types created, by using the configuration dialog, reached from the Settings Configure Konsole... menu entry.

#### Edit Menu

Edit Copy

- Copy the selected text to the clipboard.

Edit Paste

- Paste text from the clipboard at the cursor location.

Edit Send Signal

- Send 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:

  STOP | to stop process
  CONT | continue if stopped
  HUP | hangup detected on controlling terminal, or death of controlling process
  INT | interrupt from keyboard
  TERM | termination signal
  KILL | kill signal
  USR1 | user signal 1
  USR2 | user signal 2

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

Edit ZModem Upload...

- Send a file via ZModem.

Edit Clear Terminal

- Clear all text from the session window.

Edit Reset and Clear Terminal

- Reset and clear the session window.

Edit Find in History...

- Find a word or string of text in the current history. Options allow case sensitive or backwards searches, and the use of regular expressions in searches. Press the Edit button to use the &kde; graphical editor to create a regular expression.

Edit Find Next

- Move to the next instance of the text for which you are searching.

Edit Find Previous

- Move to the previous instance of the text for which you are searching.

Edit Save History As...

- Save the current history as a text file.

Edit Clear History

- Clear the history for the current session.

Edit Clear All Histories

- Clear the history for all sessions.

#### View Menu

View Detach Session

- Open the current session in a separate window. The name of the session is displayed on the titlebar of the new window.

View Rename Session...

- Open a dialog box allowing you to change the name of the current session. The name is displayed on the session tab. &Alt;&Ctrl;S can also be used.

View Monitor for Activity

- Flag the current session so it will show an alert if activity occurs. An icon of a lit light bulb will appear in the session's tab. Use this to alert you if something happens while you are working in another session. The time before an alert can be modified in the &konsole; preferences.

View Monitor for Silence

- Flag the current session so it will show an alert if no activity occurs for 10 seconds. An icon of a dark light bulb will appear in the session's tab. Use this to alert you if a task stops while you are working in another session. The time before an alert can be modified in the &konsole; preferences.

View Send Input to All Sessions

- Flag the current session so any commands entered into it will be sent to all sessions. The session will have a small icon in its tab to remind you to be careful of what you enter! ``rm` `-rf *``, for instance, is probably not a good idea.

View Move Session Left

- Move the tab of the current session one tab to the left.

View Move Session Right

- Move the tab of the current session one tab to the right.

  &Shift; Left and &Shift; Right can be also be used to move between sessions.

View Session icons...

- At the bottom of the menu is a list of the available sessions. Selecting one makes that session active.

  You can also use the &Shift;Left/&Shift;Right keys to cycle through the available sessions.

#### Bookmarks Menu

Bookmarks Add Bookmark

- Add the current location to the bookmark list.

Bookmarks Edit Bookmarks

- Edit the bookmark list.

Bookmarks New Bookmark Folder...

- Add a new folder to the bookmark list.

The bookmark list is displayed at the bottom of the menu. Select a bookmark to change to that location.

You can use the bookmark editor to manually add URLs like ssh://user@host or telnet://host to open remote connections.

#### Settings Menu

Settings Hide Menubar

- Hide the menubar.

Settings Tab Bar

- Control visibility/location of tabbar: Hide, Top, or Bottom.

Settings Scrollbar

- Control visibility/location of scrollbar: Hide, Left, or Right.

Settings Fullscreen

- Toggle window between full-screen and normal size.

Settings Bell

- Set the bell: System Bell, System Notification, Visible Bell, or None.

Settings Font

- Set font size: Normal, Tiny, Small, Medium, Large, Huge.

  Select the Linux option to use a console font.

  Select the Unicode option to use a fixed font.

  Select the Custom option to use any combination of font, size and style.

Settings Encoding

- Select character encoding.

Settings Keyboard

- Choose desired keymapping.

  The list of these keymappings is taken from `$KDEDIR/share/apps/konsole/*.keytab`. The file `$KDEDIR/share/apps/konsole/README.KeyTab` describes the `*.keytab` format in more detail. Add to or modify these files to match your needs. The default keytab is taken from `$KDEDIR/share/apps/konsole/README.default.Keytab`.

Settings Schema

- Set colors of text and background.

  The list is taken from `$KDEDIR/share/apps/konsole/*.schema`. The file `$KDEDIR/share/apps/konsole/README.Schema` describes the `*.schema` format in more detail. Add to or modify these files to match your needs. You can also create custom schemas through the preferences dialog at Settings Configure Konsole....

Settings Size

- Set size of text area (given in columns x rows).

Settings History...

- Open a dialog where you can configure the history. The Enable checkbox toggles saving of lines that have scrolled off the top of the window. You can enter the Number of lines to remember in the text field, or use the spinner buttons to increase or decrease the number in steps of 100 lines. The Defaults button will reset the history to 1000 lines. Selecting Set Unlimited will cause all history to be saved. Press OK to save your changes, or Cancel to close the dialog without saving your settings.

Settings Save as Default

- Save the current settings as the new default.

Settings Save Sessions Profile...

- Save the current set of sessions under a name you choose. The profile can then be used by starting &konsole; from the command-line with the `--profile` and the name of the profile.

Settings Configure Notifications...

- Customize notifications for &konsole;.

Settings Configure Shortcuts...

- Customize keyboard shortcuts for &konsole; commands.

Settings Configure &konsole;...

- Open the &kcontrolcenter; module, allowing many additional changes to &konsole;'s interface and behavior, including the creation of custom schemas and modification of the available sessions.

#### Help Menu

Help Konsole Handbook

- Open the table of contents of this document.

Help Tip of the Day...

- Display a helpful tip about the use of &konsole;. Check the Show on start box to display a tip each time &konsole; is started.

Help Report Bug...

- Submit a bug report or a feature request for &konsole;.

Help About Konsole...

- Information about &konsole;'s author

Help About KDE...

- Information about the KDE project

### Tab Bar

The tabbar allows multiple terminal sessions to be attached to a single &konsole; window.

Tabbar Image Tabbar Image

Konsole with 4 terminal sessions open with the tabbar on the bottom.

The Settings Tab Bar menu item allows the tabbar to be moved to the Top or Bottom. The tabbar can also be hidden by selecting Hide.

On the left side of the tabbar is a button which allows for a multitude of actions.

- Click on the button to start a new standard session.

- Clicking and holding on the button will popup a list of sessions to select.

- Right-clicking on the button (or any empty space on the tabbar) will popup up a menu to set certain options:

  - Tab Bar: Hide, Top, Bottom.

  - Tab Options: Text & Icons, Text Only, Icons Only.

  - Dynamic Hide will hide the tabbar when there is only one session opened.

  - Auto Resize Tabs will automatically resize the tabs to the width of the tabbar.

On the right side of the tabbar is a button that closes the current session. This button will be disabled when there is only one session running.

Right-clicking on any tab will popup another menu:

- Detach Session

- Rename Session...

- Monitor for Activity

- Monitor for Silence

- Send Input to All Sessions

- Switch to Tab...

- Close Session

### Command-line Options

When &konsole; is started from the command-line, various options can be specified to modify its behavior.

`--help`

- List the various options.

`-e` `command`

- Execute `command` instead of the normal shell.

  Any arguments after `command` will be passed to `command`, not &konsole;.

`--keytab` `file`

- Start &konsole; using a specified .keytab file to customize key bindings.

`--keytabs`

- List all of the available keytabs.

`--ls`

- Start with a login shell environment. What that does varies depending on your system, but generally it means that files such as `~/.profile` or `~/.bash_profile` will be read. (If that doesn't mean anything to you, don't worry about it, but keep in the back of your mind for when you realize you need it.)

`--name` `name`

- Set the name that appears in the titlebar.

`--noclose`

- Prevent &konsole; from closing when an ``exit`` command is issued in the only session window.

`--noframe`

- Start &konsole; without a frame.

`--nohist`

- Disable the saving of lines that scroll off the top of the window.

`--nomenubar`

- Start &konsole; with the menubar hidden.

`--noresize`

- Disable the resizing of the terminal window.

`--noscrollbar`

- Start &konsole; with the scrollbar hidden.

`--notabbar`

- Start &konsole; with the tabbar hidden.

`--noxft`

- Start &konsole; without Xft antialiasing. Antialiasing of a small font may be difficult to read.

`--profile` `file`

- Start &konsole; using a saved set of sessions.

`--profiles`

- List all of the available profiles.

`--schema` `name` | `file`

- Start &konsole; using schema 'name' or specified in 'file' to customize appearance.

`--schemata`

- List all of the available schemata.

`--script`

- Enable extended &DCOP; &Qt; functions.

`-T` `title`

- Set the window title.

`--tn` `terminal`

- Sets the environment variable TERM to the specified value. Read ``man` `xterm`` for more information on TERM.

`--type` `type`

- Start a session of the given type rather than the default.

`--types`

- List all of the available session types.

`--vt_sz` `CCxLL`

- Start a terminal window of CC Columns and LL lines.

`--workdir` `dir`

- Open with `dir` as the working folder.

Examples:

    % konsole --vt_sz 90x25 --nohist

Starts a &konsole; window with 90 columns and 25 rows, with no history

    % konsole --noclose -e echo_args Hello, thanks for using Konsole!

Starts a &konsole; window with the text printed 'Hello, thanks for using Konsole!'

The `echo_args` is a simple Bash script:

    #!/bin/bash
    echo $*

&konsole; also accepts generic &Qt; and &kde; options:

`--help-qt`

- List Qt-specific options

The following &Qt; options have no effect on &konsole;:

`--fn`, `--font` `fontname`

- Defines the application font

`--bg`, `--background` `color`

- Sets the default background color

`--fg`, `--foreground` `color`

- Sets the default foreground color

`--btn`, `--button` `color`

- Sets the default button color

`--help-kde`

- List KDE-specific options

`--help-all`

- List all options

`--author`

- Show the authors' names

`-v,--version`

- Show the version number

`--license`

- Show license information

### DCOP

For an introduction to &DCOP; and using `dcop` please look at the User Guide entry on DCOP.

## Credits and Copyright

As of &kde; 3.4, &konsole; is maintained by &Kurt.Hindenburg; &Kurt.Hindenburg.mail;

Previously, &konsole; was maintained by &Waldo.Bastian; &Waldo.Bastian.mail;

The application &konsole; Copyright © 1997-2005 &Lars.Doelle; &Lars.Doelle.mail;

This document was written by &Jonathan.Singer; &Jonathan.Singer.mail;

This document was updated for &kde; 3.4 by &Kurt.Hindenburg; &Kurt.Hindenburg.mail;

Originally converted to DocBook SGML by &Mike.McBride; and &Lauri.Watts;

&underFDL; &underGPL;

## &konsole; on non-&Linux; platforms

Information on building &konsole; on platforms other than &Linux; is available in the `README.ports` file in the &konsole; source package. It provides a list of experts for certain platforms (Tru64, &Solaris;, OpenBSD) and requests volunteers from other &UNIX; platforms.

For more infomation please visit these websites:

- KDE on FreeBSD

- KDE on Solaris

&documentation.index;