Writing a DSL to easily describe keyboard modifications. Currently targeted at Karabiner.
I’m Nikita. I am a big fan of macOS, automation and tools in general so my blog mostly focuses on how you can get the best out of macOS and the various tooling that surrounds it.
Will try finish writing my DSL for updating Karabiner configuration.
Recently posted a thread on keyboards here on Lobsters and it’s awesome to see so many keyboard lovers out there. I was quite upset to see so few people customizing their keyboards so I hope to change that soon.
My daily driver is a Keyboardio Model01, and am using an ErgoDox EZ with Gateron Browns at work (an old one, not the Shine). Both of them run Kaleidoscope, the firmware originally designed for the Model01. I uhh… customised the firmware a tiny bit. Just small things. It’s not like I’m using over a dozen plugins on my Model01, nah, why would I? :p
Anyhow, my Model01 and ErgoDox sketches are all open source, and the former has a bit of documentation about how it looks and works.
I also own a Shortcut prototype, and am looking forward to laying my hands on a Raise at some point. I’ll also build a trackball for myself somewhere down the road, but… that will be a while.
Really love your setup. I am curious, for making modifications to the keyboard to write everything in C or you use some kind of wrapper language to make things easier for you to edit?
I write everything in C/C++, mostly because that’s the most efficient way for me. I know the languages well enough to be comfortable with them, to not need any abstraction over it. Besides, a lot of my customisations are just configuring plugins, not much to make nicer there.
The problem with trying to come up with a wrapper language is that it needs to generate pretty efficient code. There are a lot of shortcuts made all through the firmware to make it all fit into 28k, with all the bells and whistles. With this restriction, it’s not easy to build a DSL on top of it.
I made a repository of my favourite apps I use and love as well as descriptions of why I use them.
[Comment removed by author]
Does home-manager work on macOS? I thought you need to use nix-darwin instead.
I wonder what it’s like to become very used to something like this and then suddenly not have it.
I have been thinking about this too. This is currently the biggest downside of optimising and modifying your system like this.
After helping polish up a few things with the Fennel lisp compiler (https://github.com/bakpakin/Fennel) I’ve created an Emacs mode for it (https://gitlab.com/technomancy/fennel-mode) and am hoping to try sketching out a few simple games in the Love2d game engine to put it thru the paces.
I’ve published a tutorial on using Fennel: https://github.com/bakpakin/Fennel/blob/master/tutorial.md
Is there a reason why Fennel is hosted on GitHub and Emacs mode on GitLab. Why not host them both on either GitLab or GitHub?
Fennel is not my own project; it was started in 2016 by Calvin Rose, but he only worked on it a couple weeks before moving on. I discovered it last week and started submitting patches, and now he’s picked it back up. I just created the Emacs mode yesterday, and I host all my own projects on GitLab.
Can you make it so that you can press down arrow when searching to pick through the results. Currently it’s really annoying as you are forced to use the mouse for that.
Sure, that’s an important improvement. I’ll create an issue for it. Thanks for the suggestion.
I take this approach much further than this. And make every single key on my keyboard a custom modifier key. 🙂
That keyboard mapping is something else. I’m not sure it would work for me, but I’m going to keep that idea in my pocket.
I made a public Trello board of all the books I hope to read this year. And books I hope to read in the near future.
Oh thank goodness. Does it work like wikipedia?
Similar but not the same. In here we try to curate links (resources) and the community ideally decides which resources are the best for learning a topic. The learning is still done outside the website, be it Wikipedia, Coursera or YouTube or some article someone wrote.
A much, much better list is here:
perhaps for free programming books but this list includes much more than free and much more than programming. But then again, I am a sucker for a good book list.
That one is sadly only focused on Programming. :(
MacDown is a good macOS native alternative to this.
I personally use Marked2, which is kind of like a sidecar app – you edit in your editor of choice, and marked just renders the markdown for you in a floating window.
+1 - I find the lack of GitHub Enterprise full screen in-browser editing support annoying, so I tend to write up a comment using MacDown so I don’t have to flip between Edit and Preview in GHE.
I also started to keep a notebook of essentially everything I know documented in a continuos way.
And there are many other people who share this idea.
I made my own wiki.
Inspired by Youshuaw’s knowledge repo. I still have yet to add many things but Gitbooks is pretty awesome so far for this kind of thing. ?
I am reading essentials of programming languages and SICP.
Really enjoying it so far. Want to understand the underlying concepts behind programming languages in more depth and in turn improve my search engine.
I’m reading SICP too. Really great stuff.
If anyone will find it interesting, I keep a big list of books as a GitHub repo :
Many books mentioned in the article can be found there too. :)
We actually released many awesome updates to the search engine we are working on.
We soon want to add an easy way to contribute to the maps and start working on authentication and maybe make an official release soon too. We think it’s pretty awesome already though, just need to bring more awareness to it to see it grow even bigger. ?
We just released our new big update for the search engine. It now uses D3.js for rendering all the mind maps, it is super smooth and we are quite happy with it.
Here is the search engine : https://learn-anything.xyz/
Would really love to hear your guys thoughts on it. ?
I came across learn-anything before and found it really interesting! What did you guys use before D3?
We used our own renderer and panzoom for zooming in and out. But it’s really bad compared to what D3.js allows us to do.