{"id":13804818,"url":"https://github.com/hi5/CL3","last_synced_at":"2025-05-13T18:32:50.685Z","repository":{"id":64218601,"uuid":"14818943","full_name":"hi5/CL3","owner":"hi5","description":"Minimal clipboard caching utility inspired by CLCL 📋","archived":false,"fork":false,"pushed_at":"2025-03-16T10:20:27.000Z","size":452,"stargazers_count":95,"open_issues_count":4,"forks_count":18,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-16T11:25:18.543Z","etag":null,"topics":["autohotkey","clipboard","clipboard-history","clipboard-management","clipboard-manager"],"latest_commit_sha":null,"homepage":"https://autohotkey.com/boards/viewtopic.php?f=6\u0026t=814","language":"AutoHotkey","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hi5.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-30T10:11:46.000Z","updated_at":"2025-03-16T10:18:32.000Z","dependencies_parsed_at":"2023-01-15T05:15:54.364Z","dependency_job_id":"f41a3927-fbf8-403e-93b0-2172cc823ede","html_url":"https://github.com/hi5/CL3","commit_stats":{"total_commits":63,"total_committers":3,"mean_commits":21.0,"dds":0.6507936507936508,"last_synced_commit":"66225058d0c832404a22da3579b86c469a3a0bb2"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FCL3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FCL3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FCL3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hi5%2FCL3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hi5","download_url":"https://codeload.github.com/hi5/CL3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254003452,"owners_count":21997889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autohotkey","clipboard","clipboard-history","clipboard-management","clipboard-manager"],"created_at":"2024-08-04T01:00:54.286Z","updated_at":"2025-05-13T18:32:50.660Z","avatar_url":"https://github.com/hi5.png","language":"AutoHotkey","readme":"# CL3 \u003csup\u003ev1.112\u003c/sup\u003e - Clipboard caching utility\n\nCL3 started as a lightweight clone of the CLCL clipboard caching utility\nwhich can be found at \u003chttp://www.nakka.com/soft/clcl/index_eng.html\u003e.\nBut some unique [features](#features) have been added making it a more versatile \"text only\" Clipboard manager.\n\nIntended for AutoHotkey Unicode (the 64-bit version of AutoHotkey is automatically Unicode).\n\n💡 Relies on standard copy/paste shortcuts for the applications you are using, so \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ec\u003c/kbd\u003e and \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e, and right click \"copy\" via mouse actions.\nPrograms that rely on other shortcuts to store and restore clipboard contents may not work (e.g. vim).\n\n💬 Forum thread [https://autohotkey.com/boards/viewtopic.php?f=6\u0026t=814](https://autohotkey.com/boards/viewtopic.php?f=6\u0026t=814)\n\n💡 _The [changelog.md](changelog.md) contains some additional information about certain features._\n\n### Shortcuts\n\n|Key\u003csup\u003e[1](#note1)\u003c/sup\u003e                           |Action  |\n|----------------------------------------------------|--------|\n|\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e         | Open the Clipboard history menu. |\n|\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e       | Paste the current clipboard content as plain text.\u003csup\u003e[2](#note2)\u003c/sup\u003e |\n|\u003ckbd\u003e*Undefined*\u003c/kbd\u003e                              | Paste most recent item added to the clipboard unmodified.\u003csup\u003e[3](#note3)\u003c/sup\u003e |\n|\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eh\u003c/kbd\u003e         | Open the [Search GUI](#search-plugin-v12) and search the clipboard history. (Also delete and edit entries) |\n|\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eF12\u003c/kbd\u003e       | Open the [Slots GUI](#slots-plugin-v12) and define your 10 texts for quick pasting. Quick pasting via \u003ckbd\u003eRCtrl\u003c/kbd\u003e+\u003ckbd\u003e1\u003c/kbd\u003e,  \u003ckbd\u003eRCtrl\u003c/kbd\u003e+\u003ckbd\u003e2\u003c/kbd\u003e to \u003ckbd\u003eRCtrl\u003c/kbd\u003e+\u003ckbd\u003e0\u003c/kbd\u003e. |\n|\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eF11\u003c/kbd\u003e       | Open/close the [ClipChain GUI](#clipchain-v15) - cycle through a predefined clipboard history - see [Wiki](https://github.com/hi5/CL3/wiki/ClipChain) |\n|\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eF10\u003c/kbd\u003e       | Start [FIFO](#fifo-v17) (Reverse paste) plugin - \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eF10\u003c/kbd\u003e stops FIFO.   |\n|\u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e, hold \u003ckbd\u003eLWin\u003c/kbd\u003e  | Repeatedly tap \u003ckbd\u003ev\u003c/kbd\u003e to [cycle through the clipboard](#cycle-through-clipboard-history-v13) history. Release \u003ckbd\u003eLWin\u003c/kbd\u003e to paste. |\n|\u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ec\u003c/kbd\u003e, hold \u003ckbd\u003eLWin\u003c/kbd\u003e  | To cycle forward, repeatedly tap \u003ckbd\u003ec\u003c/kbd\u003e. Release \u003ckbd\u003eLWin\u003c/kbd\u003e to paste. |\n|\u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ef\u003c/kbd\u003e, hold \u003ckbd\u003eLWin\u003c/kbd\u003e  | To cycle through plugins repeatedly tap \u003ckbd\u003ef\u003c/kbd\u003e. Release \u003ckbd\u003eLWin\u003c/kbd\u003e to paste. You can use this in combination with \u003ckbd\u003e#\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e and \u003ckbd\u003e#\u003c/kbd\u003e+\u003ckbd\u003ec\u003c/kbd\u003e |\n|\u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ex\u003c/kbd\u003e                        | Cancel \"cycle\" pasting. (also for plugins \u003ckbd\u003e#\u003c/kbd\u003e+\u003ckbd\u003ef\u003c/kbd\u003e) |\n\n\u003ca name='note1'\u003e\u003c/a\u003e\nNote 1: as of v1.93 you can define these Shortcuts via Settings.ini or use the Tray menu, Settings option.\n\n\u003ca name='note2'\u003e\u003c/a\u003e\nNote 2: \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e pastes the current clipboard item as plain (unformatted)\ntext - this can be useful if you have selected rich / formatted text but don't want to paste that in your\ncurrent application.\n\n\u003ca name='note3'\u003e\u003c/a\u003e\nNote 3: As CL3 might modify the clipboard content when using AutoReplace, the most recently copied\nitem to the clipboard (after \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ec\u003c/kbd\u003e) is also stored unmodified thus preserving\nthe original format (layout, images, etc) - Define a hotkey in the Settings to paste this unmodified Clipboard.  \nSuggestion: \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eCapslock\u003c/kbd\u003e, define as: ^+CAPSLOCK  \nThis may be useful in Word processing or other specific formats if you notice formatting is\nlost or changed upon a regular paste (\u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e).\n\n## About CL3\n\nIt is not meant to compete with the many clipboard caching utilities that are (freely) available,\nbut merely as minimal program focusing on text only.\n\nYou can call the clipboard history menu by its default hotkey \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eAlt\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e\nIf you prefer another hotkey you can change this and the other hotkeys via the Settings menu. Use the\nAutoHotkey syntax - more info about they syntax here \u003chttps://autohotkey.com/docs/Hotkeys.htm#Symbols\u003e\n\n_CL3 gets its name from CLCL CLone = CL3_\n\n### Features\n\n- Captures text only\n- Limited history (18 items+26 items in secondary menu, does remember more entries in XML history file)\n- Search history (v1.2+)\n- 10 Slots with options to save/load several sets (v1.2+)\n- Cycle through the clipboard history - forwards and backwards - with tooltip preview (v1.3+). Cycle through plugins (v1.8+)\n- ClipChain with preview GUI, paste items in predefined order, save/load several sets (v1.5+) [Wiki](https://github.com/hi5/CL3/wiki/ClipChain)\n- Supports FIFO (first in first out) pasting (v1.7) [#3](https://github.com/hi5/CL3/issues/3)\n- Remove (yank) entries from history\n- No duplicate entries in the clipboard history (automatically removed)\n- Templates: simply text files which are read at start up\n- Plugins: AutoHotkey functions (scripts) defined in separate files\n\n## Templates\n\nAny text file placed in the templates\\ directory will be read at start up and\nadded to the Templates sub-menu - press \u003ckbd\u003et\u003c/kbd\u003e to quickly access them\nwhile the menu is active.\n\nFile names act as name of the menu entry and are sorted alphabetically\nbefore being added to the menu. You can influence the order of the menu\nentries by naming your files in the order you wish them to appear.\n\nAs of v1.9+ Templates now support sub-folders. A Sub-folder will be added as a\nsub-menu entry and its text files processed as described above. If a \"favicon.ico\"\nis present in a sub-folder it will be used in the Templates Menu, otherwise it\nwill use the default Template icon (res\\icon-t.ico)  \nAs of v1.100+: Add `settings.ini` to (each) sub-folder with a shortcut key (AutoHotkey syntax) to be able to display the templates in the sub-folder directly to avoid the need to bring up the main menu (allowing for faster access)\n\n```ini\n[settings]\nshortcut=#Numpad8\n```\n\n**Note**: there is one default entry in the Templates menu: \"_0. Open templates folder_\"\nwhich will open the templates folder in Total Commander - if it is running - or \nthe standard file explorer (see the TemplateMenuHandler label)\n\n**Example**\n\nFile name: \"templates\\01_Boiler plate 1.txt\" will be a \"menu entry:\"\nas \"\u0026a. Boiler plate 1\"\n\nIf you add new text files to the templates directory you need to\nreload the script in order for them to appear in the templates sub-menu.\n\n## Plugins\n\nPlugins are AutoHotkey functions you will need to #include in the \nscript in order for them to work. A plugin acts on the current \nclipboard content and changes it before it is being pasted.\n\n**Adding plugins**\n\nAs of v1.6 a new method of adding plugins is recommended, see comments in [plugins.ahk](plugins/plugins.ahk) for instructions\n\nDefault plugins included with CL3 ([v1.0]):\n\n1. Lower Replace Space (convert to lower case, replace any spaces with an underscore)\n2. Lower (convert to lower case)\n3. Upper (convert to upper case)\n4. Title (convert to title case, basic)\n5. see other updates for more\n\n* Copying files by Pasting - if you have copied file paths to the clipboard (^c in file explorer for example) you can copy (paste) these files if you wish. Basic instructions on how to set it up here https://www.autohotkey.com/boards/viewtopic.php?p=314316#p314316\n\n### Search plugin [v1.2+]\n\nAs of v1.2 you can now search the CL3 history, hotkey \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eh\u003c/kbd\u003e\nsimply start typing, press enter will paste the first result or you can use the \u003ckbd\u003eUP\u003c/kbd\u003e \u0026 \u003ckbd\u003eDOWN\u003c/kbd\u003e\nkeys to navigate the result list. See [screenshot](#screenshots).\n\nAs of [v1.6] you delete entries directly via the history search Gui, just press \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eDel\u003c/kbd\u003e on the highlighted entry in the list.\n\nAs of [v1.8] you edit entries directly via the history search Gui, just press \u003ckbd\u003eF4\u003c/kbd\u003e on the highlighted entry in the list to edit.\nAfter editing the entry should stay highlighted so you could paste it directly by pressing enter or the OK button.\n\n### Slots plugin [v1.2+]\n\nPress \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eF12\u003c/kbd\u003e to open the Slots GUI and define your 10 texts\nfor quick pasting. See [screenshot](#screenshots).\n\nTo facilitate quick pasting of predefined texts you can use the \u003ckbd\u003eRCtrl\u003c/kbd\u003e+\u003ckbd\u003e1\u003c/kbd\u003e .. \u003ckbd\u003eRCtrl\u003c/kbd\u003e+\u003ckbd\u003e0\u003c/kbd\u003e\nhotkeys. By default the 10 predefined texts are stored in _slots.xml_ but you can save and load as many slot-files\nas you like via the buttons available when the Slots gui is open. The last set used is always stored in _slots.xml_\n\nSlotsMenu [v1.101+]\n\nTo display the Slots as a menu, define a Hotkey in the Settings, this will also include any `Named` Slots you defined via `ccmdr` (see [docs\\ccmdr.md](docs\\ccmdr.md))\n\n### Dump History plugin [v1.32+]\n\nYou can export the current clipboard history to a plain text file via the Special, Dump History menu option.  \nThe text file will be placed in the CL3 script folder.\n\n### AutoReplace [v1.4+]\n\nYou can use the AutoReplace plugin to modify the text in the clipboard using a find/replace rule before adding\nit to the history. You can use StringReplace or a Regular Expression. Settings are stored in _AutoReplace.xml_\n**Note: very experimental plugin. The plugin interface (GUI) needs to be refined, entire process should be improved.\nA Listview would be more logical and flexible. But for now it does the job, albeit crudely.**\n\nFeedback available via \"Tray Tip\" - see settings.\n\n### ClipChain [v1.5+]\n\nThe CL3 ClipChain plugin allows you to cycle through a predefined clipboard history.  \nWith each paste it advances to the next item in the chain. The item to be pasted next is indicated in the listview with a ```\u003e\u003e```.  \nWhen the last item is reached it moves back to the start. See [Wiki](https://github.com/hi5/CL3/wiki/ClipChain)  \nThe most recently used chain is stored in _clipchain.xml_.\n\n#### ClipChain Hotkey\n\nBy default \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e will paste and proceed to the next item in the chain. \nYou can define another hotkey in the Settings menu. This will allow you to keep \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e\nfor normal copy/paste functionality.\n\n### Compact [v1.6+]\n\nIf you have a lot of entries in the history or one or more very large (kb) entries. CL3 can become\na bit sluggish. You can use the Compact plugin to:\n\n- remove entries over certain size (user specified)\n- keep only the most recent specified number of entries (e.g. 100 -\u003e keep 1..100 most recent, remove all older from history)\n\n### FIFO [v1.7+]\n\n[FIFO](https://github.com/hi5/CL3/issues/3) (first in first out) will allow you to paste entries back in\nthe order in which the entries were added to the clipboard history.\n\nPress \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eF10\u003c/kbd\u003e to bring up the clipboard history menu (sans plugins\nand templates) and select the entry you want FIFO to start with, nothing is pasted yet.  \nYou can **stop** FIFO by:\n\n* Bringing up the regular Clipboard history \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e\n* Press \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eF10\u003c/kbd\u003e (special FIFO shortcut)\n* Press \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eWin\u003c/kbd\u003e+\u003ckbd\u003eF10\u003c/kbd\u003e and choose \"Exit (close menu)\" (or press \u003ckbd\u003eESC\u003c/kbd\u003e)\n\nYou add ```1```, ```2```, ```3```, ```4``` to the clipboard history. The history menu would look like this:\n\n```\na. 4\nb. 3\nc. 2\nd. 1\n```\n\nIf you start FIFO at 'D' pressing \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e four times will paste 1, 2, 3, 4.  \nAfter pasting the last (here fourth) item, FIFO stops.  \nTrayTips will appear at the start and end of a FIFO cycle.\n\n### Sort [v1.94+]\n\nSort via a number of predefined settings or set specific options via small Gui (see \"Set Delimiter and other options\" in Sort menu).  \nSee [Sort](https://www.autohotkey.com/docs/commands/Sort.htm) documentation for explanation.\n\n## Yank (delete) entry\n\nIf you select the yank option in the menu you will be presented with a \nsimple **a** to **r** menu to indicate which of the most recent items you wish to\ndelete. To delete the entire history select \"Clear History\" (v1.111+)\n\n## Cycle through clipboard history [v1.3+]\n\nIf you press \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e, hold \u003ckbd\u003eLWin\u003c/kbd\u003e and repeatedly tap \u003ckbd\u003ev\u003c/kbd\u003e you can cycle through\nbackwards through the clipboard history - a tooltip with the text to paste will be shown, if you release \u003ckbd\u003eLWin\u003c/kbd\u003e\nthe text will be pasted.\n\nTo cycle forwards press \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ec\u003c/kbd\u003e.  \n**Caveat:** if you press \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ec\u003c/kbd\u003e before \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e nothing will be pasted upon release \nof the \u003ckbd\u003eLWin\u003c/kbd\u003e key.\n\nTo cancel pasting press \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ex\u003c/kbd\u003e.\n\nAfter reaching \"Max History\" it will cycle back to the first entry in the history (for a Max History of three: a-\u003eb-\u003ec-\u003ea).\n\nTo apply a plugin (see below), hold \u003ckbd\u003eLWin\u003c/kbd\u003e and press \u003ckbd\u003ef\u003c/kbd\u003e repeatedly to _select_ a plugin.\n\nSee [Wiki](https://github.com/hi5/CL3/wiki/Cycle-history)\n\n## Cycle through plugins [v1.8+]\n\nPress \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ef\u003c/kbd\u003e to cycle through pre-defined plugins, it shows a preview in the tooltip. You can combine\nthis with \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ev\u003c/kbd\u003e and \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ec\u003c/kbd\u003e. To cancel pasting press \u003ckbd\u003eLWin\u003c/kbd\u003e+\u003ckbd\u003ex\u003c/kbd\u003e.\n\nIn settings.ini you can define and set the order of the plugins you cycle through. The plugins have to be of a\nsimilar format to Lower and Upper for example (e.g. just calling a function to alter the current item).\n\nSee [Wiki](https://github.com/hi5/CL3/wiki/CyclePlugins)\n\n## Future plans\n\nNone really, but feel free to fork and extend the script and send a pull request.\n\nSome ideas for further development you may wish to consider:\n\n- ~~Allow the user to search the extensive history~~ _v1.2+_\n- ~~Exclude certain programs~~ _v1.99+_\n- ~~Extending the number of menu entries in the secondary menu (\"more history\")~~ _v1.100+_\n- Include rich text formats\n- Include images - rough guide to add it (very alpha) here https://www.autohotkey.com/boards/viewtopic.php?p=314319#p314319\n- ~~Introduce various paste methods, also for specific programs? \n  for example send each character individually~~ _v1.112+_\n- More (default) plugins:\n\t- Improved title case (various scripts are available which could replace the current basic one)\n\t- Strip HTML\n\t- ~~Find, Replace in clipboard~~ possible via editor\n\t- Reformat text, for example email reply format, wrap text etc\n\t- Plain text and/or Markdown to HTML conversion\n\t- ...\n\nThe [WinClip class](http://www.autohotkey.com/board/topic/74670-class-winclip-direct-clipboard-manipulations/)\nby Deo may be of interest to develop some of these ideas.\n\n# Screenshots\n\n![CL3 Menu](https://raw.github.com/hi5/CL3/master/img/cl3.png)\n\n![CL3 Slots](https://raw.github.com/hi5/CL3/master/img/slots.png)\n\n![CL3 Search](https://raw.github.com/hi5/CL3/master/img/search.png)\n\n![CL3 ClipChain](https://raw.github.com/hi5/CL3/master/img/clipchain.png)\n\nAnimations:\n\n* ClipChain: https://github.com/hi5/CL3/wiki/ClipChain\n* CyclePlugins: https://github.com/hi5/CL3/wiki/CyclePlugins\n\n# Credits\n\n- Icons from Iconic \u003chttps://github.com/somerandomdude/Iconic\u003e\n- [XA Save / Load Arrays to/from XML Functions](https://github.com/hi5/XA)\n- [Class LV_Rows](http://www.autohotkey.com/board/topic/94364-class-lv-rows-copy-cut-paste-and-drag-listviews/) by [Pulover](https://github.com/Pulover/) - as of v1.5 (for ClipChain)\n- [Edit Library](https://autohotkey.com/boards/viewtopic.php?f=6\u0026t=5063) by [jballi](https://autohotkey.com/boards/memberlist.php?mode=viewprofile\u0026u=58) - QEDlg() code also by jballi (for search/edit plugin)\n- API: [ObjRegisterActive()](https://www.autohotkey.com/boards/viewtopic.php?t=6148) by Lexikos \n- API: [JSON/JXON](https://github.com/cocobelgica/AutoHotkey-JSON) by cocobelgica\n- Notes: [GetActiveBrowserURL()](https://www.autohotkey.com/boards/viewtopic.php?t=3702) by Antonio Bueno\n- [WatchFolder()](https://github.com/AHK-just-me/WatchFolder) by just me\n- [OSDTIP_Pop()](https://www.autohotkey.com/boards/viewtopic.php?t=76881#p333577) by SKAN\n- [CRC32()](https://github.com/ahkscript/libcrypt.ahk/blob/master/src/CRC32.ahk) by jNizM\n\n# OCR-TIP\n\nIf you need to \"grab\" text from Images, Screens, Locked PDFs etc you can use one of these nifty AutoHotkey scripts:\n\n1) Vis2 by iseahound\n- Download: https://github.com/iseahound/Vis2 \n- Forum: https://www.autohotkey.com/boards/viewtopic.php?f=6\u0026t=36047 (shows demo animation)\n\nI've added the following code to \"plugins\\myplugins.ahk\" to start Vis2 when I need it:\n\n```autohotkey\n#capslock:: ; winkey-capslock\nRun %A_ScriptDir%\\vis2\\runocr.ahk ; path to vis2 code, see github link above\nIf !stats.visocr ; for statistics if you're interested in how many times you use it, you can omit this\n\tstats.visocr:=0\nstats.visocr++\nreturn\n```\n\n2) Windows 10 OCR tool by malcev, teadrinker, and flyingDman\n\n- Download from the forum https://www.autohotkey.com/boards/viewtopic.php?p=325660#p325660\n\nYou can 'add' it to CL3 as shown above with the Vis2 example Run ...\n\nLook for the line `msgbox % text` and change it to:\n\n```autohotkey\nclipboard:=text\nSleep 100\nExitApp ; to close the script after OCR\n```\n\nAfter the OCR is complete it is added to the clipboard and thus the CL3 clipboard history.\n\n# General TIPs\n\nAs noted above, adding plugins via `plugins\\MyPlugins.ahk` is the recommended method, see comments in [plugins.ahk](plugins/plugins.ahk) for instructions.\n\nApart from plugins, `plugins\\MyPlugins.ahk` is also a useful method to add additional functions and/or hotkeys to CL3 without the risk of losing them when updating.\n(MyPlugins.ahk will never be part of the public CL3 repository)\n\n1. Copy or Cut and Append to clipboard\n\nSome text editors already offer this functionality, but you can make it available everywhere using CL3.  \nAdd the following code for copy and/or cut to `plugins\\MyPlugins.ahk`\n\n```autohotkey\n; copy text and append to clipboard item so a, ab, abc, abcd etc\n^+c::\nOnClipboardChange(\"FuncOnClipboardChange\", 0)\nSend ^c\nSleep, 100\nClipText:=History[1].text . Clipboard ; if you want to use a separator insert it here e.g. \"`n\" or \"|\" \nStrReplace(ClipText, \"`n\", \"`n\", Count)\ncrc:=crc32(ClipText)\nHistory[1,\"text\"]:=ClipText\nHistory[1,\"lines\"]:=Count+1,\nHistory[1,\"crc\"]:=crc\nHistory[1,\"time\"]:=A_Now\nClipboard:=ClipText\nSleep, 100\nClipText:=\"\",Count:=\"\",crc:=\"\"\nOnClipboardChange(\"FuncOnClipboardChange\", 1)\nReturn\n\n; cut text and append to clipboard so a, ab, abc, abcd etc\n^+x::\nOnClipboardChange(\"FuncOnClipboardChange\", 0)\nSend ^x\nSleep, 100\nClipText:=History[1].text . Clipboard ; if you want to use a separator insert it here e.g. \"`n\" or \"|\" \nStrReplace(ClipText, \"`n\", \"`n\", Count)\ncrc:=crc32(ClipText)\nHistory[1,\"text\"]:=ClipText\nHistory[1,\"lines\"]:=Count+1,\nHistory[1,\"crc\"]:=crc\nHistory[1,\"time\"]:=A_Now\nClipboard:=ClipText\nSleep, 100\nClipText:=\"\",Count:=\"\",crc:=\"\"\nOnClipboardChange(\"FuncOnClipboardChange\", 1)\nReturn\n\n```\n\n2. Adding shortcuts for pasting clipboard entries directly\n\n```autohotkey\n; forum post https://www.autohotkey.com/boards/viewtopic.php?f=76\u0026t=90231\u0026p=398527#p398527\n^+1:: ; current clipboard\n^+2:: ; second entry in clipboard history (b. in the menu)\n^+3:: ; third entry in clipboard history (c. in the menu)\n^+4::\n^+5::\n^+6::\n^+7::\n^+8::\n^+9::\n; add more if you wish, note that you need to modify the logic for \"SubStr(A_ThisHotkey,0)\" in that case\nOnClipboardChange(\"FuncOnClipboardChange\", 0)\nClipboard:=History[SubStr(A_ThisHotkey,0)].text\nSleep 200\nPasteIt()\nSleep 200\nClipboard:=History[1].text\nOnClipboardChange(\"FuncOnClipboardChange\", 1)\nReturn\n```\n\n\n# PastePrivateRules.ahk\n\nAdd an optional include file that \"does something\" before it actually pastes.  \nThe file is not present in the repository and a new file has to be created in `cl3\\plugins\\` with the name `PastePrivateRules.ahk`\n\nExamples:\n\n* Pasting file(s) from CL3 history https://www.autohotkey.com/boards/viewtopic.php?p=314316#p314316 using `ClipboardSetFiles()` and `If WinActive()`\n* Append to File name in \"Open/Save as\" dialogs - https://github.com/hi5/CL3/issues/14\n* Paste in putty.exe (as of v1.112 can be care of using PasteShortCuts.ini) - https://github.com/hi5/CL3/issues/27\n\nNote: your `PastePrivateRules.ahk` will never be part of this GitHub repository so anything you add won't be overwritten if you update CL3 in the future. \n\n# PasteShortCuts.ini\n\nNote: a default setup can be found in `res\\PasteShortCuts.ini` (online [here](https://github.com/hi5/CL3/blob/master/res/PasteShortCuts.ini)) - copy the file to the CL3 folder and restart CL3.\n\nTo setup CL3 for programs where you don't want to use the standard Windows shortcut (Ctrl+v) to paste\ncreate or edit `PasteShortCuts.ini` in the CL3 program folder. Details below and in the ini file as well.\n\n```ini\n[SectionName] - Create a section (any name)\nPrograms=       CSV list of program executables\nKey=            Use AHK notation (^=ctrl +=shift !=alt), if KEY is empty or \"[SEND]\" (no quotes)\n                CL3 will use SendRaw to send the clipboard to the application - results may vary\n```\nTerminal programs often prefer \u003ckbd\u003eShift\u003c/kbd\u003e+\u003ckbd\u003eInsert\u003c/kbd\u003e (`+{Ins}`) as Paste shortcut\n\nUsing `PastePrivateRules.ahk` is another option, see examples listed above.\n\n# Experimental\n\n* [HistoryRules](https://github.com/hi5/CL3/blob/master/docs/HistoryRules.md) to allow CL3 to filter clipboard content before adding it to history, allowing or skipping text.\n\n# Changelog\n\nThe changelog is available here: [changelog.md](changelog.md)\n","funding_links":[],"categories":["Scripts"],"sub_categories":["\u003ca name=\"scripts-clipboard\"\u003e\u003c/a\u003eClipboard"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhi5%2FCL3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhi5%2FCL3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhi5%2FCL3/lists"}