Skip to content

Latest commit

 

History

History
133 lines (104 loc) · 5.35 KB

README.md

File metadata and controls

133 lines (104 loc) · 5.35 KB

Multi_Clipboard for AHKv2

Image:Example of Multi_Clipboard GUI

Navigation


What does Multi_Clipboard do?

A script with configurable multi-clipboard support.
It turns any/some/all of the number sets on the keyboard into extra clipboard slots.
You have 32 extra clipboard slots if all number sets are used.
Image:Keyboard Number Sets

The keys are controlled by modifier keys that you set.
Image:Modifier keys

Defaults are: copy_mod is ^ ctrl, show_mod is # ctrl, and paste_mod is ! alt
Example:
Ctrl+numpad5 would copy to slot numpad5
Alt+numpad5 pastes whatever is stored in numpad5
Win+numpad5 shows the contents of numpad5 in a popup GUI

As the main README picture shows, you have the ability to view all clipboard key's contents (or individual ones).

If a clipboard slot is empty, it shows as <EMPTY>.
Image:Gui with empty contents

If a clipboard slot has text in it, it'll show the string.
Image:Gui with string contents

Otherwise the clipboard slots has some binary data and shows <BINARY DATA>.
The size and pointer of the data is included.
Image:Gui with binary contents

Properties

Number Set Properties

  • use_pad := 1 [bool]
    Enables number pad keys (blue) to be used as clipboards.

  • use_bar := 1 [bool]
    Enables the number bar row (red) to be used as clipboards.

  • use_f := 1 [bool]
    Enables the Function keys (green) to be used as clipboards.


Modifier Actions Properties

Modifier actions should be assigned a hotkey modifier symbol.
Modifier keys are expected to be the same as AHK's Hotkey Modifier Symbols
Multiple symbols can be used.
Symbols Indluce: ! Alt, ^ Control, # Win, + Shift, < Left Side Modifier > Right Side Modifier
The left and right side modifiers work. Setting copy to <! left alt and paste to >! right alt works without conflict.

  • copy_mod := '^' [string]
    Modifier that copies to a clipboard key

  • paste_mod := '!' [string]
    Modifier that pastes from a clipboard key

  • show_mod := '#' [string]
    Modifier that shows contents of a clipboard key.


'Show All Clipboards' Hotkey

  • all_hotkey := '^NumpadEnter' [string]
    Shows the contents of all enabled clipboards. (Will not show clipboard contents that exceed 64000 total chars)
    This is the only full hotkey you define and can be any modifer+hotkey combo.

Optional Properties

  • enable [bool]
    true -> Enables all hotkeys (does not override disable_list property)
    false -> Disables all hotkeys

  • send_hotkey [bool]
    true -> Native keystroke is included with the action remap
    false -> Native keystroke is replaced by the action remap

  • quick_view [bool]
    true -> key down shows pop GUI and closes on key release
    false -> Key press pops up GUI and it stays up until closed

  • hide_empty [bool]
    true -> Empty clipboards are omitted from display when shown
    false -> Empty clipboards show with key headers and as

  • hide_binary [bool]
    true -> Binary data clipboards are omitted from display when shown
    false -> Binary data clipboards show with key headers and as <BINARY_DATA>

  • show_max_char [num]
    Max number of characters to show from each clipboard string
    0 disables max and uses the full string

  • disable_list [arr]
    An array of strings containing WinTitles
    Multi_Clipboard will be disabled in any of the provided WinTitles
    WinTitle Docs: https://www.autohotkey.com/docs/v2/misc/WinTitle.htm


METHODS

toggle() Toggles the enable property on/off
Return New enable state after the toggle


Why remake it?

It initially started out as a response to a post on the AHK subreddit.
I revisited my old "multiple clipboard" script I wrote years ago (wow, I was really new to AHK when I wrote that!)
I decided to rewrite a small v2 mockup to share with the user. Image of this script in its infancy.
However, I started getting into it and I kept modifying and adding stuff I never intended to include.

Not only that, but I realized I was using quite a few things from AHK's library so I decided make it a purpose to comment each line in hopes anyone reading this will be able to learn from it.
The code covers a LOT of different components.
Creating guis. Adding controls and events.
Dynamically creating hotkeys.
String parsing.
Object manipulation.
Nested objects.
Adding properties that can adjust the script on the fly/gives the user control over parts of the script.
Class structuring and avoidance of global space coding and variables.
Not to mention all the different fucntions calls and object types used.
I just feel like it has a ton of different components to learn about.