<appendix id= "useraction_xml">
<!-- **********************************************************************
installation.docbook
++++++++++++++++++++++++++
copyright : (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006
Rafi Yanai, Shie Erlich, Frank Schoolmeesters
& the Krusader Krew
e-mail : krusader@users.sourceforge.net
web site : http://www.krusader.org
description : a Krusader Documentation File
***************************************************************************
* Permission is granted to copy, distribute and/or modify this *
* document under the terms of the GNU Free Documentation License, *
* Version 1.1 or any later version published by the Free Software *
* Foundation; with no Invariant Sections, no Front-Cover Texts and *
* no Back-Cover Texts. A copy of the license is available on the *
* GNU site http://www.gnu.org/licenses/fdl.html or by writing to: *
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, *
* MA 02110-1301, USA. *
*********************************************************************** -->
<title
>useraction.xml</title>
<para
>This appendix gives several examples of <filename
>useraction.xml</filename
> files. With this you can begin to discover the power of the &useractions_lnk; and start learning how to use them. Once you understand how to write UserActions you will find that &krusader; is an even more powerful, customizable tool. </para>
<para
>Please consider to upload your UserActions at &kde_files_url;. We are collecting UserActions, if your UserAction is selected by us it will be shipped with &krusader; at the next release. We provide also an &useractionsforum_url;. </para>
<itemizedlist>
<listitem
><para
>Runs <command
>uptime</command
> <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="uptime" >
<title>Up-time</title>
<tooltip>tells how long since the computer has been booted</tooltip>
<icon>clock</icon>
<category>information</category>
<description>tells how long since the computer has been booted</description>
<command executionmode="collect_output" >uptime</command>
<defaultshortcut>Alt+Ctrl+U</defaultshortcut>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Runs <command
>ls -l</command
> <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="ls -l" >
<title>ls -l in current dir</title>
<description>Runs ls -l in current dir</description>
<command executionmode="collect_output" >ls -l %aPath% %oPath%</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Echo Placeholder <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="test_placeholder" >
<title>Echo Placeholder</title>
<tooltip>Echo's the placeholder values</tooltip>
<category>Testing</category>
<description>Echo's the placeholder values</description>
<command executionmode="collect_output" onmultiplefiles="call_each" >echo -e "aPath %aPath()% \naCurrent: %aCurrent()%"</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>This useraction copies current path and filename to clipboard: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="clipboard current" >
<title>Copy to Clipboard</title>
<tooltip>Copy to clipboard</tooltip>
<icon>klipper</icon>
<category>System</category>
<description>Copy current path and filename to clipboard</description>
<command>%_Clipboard("%aCurrent%")%</command>
<defaultshortcut>Win+C</defaultshortcut>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Selects <literal role="extension"
>.diff</literal
> and <literal role="extension"
>*.h</literal
> in the active panel: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="test_select" >
<title>Add selection *.diff and *.h</title>
<category>Selection</category>
<command>%aSelect("*.diff", "add")% %aSelect("*.h", "add")%</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Active panel changes to <filename
>mnt/floppy</filename
> (bookmark): <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<action name="mnt/floppy bookmark" >
<title>Jump to /mnt/floppy</title>
<category>Bookmarks</category>
<command>%aGoto("/mnt/floppy", "yes")%</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Select in the non-active panel, all filenames that are highlighted in the active panel: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<action name="asdfasdf" >
<title>Select in Other Panel</title>
<category>Selection</category>
<description>Select all filenames that are selected in the active panel, also in the non-active panel</description>
<command>%oSelect("%aList("selected", " ", "Yes")%")%</command>
</action>
</KrusaderUserActions</programlisting>
</para
></listitem>
<listitem
><para
>Make a backup of the current file/folder to <filename
>foo.bak</filename
> into the current directory: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="backup current" >
<title>Backup in Current Directory</title>
<tooltip>Backup in current directory</tooltip>
<icon>filesaveas</icon>
<category>System</category>
<description>Backup in current directory</description>
<command>%_Copy("%aCurrent%", "%_Ask("new name", "%aCurrent%.bak")")%</command>
<defaultshortcut>Shift+F5</defaultshortcut>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Opens <link linkend="krusearcher"
>KruSearcher</link
>: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="search" >
<title>Search Test</title>
<command>%_NewSearch("Search 2")%</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Sets the selected picture as wallpaper: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="set wallpaper" >
<title>Set as Wallpaper</title>
<tooltip>Set as wallpaper</tooltip>
<icon>image</icon>
<category>Service Menu</category>
<description>Set as wallpaper (scaled)</description>
<command>dcop kdesktop KBackgroundIface setWallpaper "%aCurrent%" 6</command>
<defaultshortcut>Win+W</defaultshortcut>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>This useraction edits a file with root permissions using <command
>tdesu</command
>: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="edit as root" >
<title>Edit as Root</title>
<tooltip>Edit as root</tooltip>
<icon>kwrite</icon>
<category>System</category>
<description>Edit a file with root permissions using tdesu</description>
<command>tdesu kedit %aCurrent%</command>
<defaultshortcut>Win+F4</defaultshortcut>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>This useraction Add item(s) to Amarok playlist: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="amarok enqueue" >
<title>Enqueue in Amarok</title>
<tooltip>Append selected item(s) to Amarok playlist</tooltip>
<icon>amarok</icon>
<category>Multimedia</category>
<description>Append selected item(s) to Amarok playlist</description>
<command>amarok --append %aList("Selected")%</command>
<defaultshortcut>Win+A</defaultshortcut>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Opens &synchronizer_lnk;: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="synchronizer" >
<title>Synchronizer</title>
<command>%_Sync("Sync 2")%</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Copy selected files & directories with root privileges (also inside archives): <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="root_copy" >
<title>Copy as "root"</title>
<tooltip>Copy as "root"</tooltip>
<icon>editcopy</icon>
<category>Selection</category>
<description>Copy selected files & directories with root privileges, also inside archives!</description>
<command run_as="root" accept="url">kfmclient copy %aList("Selected", " ", "No")% %oPath%</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Search and replace a strings and regular expressions in textfiles using <command
>sed</command
>: <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="search_replace" >
<title>Simple Search and Replace</title>
<tooltip>Search and replace a string/regex in textfiles</tooltip>
<icon>kcachegrind</icon>
<category>Samples</category>
<description>This UA uses the UNIX standard-tool sed (the stream-editor) so perform search and replace operations in all selected files It is possible to give a regular expression for both strings. Please note: The sed-command is "s/search/repleace/", so you have to escape the slash when you need it!</description>
<command>sed -i -e 's/%_Ask("Search for:")%/%_Ask("Replace with:")%/' %aList("Selected")%</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
<listitem
><para
>Converts content of selected text-files from ISO-8859-15 to UTF8 and vice versa using <command
>iconv</command
> (also inside archives): <programlisting
><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE KrusaderUserActions>
<KrusaderUserActions>
<action name="iso8859-15_to_utf8" >
<title>ISO 8859-15 => UTF8</title>
<tooltip>convert characterset</tooltip>
<icon>editcopy</icon>
<category>Selection</category>
<description>Converts content of selected text-files from ISO-8859-15 to UTF8</description>
<command>sh -c 'cd %aPath%; for i in %aList("Selected", " ", "Yes")% ; do iconv -f iso8859-15 -t utf-8 "$i" -o %oPath%"$i"; done '</command>
</action>
<action name="utf8_to_iso8859-15" >
<title>UTF8 => ISO 8859-15</title>
<tooltip>convert characterset</tooltip>
<icon>editcopy</icon>
<category>Selection</category>
<description>Converts content of selected text-files from UTF8 to ISO-8859-15</description>
<command>sh -c 'cd %aPath%; for i in %aList("Selected", " ", "Yes")% ; do iconv -f utf-8 -t iso8859-15 "$i" -o %oPath%"$i"; done '</command>
</action>
</KrusaderUserActions></programlisting>
</para
></listitem>
</itemizedlist>
</appendix>