pussysraka.blogg.se

Hammerspoon tiling window manager
Hammerspoon tiling window manager











hammerspoon tiling window manager
  1. Hammerspoon tiling window manager how to#
  2. Hammerspoon tiling window manager serial#
  3. Hammerspoon tiling window manager code#

(I only discovered this because I had a second dongle I could test with to ensure I wasn’t actually losing my mind.)ĭiscovering that the llvm linker (unlike the GCC linker used by the manufacturer in its examples) will not link against C files if the file doesn’t contain any functions that’re called.

Hammerspoon tiling window manager code#

My pal Jake and I only discovered the issue by writing horrible C code to println arbitrary memory regions as integers at runtime.ĭiscovering that previously-paired bluetooth devices were stored non-volatile memory, which meant that incorrect behavior would persist even after reflashing my program and and power-cycling the hardware. This was particularly pathological because I was testing my understanding by decompiling the ELF output, which showed that the section existed and had the correct data. Some SDK function would declare a FooInterrupt using “weak linking”, and it’d be silently dropped on the floor since the Rust linker script declared the name as FooHandler instead so when the interrupt fired the hardware would jump to an infinite loop default handler.Ī bug in llvm-objdump causes it to silently drop sections when converting ELF to HEX. One reason it was so difficult to use this chip from Rust is that that the bluetooth radio (accessed via manufacturer’s SDK) is controlled by a “softdevice” (proprietary binary blob), so there is a lot of fancy linker stuff required to setup memory in just the right way so the softdevice had its own little bit of RAM and the hardware could jump between softdevice and user application code.

hammerspoon tiling window manager hammerspoon tiling window manager

Hammerspoon tiling window manager how to#

I also learned much more than I wanted to know about linking, memory layout, and how to use a disassembler in anger (which looks exactly like “hacking” in Hollywood movies - namely staring at a screen full of hexadecimal garbage and muttering under one’s breath).

Hammerspoon tiling window manager serial#

Of course, rather than just modifying the manufacturer provided Makefiles and C examples (one of which was literally a bluetooth keyboard), I decided to instead to do it in Rust.Ībout 30 hours later, I can now print “hello world” over USB serial and via bluetooth. Luckily for me, when the virus shit hit the fan I had an nrf52840 USB dongle development board in my backpack, which means I was able to spend my 14 day Taiwan arrival quarantine on this project. Of course, as per Reddit Keyboard Law, such devices can never be sold retail, only via group buys that ended a week before you’ve discovered them.īut that’s okay - by now you should know that I won’t spend 2 hours and $100 on a purchase if I could have instead spend an unbounded amount of time and money on multiple design iterations and deeps dives into technical esoterica. The Mitosis is the most impressively designed-for-hobbyist-manufacture open hardware anything I’ve seen - it and its derivatives ( Centromere, get it?) are probably the most similar physical designs to what I have in mind. Technomancy has been working on the Atreus since 2014 and now reached the summit of indie popularity that is a successful Kickstarter (nice job Technomancy!). There’s prior art in that DIY community, of course. I’ve wanted one for years back in 2017 I tore down the closest commercial offering I could find, which is what led me to the whole wild custom keyboard scene. Luckily, I’m now that much closer to Shenzhen, so I thought I’d build myself a travel ergonomic keyboard - in particular, a low profile, ortholinear (keys are in straight columns, not staggered), split (two entirely separate halves) wireless keyboard. Now that I’m 6,400 miles away from my dear robot track saw and its precision positioning system, I need to find a new outlet for my embedded Rust habit.













Hammerspoon tiling window manager