readme and polishing
preparing to ship, writing docs, recording demos and stuff. there are a couple other things i want to sort out but i might ship in a few days.
preparing to ship, writing docs, recording demos and stuff. there are a couple other things i want to sort out but i might ship in a few days.
just glorious
there isn’t a theme toggle button yet, it just goes off of your system’s theme for now.
now that the colors are roughly standardized across the ui, tweaking the contrast and palette is a much more pleasant experience.
i want squirrel to use whatever theme the system is set to. currently it’s forced light mode but dark mode is something i’d be crucified for not adding.
unfortunately, I in my infinite wisdom didn’t have the foresight to have consistent colors across even the light theme itself. there’s just random #aaa, #666, etc colors everywhere where i went with what looked good. so work needs to be done to standardize the colors with css variables. then just modify the variables for dark theme accordingly.
yes, i’m aware this is standard practice.
Squirrel now loads the history on launch. doing this was easier than i expected, but it’s a very naive way to do it (literally just send all of the history on launch).
we also now have a logo. im no graphic designer by any means so this is the best i could do. shows in the titlebar and when your history is empty. check the project banner for a larger version if you feel like it. i might change the logo in the future, i just wanted an icon.
nothing significant. just docs and comments and cleanup. slowly making progress planning wise into loading the history at launch.
the idea is to use a custom Tauri IPC Channel for incrementally streaming data to the frontend on app start. channels are supposedly faster for this and are meant for continuous messages like this in comparison to events. from the Tauri docs:
Channels are designed to be fast and deliver ordered data. They are used internally for streaming operations such as download progress, child process output and WebSocket messages.
i may implement a lazy loading system if i feel like it.
i have nothing interesting to show so have a squirrel again
i’ve wanted to add this for a long time but it needed a lot of refactoring in the frontend so i put it off for later. it is now later. we have instant search. press / or any of the non shortcut keys to start searching.
frontend logic has had a big refactor making navigation and other operations more predictable and less wonky. it took a bit of battling with the specifics of Svelte’s each loop and bind:this directive but it was worth it. there is still some cleanup that can be done, the code is not idiomatic by a long shot, but im happy we have a very essential feature complete.
we now have buttons on the clipboard entries so you can also use the mouse to perform the basic functions like copy, delete, etc. (pins wip). there have also been a bunch of UI improvements and tweaks in general. deleting feels instant. navigation is fixed (for the most part).
slight optimization in the pasting operation, plus a couple of fixes and doc comments.
as i mentioned before, im in the process of simplifying the UI. i hid the native titlebar and made a custom one. also tweaked the shape of the window to feel more like a clipboard. that is all that’s changed significantly this devlog.
development will probably slow down a little bit in the coming days because i have irl stuff to deal with.
there isnt any significant change in the frontend but there’s a ton of backend refactoring and bugfixes. performance should be slightly better now with large copy/pastes.
anyways, attached image is the tentative color palette i might implement. i have no idea how to do this and which colors to use where or if it would even look good so i might just ditch it in the future. we’ll see.
still have to test on linux and load history on app launch. probably will work on that next.
we now have Ctrl+Shift+V as the shortcut to bring up Squirrel.
(i know it’s used for “Paste as plain text” in some programs and used for “Paste in place” in photoshop but whatever).
once up, you can select items from your history using arrow keys. pressing Return pastes the selected item into your last window. we’re having some issues with permissions but i’ll look into it.
i’m now slowly simplifying the UI to be geared more towards improving user ergonomics and make it something that is not cluttered and easy to use.
apart from this, i’ve cleaned up the code a bit removing stray debug prints and random commented code, it was getting out of hand. will write proper doc comments soon.
that’s pretty much it, stay tuned.
edit: please ignore the VC_UNDEFINED keys in the input overlay in the attached video, it’s Enigo inputs not translating well.
on the topic of UI, i’m getting around to deciding a color palette for the app. i will probably work more on the UI for a bit before switching gears to add more functionality (like image support). if i decide i want to ship early, v0.1 will probably go without image support and just get a lot of polish with text only functionality.
frontend improvements! spent some time battling css for this relatively simple UI but it’s atleast somewhat pleasant to look at. will work on either image support or making it the app run in the background next.
nothing much has changed visually, but we now have a database to store the user’s clipboard actions. plus some refactoring changes and a bunch of minor improvements here and there. i have nothing to show for it except code so instead have an image of a squirrel
init.
figuring out Tauri’s emit/invoke mechanism and capturing clipboard copy events. slow start.
we’ll do the color palette and icon and all the frontend pleasantries at a later date.