# 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 function of 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

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

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

- hide/show the menubar, toolbar, scrollbar and/or frame

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

- change location of the scrollbar or hide the scrollbar

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

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.

### 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 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 dialogue will ask you to confirm the filename.

7. Press OK.

You should now be able to press and hold the New 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;.

### Mouse Buttons

Left

- Clicking the left button is passed as an event to the application running in the emulation, if it is mouse-aware. If a program 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 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 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.

  Double-click with the left 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 on a mouse-aware application (Midnight Commander, for example) the &Shift; key has to be pressed when clicking.

Middle

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

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

Right

- The right button brings up a menu with the Show Menubar, Copy, Paste, Send Signal, Detach (or Attach) Session, Rename Session..., Bookmarks Settings and Close Session menu items. The &Ctrl; right button brings up the Session menu.

### Menu Bar

The menubar is at the top of the &konsole; window. It can be hidden and restored by toggling Show Menubar in the Settings menu. When the menubar is hidden, Show Menubar can be reached by right clicking in the window or by &Alt;&Ctrl;M .

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

Session New Root Console

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

Session New Screen Session

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

Session New Shell at Bookmark

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

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 files with a `*.keytab` extension in `$`KDEDIR`/share/apps/konsole` also define keyboard shortcuts. Use the Settings Keyboard menu command to choose a keytab file. The file `README.KeyTab` contains more information on defining shortcuts.

The list of available sessions may differ from those listed here. &konsole; detects your installed programs and customises the list to reflect the available options.

Finally, note that the session types can be modified, and new types created, by using the configuration dialogue, 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 Clear Terminal

- Clear all text from the session window..

Edit Reset and Clear Terminal

- Start a new session in the 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. Close the new window to restore the session to its original place, or right-click on the new window and select Attach Session. Note that if the main window is closed, any detached sessions will be closed with it.

View Rename Session...

- Open a dialogue 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 Show Menubar

- Show or hide the menubar.

Settings Show Toolbar

- Show or hide the toolbar.

Settings Scrollbar

- Control location of scrollbar: none, left, or right.

Settings Fullscreen

- Toggle window between full-screen and normal size.

Settings Bell

- Set the system bell to a &kde; System Notification or a visible flash, or turns it off.

Settings Font

- Set font and font size

  Select the Custom option to use any combination of font, size and style. The `README.fonts` file in the &konsole; source package gives tips on which fonts will work well.

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.

Settings Schema

- Set colours of text and background.

  The list of these schemata 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 schema through the preferences dialogue at Settings Configure Konsole....

Settings Size

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

Settings History...

- Open a dialogue 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. Setting this value to 0 will cause all history to be saved. Press OK to save your changes, or Cancel to close the dialogue without saving your settings. The Help button will open this manual, and display the text you're reading right now.

Settings Save Settings

- Save the current settings as the new defaults.

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

- Customise keyboard shortcuts for &konsole; commands.

Settings Configure &konsole;...

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

#### Help Menu

F1 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

### Toolbar

The toolbar is at the bottom of the &konsole; window.

It can be hidden and restored by toggling Show Toolbar in the Settings menu or by clicking the textured handle at the side of the bar. The bar contains a New icon and icons for the current sessions. Clicking New opens a new Shell session.

Double-clicking a session tab opens a dialogue box enabling you to change the name of that session. &Alt;&Ctrl;S can also be used to rename the active session.

Clicking an existing session's icon makes that session active.

When the toolbar is hidden, &Shift; Left and &Shift; Right can be used to move between sessions.

### Command-line Options

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

`--help`

- List the various options

`--name` `name`

- Set the name that appears in the titlebar

`--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 realise you need it.)

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

`--xwin`

- Ignored

`--noclose`

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

`--nohist`

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

`--nomenubar`

- Start &konsole; without a menubar

`--notoolbar`

- Start &konsole; without a toolbar

`--noframe`

- Start &konsole; without a frame

`--noscrollbar`

- Start &konsole; without a scrollbar

`--noxft`

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

`--vt_sz` `CCxLL`

- Start a terminal window of CC Columns and LL lines

`--type` `type`

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

`--keytab` `file`

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

`--profile` `file`

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

`--schema` `file`

- Start &konsole; using a specified .schema file to customise appearance.

`--script` `file`

- Allow the use of extended DCOP commands to paste text into sessions.

`--workdir` `dir`

- Open with `dir` as the working folder.

`-e` `command`

- Execute `command` instead of shell.

For instance:

    bash$
     konsole --vt_sz
      90x25 --nohist

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

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

`--help-qt`

- List Qt-specific options

`--help-kde`

- List KDE-specific options

`--help-all`

- List all options

`--author`

- Show the authors' names

`-v,--version`

- Show the version number

`--license`

- Show licence information

## Credits and Copyright

&konsole; is maintained by &Waldo.Bastian; &Waldo.Bastian.mail;

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

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

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

Conversion to British English: John Knight anarchist_tomato@herzeleid.net

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

&documentation.index;