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 :)

Tag #rust

Happy new year! Since I haven’t been posted in a while, here’s what I’ve been up to lately:

  • adopted Wezterm as my terminal emulator, contributing a bunch of (mostly Wayland-related) patches in process
  • figured out a minimal tool to make Xiaomi power strips work without the “cloud”
  • saw a SIMD-accelerated tac line-reversing utility and immediately ported it to arm64 NEON/AdvSIMD
  • helped out with firmware and EC (just testing with the latter) patches for the Thinkpad L430/L530
  • developed a FreeBSD driver for the SPI keyboard/touchpad attachment in Apple MacBooks (currently only in my fork and only tested on the 2015 MBP, spibus-side prerequisites are in review)
    • related: got the Magic Trackpad 2 (which uses a compact packet format but similar surroundings to bcm5974) working too
  • started learning PCB design with Horizon EDA
  • found bugs in the mold linker and zlib-ng
  • made new Wayfire plugins: wf-globalgestures, wf-dynspaces, wf-touchpad-gesture-drag (yeah, turns out 3-finger drag is easy with current libinput: it’s a hold-cancel-swipe sequence!)
  • finally made a freebsd-embedded-hal Rust crate
  • just now added dark mode to micro-panel where I’m writing this

Unusually, I do have a legit new year’s resolution this time: I should blog more! Want to publish some long-form things here.

Compiled oxipng to WebAssembly, very little changes were required :)

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” :)

In reply to a post by https://icosahedron.website/@QuietMisdreavus on

reminder that rust pull request number 42069 was about niceness values

nice

Freepass update: finally changed the serialization to use Serde instead of rustc_serialize.

Also doing some work on the Android app. It will eventually become a thing! :)

Introducing freepass, the free password manager for power users!

Written in Rust, uses libsodium, derives things from one password using the Master Password algorithm. And by “things” I mean not just passwords, but also Ed25519 keys for SSH, signify, SQRL