It would be great if some of the repetitive tasks didn't even require a keyboard but rather use subtle gestures, eye tracking, and voice commands. Leap Motion, for example, never panned out but Google's Soli project might get us there: https://www.youtube.com/watch?v=0QNiZfSsPc0
I find autocompletion in JetBrains and Visual Studio (disclaimer: haven't tried many others) to be outrageously good. Sometimes, in a dynamic/weak language, I wonder how the hell it can know what to suggest.
Good, but slow. Even most of the autocomplete solutions I've used in VIM fall in that category. The only one that doesn't is exuberant ctags and that's because it's not intelligent; it does tag lookups and nothing more. If you have two classes with the same function name, it can't tell which one you want. Which is too bad. It doesn't seem like asking for fast autocomplete is unreasonable for 2015. Then again, between PHP, html, css and JS, Zeal takes up many gigabytes of my hard drive. The wordpress docs are even bigger. Maybe it's not that autocomplete is slow, it's that the data set it has to operate on is increasing at an alarming rate.
How is JetBrains autocomplete slow? It's 90% of the time instant for me. The 10% of the times always happen in the same patterns and I already expect it to not work immediately. In the other 90% i just always expect the autocomplete to be there and keep typing without thinking about it.
what type of development do you do with it? Like I mentioned, I use it for wordpress development. That means on any given keystroke, IntelliJ has to find the right symbol buried in gigabytes of data, since any given php file can have html, css, js, php and/or wordpress. Not to mention the wordpress plugins I'm developing are (imho) unnecessarily large. Half a second to several seconds is the typical autocomplete time for me, with the time increasing the longer it's open.
Just writing this makes me long for the good old days of html 4, css 2 and JS only being used to animate mouse trails.
23gb of ram, modern i7, ssd. I was doing development on Vagrant via VMWare, which slows things down, but not that much.
Maybe the deciding factor here is what we consider to be "instantly" is different. I do most of my work in VIM in a terminal and find most web-based apps[0] unbearably slow.
[0]: I'm not saying IntelliJ is web-based. I'm using it as a common metric.
It's always great to see people improve their workflows in creative ways. At the same time, I find it strange how insensible browser defaults are for productivity (why do ctrl+F & ctrl+G do the same thing?). Developers tend to zoom around in their text editor at breakneck speeds, but slow to a comparative crawl in the browsers themselves. If I press F12 in Chrome or Firefox, I have no idea where focus even goes.
My primary annoyance is how ctrl+L (and alt+D) is the standard "focus urlbar" keyboard shortcut. It's definitely one of the most useful actions, but the shortcut requires a large motion or two hands. I rebound it to ctrl+Q for a while, but reverted as I just kept closing browser windows on other people's computers.
Ultimately, I recommend any person who uses a program often to explore ways of using it more effectively, not just for speed, but also to prevent RSI.
I find that even moving to the F1-F12 row is sometimes slower than hitting a key combination (whether with a prefix key or a modifier) somewhere closer. Back when I used Caps Lock as both Escape (am vim user) and my i3 modifier I could keep my hands on the home row when switching windows. (I'm on oS X now...)
The layout posted would be useful for launching apps and resizing windows but I can't imagine using it for copy and paste or typing things like "px".
I test in Chrome, Firefox, and Safari, so I'm constantly doing this set of actions:
- Focus address bar
- Copy URL
- Launch Firefox
- Focus address bar
- Paste URL
- Press Enter
- Launch Safari
- Focus address bar
- Paste URL
- Press Enter
So to be able to make that a sequence of 10 button taps I can do in rapid succession without even looking at the screen or touching the mouse does save a bit of time. It's primarily for web testing, more than text editing.
With Pentadactyl (vim-like plugin) for Firefox, copying a URL is simply pressing the "y" key, and paste+goto URL is "p". I believe Chrome has similar plugins, dunno about Safari.
How about a simple modal switch, maybe even a foot pedal, changing your keyboard into ~105 single-button commands, similar to what Vim does in normal mode?
The keyboard has 3 backlight options: unlit, blue, and red. I have several 'shift' keys which toggle the action (and backlight) of other keys, but having one keyboard two-layers deep isn't as powerful as the combinations you can build with multiple shift modes.
I love custom keyboard. Very cool. But looking at the stuff he's using the keyboard for it seems to me like he might be better off with a programmable 60% kb and a trackball.
copy, paste, enter, refresh, scroll down and save are then self explanatory.
adress bar is cmd + l
switching between firefox, chrome, safari and a text editor could be function + q,w,e,r. Resizing the browser window can be done with any window management software on function + asdf.
https://shortcatapp.com seems relevant to the discussion. I've been using that recently where I can. It unfortunatly only works in apps that have accessibility implemented.
Wow thanks for the link, I didn't know about ShortCat until right now.
Sometimes the smallest little utilities can totally change the way you use a machine, like Quicksilver the application launcher. Can't imagine life without Quicksilver (or Gnome Do on Linux)
Throw in better autocompletion (http://www.benkuhn.net/autocomplete) and software development becomes more precise and less repetitive.