<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" 
"dtd/kdedbx45.dtd" [
  <!ENTITY kappname "&klipper;">
  <!ENTITY package "kdebase">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % English "INCLUDE" > <!-- change language only here -->
]>

<book id="klipper" lang="&language;">
<bookinfo>
<title>The &klipper; Handbook </title>

<authorgroup>
<author>&Philip.Rodrigues; &Philip.Rodrigues.mail;</author>

<othercredit role="developer">
&Carsten.Pfeiffer; &Carsten.Pfeiffer.mail;
<!-- <contrib>Developer</contrib> -->
</othercredit>

<!-- TRANS:ROLES_OF_TRANSLATORS -->

</authorgroup>

<copyright>
<year>2000-2003</year>
<holder>&Philip.Rodrigues;</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>2022-05-05</date>
<releaseinfo>Plasma 5.25</releaseinfo>

<abstract>
<para>&klipper; is the &plasma; clipboard cut &amp; paste utility.</para>
</abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>Klipper</keyword>
<keyword>kdebase</keyword>
<keyword>clipboard</keyword>
</keywordset>
</bookinfo>
<!--http://blog.martin-graesslin.com/blog/2014/07/next-generation-klipper/-->
<chapter id="introduction">
<title>Introduction</title>
<para>&klipper; is the &plasma; clipboard utility. It stores clipboard
history, and allows you to link clipboard contents to application
actions. Please report any problems or feature requests to <ulink
url="http://bugs.kde.org">KDEs bugzilla</ulink>.</para>

</chapter>

<chapter id="using-klipper">
<title>Using &klipper;</title>

<sect1 id="basic-usage">
<title>Basic Usage</title>
<para>You can use &klipper; in the systemtray either as &plasma; widget or classic application.
Both share the same functionality but have a different &GUI; and show the last item of the history 
when hovering the &klipper; icon in the systemtray:
</para>

<screenshot>
<screeninfo>The &klipper; icon.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="screenshot.png" format="PNG" />
</imageobject>
<textobject>
<phrase>The &klipper; icon</phrase>
</textobject>
</mediaobject>
</screenshot>

<para>The &klipper; widget is hidden if the clipboard is empty.</para>

<para>To display the clipboard history, click on the &klipper; icon in
the systemtray.</para>

<sect2 id="klipper-widget">
<title>&klipper; Widget</title>
<screenshot>
<screeninfo>The &klipper; Widget.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="klipper-widget.png" format="PNG" />
</imageobject>
<textobject>
<phrase>The &klipper; Widget</phrase>
</textobject>
</mediaobject>
</screenshot>

<para>Hover an entry with the mouse pointer and four icons appear which enable you to 
invoke an action, show the barcode, edit the content or remove the entry from the history.
Use &spectacle; to capture the barcodes and save them.
</para>

<para>You can search through the clipboard history by opening it
(click on &klipper;) and typing your query. The results are updated as
you type. To clear the clipboard history click on the icon at the right of
the search field.
</para>

<para>The <guilabel>Configure Clipboard...</guilabel> action in the context menu opens the 
<link linkend="preferences">settings dialog</link>.
</para>

</sect2>
</sect1>

<sect1 id="actions">
<title>Actions</title>

<para>&klipper; can perform actions on the contents of the clipboard,
based on whether they match a particular regular expression. For
example, any clipboard contents starting with <quote>http://</quote> can
be passed to Firefox or &konqueror; as &URL;s to open. In addition, if the 
contents matches a path, similar actions can be performed according to the file's
type. &eg;, if the path to a <acronym>PDF</acronym> file is copied to the clipboard, the file can be 
viewed in &okular;.</para>

<para>To use this feature, just select a &URL; or path. <!-- starting with slash ?-->
If there is a matching regular expression in &klipper;'s
list, a menu will appear showing you the programs for your selection. 
Use the mouse or cursor keys to select a program, and &klipper; will run 
this program, opening the address pointed to by the
selection.</para>

<para>You can change the time that the menu remains for in the settings dialog,
with the option <guilabel>Show action popup menu</guilabel> under the
<guilabel>General</guilabel> page. You can separately disable the  file path
part using the option <guilabel>Include MIME actions</guilabel> under the
<guilabel>Action Menu</guilabel> page.</para>

<para>Actions can be disabled completely by pressing
the shortcut <keycombo action="simul">&Ctrl;&Alt;<keycap>X</keycap></keycombo>.</para>

<para>Clipboard contents which match a regular expression can also be
edited before performing an action on them. Select <guimenuitem>Edit 
contents...</guimenuitem> at the right of the clipboard entry, and you can
change the clipboard contents in the dialog which appears, before
clicking the <guibutton>OK</guibutton> button to run the appropriate
action.</para>

<para>Pressing <keycombo
action="simul">&Ctrl;&Alt;<keycap>R</keycap></keycombo> shows the pop-up
menu to repeat the last action which &klipper; performed.</para>

</sect1>

<sect1 id="clipboard-modes">
<title>Clipboard/Selection Behavior</title>

<sect2 id="clipboard-modes-general">
<title>General</title>
<para>
&klipper; can be used to set the behavior of the clipboard and selection in
&plasma;. 
</para>

<note><para>The &X-Window; uses two separate clipboard buffers: the
<quote>selection</quote> and the <quote>clipboard</quote>. Text is
placed in the selection buffer by simply selecting it, and can be
pasted with the middle mouse button. To place text in
the clipboard buffer, select it and press
<keycombo>&Ctrl;<keycap>X</keycap> </keycombo> or
<keycombo>&Ctrl;<keycap>C</keycap> </keycombo>. Text from the
clipboard buffer is pasted using <keycombo>&Ctrl;<keycap>V</keycap>
</keycombo> or by selecting <guimenuitem>Paste</guimenuitem> 
in a context menu.</para>
</note>

</sect2>

<sect2 id="changing-clipboard-modes">
<title>Changing Clipboard/Selection Behavior</title>
<para>
In order to change clipboard/selection behavior, select
<guimenuitem>Configure Clipboard...</guimenuitem> from the &klipper; context menu,
and in the dialog box that appears, select the
<guilabel>General</guilabel> page. Unchecking <guilabel>Selection and Clipboard</guilabel> makes the clipboard and selection function as completely
separate buffers as described above. With this option set, the option
<guilabel>Ignore</guilabel> will prevent &klipper; from
including the contents of the selection in its clipboard history and from
performing actions on the contents of the selection. Selecting
<guilabel>Selection and Clipboard</guilabel>
causes the clipboard and selection buffers to always be the same, meaning that
text in the selection can be pasted with either the
<mousebutton>middle</mousebutton> mouse button or the key combination <keycombo>&Ctrl;<keycap>V</keycap>
</keycombo>, and similarly for text in the clipboard buffer.
</para>

 <!-- The
<guilabel>Synchronize contents of the clipboard and the
selection</guilabel> check box determines the clipboard mode. If the box is
selected, the clipboard functions in the &UNIX; mode; if not, the
&Windows;/&Mac; mode is used. -->

</sect2>


</sect1>

</chapter>

<chapter id="preferences">
<title>Configuring &klipper;</title>

<sect1 id="general-page">
<title>General Options</title>

<variablelist>

<varlistentry><term><guilabel>Selection and Clipboard</guilabel></term>
<listitem><para>When text or an area of the screen is highlighted with the mouse or 
keyboard, this is the <emphasis>selection</emphasis>. It can be pasted using 
the middle mouse button.</para><para>If the selection is explicitly copied 
using a <guimenuitem>Copy</guimenuitem> or <guimenuitem>Cut</guimenuitem> action, it 
is saved to the <emphasis>clipboard</emphasis>. It can be pasted using a 
<guimenuitem>Paste</guimenuitem> action.</para><para>When turned on this option 
keeps the selection and the clipboard the same, so that any selection is 
immediately available to paste by any means. If it is turned off, the 
selection may still be saved in the clipboard history (subject to the 
options below), but it can only be pasted using the middle mouse button.</para></listitem>
</varlistentry>

<varlistentry><term><guilabel>Clipboard history</guilabel></term>
<listitem><para>Toggles clipboard history.</para></listitem>
</varlistentry>

<varlistentry><term><guilabel>Number of entries</guilabel></term>
<listitem><para>Sets the number of items that are stored
in the clipboard history.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Text selection</guilabel></term>
<listitem><para>When an area of the screen is selected with mouse or keyboard, this is 
called the <quote>selection</quote>. This option determines whether text selections are
saved in the clipboard history. It is possible to choose between <guilabel>Always save
in history</guilabel> and <guilabel>Only when explicitly copied</guilabel>. The
<guilabel>Always save in history</guilabel> option is not available if
selection/clipboard synchronisation is turned off &dash; in this
case the selection is never automatically saved in the clipboard history.
See <xref linkend="clipboard-modes"/>.
</para>
</listitem>
</varlistentry> 

<varlistentry>
<term><guilabel>Non-text selection</guilabel></term>
<listitem><para>This option determines whether non-text selections (such as images) are
saved in the clipboard history. It is possible to choose between <guilabel>Always save
in history</guilabel>, <guilabel>Only when explicitly copied</guilabel>, and
<guilabel>Never save in history</guilabel>. The <guilabel>Always save in
history</guilabel> option is not available if selection/clipboard synchronisation
is turned off &dash; in this case the selection is never automatically saved in the
clipboard history. See <xref linkend="clipboard-modes"/>.
</para>
</listitem>
</varlistentry> 

</variablelist>

</sect1>

<sect1 id="action-menu-page">
<title>Action Menu</title>

<variablelist>

<varlistentry>
<term><guilabel>Show action popup menu</guilabel></term>
<listitem><para>Set the time that a popup menu will remain for if you do
nothing with it.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Replay actions on an item selected from
history</guilabel></term>
<listitem><para>If this is switched on, selecting an item from the history
causes &klipper; to display the actions pop-up on that item, if 
appropriate.</para>
</listitem>
</varlistentry>

<varlistentry><term><guibutton>Exclude Windows</guibutton></term>
<listitem><para>Brings up the <guilabel>Disable Actions for windows of type
WM_CLASS</guilabel> dialog.</para>
<para>Some programs, such as &konqueror;,
use the clipboard internally. If you get unwanted &klipper; pop-ups all the time
when using a certain application, do the following:</para>

<orderedlist>
<listitem><para>Open the application.</para></listitem>
<listitem><para>From a terminal, run <userinput><command>xprop</command>
| <command>grep</command> <parameter>WM_CLASS</parameter></userinput>
and then click on the window of the application you are
running.</para></listitem> 
<listitem><para>The first string after the equals sign is the one to
enter.</para></listitem>
</orderedlist>

<para>Once the WM_CLASS is added, no more actions will be generated for
windows of that application.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Remove white space when executing actions</guilabel></term>
<listitem><para>If selected, any white space (spaces, tabs, &etc;) at the
beginning and end of the clipboard contents will be removed before passing the
clipboard contents to an application. This is useful, for example, if the
clipboard contains a &URL; with spaces which, if opened by a web browser, would
cause an error.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Include MIME actions</guilabel></term>
<listitem><para>If selected, include applications that can accept its 
&MIME; type of a file name or URL selected in the popup menu.</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>

<sect1 id="actions-configuration-page">
<title>Actions Configuration</title>

<variablelist>
<varlistentry>
<term>Editing Expressions/Actions</term>
<listitem><para>On the <guilabel>Actions</guilabel> page, double-click
the regular expression or action that you want to edit or select it and 
press the <guibutton>Edit Action</guibutton> button. A dialog will appear in which the 
expression text can be edited as you wish.</para></listitem>
</varlistentry>

<varlistentry>
<term>Adding Expressions/Actions</term>
<listitem><para>Click the <guibutton>Add Action...</guibutton> button
to add a regular expression for &klipper; to match. &klipper; uses
&Qt;'s <classname>QRegularExpression</classname>, which uses PCRE (Perl
Compatible Regular Expressions).</para>
<para>You can add a description of the regular expression type (&eg;
<quote>HTTP URL</quote>) by <mousebutton>left</mousebutton> clicking in the
<guilabel>Description</guilabel> column.</para>   

<note><para>You can find detailed information about the use of
<classname>QRegularExpression</classname> regular expressions in <ulink
url="https://doc.qt.io/qt-5/qregularexpression.html#details">the Qt upstream
documentation</ulink>.</para></note>

<para>Edit the regular expression as described above. To add a command
to execute, click <guimenuitem>Add Command</guimenuitem> and edit the command 
in an in-place text editing box. Double-clicking on a command allows you to edit it.</para>

<para>Note that <token>%s</token> in the command line is replaced with
the clipboard contents, &eg; if your command definition is
<userinput><command>kwrite</command> <token>%s</token></userinput> and
your clipboard contents are <filename>/home/phil/textfile</filename>,
the command <userinput><command>kwrite</command>
<filename>/home/phil/textfile</filename></userinput> will be run. To
include <token>%s</token> in the command line, escape it with a
backslash, as so: <userinput>\%s</userinput>.</para>

<para>Entries <userinput><token>%0</token></userinput> through
<userinput><token>%9</token></userinput> will be replaced by the corresponding captured
texts from the match pattern.
</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="shortcuts-page">
<title>Shortcuts Options</title>

<para>The shortcuts page allows you to change the keyboard shortcuts
which are used to access &klipper; functions. You can change the
shortcut to one of three things:</para>

<variablelist>
<varlistentry>
<term><guilabel>None</guilabel></term>
<listitem><para>The selected action cannot be accessed directly from the
keyboard</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Default</guilabel></term>
<listitem><para>The selected action uses &klipper;'s default key. These are the
shortcuts referred to in this manual.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Custom</guilabel></term>
<listitem><para>The selected action is assigned to the keys you choose.</para>
<para>To choose a custom key for the action you have selected, click on 
<guilabel>Custom</guilabel> and then <guilabel>None</guilabel>.
Now type the desired key combination on your keyboard, as in any &kde; application. 
</para> </listitem>
</varlistentry>
</variablelist>

<para>If you define a shortcut for <guilabel>Open Klipper at Mouse Position</guilabel> 
pressing this shortcut will open the &klipper; popup menu at the position of
the mouse cursor, instead of their default position (in the &plasma; Panel).
Useful if you use the mouse more than the keyboard.</para>

</sect1>
</chapter>

<chapter id="credits">
<title>Credits and License</title>

<para>
&klipper;
</para>
<para>
Program copyright 1998 &Andrew.Stanley-Jones; <email>asj@cban.com</email>
</para>
<para>
Program copyright 1998-2000 &Carsten.Pfeiffer; &Carsten.Pfeiffer.mail;</para>
<para>
Currently maintained by Esben Mose Hansen. See <ulink
url="http://mosehansen.dk/about">http://mosehansen.dk/about</ulink>
for contact details.
</para>

<para>
Documentation copyright 2000-2003, 2005 &Philip.Rodrigues;
&Philip.Rodrigues.mail;</para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL;
&underGPL;

</chapter>


&documentation.index; 

</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes: nil
sgml-general-insert-case: lower
sgml-indent-step: 0
End:
-->










