unrelenting.technology

Hi! You are viewing the archive of unrelenting.technology. This website is no longer updated, my current one is val.packett.cool. Check it out instead :)

Notes

haha, Phoronix wrote about the stuff I posted on wayland-devel@. So yeah, I’m working on Rust bindings for libweston that would eventually allow me to write the best Wayland compositor ever :)

And fractional HiDPI scaling was pretty easy to add. Wayland apps look awesome. However, X11 apps are blurry now, and bypassing the scaling for Xwayland is not as easy… So I made some changes to my Ports fork to enable Wayland support in more apps. Turns out a lot of complex applications run fine — LibreOffice (!), Inkscape, MyPaint, RawTherapee, Darktable.

The Firefox Wayland support though… is not usable yet :( It looks awesome but EGL isn’t working and, even worse, the screen doesn’t refresh when it needs to — so you’re typing and letters don’t appear until you scroll or some time passes. Hopefully this will be fixed soon.

So there’s no support in pretty much all Wayland compositors for fancy keyboard mapping utilities like xcape because no one wants a keylogging protocol extension. (Even an access-controlled one!! Why.)

Turns out it’s better to just solve this on the evdev level. And I’ve done it in the coolest way possible: with a tiny sandboxed scripting environment. Meet evscript! It runs Dyon scripts in an environment with evdev, uinput, stdout and nothing else. xcape functionality is already provided in the “standard library” :)

Ported a recent version of the Weston compositor to FreeBSD. Using this as my actual desktop for two days now — works fine. I miss window tiling and a good info bar, but this thing, this thing lets you just rotate windows arbitrarily!! :D

So I was reading the OpenBSD Chromebook Pixel post: it did not wake up from suspend without the TPM driver. Hmm.

Disabled TPM on my Thinkpad X240 and FreeBSD RESUMES FROM SUSPEND!!! Wow. I guess I’ll stop using the TPM then (I was using it for SSH keys. And I did unload the tpm kernel module before suspend!)

Finally made some updates to this website! On the surface, slightly refreshed design (single column). Under the hood, the Haskell part is now build with GHC 8.2 and the database is upgraded to Postgres 10.

Also, a new section: KnowledgeBase. It’s kinda like a “personal wiki” thing. Alphabetically sorted list of pages, WikiStyleTitles that are put into URLs without lowercasing, and these pages don’t end up on the front page.

Adventures in printing:

The proprietary blob plugin for HPLIP is ported to FreeBSD by literally saying “this Linux library is actually for FreeBSD” and adding a tiny implementation of a couple glibc functions, amazing! But HPLIP is not necessary for my printer, foo2zjs is an open source driver that supports it.

PostScript is not PostScript, apparently. (Actually my printer wants PDF, it seems — setting generic PDF on the client side when network printing over CUPS worked.)

And if CUPS doesn’t see the printer when using the open source drivers, it IS a permissions issue, make sure to restart devd to activate the rule that’s included with the cups package. (The fact that HPLIP sees the printer is… odd. Was it running HPLIP stuff as root?)

TIL (via ports): ABI Laboratory. This is wonderful. You can just look there and check if an update to e.g. LibreSSL broke ABI compatibility.

Accidental software discovery of the day (via pkg search pie, looking for GNOME Pie actually): orpie, an excellent full-screen console RPN calculator written in OCaml.

Wow, Opera 48 converts units, time zones and currencies on text selection. That’s really awesome.

Some WebExtensions attempt similar things but as there’s no native select popover thingy in Firefox, they either add a context menu item (okay) or just edit text inline (please don’t). At least they don’t inject custom UI into the page.

The recent standardization of Encrypted Media Extensions by the W3C isn’t actually a big deal. EME was already used in production with multiple independent implementations (which is a W3C requirement). Before that, Flash and Silverlight provided similar things. Worse, some video services used (and still use) custom NPAPI plugins to protect their content.

And yet, a lot of people on several link discussion websites posted ridiculous slippery slope doomsday scenarios. Like, now, NOW the Web will be no longer open and free, full of DRM for everything, even news articles will be DRM’d, and proprietary software will run in the browsers instead of “open” scripts (that you can View Source), and someone even seriously suggested that browsers might stop playing non-DRM content.

How come this never happened when Flash was extremely popular and included DRM capabilities? ;-) It’s as if no one except for movie studios actually wants to use DRM.

Also, there’s this innovative technique for proprietary software on the web. Actually it existed since forever and it’s called… doing the interesting things on the server side.

Recent discovery: forwarding serial ports over the network is pretty easy. Useful for embedded development!

For example, if you’re working with an ESP8266 SDK in a Linux VM, but the device is attached to a FreeBSD machine: run something like doas python2 ~/rfc2217_server.py -p 8266 /dev/cuaU0 on the host and use something like rfc2217://192.168.1.2:8266 as the --port argument to esptool.

(Yeah, use that script. Other RFC2217 implementations don’t seem to support binary mode for some reason.)