My latest on-the-side project has been building an extension for Google’s recently-released web app, Keep. It’s been a fun ride, but without an API, I don’t think there’s anything more I can do.
Google recently announced Keep, a note-taking app available both on the Play Store and online. If you do an extension search on the Chrome Web Store for “google” you’ll find a whole bunch of official extensions for various Google services. But a search for “google keep” turns up nothing official. (Well, there’s an RSS thing, but it has nothing to do with Keep.)
Sure, you can just bookmark the Keep URL, but I wanted something more. The Chrome API allows for creating windows in three modes: a normal tabbed window, a popup, or a panel. (Unless you’re running a Canary or developer build, you actually have to manually enable panels in chrome://flags.) The panel is nice, because it sits in the corner, always on top. Handy for quick copy-paste or when you need to keep the focus in the main window while still looking in a second window.
So I built the Google Keep Extension. I wasn’t the only person to do so; but the one thing that no other extension does is open in a panel, and that’s my preference. But someone else might prefer it to open in a tab, so I eventually added the ability to open in one of all three options. (It uses Chrome’s storage.local to save the settings.) I also added the option to define with width and height of the window (in popup or panel mode – even though panel mode doesn’t always honor the values… grr).
Panel mode needs some serious work. Chrome’s API can’t do several things with it, not the least of which is inspect the tab ID of a panel window. This prevents me from getting the “create new note” context menu functionality to work properly. In tabbed or popup mode, it works. It’s a horrible, horrible hack… but it works.