Generalized interface for keyboard-based interaction
Launchlet is a simple way to add a name to snippets of code and run it. Inspired by Quicksilver, it functions primarily via mouseless interaction and lets you access your Recipes with a few keyboard strokes. You can also use it to customize websites in the same way as 'userscripts' or 'userstyles'.
The project is a large collection of mostly small modules and functions that are put together using Svelte and Rollup. With the exception of a few 'global' or 'magic' things such as the localization function
OLSKLocalized, most resources used by a module should be in the same folder or referenced by path name.
Routing, rendering markdown content, and serving pages is done via a Node.js server (usually configured in the controller.js files).
npm install --no-save
Start the Rollup build/reload process
npm run svelte-build-watch
Start the node server
It should be accessible at http://localhost:3000.
Testing is generally straight-forward and pleasant but it takes some setup.
Restart the test runner when creating new files so that they will be included (specifically test files, and localization files).
I use the same bash scripts across several projects to watch source files for changes and then run the tests. There is a modified (hopefully more cross-platform) version on gist.
Save the contents of that file as test.sh in the same directory as this file and then
npm test should be able to find it.
Run unit tests
Run UI tests
npm test ui
To filter tests by folder:
ROCO_UI_TESTS_MATCH=launcher npm test ui
If you know how to fix UI tests that fail randomly because of timing/WebSocket/timeout issues please let me know.
The code is released under a Hippocratic License, modified to exclude its use for surveillance capitalism and also to require large for-profit entities to purchase a paid license.
Let's chat on Mastodon.