Tips on building keyboard-centric workflow
I do not like using mouse. I feel it disturbs the flow of things I am doing. Moreover, I like quickly pressing through a bunch of keystrokes that results in what I want. There is a sense of satisfaction in that.
For starters, I use Vim and love it. I liked it so much that all my browsers have Vim-like keybindings (through Vimium or Tridactyl). But that is as far as I have gone in making my life easier (apart from switching windows via Command+Tab, but for all else I need to use mouse).
I recently bought a MacBook and it is kind of disappointing that the keybindings are not so intuitive or don't exist natively as they do in Windows. For example, resizing the window was easier on Windows with Win+arrow. There are many such things I find lacking on Mac. Broadly, I am asking for what other improvements can I bring into better my keyboard-centric workflow.
A few software suggestions for mac:
Some default keyboard shortcuts to know:
Combine with shift to select the range, or delete to delete the range.
others I use frequently:
+1 for Rectangle and Raycast. Couldn’t use the Mac without them. Great recommendations in the “other keyboard shortcuts” section, too.
I might look into rCmd, haven’t heard of it before, looks intriguing.
Some notes on the special letters/characters:
There is a special “unicode characters” keyboard (I forget the exact name they gave it) which you can set up in keyboard settings, then activate by pressing function (it’s like regular switching to a different language/alphabet keyboard layout). Then you can hold option/alt key and type the alt code, e.g.
⌥ 2 7 2 6
yielding “✦” to appear on your screen.In “native” text inputs (not sure how or why developers can disable it, but I’m fairly certain it’s possible), so most text areas, as well as in all stock GUI Apple apps (should you choose to use those), you can also hold the letter, and a range of options appears, assigning a digit to each letter with umlaut. So pressing
E
and then either of1
,2
,3
, … gives the altered letter (the exact order offered is dependent on current keyboard layout, since that might offer umlauted letters already in the first/“topmost” layer).Edit:
Forgot to mention, but function + e can open this too, at least sometimes, I believe.
Sell Raycast to me, please. Why should I switch over from Alfred?
Haven't used Alfred before, so might have trouble selling you on it. I mostly use it as an application launcher on my personal computer, but at work the custom internal extensions we have are incredibly useful for doing quick data lookups or finding and opening specific links out of lists of thousands of links.
I can join my next meeting with just ctrl+space followed by enter, it opens the videoconf app and I'm good to go. Also has a camera preview tool if you're planning on turning on your camera. Clipboard history is one of the tools I use the most since it just silently runs in the background.
It has window tiling features, but I just use Rectangle for that instead.
So really it's all about the extensions, and there's a lot. If you're already happy with Alfred I'm not sure if it's worth switching but it's absolutely worth switching from basic Spotlight.
Tiling window managers are the best.
It's funny that the consensus on this topic is that when you get older you stop thinkering with your OS and use what "just works". In the world of Linux it would translate to using a major distro like Ubuntu + KDE or Gnome.
I found the opposite. After 20+ years being a hardcore Linux user I settled with using a lightweight barebones distro (Void Linux) and a light tiling wm (river) and can't use anything else.
I know exactly how to get what I want from the ground up and even if it takes a day or two to set everything up, when it's done, it's done for life.
Whenever I try using a big distro and Gnome/KDE I end up trying to bend things to work the way I like and it's always a struggle.
Being a Windows user, I greatly enjoy Autohotkey, which let me create keyboard commands for pretty much anything using a simple coding language. You could likely find similar software if you search for autohotkey alternative for mac. I personally have found the ability to just create the keyboard input I want most liberating.
As an example on how it goes about, this rewires Pause/Break to put Windows to sleep:
Bettertouchtool also does similar things to AHK.
Set up a tiling window manager. @jackson mentioned Rectangle, I've also seen yabai used a lot, and I'm sure there are a few other ones
On macOS, I find both Hammerspoon and Alfred to be indispensable tools to customize a keyboard-centric interface with the OS. Also, know that for any application that has a "Help" menu, you can type shift-command-? to open the help menu and then search any menu bar items textually.
Another neat tool that attempts to make everything in the GUI accessible via your keyboard is Homerow. Homerow lets you search elements in the GUI via text search and then gives you text anchors that you can type in order to move the mouse to the element you want, and optionally click the element with or without modifier keys. While this is very useful when using software that doesn't provide its own keyboard shortcuts or keyboard-centric affordances, it doesn't allow for consistency—every different app/context may require using different, novel combinations of keystrokes to do something. I still find it useful, but it doesn't allow you to necessarily learn workflows by recalling commands, nor to totally customize the keystrokes.
Sorry that you’re having trouble on your new machine … that said, running into workflow problems on MacOS isn’t that uncommon :/
On top of the suggestion for Rectangle, I’d also add AltTab, which is an excellent window switcher: otherwise, you’re stuck cycling through windows in single applications all the time. Karabiner is useful for key rebinding as well. Haven’t been able to find anything that lets you easily move windows between virtual desktops, though.
Finally, if you’re at a desktop frequently, I’ve found that eye trackers via Talon are an excellent choice.
Incidentally, if you’re stuck with a MacBook for now and are not attached to the software, I’ve heard that Asahi Linux isn’t bad.
I use Karabiner to map the capslock key to a "Hyper" key. That is, holding down caps like maps to holding down shift+command+option+control. There is community defined mappings and I used one that did this hyper mapping and added i/j/k/l navigation when holding hyper.
I also use Alfred with the power pack to map all kinds of workflows. I map my most used apps this way to toggle with hyper+key etc. And its clipboard history is also very nice.
I've also been using Tridactyl for years and couldn't live without it these days. In my daily tasks I use vim motions wherever possible.
On Mac, I tend to use multiple spaces when undocked on my laptop. For navigation I have shortcuts for
ctrl+h
andctrl+l
to navigation left and right between spaces. I also usectrl+k
andctrl+j
to get in and out of Expose. The concept of tiling managers is appealing, but they've never quite worked for my workflows so just keep things really simple.