Paste Clipboard History Item by Number from Clipboard Manager Window?

I'm a longtime BTT user but only just now discovered there's a clipboard manager! (It pays to read the release notes :sweat_smile:)

I've been using Clipy and a feature it has that I really like is a clipboard history list ordered by number, and the ability to paste the item in the list by just typing the number.

For example to paste the second item from the Clipy clipboard manager I would hit the following key commands:

  • [Keyboard shortcut to display clipboard history list]
  • 2

I was trying to replicate the behavior in BTT. My approach was to use a conditional activation group, but I couldn't figure out how to determine if the Clipboard Manager is activated for my activation group.

Would there be any way to set up this behavior with the BTT clipboard manager or would this be more appropriate as a feature request?

Thanks!

3 Likes

Really interested by this usecase. Did you make it?

I never made any further progress, unfortunately.

Alfred's clipboard manager also has this.

I haven't tested this, but it should work with the help of a floating menu that opens at the same time next to the Clipboard Manager. So you could define that for example "3" pastes the third clipboard (if the menu is visible) and at the same time get a visual numbering of the clipboards.

I've just been trying to do exactly this - but I'm trying to figure out if I can make each context menu item display the content that's actually in that position on the clipboard, have you any ideas? I'm supposing I would have to use some sort of variable (and when it's an image it might say "image" or something)?

Essentially, I'm trying to replicate the behaviour of an old app I have on Windows called shapeshifter, with ctrl+c and ctrl+v behaviour when you hold ctrl+v it opens up a popup, you can select which one you want to paste, and then letting go of ctrl+v will paste the one you selected.

I think you could get close to this by adding a key sequence that triggers on cmd+up and checks whether the clipboard manager window is active. If so it triggers the enter key to paste the selected item.

[
  {
    "BTTLastUpdatedAt" : 1699013874.81371,
    "BTTTriggerType" : 624,
    "BTTIsPureAction" : true,
    "BTTTriggerClass" : "BTTTriggerTypeKeySequence",
    "BTTPredefinedActionType" : 366,
    "BTTPredefinedActionName" : "Empty Placeholder",
    "BTTUUID" : "78C96296-CF84-4F3F-8652-F319F2AB6EB9",
    "BTTEnabled" : 1,
    "BTTEnabled2" : 1,
    "BTTAdditionalActions" : [
      {
        "BTTLastUpdatedAt" : 1699013869.8637891,
        "BTTTriggerType" : -1,
        "BTTTriggerParentUUID" : "78C96296-CF84-4F3F-8652-F319F2AB6EB9",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeKeySequence",
        "BTTPredefinedActionType" : 330,
        "BTTPredefinedActionName" : "If Condition",
        "BTTIfConditionFormat" : "BTTClipboardManagerActive == 1",
        "BTTIfConditionData" : "YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGvEBYLDBMYICorLTQ4PT5BRUlOT1JaXmJkVSRudWxs0w0ODxAREl8QF05TQ29tcG91bmRQcmVkaWNhdGVUeXBlXxAPTlNTdWJwcmVkaWNhdGVzViRjbGFzcxABgAKAFdIUDxUXWk5TLm9iamVjdHOhFoADgBTUDxkaGxwdHh9fEBFOU1JpZ2h0RXhwcmVzc2lvbl8QEE5TTGVmdEV4cHJlc3Npb25fEBNOU1ByZWRpY2F0ZU9wZXJhdG9ygBOADoAEgBHVISIjJA8lJicoKVlOU09wZXJhbmReTlNTZWxlY3Rvck5hbWVfEBBOU0V4cHJlc3Npb25UeXBlW05TQXJndW1lbnRzgAaABRADgAiADVx2YWx1ZUZvcktleTrSIw8QLIAH0i4vMDFaJGNsYXNzbmFtZVgkY2xhc3Nlc18QEE5TU2VsZkV4cHJlc3Npb26jMDIzXE5TRXhwcmVzc2lvblhOU09iamVjdNIUDzU3oTaACYAM0w8jOTo7PFlOU0tleVBhdGiACxAKgApfEBlCVFRDbGlwYm9hcmRNYW5hZ2VyQWN0aXZl0i4vP0BfEBxOU0tleVBhdGhTcGVjaWZpZXJFeHByZXNzaW9uoz8yM9IuL0JDXk5TTXV0YWJsZUFycmF5o0JEM1dOU0FycmF50i4vRkdfEBNOU0tleVBhdGhFeHByZXNzaW9upEZIMjNfEBROU0Z1bmN0aW9uRXhwcmVzc2lvbtNKIw9LTE1fEA9OU0NvbnN0YW50VmFsdWWADxAAgBAjP_AAAAAAAADSLi9QUV8QGU5TQ29uc3RhbnRWYWx1ZUV4cHJlc3Npb26jUDIz1Q9TVFVWV0xYTFlaTlNNb2RpZmllclhOU05lZ2F0ZVlOU09wdGlvbnNeTlNPcGVyYXRvclR5cGWAEggQBNIuL1tcXxAbTlNFcXVhbGl0eVByZWRpY2F0ZU9wZXJhdG9yo1tdM18QE05TUHJlZGljYXRlT3BlcmF0b3LSLi9fYF8QFU5TQ29tcGFyaXNvblByZWRpY2F0ZaNfYTNbTlNQcmVkaWNhdGXSLi9EY6JEM9IuL2VmXxATTlNDb21wb3VuZFByZWRpY2F0ZaNlYTMACAARABoAJAApADIANwBJAEwAUQBTAGwAcgB5AJMApQCsAK4AsACyALcAwgDEAMYAyADRAOUA+AEOARABEgEUARYBIQErAToBTQFZAVsBXQFfAWEBYwFwAXUBdwF8AYcBkAGjAacBtAG9AcIBxAHGAcgBzwHZAdsB3QHfAfsCAAIfAiMCKAI3AjsCQwJIAl4CYwJ6AoECkwKVApcCmQKiAqcCwwLHAtIC3QLmAvAC_wMBAwIDBAMJAycDKwNBA0YDXgNiA24DcwN2A3sDkQAAAAAAAAIBAAAAAAAAAGcAAAAAAAAAAAAAAAAAAAOV",
        "BTTUUID" : "37621190-977F-4460-AD44-664A9B9A3C68",
        "BTTEnabled" : 1,
        "BTTEnabled2" : 1
      },
      {
        "BTTLastUpdatedAt" : 1699013869.863781,
        "BTTTriggerType" : -1,
        "BTTTriggerParentUUID" : "78C96296-CF84-4F3F-8652-F319F2AB6EB9",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeKeySequence",
        "BTTLayoutIndependentActionChar" : "RETURN",
        "BTTAutoAdaptActionToKeyboardLayout" : true,
        "BTTShortcutToSend" : "36",
        "BTTUUID" : "46F9702E-9F47-418A-B717-4A0E7D7309EC",
        "BTTEnabled" : 1,
        "BTTEnabled2" : 1,
        "BTTOrder" : 1
      },
      {
        "BTTLastUpdatedAt" : 1699013869.863795,
        "BTTTriggerType" : -1,
        "BTTTriggerParentUUID" : "78C96296-CF84-4F3F-8652-F319F2AB6EB9",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeKeySequence",
        "BTTPredefinedActionType" : 334,
        "BTTPredefinedActionName" : "END If Condition",
        "BTTUUID" : "0C95A6BB-4270-4AF5-8DB8-558B78F3DAC9",
        "BTTEnabled" : 1,
        "BTTEnabled2" : 1,
        "BTTOrder" : 3
      }
    ],
    "BTTKeySequence" : {
      "BTTPauseBetween" : 0.29999999999999999,
      "BTTKeyCount" : 1,
      "BTTKeySequenceMixedKeys" : [
        {
          "BTTKEYCode" : 54,
          "BTTKEYRequired" : 1,
          "BTTKEYTime" : 720706496
        }
      ],
      "BTTKeySequenceUpKeys" : [
        {
          "BTTKEYCode" : 54,
          "BTTKEYRequired" : 1,
          "BTTKEYTime" : 720706496
        }
      ]
    }
  }
]
1 Like

Firstly, wow, thanks for the very quick response!

I like the idea - although it's still a little less intuitive than I'd prefer if you get me? I'd like it to be a case of either;

  1. hold ctrl+v/cmd+v and when you let go, it pastes the selected thing from clipboard manager
    or
  2. press cmd+v and it opens a context menu, then when you click, it pastes the selected item.

With option 1, I'm aware that if you double click the clipboard item, it pastes it automatically and closes the window, this is the closest functionality I've found yet.
With 2, I'm not sure how to display each context menu item's name with the clipboard content (i.e. is there a global BTT variable such as 'BTTClipboardItem: 1' or something?)

Thanks for your help! Best software product I've bought in a long time.

The 1.) is what I tried to replicate with the above. You would have your standard trigger (e.g. cmd+v) to show the clipboard manager. Then while you keep holding the cmd key you can select the item you want (via arrow up/down). As soon as you release the cmd key, the key sequence is triggered and the selected item is pasted.

Awesome- I'll give it a go, thanks!

Out of curiosity, is there a way to get the clipboard items as variables as mentioned above at all?

no, that's currently not possible. (Probably would be possible to add this, I'll think about it)

That'd be amazing, thank you!

You might want to try the light version with the Notch Bar widget. Eg. Hold down a modifier, you will see a part of the clipboard's content in the menu bar, click to paste.