Hudkit Versions Save

transparent fullscreen on-top click-through WebKit web view, for making cool desktop HUDs

v4.1.0

3 years ago

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 https://github.com/anko/hudkit/issues/11 to use GLib data structures instead of directly handling memory, because programming is hard, and I am bad at it. :clap:

v4.0.0

3 years ago

Breaking changes:

  • --webkit-settings now takes the settings dash-separated (previously: underscore_separated). This puts them in line with what the properties are called in the underlying WebKitSettings 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

3 years ago

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

3 years ago

v2.0.0

3 years ago

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. :rainbow: Go look at it, and read the readme while you're at it.

Happy hacking!

Report bugs!

v1.0.1

3 years ago

v1.0.0

5 years ago

Decided to tag a v1, since this is actually properly usable in a fairly general sense now, with multi-monitor support, and monitor dimensions in JS context.