Skip to content

Albro3459/ClipboardHistory

Repository files navigation

ClipboardHistory, a Mac clipboard history manager inspired by the Windows version

Demo Video

Installation Guide:

  • the download link is under the Releases tab on GitHub or Google Drive link to try it out!

  • Installation Guide:
    • this application is set up to only work with MacOS 14.4 or 15.5

    • download the zip from the Releases tab on GitHub

    • unzip it

    • move it to the applications folder

    • open it and you will get a pop up saying Apple can't open it because its from an unidentified developer and it can't be scanned for viruses

      warning screen shot
    • click 'ok'

    • open settings > privacy & security, then scroll down to security

      security
    • click 'open anyway'

    • for universal paste without formatting (cmd + shift + v):

      • if you don't want this on you can turn it off in the app's settings under clipboard

      • when you try to paste with (cmd + shift + v):

      accessibility warning
      • click 'open system settings'

      • then in settings > privacy & security > accessibility, flip the switch next to the clipboard history app

      accessibility toggle
      • you can also click the plus and add the app manually

      • i know, its a lil scary because it says 'control your computer'. its just because it needs to listen to (cmd + shift + v) to paste without formatting.

        • again, you can turn this off in the settings
  • !! **IMPORTANT** Instructions if you want to build the project yourself:
    • you will need XCode, I was originally on Version 15.3, but now I am on 16.4

    • !! IMPORTANT if you clone the repo to run it, it is in sandbox mode, so some things will break.

      • to disable the sandbox, you can go to the ClipboardHistory.xcodeproj > Target: ClipboardHistory > Build Settings then search for entitlements and change the debug one to the release one.
      • instead, the downloads from the Releases tab and Google Drive are NOT sandboxed, so everything will work
    • !! IMPORTANT before you run anything, in XCode, you have to run the following every time. you also have to run after switching branches because the project is dependent on the KeyboardShortcuts package:

      • Go to File > Packages > click Reset Package Caches
      • Go to File > Packages > click Resolve Package Versions
        • every time you switch branches, you MUST do this again. the project is dependent on the KeyboardShortcuts package

A summary of why I built this app and what I've learned:

  • Summary:         As a lifelong Mac user, I never quite realized the benefits of a clipboard manager. That was until my summer internship in 2023, where I heavily used a Windows computer during development and grew to love the built in clipboard manager (WinKey + V). When I transitioned back to my Mac after the summer, I quickly realized my dependence on a clipboard manager and began searching for alternatives on Mac. I researched a few options, but they weren't exactly what I was looking for. I began to plan to build my own, but I lacked any experience with Mac software development.

            After starting with a Bash script and a Python UI that was enough for copying text, I realized that I wanted to include screenshots, files, and keyboard shortcuts to fully implement a product. My research led me to Swift, where I could access Apple's APIs and integrate my desired features. I spent my time during the summer, when I wasn't working at my internship, learning Swift and developing a prototype. I asked my friends for ideas about features and designs and eventually it all came together (not without a lot of mistakes). I eventually presented to my class a few weeks ago to get my first few users.

            This experience taught me so much about MacOS, Swift, state, and application development, as well as showing me how much I have yet to learn. I was never formally taught best practices for how to manage state and implement views, so I am well aware of my spaghetti code. However, this led to me developing my intuition and problem solving abilities, when it comes to debugging, which I believe is incredibly important as an engineer.


Info and about the app:

  • Info & About:
    • the app is fully built by me, Alex Brodsky a CS student, in Swift for Mac OS 14.4 or 15.5

    • it opens on the bottom right on all the desktop windows by default

    • once running, it can be opened and closed with (cmd + shift + c), by default

    • click the clipboard status menu bar icon to show the app while running

      • in the app settings > window, you can change the app to pop out of the status bar icon
    • use the mouse or arrow keys to select items

    • a full list of tips for using the app will be below the screenshots

    • it can hold text, images, files and folders. it can even hold groups

    • clipboard history is currently limited to 50 items, you can change this in the settings

    • coming not so soon!:

      • selecting multiple items at once with cmd or shift click

      • maybe pinning items


Tips for using the app:

  • Tips:
    • see the ListOfKeyboardShortcuts.md file for the full list of keyboard shortcuts, or scroll to the bottom

    • these can be changed:

      • cmd + shift + c: open and close window
      • option + r: reset window
      • cmd + shift + v: paste without formatting
      • option + shift + c: paste Capitalized text without formatting
      • option + shift + l: paste All Lowercase without formatting
      • option + shift + u: paste All Uppercase without formatting
    • cmd + shift + c is default for showing/hiding the app

      • also click the menu bar icon to show the app
    • use the mouse or arrow keys to select items

      • scroll arrow button, cmd + up/down arrow, or page up/down to scroll up or down
    • double-click, enter, or copy button to copy an item/group

    • delete button or cmd + delete to delete an item/group

    • expand button or right-arrow when selecting group to expand

    • expand button or left-arrow on group to contract

    • cmd + f to search for text, files, folders, and even OCR by searching for text in images

    • escape takes you out of search or selecting clipboard types, or if not selecting anything, it hides the app

    • option + r resets the window size and shows it

    • cmd + shift + v for paste without formatting anywhere on your computer!

    • the open button next to files and folders opens the file, folder, or app


Here is a list of all the Keyboard Shortcuts:

  • changeable shortcuts:
    - cmd + shift + c: open and close window
    - option + r: reset window
    - cmd + shift + v: paste without formatting
    - option + shift + c: paste Capitalized text without formatting
    - option + shift + l: paste All Lowercase without formatting
    - option + shift + u: paste All Uppercase without formatting
    
  • unchangeable shortcuts:
    - menu options:
      - cmd + ;: Opens the GitHub link
      - cmd + ': Opens the LinkedIn link
      - cmd + ,: Opens the Settings
      - cmd + /: Opens the list of Keyboard Shortcuts
      - cmd + h: hides the app
    
    - cmd + f: open search
    
    - right arrow: expand group
    - left arrow: contract group
    - up arrow: move up
    - down arrow: move down
    
    - cmd + c: copy
    - enter || return: copy
    
    - cmd + shift + p: toggle Pause/Resume copying
    
    - cmd + enter: open item
    
    - cmd + delete: delete selected item
    - cmd + shift + delete: clear all items
    
    - cmd + [: open all groups
    - cmd + ]: close all groups
    
    - cmd + up: scroll to top
    - page up: scroll to top
    
    - cmd + down: scroll to bottom
    - page down: scroll to bottom
    
    - esc: exit search or type selector, or if not selecting anything hide the app
    

Screenshots:

example screen shot example popup window example screen shot with open group example folder search screen shot

About

A Clipboard History Manager for Mac (inspired by the Windows version)

Resources

License

Stars

Watchers

Forks