Inspiration
I have been shipping products to YC companies; attending weekly hackathons; working on cutting edge research on AGI; working 6-12-7 to build something new/ solve a new problem but still I don't know how to use an excel (spreadsheet). I would rather use a .csv file with a python code. I know the pain of working with Ctrl + C a million times.
What it does
Maintains a large set of data copies through keys on the keyboard. That's it!
How we built it
We looked to build a dynamic clipboard on Windows and MacOS without actually depending on it. Utility can be directly downloaded from the terminal or zip file. It can support various sorts of data types. It should always run on the system 24/7 (persistent background service). We use pointer variables if possible orelse we store it temporarily. These locations are either chosen static (the number you allocate) or dynamically (the latest use cases in 123...). Providing addressable memory slots (1-9). Capacity to switch between memory, disk storage and encrypted storage (if needed). Best to develop application over Rust language.
How will we deal with the memory? We use RAM (to keep it quick) and occasionally switch to Local File Storage (for persistence). Why RAM? Extremely fast memory access, zero disk I/O, simple implementation, no serialisation needed, and perfect for temporary data. Why not RAM? Lost data on RAM refresh/ crashing or system sleep/ shut down/ restart (no persistence), memory limit, and not reliable for long term usage. Solution to RAM model? Use local file storage periodically. We get a place to add large files (only if pointers do not work), store when RAM clears out, available cross platform etc. Pushes back to RAM when new new memory is allocated.
Features planned to implement (Static):
- Cmd + Opt + Tab: Navigation, assigns to Cmd + C and can be accesed using Cmd + V
- Cmd + Opt + Shift + Tab: Reverse navigation, assigns to Cmd + C and can be accesed using Cmd + V
- Cmd + Opt + X + 1-9: Cut and store objects
- Cmd + Opt + C + 1-9: Copy and store objects
- Cmd + Opt + V + 1-9: Paste stored objects
- Cmd + Opt + Tab/ Shift-Tab + Esc: Delete data stored
Features planned to implement (Dynamic):
- Cmd + Opt + Tab: Navigation, assigns to Cmd + C and can be accesed using Cmd + V
- Cmd + Opt + Shift + Tab: Reverse navigation, assigns to Cmd + C and can be accesed using Cmd + V
- Cmd + Opt + X: Cut and store objects, placed in a dynamic array.
- Cmd + Opt + C: Copy and store objects, placed in a dynamic array.
- Cmd + Opt + Tab/ Shift-Tab + Esc: Delete data stored
- Cmd + Opt + V: Alternative to using Cmd + V Here the data is stored dynamically with the latest one used at the start (as Cmd + V).
Challenges we ran into
Over-writing/ nullifying keys on MacOS. Figuring out special key purposes. Implementing complex data structures. Understanding crux of OS. Furnishing application into deployable product.
Accomplishments that we're proud of
Cracking implementation despite strong conflicting MacOS architecture.
What we learned
There are many things in this world that start from a vision to build. It need not be to compete with Claude, Gemini, or ChatGPT but just solve a small problem that can bring value to the people around you.
What's next for ClipWallet
Build new keyboard native shortcuts for special applications.
Log in or sign up for Devpost to join the conversation.