Hacker News new | ask | show | jobs
by hpoe 1921 days ago
I hear that from people all the time who are more advanced in their careers than me. But I can't imagine finding myself in a place where I don't have my current setup. I am able to do everything so much faster having my custom i3, Emacs setup than anyone else I work with. People often comment "Wow you are able to do that so fast."

Now that I discovered Vimium I consider it a UX failure if I ever have to use the mouse. Like I don't think I could ever go back to having a system that doesn't navigate by jkl;, everything else seems to slow and clunky. Like yesterday I had to upload a file and the interface only supported drag and drop, and I took it personally that I had to use a mouse.

Sorry I am ranting, but after having experienced the power of the keyboard all time and the ease of doing things in the terminal how can you stand going back? This isn't rhetorical either I genuinely just wonder how you overcome the additional pointing and clicking required?

7 comments

>how can you stand going back

For me, like many things, it is a tradeoff. Am I THAT more efficient in some uber config - balanced against the time it takes to fix/update/tweak/keep it current, and deal with multiple systems and repeated setups.

And the answer for me is, well, no, no I'm not. So these days I use a much smaller set of "must have" custom configs and mostly go with the defaults.

>a UX failure if I ever have to use the mouse

I can see that for certain systems/applications. But, I have to deal with various webapps - jira, confluence, continuous integration settings, our internal source code instance, etc - and I can't imagine the scenario where spending the time to configure and learn keyboard-only navigation would result in an efficiency payoff.

It's similar to the argument about why dvorak/colemak/workman/etc is "better". Yes, yes they are, but there is no way I'll ever get the time back in efficiency that it would take to become proficient. I'd need some outside motivation, such as RSI or an injury to alter the cost-benefit calculation.

I don't need to turn every webpage I need to deal with into a keyboard optimization puzzle in order to shave a few seconds here and there. That's the time savings we're talking about right?

>I can't imagine finding myself in a place where I don't have my current setup

Do you mostly work on a single system?

> I can see that for certain systems/applications. But, I have to deal with various webapps - jira, confluence, continuous integration settings, our internal source code instance, etc - and I can't imagine the scenario where spending the time to configure and learn keyboard-only navigation would result in an efficiency payoff.

That's the beauty of Vimium, it gets you 90% there, but those 90% work the same everywhere.

I guess it's a spectrum.

I share OP's point of view. I've had my youth years of complete custom desktop experience, every single detail under control and finely customized, on whatever distribution was the apogee of the time (gentoo, arch,...).

Years passing by though, I've grown past it. Now I just install Ubuntu, I don't want to loose time on wifi drivers, keyboard backlight, acpi suspend/resume, etc.

Doesn't mean that I don't customize my environment though. I've been using i3 for 10 years and would not stand anything else. Same for my vim configuration.

I just prioritize some things (i3, vim) over others (distribution, package manager).

Can you explain why you're so find of i3? I've played with it but it never stuck.
It hink the other comments already made good points, but just to complete it for me:

- There's very little learning curve with i3. After setting/learning 2 or 3 keyboard shortcuts you're good to go. That makes the adoption a no brainer.

- 99% of what I do is done in a shell (code, sysadmin) or a browser (read doc, write doc). That means I often need a lot of shell windows all over the place. The tiling really helps here. I could use tmux/screen for that (that's what I did before i3), but I often already have tmuxes on the remote boxes I ssh to, and the inception makes navigation harder.

- it's fast, there no animation or latency whatshowever. I can very quickly open a shell, ssh, run a command, close it, etc.

Most of these could be done with any keyboard oriented tiling wm, I just so happen to use i3.

Not the original commenter here but

- i3 treats individual monitors as virtual desktops instead of having them stretch across all monitors which makes it easy to shift say a workspace with a browser or a chat app into a secondary monitor without losing the current task or having to rearrange everything.

- i3 lets you define keybinding modes that work much like modes in vim

- i3 is very simple and comprehensible its about as non magical as can be making it using it predictable and simple

For me personally, it's about putting the right amount of emphasis on your tools. Using your mouse shouldn't be outright verboten, but I do see your point about having a properly set-up editor. I could probably be 30-50% more efficient with just the right vim config. For reference, here's mine:

$ ls -l .vimrc ls: .vimrc: No such file or directory

However, as a counter example, instead I've spent time on learning how to use Ansible which lets me automate parts of my job in a way that just wasn't feasible 15 years ago. To me that provides a much larger benefit (easily 10X, maybe even 100X).

I guess my point is that I don't want to spend too much time on the plumbing part of technology and leave figuring that out to someone else - much in the same way we're using libraries nowadays instead of re-implementing hash tables ourselves in every new project.

My setups have never been customized that deeply, but I used to be much more into the process than I am today.

What changed that was the frequency of needing to set up a working environment from scratch, for whatever reason whether that be a fresh OS install or a change of personal or work machines. After a while it becomes tiresome, both in initial setup and in maintenance (regardless of OS, highly custom configurations are more brittle and can break in more ways).

I still customize a fair bit but generally speaking I keep things closer to default and gravitate towards OSes and distributions that come reasonably close to where I want my environment to be out of the box so the amount of setup and maintenance is reduced to something sustainable.

I would love to see a video of how one operates a GUI using a keyboard. I'm know some vi and zero emacs, so how Vimium works eludes me, but it would be great to someone do some impressive stuff without ever touching the mouse. I imagine the learning curve must be really steep, and not something I'd like to sped any portion of my work day learning.
Well if you are familiar with Vim learning Vimium was super easy barely any inconvience. I used an Anki deck to become familiar with all of the shortcuts and boom, off to the races.

The biggest keys to remember is f which shows all the links you can click on. I should add a disclaimer however that I ended up using vimium probably only 50% of the time, I've noticed when I am in the middle of working I use vimium more heavily, during light browsing I tend to use the mouse a bit more.

I will also say the other big thing that wasn't possible before Vimium is that I can now add a bookmark to pretty much any page I will visit more than once and then that page is only a 'Shift + b' and a couple of keystrokes away. Super efficient when dealing with giant bloated web apps that take 5 seconds to render every state change.

Vimium for gui in two secs: f - show keys to press to click something and open the link in the current window F - same except opens in a new window /<chars> <enter> - search, n for next and p for previous V - visual cursor selection, y copies esc - get out of anything

There's a lot more, but you can go a long way just with that.

Check out Luke Smith on Youtube.
> Like yesterday I had to upload a file and the interface only supported drag and drop, and I took it personally that I had to use a mouse.

keynav to the rescue! (As I’ve said before it’s no replacement for proper vi bindings like Vimium or better Pentadactyl, but it is useful as a second-to-last resort before a hardware pointing device.)

Dragging is not bound by default but it is easy to uncomment in the example config (cp /usr/share/doc/keynav/keynavrc ~/.keynavrc and gg72 in vi on Debian):

  ### Drag examples
  # Start drag holding the left mouse button
  #q drag 1
  # Start drag holding middle mouse + control and shift
  #w drag 2 ctrl+shift
I used vim for a decade and now use PyCharm+VSCode. I don’t know what you mean about not using the keyboard as I still use the terminal for everything except editing code and I don’t use the mouse at all. There are keyboard shortcuts for everything in both the ides I use,