Releases: anko/hudkit
Releases · anko/hudkit
v4.1.0: Fix crashes and hangs, allow big API responses
No breaking changes.
Features:
- The JS API can now handle data of arbitrary size. Just in case you have 500 monitors or something.
Fixes:
- Patched many potential sources of crashes or memory corruption. I got inspired by #11 to use GLib data structures instead of directly handling memory, because programming is hard, and I am bad at it. 👏
v4.0.0: Composited-changed event & better settings
Breaking changes:
--webkit-settings
now takes the settingsdash-separated
(previously:underscore_separated
). This puts them in line with what the properties are called in the underlyingWebKitSettings
object, which documentation is linked from the readme. You can see the available settings with--webkit-settings help
.
Features:
- Your JS can now listen to a
'composited-changed'
event. It is raised when the ability of your desktop to render transparency changes. You can use it to decide what to do when you accidentally close your compositor; a good idea might be just to close the window. - Related to the above, calling
window.close()
now closes the overlay window and exits the hudkit process.
Fixes:
- Better compilation instructions, and dependencies list for Linux Mint. (Thanks to @DrinkFromTheCup for feedback.)
- The settings available via
--webkit-settings
are now read at run-time from your installed WebKit library. Previously, it was a hardcoded list. This is nice because it lets--webkit-settings help
display allowed values and deprecation warnings, and the list of options will stay up-to-date with less effort as upstream WebKit developers add features.
v3.0.0 "JS API Is Now `async`/`await` Compatible But Everything Else Is Literally The Same"
To call asynchronous functions in the JS API, instead of this:
Hudkit.getMonitorLayout((e, monitors) => {
// do stuff with `monitors`
})
you now do this:
const monitors = await Hudkit.getMonitorLayout()
Same for Hudkit.showInspector
and Hudkit.setClickableAreas
. The readme has been updated accordingly.
Until WebKit starts supporting the TC39 top-level await
standard proposal, this means you have to wrap your whole thing in an async function, so if you're getting a SyntaxError
, see my new addition to the FAQ.
That is all. Bumped the major version number just for this, because it is an API break even though nothing particularly substantive has changed.
v2.0.1
v2.0.0 "New World Order"
Your holiness returns, bearing many gifts:
- You can now set which areas of the overlay to make clickable. On demand. From JavaScript. (For ricers, this means you can make your taskbar interactive.)
- The overlay window now resizes when you attach or detach monitors. You can even get notified of this in your page JS, so you can reposition your HUD. Try the
example/
,xrandr
your monitors around, and observe absolute stability in the face of change. - The monitor list now includes the monitor connector's name. So you can properly identify which monitor is which when you disconnect or reconnect them.
- Web Inspector (aka Developer Tools) now works. You can open it from the command line, from JS, or even with
SIGUSR1
if you left your keys in the car. - The readme now talks about security. If you are paranoid about accidentally loading JS from outside
localhost
and revealing your shocking monitor layout to the bad guys, see my notes about Content-Security-Policy. - You can set WebKit initialisation settings on the command line. For nerds with advanced use-cases, who need to disable automatic media playback or something.
- The readme now has an animated SVG rainbow badge that took me 2 hours to figure out how to make. 🌈 Go look at it, and read the readme while you're at it.
Happy hacking!
Report bugs!