Shortcuts is a rich-function script. It slightly extends a Windows enwironment by adding some functionality that I was missing during my day-to-day work. Every function has it's own keyboard shortcut. Besides the standard modifiers (ctrl, alt, shift,win) this script uses also a new modifier apps (context-menu button located to the left from the right control key). Upon starting the script, an icon in the system tray appears with the extensive context menu. This menu can be opened by pressing lctrl+rctrl. Functions are organized in submenus and each function has it's keyboard shortcut. Some of these shortcuts can be understood as gestures. For example copying between windows and active clipboard is performed by using only shift keys. I. E. winclipboard->activeclipboard is activated by holding the left shift key and pressing the right shift. To copy the contents of an active clipboard into the Windows clipboard (activeclipboard->winclipboard) use the gesture from right to left (hold the right shift and press the left shift key).
It is good idea to keep in mind, that there are some functions, which must be invoked by shortcut to make sure, that the particular function will work correctly. This is specially important to remember if you would like to use functions working with focused application, e.g. hide active window).
A list of less intuitive functions with brief descriptions follows.
This submenu contains functions related to virtual desktops. 5 desktops are awailable. In fact they are taskbars. You can open applications on every desktop. After switching to other virtual desktop, all windows of opened applications will be "hidden" and there will be applications which are opened on the selected virtual desktop in the taskbar .
- desktop1 .. desktop5: switches between desktops
- next desktop: go to the next non-empty desktop
- merge desktops: This function merges all desktops into one
- close all on current desktop: It allows to close everithing on the current desktop
This submenu contains functions for working with the clipboards. There are 36 clipboards available. You can copy, cut and when working with plain text also append to these clipboards. Clipboards are labeled as one-character symbols (a-z, 0-9).
- select AHK clipboard: Selects a clipboard. After activating this function press the letter a-z or number 0-9 to set selected clipboard as an active one. You can cancel this dialog by pressing the ESC key. Do not comfirm your choice by pressing the enter key (the clipboard will be activated immediately after entering an appropriate character). This clipboard will be active until you exit the script or select another clipboard.
- cut to AHK clipboard, copy to AHK clipboard and paste from AHK clipboard: use for cutting, copying to and pasting from the active clipboard selected before.
- cut and append to AHK clipboard and copy and append to AHK clipboard: use this to append to active clipboard. You can append only text information (it doesn't work for copying files or pictures. In case you want E.G. to copy the files from different locations use more clipboards and multipaste, which is described below)
- multipaste AHK clipboards: After activation the script expects the names of clipboards for pasting. Enter these names without spaces and press enter. The script will try pasting the contents of the selected clipboards. It's trying to be smart. E. G. during copying multyple files for example in Windows Explorer or Free Commander it wayts after the first clipboard is pasted and after that it pastes the second one. Do not switch between applications (stay in the window, where the multypasting started) during the multipaste operation. This function tryes to emulate copy queue similar to the one provided by Total Commander, but it is not very successful. It is not robust and it doesn't know, how to recover from errors. But during flawless copying (E. G. copying music to mp3 player from different places) it's sufficient.
- winclipboard->activeclipboard and winclipboard<-activeclipboard: These functions are used for copying content from windows clipboard to the active clipboard and vice versa. This maybe useful in applications, where it is not possible to copy straight into the active clipboard for some reason.
- Append linebreak to active clipboard: use to append a linebreak to the end of active AHK clipboard.
- Flush active clipboard: used to empty the active ahk clipboard.
- Windows clipboard tricky pasting: It works similar to normal paste function, but it can paste a ful filepath into standard edit field. For example open the windows explorer, navigate to some file or folder and by pressing ctrl+c copy it into clipboard. Now open the notepad / word/... and use the tricky pasting function. A full path of the copyed file will be appended to the edit field. The clipboard can contain, of course, multyple files or folders.
- run windows clipboard: The content of clipboard will be executed via run command. I. E. it will be executed in the same way as if you copied it into the Windows run dialog.
This submenu contains functions for the window manipulation.
- track current window: After activation the script remembers currently opened window and notifyes you, when it's closed. It's useful when you want to monitor E.G. a file copy dialog. Script will beep when the tracked window disappears when you E.G. read the text in another window while copying as well.
- hide active: After activation an active window will be hidden. this window will not be visible on the taskbar. If you mistakenly hide the desktop window, use the "undo hiding" function (it works only for the last hidden window).
- bookmark window: Allows you to assign one character long name to the active window (a-z0-9). You can activate this "bookmarked" window by selecting the activate bookmarked window function. Entering a name for the window works for both functions in the same way as entering the names of clipboards.
This submenu contains items for searching titles of the currently existing windows.
- search in titles: It allows you to search in titles of the opened windows. It supports regular expressions. When you start the search string with * sign, the script will show all the found windows with buttons for the basic window management. For example: activate this function and type *notepad into the edit field. The results list will show all running notepad windows. If you don't use a * sign at the beginning, script will activate the first found window which best fits your search term. For example type thunderbird into the edit field and script will activate the first window, which contains the word thunderbird in the title. The hidden windows are also searched. When you type only the * sign into the edit field, all currently existing windows will be listed.
- Search by letter: activates a specific single-letter window searching. It works in the similar way as launching the applications using the appchooser function. Search string for a given application can be defined in the appchooser configuration file for each application. For more details on the appchooser usage, see the examples below.
Apart of the items described above, the submenu contains defined searches along with the letters for their execution. The letters activating the searches are the same as in the appchooser. All the search definitions are loaded upon launching the script, not just after launching the application that the search defines. This allows to utilize the defined shortcuts even in the case that the application was not launched using the appchooser function.
The Shortcuts script adds a functionality allowing to quickly run portable applications. The next paragraphs describe in detail it's possible use cases and configuration.
Menu contains the following items:
- Start chooser...: this pops up the app chooser dialog containing tree with the list of applications, an edit field for specifying additional parameters when appropriate and a radio button allowing to pass the content of clipboard to selected program as a parameter. More info below.
- Run by letter: allows to launch the apps with the user defined letter.
- run multiple apps by letter: use this to run more apps without a requirement to invoke function run by letter before each application. This can be usefull e.g. in situation, if you have a shortcut to increase the volume of focused application (nircmd changeappvolume focused 0.xx).
- Titles of the applications with a user defined letter, where the letter is shown right before the name of the application as a part of the item name.
Simple use case
Perhaps the best way to clarify the usage of app chooser would be through the example:
- Create the directory called portable on any drive. Copy the script (preferably it's compiled version) to the created directory and always run it from there.
- In the portable directory, make a firefox subdirectory and copy the portable version of Firefox there.
- In the firefox directory, create a file appchooser.ini and write the following three lines into it:
- search=mozilla firefox
After launching the start chooser function the list of subdirectories of the portable directory containing the appchooser.ini file appears (note that we have specified the path to the program firefox.exe relatively to the script location as a run key in the appchooser.ini file). Choose one of the subdirs from the list and press OK (Enter). After activating one of the items, the content of the appchooser.ini file is used to launch the desired program.
The dialog for launching the applications
The dialog for launching the applications can be run via the "Start chooser..." function in the applications chooser menu. It allows to launch the portable applications with the correctly defined run parameters. The description of each element of the dialog follows:
The applications tree
The applications tree contains a tree hierarchy of directories and subdirectories of the directory from which the script was run and that contain the appchooser.ini file. An app can be run by pressing enter on the selected application.
App chooser searches the directories recursively and dives into all the subdirs of the directory containing the appchooser.ini file. It means that you can organize the apps into an well-arranged folder structure. The only requirement for showing the directory in the chooser is the existence of the (although empty) appchooser.ini file. Configuration files for running the applications can be as well separated from the applications alone. So it is possible to create a directory (E.G. !start) containing an empty appchooser.ini file and subdirs containing either empty ini files or files defining launching of the selected applications. Let's clarify it with the example. The following is a tree of folders and files modelled by nested lists.
- !start - directory containing the "shortcuts" to applications
- audacity - contains the appchooser.ini for running Audacity
- appchooser.ini - can be empty
- firefox - contains the appchooser.ini for running Firefox
- thunderbird - contains the appchooser.ini for running Thunderbird
- appchooser.ini - can be empty
- CCleaner - contains the appchooser.ini for running CCleaner
- recuva - contains the appchooser for running the Recuva utility
- appchooser.ini - can be empty
- appchooser.ini that can be empty. It's here only to show the directory in the chooser's tree
- audacity - portable Audacity without appchooser.ini
- CCleaner - portable CCleaner without appchooser.ini
- firefox - contains portable Firefox and appchooser.ini that determines how to launch it
- recuva - portable Recuva without appchooser.ini
- thunderbird - does contain portable Thunderbird but no appchooser.ini
If you run shortcuts within the structure shown above, the highest level will display two items (!start and firefox) because only these two folders contain the appchooser.ini file. The !start item will be expandable and will contain the editors, internet and system items that hold the shortcuts to given applications. Note that Firefox can be run from two places. Also remember that if the same Firefox is to be run from two places with the same parameters, both the appchooser.ini files for launching firefox have the same value of the run key because paths in the run key are always relative to the location of the shortcuts script, not to the location of the given ini file.
Command line parameters
The dialog with the list of applications contains also an edit field into which you can type the parameters for a command. If you have for example programs that have to be run from the command line, you can create the special directory for such programs in a following way:
- in the portable directory create the subdirectory where you copy applications that have to be launched from the command line (let's call it e.g. command_line)
- put the file appchooser.ini to this subfolder with the following content:
you can now launch the application by finding the item command_line in the app chooser list and typing "ssh.exe firstname.lastname@example.org " without quotes into the edit field.
A 3-state radio button in the Start chooser dialog allows to determine whether the content of clipboard can be used as a parameter. Setting it to one of the positive values however does not guarantee that the content will be processed. For the clipboard to be processed it is necessarry to specify the correct place and format of the content passing. Clipboard content can be inserted as part of the run key in the ini file but also into the edit field for parameters. More info can be found in the section dealing with the ini file.
The radio button can be set to the following states:
- clipboard processing depends on configuration: in this state the content of the clipboard is used only when appchooser.ini of the selected application permits it. More info can be found in the "appchooser.ini" section of this document.
- Pass clipboard as a parameter: uses clipboard as a parameter but only when the usage is defined either in the ini file or in the edit field for parameters.
- Do not process clipboard: in this state the clipboard is not processed at all.
Upon activating the app chooser dialog the tree with the shortcuts to programs is expanded. It is therefore possible to type one or more letters to quickly jump to an app starting with the typed letters. In some situations this expanded tree can get confusing. The "collapse all" button (accessible also through alt+c shortcut) can be used to collapse the tree in such situations.
edit ini file
This button automatically opens the ini file belonging to the currently selected item in the tree. It can be used for quick editing of the given ini file.
The file is in the standard ini format and contains the only section entitled run.
The following paragraphs describe the keys that can be used within the run section:
Determines what executable application to launch and with what parameters. If the path to the executable is relative, the application is expected to be found relatively to the location from which the shortcuts script was launched.
The parameters can contain standard program parameters but can reference the clipboard content as well (see section "using the clipboard content as a parameter").
The key letter determines a letter to use for quickly launching the application through the "run by letter" item found in the applications chooser menu (in the above example we assigned the letter f to firefox, so activate the "run by letter" function and press f to launch it). The value of the "letter" key is case insensitive, however when launching the applications through "run by letter" the case matters:
- the lowercase letter directly launches the application
- the uppercase letter causes the application to get selected in the chooser's tree while the script is waiting for pressing the OK button. This trick can be used in situations where you want to pass e.g. some parameters to an app commonly run with a shortcut key. In our example after calling the "run by letter" function, it is possible to press a capital F, tab to the edit field for parameters (see below) and type in the address of some internet webpage that will be passed to Firefox as a parameter upon pressing the OK button in the chooser's dialog (that was automagically opened because of the capital F).
The value of the "letter"key is also used if the "search" parameter is defined (see above). In such case the information about the defined letter and the search string is displayed in the "Window titles" submenu. The defined search can be then quickly activated using the "Search by letter" function that can be found in the "Window titles" submenu as well. When pressing the search letter with the shift modifier the search string will be preceded by a * sign, so the search results will be displayed in the Window manager in a way that is known from the "Search in titles"function (from the "Window titles" submenu).
Example using the capital search letter:
- Let's assume we have defined n as a shortcut that searches for the string notepad in the window titles.
- We have opened 10 windows with 3 of them being notepads. Upon activating the n shortcut modified by Shift, the window manager is displayed containing the list of 3 notepads from which we can then choose the right one to activate.
This key determines in what cases to use the clipboard content as a parameter. The value is a sum of one or more of the following values:
- 1: an application was launched from the app chooser dialog
- 2: an application was launched by an user-defined letter (via the letter key)
- 4: an application was launched by an user-defined letter combined with shift (capital letter)
- 8: an application was launched using the open or open by... function
Clipboard processing can therefore be enabled only in some cases. For example if you set the value of clipboardmask for firefox to 4, the clipboard will be processed only when you press the predefined key with shift. If you wanted to pass the clipboard to Firefox by pressing also the lowercase letter, you would adjust the value to 6. The default value of clipboardmask is 0. It means that the clipboard is processed only when the radio button is appropriately adjusted in the app chooser's dialog. As has been already mentioned above, clipboard usage has to be defined either in the ini file or in the edit field for parameters.
Allows to define a quick search for the window title of the application described by an ini file. The string can have a form of a regular expression.
Using the clipboard content as a parameter
The run key in the appchooser.ini file as well as the edit field for parameters can contain variables that will be substituted by a specific content when launching the application. Here is the list of them with a brief description:
- #p#: the variable can be used only in the run key of appchooser.ini. It allows to place the content of the edit field for parameters on a specific position. If the variable is not used in the run key, the parameters typed into the edit field in the app chooser dialog are automatically added to the end. For more info see examples below.
- #c#: the variable can be used as a parameter as well as from the run key and upon launching it will be substituted with the clipboard content. However the clipboard will not be processed in any way, so use this substitution with caution.
- #cf#: The variable will be also substituted with the clipboard content but the script assumes that the clipboard contains files or folders put there by means of the standard cut/copy functions from within any file manager. The clipboard is processed so that every file or folder is enclosed in quotes as a separate parameter.
- #cfs#: The scripts also assumes that the clipboard contains files or folders. The application will be launched separately on every file in sequence.
- #c#, #cf# and #cfs# parameters will be substituted only when the application is to be launched in a way that allows processing the clipboard content as a parameter (clipboardmask in the ini file) or the app will be run from the chooser dialog with the radio button set to "pass clipboard as a parameter". In other cases all three variables will be ignored.
Let's clarify the variables usage with the examples:
Assume we have an app convert.exe that as a first parameter expects -quality followed by a number from 0 to 9 after which it expect a list of mp3 files that are to be lowered in quality according to the first parameter. If we make a directory for the app and type the following into the appchooser.ini file:
run=convert\convert.exe -quality#p# #cf#
we can then run the program on multiple files in the following way:
- mark multiple mp3 files in any file manager and copy them to clipboard(let's say they are called d:\a.mp3 and d:\b.mp3)
- launch the app chooser dialog and select the convert item
- type for example number 5 into the edit field
- after pressing OK, the script runs the convert program in the following format:
convert\convert.exe -quality5 "d:\a.mp3""d:\b.mp3"
Assume we want to simplify the editing of wma files with the freeme2 app. It expects only one parameter for filename. Besides this it recognizes the -v parameter for turning on the detailed logging. Also assume we want the log output to be added to the log.txt file to review the output after conversion in the text editor. We therefore have to run the app from within the command interpreter (in order to be able to redirect the error output to file), so the appchooser.ini file will read like this:
run=cmd /c freeme2\freeme2.exe -v #cfs# 2>>freeme2\log.txt
The freeme2 app wil be run in sequence on every file in the clipboard and it's error output (information on conversion progress) will be added to the bottom of log.txt in the freeme2 directory.
The menu contains various simple functions. Here is a description of some of them:
- open and open by...: see the next subsection
- Clipboard already contains data: upon calling this function copying will not be simulated when calling the functions that use it. These functions will expect that the data to process are already in the clipboard. Copy to clipboard simulation to get the info about selected files is currently used by "Play file under cursor", "open" and "open by..." functions.
- set text marker and go to text marker: functions allow to create a "bookmark" within the standard text component (Notepad, Wordpad, ...) and jump back to it. Markers work only in the standard edit fields, they don't work in MS Word, in the browser window etc. Markers cannot be synchronized when changing the text. So if you create a marker on a 5th line of text and then you insert an empty line between the 2nd and 3rd line, the marker will be "moved". Markers are therefore handy when reading some long text where you have to jump back and then return to the previous position. They can be also used for selection. Function "select to the marker" allows to select the text between current cursor position and the chosen marker.
- Beep till the end of the minute: beeps every second till the end of current minute. I'm using it to sync the clock :)
- eject drive by letter: after activation press the drive letter to eject. Useful for quickly ejecting the USB storage etc. AFter activation, Shortcuts notifies you of successful ejecting using the balloon notifications. "Probably ejected" means success in most cases. Note to those having problems with their CD/DVD burner buttons: the function can be used to eject CD-ROM devices as well.
- Open notes for application: After invocation of this function, Shortcuts will try to open file name_off_process.txt in !shortcutsnotes directory. If the file or directory does not exists, then it will be firstly created. You can use this functionality to organize notes and store them in small files related to applications. E.g. if you are a user of gvim, then you probably sometimes experience the situation, that you remember, that there is a nice shortcut for a particular function which you would like to use, but you don't remember the shortcut. You can use this functionality to manage these shortcuts.
Open and Open by...
These functions are used to automatically launch a portable application depending on the file type of selected file. So they simulate the Windows file association feature.
File associations are defined in the shortcuts.cfg file placed in the same directory as the shortcuts script. shortcuts.cfg has the following format:
- the shortcuts script will process every line that contains at least 2 and no more than 3 entries separated by tab
- all other lines (that do not contain the tab symbol) will be ignored and therefore can be used to store comments. When commenting, I recommend to use some indicating character, such as ;
Entries on the processable lines have the following meaning from left to right:
- Perl-compatible regular expression by which the content of the clipboard is tested. In case the content is an instance of the regular expression, the clipboard is passed as a parameter to the application defined in the next parameter
- path to directory containing the appchooser.ini file for launching portable application to process the clipboard when regular expression used in the previous parameter matches it
- when this parameter is defined, straight before passing the clipboard to the application defined in the second entry, a search and replace function is executed. Expression from the first entry will be replaced by the expression from the third entry. If we want to use an empty string as a third entry, we have to end the line by the tab symbol right after the second entry. It means that when the line ends with the tab symbol, the script assumes that we want to replace the clipboard comtent matched by the regular expression from the first entry with an empty string. Be ware, this replaces all the occurrences of the string. To reference the marked parts of the regular expression in the replace string, we use variables $1..$9 (in Autohotkey we use the $ sign in stead of \ in references).
The search and replace operation is performed using the regexreplace function that is documented here
And finally a site dedicated to perl-compatible regular expressions.
The clipboard content tested against regular expressions can match multiple rules in the shortcuts.cfg file. The "open" function executes the application from first rule of which regular expression matches the clipboard content. The "Open by..." function displays the list of applications of which regular expressions match the clipboard content and therefore enables the user to choose the desired application.
Prior to showing some working examples, let's describe what happens after calling the "open by..." function on one or more selected files:
- after calling the function, the content of the clipboard is backed up and copying to clipboard is simulated. If the process is unsuccessful (because cursor is not on an item that can be copied) the "open by..." routine aborts with the error message. This doesn't apply when the "clipboard already contains data" function is called prior to "open by...".
- then the clipboard content gets tested against all the regular expressions of the rules contained in the first parameter of the shortcuts.cfg file and the list of all matched applications is created.
- After testing against every rule the list of all "usable" programs is displaied to the user.
- User selects and confirms one of the displaied programs.
- If the chosen program has the third entry defined, the search and replace operation is performed on the clipboard content, so the first and third entry from the rule belonging to selected application is used.
- Finally the selected application is executed and the clipboard is used as a parameter according to a definition in the appchooser.ini file for the selected app. Besides defining of the clipboard usage (through at least one of the #c#, #cf# and #cfs# variables) The appchooser.ini file for the selected application must contain value 8 in the sum of the clipboardmask parameter (to allow the clipboard processing when the application is run through "open" and "open by...".
Let's have a look at some examples:
; open the files with the txt extension with notepad++ residing in the !appchooser\editors with the third parameter empty. The expression matches the clipboard containing exactly one line ending with 4 symbols, namely .txt
; The following rule allows to run the freeme2 app on a clipboard containing one or more wma files.
^[^\n]*\.wma(\R[^\n]*.wma)*$ !appchooser\converters and compilers\freeme2
; Next rule launches Foobar2000 on a list containing files in the wav, mp3, ogg and wma formats. Use the #cf# parameter in the Foobar's appchooser.ini to pass the files as list. They will be put into the default playlist.
; The following rule cuts URL from the selected line and opens it in Firefox. The third parameter references the internet location. This can be used when we have an internet address on the line surounded by text. Selecting the whole line is faster than selecting only the URL. Cutting of the address is performed by the rule. Regular expression describing the URL is simplified for better readability.
^.*(http://[^ ]+).*$ !appchooser\internet\firefox $1
; Finally let's define a rule that cuts IP address from the line and passes it to ip2location.com site. The question mark after star is a PerlRE way to disable the greediness of the iteration.
^.*?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*$ !appchooser\internet\firefox http://www.ip2location.com/$1
Command line parameters
The shortcuts.exe script recognizes the following command line parameters:
- -nobeep: deactivates beeping through the PC speaker. If set, the only event when the script emits the sound, is the volume controlling.
- -visualbeep: displays a short description in the form of a help balloon when beeping. The parameter can be combined with the previous one.
A compiled version of the script, does not require Autohotkey to be installed. Download, copy it to the desired directory and run.
the script source code can be launched as well but requires the Autohotkey interpreter to be installed.
windows.zip archive contains one directory that demonstrates using the Shortcuts script to run the Windows applications as well as launching some useful control panel applets in Windows 7. Extract to directory from which you launch shortcuts and try the appchooser.
2015-05-02: Shortcuts update:
- Added functions for quickly ejecting the USB storage / CD-ROM. See the Miscellaneous menu.
- added a button to quickly edit an ini file in the appchooser dialog. See the chapter on Appchooser.
- Window title searching moved to a new submenu called Window titles
- added ability to define shortcuts for quick searching the window titles. More info in the chapters on the Window titles menu and on the ini file format.
- Added "open notes for application" functionality. See miscellaneous menu for more information.
- Added a function run multiple apps by letter which gives you a possibility to run more functions without the need to press run by letter shortcut before each application. More information: miscellaneous menu.
- removed all functionality dedicated to fiddling with volume. If you used volume handling functionality, then see run multiple apps by letter function documentation for some inspiration.
2011-08-07: Shortcuts update:
- Added the open, open by... and clipboard already contains data functions. See the miscellaneous menu and its documentation.
2011-06-19: Shortcuts update
- The list view in the app chooser dialog replaced with a tree component. This allows to organize the applications into "folders". The tree is automatically expanded to be able to search within it.
- The possibility to configure the clipboard as a parameter. This can be forced in appchooser.ini for the selected application or set using the app chooser dialog
- Change in the app chooser menu: the apps with the defined shortcuts are displayed as shortcut:path_to_application
- The AHK clipboards work with Windows 7
2010-12-29: Shortcuts update
- The "-visualbeep" command line parameter replaces the PC speaker beeping when needed. More info in the command line parameters section
- App chooser can pass the clipboard as a parameter. The clipboard can be passed unprocessed, as a sequence of files or the app can be run in sequence on each file
- added the append linebreak to active clipboard and flush active clipboard functions
- the PC speaker beeping can be disabled by a command line parameter (-nobeep)
- Modified the applications launching in the app chooser (invoke.txt renamed to appchooser.ini that is now in the standard ini format), possibility to define shortcuts for the applications, more info on the shortcuts page
- the app chooser menu is generated automatically upon launching the script, besides the item for running the chooser and launching the application with a defined shortcut (added in this version), it contains all the applications with a defined shortcut
- All shortcuts in the format alt+win+something were changed so that they do not conflict with other programs (window hiding: apps+e, window title search: apps+w, beep till the end of the minute: apps+=, window monitoring: apps+-)
- The shortcut for quitting the script was removed (it can be quit through the context menu)
2010-07-11: Shortcuts update
- removed options to mark beginning and end of the block, replaced with the bookmarks in the standard edit field. The possibility to select between the cursor and the marker. The marker positions are not retained when editing the text
- Copying the windows content to active one and vice versa (Shift gestures)
- A gesture for bookmarking the current window and activation of the bookmarked window (ctrl+apps gestures)
- The problem where the @ sign couldn't be typed using an SK keyboard layout solved (changed the shortcut keys, see the context menu)
- Updated the description on the web page