Going mouseless on Mac

Trying to remove mouse from your daily routine can have a few advantages.

  • It may make you more productive
  • It may keep you more focused
  • You can easily work on a hammock, couch, beanbag or bed, since you don’t have to reach for your mouse or even a touchpad
  • It will help you to reduce the risk of wrist injury: http://kellishaver.tumblr.com/post/31143579095/wrist-and-hand-pain-when-programming
  • You can buy Ergodox keyboard, mount it at arm rests of a throne, and pretend to be the king of your computer. If you hunch over your keyboard you look more like praying to your computer to do the stuff you want instead of commanding it to do your bidding!

Window management

I used Slate for a while, but now I use Amethyst. It is an OS X “port” of Xmonad. Unlike other window management applications for Macs, such as Divvy, Slate, Sizeup and others it automatically arranges the windows for you instead of providing a set of shortcuts to arrange them yourself. It allows you to change layout algorithms if you want to have different behaviour. It is in many ways more powerful than the alternatives. As an added benefit Amethyst adds essential shortcuts for Mac OS X builtin spaces, like “move application to nth space” or switching between open windows in the current space.

Useful system wide shortcuts and settings:

  • http://guides.macrumors.com/Keyboard_shortcuts
  • In any mac application you can press “CMD+SHIFT+?” to search through all menu items available in that app
  • Some people don’t know that you can change any Cocoa’s application shortcuts by going to Preferences->Keyboard->Keyboard Shortucts->Application Shortcuts.
    I recommend to remap “go to next tab/chat/whatever” to same shortcut, since applications tend to have different one. I use “CMD+SHIFT+N/P”, since it allows me to keep my fingers on the home row.
  • Ctrl+f2 shortcut changes focus to menu bar, so you can navigate it with arrows. For some reason it started working for me only after I remapped it to different binding
  • Turn full keyboard access on by going to Keyboard->Keyboard Shortcuts->All Controls. Alternatively, can type “defaults write NSGlobalDomain AppleKeyboardUIMode -int 3” in the terminal
  • After enabling full keyboard access you can use tab to cycle between elements in apps or shift-tab to cycle backwards. Shift-tab not always works. It is especially useful in prompts, because you can cycle between options. Use the spacebar to choose highlighted option or enter to choose the default option
  • “CMD+ALT+D” hides or shows dock. Since I switch between applications using keyboard, I don’t use it. If I want to see dock, I use the mission control shortcut (“CTRL + UP” by default)
  • Set blazingly fast key repeat time. “defaults write NSGlobalDomain KeyRepeat -int 0” sets it to quite a low value, but if you want even an lower one, use the app “KeyRemap4MacbookPro”
  • Some terminal settings commands were borrowed from https://github.com/mathiasbynens/dotfiles/blob/master/.osx . As an aside, I recommend looking through this page

Launcher

I use Alfred: http://www.alfredapp.com/ . Another alternative is QuickSilver, but I heard Alfred is better. It is a +replacement for spotlight. With “Cmd+space” you have many possible things you can do by just typing. Options worth mentioning:

  • Configure search engines. Ones I most frequently use are Google, Gmail, docs search, Jira, Wiki
  • Use “1p website” to launch any website and logging through 1password
  • “> command” to run command in terminal
  • For frequently visited websites I have a “blank” search engine,
    which serves as bookmark. For example I just type “pulls” to open list of pull
    requests
  • Built in calculator
  • Clipboard management
  • You can do quite a lot with Alfred Workflows (Premium, http://support.alfredapp.com/workflows ). I frequently use it to control Evernote, add remember the milk tasks, to kill top processes, for google translate, to convert between units and currencies, to run build and tests and get notification when one finishes, to look up the a time in time zone, to open, search or delete recently downloaded files, to post to Twitter, to restart apps and shorten URLs

Shortcat

http://shortcatapp.com/ . This application lets you to control all of your applications that implement accessibility using the keyboard. According to the website some use cases are:

  • Switching channels in Textual
  • Switching chats in Skype
  • Clicking links in chat applications
  • Changing settings in System Preferences
  • Browsing the web in Safari
  • Using applications within the iOS Simulator

Chat

I like adium, because I can control it with keyboard only and it unifies all my chats including skype. I recommend remapping “Next Chat” and “Previous Chat” to the same shortcut you use to switch tabs in other apps.

Text editor

In my opinion it’s worth learning Vim or Emacs if you edit files every day. I use emacs with vim emulation (evil) mode, which gives me the best features of the two editors. If you want to have something nice and easy I recommend Maximum Awesome , a packaged preconfigured Vim. Imho the best way to learn Vim is first to use the Vimtutor and then read the book Practical Vim by Drew Neil.

Terminal

The main problem with terminal is that I sometimes may need mouse to copy something from terminal output. You can use “command | vim -” to open output in vim or “command | pbcopy” to copy output to clipboard.

If you want to go further you can have terminal as Vim or Emacs buffer. This allows you to copy any part of the command output.
The best options for Vim are Conque and Vimshell . Sadly, both are limited in some ways or have some annoying bugs (especially when you want to edit something over ssh in Vim). When I tried them out, Conque seemed more mature, but on the other hand Vimshell was (and still is) actively developed.

Option which works the best for me is using eshell – built in Emacs shell.

Browsing

I use chrome with add-on Vimium .
It sometimes conflicts with shortcuts in some web applications, like Gmail, but you can either disable Vimium for those URLs, or use insert mode.
It doesn’t work in empty tabs due to Chrome’s security restrictions.
For this reason I recommend using “Cmd + W” for closing tabs and use chrome way of switching tabs.

If you use Firefox, it looks like Vimperator has more features than Vimium – for example you can select text using only the keyboard. You can edit text fields in Vim –
a shortcut opens a temporary Vim file and every time you save the file, the field in the browser is updated.

Mail

It is possible to have almost full keyboard control in Gmail client. Just press “?” while in Gmail tab.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s