West Michigan, USA


We start, around the turn of the millenium, with a dot on the map: a small city where tickets to the local cinema cost only two dollars. Just outside city limits sat a parsonage, inwhich memorable history was being formed:

"That's so easy, even Zach can read it!" called one of the others.

Now, others there were, in contrast to the big people, who, here, seemed to run the joint by joint-ownership.

I was beckoned toward a newspaper, where a three-panel cartoon was being indicated.

"Here, read this!"

My first test of skill... would I succeed, proving my capability, or fail, showing the known universe that I was most inferior.

Panel 1: Garfield sits on the counter, saying "Zzzzzzzz" Panel 2: Garfield is still sitting on the counter, Jon is watching. Garfield says "Zzzzzzzz" Panel 3: Jon breaks the pattern of Zee's, and says ________...

I couldn't do it. I was the only person who didn't know how to read.


Last active 3 months ago


Last active 1 year, 7 months ago


Last active 1 year, 7 months ago


Last active 1 year, 9 months ago


Last active 2 years ago


Last active 2 years ago


Last active 2 years ago
View more

Recent activity

Re: Hexperimental code, 2024-04-02 3 months ago

From Zach DeCook to ~earboxer/HexBoard

On Tue Apr 2, 2024 at 6:46 PM EDT, Nicholas Fox wrote:
> I consent to license my hexperiment code under the GPLv3
Thank you!

I tried it out and it seems to work pretty well (though I haven't tested any of the MIDI stuff yet).

(I like how the encoder can turn multiple steps at once... though we might want to do some frame-skipping so the screen can keep up with it)

Re: Hexperimental code, 2024-04-02 3 months ago

From Zach DeCook to ~earboxer/HexBoard

I pushed this code to the hexperiment branch


(had to fix some issues from the email -- some lines were breaking early, and there were some apostrophes where they shouldn't be... maybe sending it as an attachment instead of as the body would work better next time)

It's compiled at https://builds.sr.ht/~earboxer/job/1185290

I haven't tested it (my production hexboard is currently tied up working as a QMK keyboard on a computer with almost dayly use)

@Nicholas, if you want to say "I consent to license my hexperiment code under the GPLv3" (or some more permissive license),
(it's required by the Rotary library for the binary to be under that license).
Otherwise, the binary compiled at the link above could be illegal ;)

Re: Microtonal Key Layouts 4 months ago

From Zach DeCook to ~earboxer/HexBoard

On Sat Feb 17, 2024 at 11:13 AM EST, Lewis McRae wrote:
> > 'tuning to a color' is currently complicated
> Oh okay, what do you mean by that as opposed to the current alternate
> colour mode? Or is it just that making it work with keys and
> transposition is complicated?

Yeah, I meant 'making it work with keys'.

> I also like Nick's idea of using MIDI
> note 69 = A4 as a constant for note mapping, as it seems like that's
> the default for retuning in some software.

I didn't know about the 69 = A4 thing. (currently, I made the microtonal thing include 440 somewhere, and have 0 ~= C, so that 'red' = C in the default coloring).

Re: Matrix and LED locations, ModelNumber 1 vs 2 4 months ago

From Zach DeCook to ~earboxer/HexBoard

On Thu Feb 22, 2024 at 9:56 AM EST, Nicholas Fox wrote:
> Hi Zach,
> Can you confirm if this is the correct ModelNumber 2 layout?
> //
>                 1    2    3    4    5    6    7    8    9
>             10  11  12  13  14  15  16  17  18  19
>                 21 ......................................... 29
>             30 ............................................... 39
>                 41 ......................................... 49
>             50 ............................................... 59
>      0         61 ......................................... 69
> 20        70 ............................................... 79
>    40         81 ......................................... 89

[PATCH createaport] License: Include the license file in the doc subpackage if the license requires it 4 months ago

From Zach DeCook to ~martijnbraam/public-inbox

 createaport/aport.py   | 13 ++++++++++---
 createaport/license.py | 20 +++++++++++++++++++-
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/createaport/aport.py b/createaport/aport.py
index c69e4be..175fa6e 100644
--- a/createaport/aport.py
+++ b/createaport/aport.py
@@ -1,3 +1,4 @@
from createaport.license import needs_license_file
class Aport:
    def __init__(self):
        self.pkgname = None
[message trimmed]

Re: Microtonal Key Layouts 5 months ago

From Zach DeCook to ~earboxer/HexBoard

On Thu Feb 15, 2024 at 1:51 AM EST, Lewis McRae wrote:
> Hey Zach, Lewis here. I made those mockups of the 41edo key mappings
Thank you! It's one thing when Jared says 'people want X' vs actual pictures of what it looks like.

> My original idea was mainly that there could be some way for people to
> easily set up their own key colours alongside new note layouts, since
> note layouts can be added pretty easily by editing the firmware. My
> thinking was that you could do it by defining a set of colours and
> either mapping each key on the board to a colour, or mapping each note
> in a particular tuning to a colour. I figure it's possible that
> someone might want to try different note colours for the same tuning
Additional color modes can be added in the keyColor function like so


Re: Microtonal Key Layouts 5 months ago

From Zach DeCook to ~earboxer/HexBoard

On Fri Feb 16, 2024 at 1:26 PM EST, Nicholas Fox wrote:
> 1) the note numbers you need are fractions, not integers. for example,
> 41-edo, if you start at note 69 = A⁴, the scale from A to A is 69, 69
> + 12/41, 69 + 24/41, 69 + 36/41, 70 + 7/41, ... 80 + 17/41, 80 +
> 29/41, 81. say this array is Y.

Thanks for the math! Using MTS' bulk tuning dump for microtonal support is the plan, we just need to do it!

> Will give a shot at writing some .ino code in the next month or so as
> I have time, so we can test out and refine.

I think maybe a good first step is to make a script to generate the dump, as bytes, like

[PATCH wvkbd] event loop: exit if the wayland socket disappears 5 months ago

From Zach DeCook to ~mil/sxmo-devel

(prevents infinite loop when your compositor crashes)
 main.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/main.c b/main.c
index b1cdfef..a17812c 100644
--- a/main.c
+++ b/main.c
@@ -1025,6 +1025,12 @@ main(int argc, char **argv)

        if (fds[WAYLAND_FD].revents & POLLIN)
        if (fds[WAYLAND_FD].revents & POLLERR) {
[message trimmed]

[PATCH sxmo-utils] apps: add newsflash 7 months ago

From Zach DeCook to ~mil/sxmo-devel

 configs/default_hooks/sxmo_hook_apps.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/default_hooks/sxmo_hook_apps.sh b/configs/default_hooks/sxmo_hook_apps.sh
index da3e06e..884458a 100755
--- a/configs/default_hooks/sxmo_hook_apps.sh
+++ b/configs/default_hooks/sxmo_hook_apps.sh
@@ -96,6 +96,7 @@ write_line_app nheko "$icon_msg Nheko" "nheko"
write_line_app nvim "$icon_vim Neovim" "sxmo_terminal.sh nvim"
write_line_app netsurf "$icon_glb Netsurf" "netsurf"
write_line_app newsboat "$icon_rss Newsboat" "sxmo_terminal.sh newsboat"
write_line_app newsflash "$icon_rss Newsflash" "newsflash"
write_line_app com.gitlab.newsflash "$icon_rss Newsflash" com.gitlab.newsflash
[message trimmed]

[PATCH sxmo-utils] Statusbar: indicate when headset mic is primary 7 months ago

From Zach DeCook to ~mil/sxmo-devel

 configs/default_hooks/sxmo_hook_icons.sh     |  1 +
 configs/default_hooks/sxmo_hook_statusbar.sh | 10 ++++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/configs/default_hooks/sxmo_hook_icons.sh b/configs/default_hooks/sxmo_hook_icons.sh
index 46d37fa..fb50a16 100755
--- a/configs/default_hooks/sxmo_hook_icons.sh
+++ b/configs/default_hooks/sxmo_hook_icons.sh
@@ -65,6 +65,7 @@ icon_grd="󰀻"
icon_grp="" #group
icon_hdp="" #headphones
icon_hst="󰋎" #headset🗣️
[message trimmed]