![]() The reason as to why this isn't the default behaviour is beyond me… HeadphoneAutoPause: play/pause music players when headphones are connected/disconnected.Caffeine: temporarily prevent the screen from going to sleep.Seal: pluggable launch bar - a viable alternative to Alfred.You'll soon find yourself building up a personalised arsenal of productivity tools, there are few I've found particularly helpful: Having been around for a few years, it is encouraging to know that there is a vibrant community developing Hammerspoon - with features and fixes being merged nearly every day! There is also a handy collection of user submitted snippets, known as "spoons", which you can easily begin adding to your own configuration. This allows you to quickly and easily write Lua code which interacts with the otherwise complicated macOS APIs, such as those for applications, windows, mouse pointers, filesystem objects, audio devices, batteries, screens, low-level keyboard/mouse events, clipboards, location services, wifi, and more. To do this, we will be using Hammerspoon, an open-source project, which aims to bring staggeringly powerful macOS desktop automation into the Lua scripting language. Today we will build the neat little utility illustrated in the gif above and, hopefully, inspire you to build something yourself. How often have you wanted a little something extra out of macOS, or it's desktop environment, but felt intimidated digging into the unwieldy system APIs? Well, fret no more! There are some text snippet expansion methods, but nothing to simply modify keys.What is Hammerspoon and what can it do for me? ![]() It would make sense to look into using Spacehammer and more VIM bindings sometime soon. However, Hammerspoon is one of the more promising configuration systems especially considering the more complete VIM bindings which exist in the community and would bear a second look. For my purposes right now, this monolithic a is enough, and the entire configuration corresponds to this commit in my Dotfiles. On the other hand, it is baffling to see the lack of good FOSS tools on this ecosystem 9, but that is to be expected perhaps. In that regard, this post is a success story, even with the awkwardness of the implementation. It has been very restrictive to not be able to use the keyboard layout I spent years crafting. 2) don’t really allow for more than downloading rules off of the internet 5, like the one below.ġ 3 Conclusions This is setup through a karabiner.json file, since it appears that the “Complex modifications” referred to in the GUI (Fig. I have been using the basic Colemak layout with a simplistic Karabiner caps to delete for a while now, which allows for a standards compliant Colemak experience, but extending this like I needed was a little bit of a struggle.Īpparently it is possible to overload the keyboard system with a “Hyper” key 4, which is the closest to Extend. Of Ukelele and manually writing things then, nothing more need be said. Also, rapid prototyping was out of the question, since Ukelele requires a log-out log-in cycle to set things up. The closest possible solution would be to do a very awkward Esc based layout. It can either be remapped using system settings 3 to one of the other modifier keys, but not to Extend. However, evidently, there is no real way to remove the stickiness from the Caps Lock key. ![]() Now of the four, I had a predilection to move towards manually writing, with the help of Ukelele. keylayout files Use Karabiner Elements This seems to be closer to AutoHotKey and the like, runs in the background and actively intercepts keys based on json configurations though there seems to be a more rational method (a hidutil remapping file generator) for newer kernels 2 Script things with Hammerspoon Uses a lua engine to interact with the system, can be configured for the most part with Fennel using Spacehammer keylayout These then go in $HOME/Library/Keyboard\ Layouts Use Ukelele The incredibly poorly named (for search purposes) versatile tool is able to ease the pain slightly for writing. There are essentially a few options: Manually write. Just as a reminder, my setup (or hzColemak) consists of an augmented VIM workflow, as shown below, and described in my previous post. ![]() This post is part of a series on Colemak and keyboard management in general.
0 Comments
Leave a Reply. |