
Show HN: Nomouse - dongslol
https://github.com/brhs/nomouse
======
WesleyJohnson
I've never understood the sentiment that using a mouse is bad. I see blog
posts all the time about how a programmer's job is more thinking than writing
code and/or writing good programs is also about taking out just as much code
as you put in. So if writing programs is a deliberate and methodical process
that - I'd argue it's also slow. Why then is there antithesis that mice slow
you down and you need keyboard shortcuts to be faster and more productive?

Maybe I'm just an old-schooler?

~~~
chipotle_coyote
I _suspect_ a lot more of it is perception than people imagine: keeping your
hands on the keyboard all the time seems like it intuitively must be faster.
Early research in human-computer interfaces suggests that this isn't actually
the case, though. From 1989:

"We've done a cool $50 million of R&D on the Apple Human Interface. We
discovered, among other things, two pertinent facts: (1) Test subjects
consistently report that keyboarding is faster than mousing. (2) The stopwatch
consistently proves mousing is faster than keyboarding."

[http://www.asktog.com/TOI/toi06KeyboardVMouse1.html](http://www.asktog.com/TOI/toi06KeyboardVMouse1.html)

It's very easy on HN to find the pro-keyboard arguments. The pro-mouse
argument is, more or less, that the context switch that really costs you time
isn't the one involving the mouse, but the one involving remembering and/or
finding the keyboard shortcut or function key.

Vim and Emacs style movement commands are faster than the mouse in certain
contexts, but I'm dubious that's universally true. "I want to jump to line
123" is easy, but what about "I want to move the cursor to the open brace
character right _there_ "? No matter how much of a seasoned pro you may be,
you're going to have to think for a moment about how to do to that: "let me
count the '{' characters between the current point and where I want it to be.
Three, so '3/{<cr>'." The mouse may make you move your hand, but it doesn't
make you have to _stop and count._

(It's also worth remembering that while mouse selection may not be as rich as
"select within brackets" type commands, nearly all editors _do_ have basic
semantic mouse selection: double-click and drag to select by word, triple-
click and drag to select by line. This can be a lot faster than you might
think.)

~~~
mjw1007
I wish people would stop citing that old AskTOG article.

The $50 million (in 1989) research figure sounds impressive, but they don't
say how much of that was keyboard-vs-mouse research and the answer is quite
likely "very little".

It seems that, like most UX research, they were testing how well novices
manage rather than how well people do after weeks of experience (the latter is
expensive to test!).

When you get to "It takes two seconds to decide upon which special-function
key to press. Deciding among abstract symbols is a high-level cognitive
function." it's clear that what they were looking at is a very very long way
from how a typical Vim or Emacs user works.

I think the article _is_ interesting as evidence for the proposition "it's
possible for people to believe that they're quicker with the keyboard when
they're not". But it's nowhere near enough evidence to get as far as "we can
dismiss people who believe they're quicker with the keyboard as mistaken".

~~~
mtdewcmu
I don't understand what task the users were doing when the mouse was
discovered to be faster. The keyboard and mouse are not generally
interchangeable; the task will generally favor one or the other. I'm assuming
that the users were doing something like manipulating a GUI that favored the
mouse and was awkward with the keyboard. The purpose of the study was probably
to convince people to buy Apple's new mouse-centric computers.

Here is what's annoying: having to frequently move back and forth between the
keyboard and mouse. Having to glance down to find the mouse to do one thing
and then back to keyboard starts to break one's train of thought.

~~~
mjw1007
As far as I remember, in the one study that got reported users were asked to
select a number of words scattered through a document and make them bold.

~~~
to3m
This is the sort of thing the mouse is actually rather good for. Though you're
probably better using Ctrl+B to embolden than you are the toolbar or menu.

~~~
mtdewcmu
It sounds like roughly the best case for the mouse and roughly the worst case
for the keyboard.

------
gwu78
If I could upvote this, I would.

Text-only browser (no Javascript) means I cannot upvote.

This might be an unpopular opinion, but it is one based in real experience: If
you can ditch the mouse, then you can ditch the GUI.

I have not used a mouse on my personal computers in over 20 years.

This transition started as an experiment when I was sitting in an airport with
a laptop back in the late 90's.

Remember those tiny joysticks implanted in the keyboards?

I decided to stop using them.

Then I started using PC's without using the mouse.

Then I stopped even connecting a mouse.

That eventually led to ditching the GUI and staying in VGA textmode.

Today the whole process is easy because we can own many inexpensive personal
computers.

I keep at least one personal computer with a GUI but it is not directly
connected to the internet and usually not even connected to the LAN.

When connected, its gateway is always a wired computer "I control" with no
GUI, no touchscreen, no mouse, no trackpad driver, no wifi driver, no
bluetooth driver, etc.

My non-GUI computers run from USB stick or SD card. Root filesytem embedded in
kernel. Working filesystem (chroot) is RAM (tmpfs). No SSD or HDD required. No
third party DNS required. IP forwarding is compiled into the kernel so I can
turn it on or off should I wish to use as a gateway.

~~~
khedoros1
You sound like you have a set-up that you've planned in support of a specific
goal. What exactly is that goal? A lot of that sounds like it would make doing
what I like doing on computers difficult.

------
Jerry2
After I discovered extensions/addons for vim-like control of browsers few
years ago, I've completely changed how I browse the web. I rarely even use the
mouse anymore. Only when I want to save an image or save a file (from a
misconfigured server that doesn't auto-download) do I still use a mouse. For
everything else, you simply don't need a mouse at all.

My favorites:

vimari - Safari port of vimium:
[https://guyht.github.io/vimari/](https://guyht.github.io/vimari/)

vimium for Chromium:
[https://chrome.google.com/webstore/detail/vimium/dbepggeogba...](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en)

VimFX for FF: [https://addons.mozilla.org/en-
US/firefox/addon/vimfx/](https://addons.mozilla.org/en-
US/firefox/addon/vimfx/)

~~~
metaobject
I'd love to use emacs key bindings to browse the web. Anyone have good
suggestions?

~~~
Jerry2
If you use Firefox, try Firemacs [1]. I don't know if there's something
similar for Chromium.

[1] [https://addons.mozilla.org/en-
us/firefox/addon/firemacs/](https://addons.mozilla.org/en-
us/firefox/addon/firemacs/)

------
YeGoblynQueenne
I find this completely pointless. You wean yourself off the mouse when you
have to use the keyboard for most of the work you do. Trying to trick yourself
to do "the right thing" (if that's what this is about) is just silly.

I use the keyboard almost exclusively, and even had colleagues remark on it
rather impressed about it I guess (I don't mind the hacker cred, let's be
honest here). I never had to force myself, or try silly tricks to drop a
habit. I just found myself in situations where either there was no mouse, or
it was more convenient to use the keyboard.

First I was forced to use runlevel 3 only, for three months (gpu died and I
didn't have any money). Then I had a long commute with only a wimpy netbook
with Fedora ...14, I think? With Xmonad on it (because it's damn light). Then
I had a job that was done best over a network with powershell and windows
remote. Then I had to do a lot of text processing and it was best done using
Vim [1]. Then I spent a year on Z/Os where you can use a mouse but the point-
and-shoot fields are much more convenient most of the time (except for
copy/pasting, strangely). Then I noticed the Windows' 10 tiling desktop
manager and there was much rejoicement (it's gotta be a deliberate Xmonad
ripoff!). And now of course Windows has a bash shell so there's never any
reason to leave the command line. Yay!

On the other hand, it's true that prolongued mouse use hurts my wrist and I am
a bit worried that I might get RSI in the long run, so I'm conciously keeping
my keyboard habbit fed. I guess what I'm saying is that the main thing you
need is a good reason to drop the mouse, rather than a silly carrot-and-stick
approach.

________________

[1] There I did force the issue a bit. I could have used Notepad++ but I was
impressed with how a colleague was using vim and I wanted to use it too, so I
resolved to make it my main text editor. Then again that's just more of the
same: to learn vim I used vim in my everyday work.

~~~
kleiba
Anecdotal counterexample: I wanted to learn to use Emacs' keyboard shortcuts
for moving the point rather than the arrow keys or page-up / page-down.
Leaving aside the question of how useful such a practice is, I only managed to
reach my goal once I turned off the arrow keys in Emacs, so that I was forced
to "the right thing".

I would argue that it wasn't so silly to do this for my personal use, I'm
quite happy with the result.

~~~
mst
Similarly, I've found that getting people to learn how to use vim's movement
keys is much easier once I persuade them to add

    
    
        inoremap <Left>  <NOP>
        inoremap <Right> <NOP>
        inoremap <Up>    <NOP>
        inoremap <Down>  <NOP>
    

to their .vimrc

~~~
YeGoblynQueenne
[Edited heavily from initial comment]

That's not just pointless, that's actively harmful. The only thing you achieve
in this way is to make it harder for people to see any benefit in learning to
use vim, and I question your motivation in doing so.

Vim is useful because it lets you achieve a lot with minimal effort. That it
takes some time to learn to use it well is an inevitable side effect of the
breadth of control it gives you, and not something to be celebrated in its own
right.

 _There is no One True Way_. If you can put that in a shortcut, I strongly
urge you to do it, and use it ten times a day until it really sinks in.

~~~
mst
[This is a reply to the 'edited heavily' version, I didn't see the original]

> I question your motivation in doing so.

The users in question wanted to get into the habit of using hjkl because you
can do things like 23j more easily with them. My motivation was to help them
do so.

My suggestion helped them achieve that, and once it had, they removed the
config lines again. And thanked me for the help.

> There is no One True Way. If you can put that in a shortcut, I strongly urge
> you to do it, and use it ten times a day until it really sinks in.

I agree that there's no One True Way. Which is why your a-priori assumption
that this couldn't possibly help people when I already know it can seems
strange to me; I'm sure it wouldn't help _everybody_ , but the specific people
I picked got on fine with it.

~~~
YeGoblynQueenne
Fair point- if it worked for them, it worked for them. I just thought it
sounded a bit sadistic, that's all.

~~~
mst
For some people it would definitely be sadism. I don't try and convince people
I believe that would be true for to try it.

OTOH, watching a partner of mine play with movement commands after they'd
internalised hjkl and spending the next half hour navigating around a document
while giggling and grinning at me ... definitely demostrates that isn't
universal.

I am, honestly, struggling to be polite after you called me making somebody I
was in love with happy actively harmful and called my motivations into
question rather than considering that there might me more than one way to
learn it, but OTOH you're clearly acting in good faith so I hold no animus
towards you for your mistake.

~~~
YeGoblynQueenne
I am not struggling at all to be polite. There's rarely good reason to be
impolite.

I meant actively harmful towards vim's reputation as a useful editor, not to
the person you're in love with, whom of course I have not been acquainted
with.

Your original comment gave me little context to judge your motivation other
than "I told some people to disable their arrow keys". Which I find
unnecessary, so I questioned your motivation: literally, I could not
understand why you did that.

------
nprescott
This is a cute idea. One thing I notice, it cycles the brightness higher every
6.666 seconds regardless of where it began until it reaches 100%. I only
notice because I rarely have the brightness at 100% and it was a little
disconcerting watching it become _more_ bright over time.

I'm now thinking of how you might make something similar for ratpoison[0]

[0]: [http://www.nongnu.org/ratpoison/](http://www.nongnu.org/ratpoison/)

~~~
saagarjha
Looks like someone's already on it:
[https://github.com/brhs/nomouse/pull/2](https://github.com/brhs/nomouse/pull/2)

------
orionblastar
I have worked in IT a long time. I learned during the 1980s as a teenager with
a Commodore 64 at home and Apple 2 and IBM PCs at high school. This was before
the GUI. Everything was text based and shortcut keys.

I remember people claiming that the GUI makes people lazy and dumber. There
was an article called "Does the Mac make you stupid?" At the time were they
split an English class in two and half used a Mac and the other half a DOS PC.
The students who used the Mac had made more errors and got lower scores than
those who used the PC. Then the students switched places and computers and
those who used the PC had higher scores and the Mac lower scores. It was a big
debate and flame war on the BBSes at the time.

[http://jan.ucc.nau.edu/~lrm22/technology/stupidmac.html](http://jan.ucc.nau.edu/~lrm22/technology/stupidmac.html)

It was a MacWorld article I scanned to a PDF one time but lost it. I had
photocopies from 1990 that I scanned in a few years ago or so.

Keyboard shortcuts can speed up work but to a user who is not computer savvy
they need the mouse and GUI.

As a programmer my goal always was to make things easier for the user where
they don't have to think to use my UI UX etc that it is intuitive.

~~~
redsummer
If anyone could find the original Levy article, I would be interested. GUIs
create a sort of 'Learned helplessness', where people are deliberately
handicapped in their knowledge. It's as if you never learnt to read, and
relied on an app which reads text with a speech synthesiser.

~~~
orionblastar
I think the whole magazine is here:
[https://ia801307.us.archive.org/16/items/mac_MacWorld_9011_N...](https://ia801307.us.archive.org/16/items/mac_MacWorld_9011_November_1990/MacWorld_9011_November_1990.pdf)

That is the PDF version.

[https://archive.org/details/mac_MacWorld_9011_November_1990](https://archive.org/details/mac_MacWorld_9011_November_1990)

Page 69 is where it starts, IIRC.

It was very contralesional when it came out, The PC had DOS and the Mac had
the GUI before Windows 3.X got very popular.

The irony now is that everyone uses a GUI, is it just the Mac GUI that makes
people stupid or is it every GUI out there?

I'm trying to teach friends and family members to fill out forms online. While
it is very easy for me, for them it is not so easy. If they want a job, they
have to fill out forms on a website.

------
ajasmin
I doesn't say but this is for the Mac.

~~~
andreiglingeanu
Yeah, it does indeed. Would love to see a solution for reliably starting that
thing at system startup. Also, would be nice to be able to pause it for a
period of time.

~~~
xbryanx
Launchd is your friend here. Good tutorial:
[http://www.launchd.info/](http://www.launchd.info/)

~~~
andreiglingeanu
Thank you, stranger!

------
xchaotic
Have you found any parts of the OS or your workflow that are really hard
without the mouse? I can do keyboard in terminal and text editors, but
browsers are so so and Windows RDP is where it all fails the worst for me...

~~~
bmpafa
have i got good news for you:
[https://vimium.github.io/](https://vimium.github.io/)

~~~
nhumrich
I use this (well, the equivalent for FF), and it's great, but it doesn't work
for every site or button. There are a lot of js buttons that don't get link
anchors when you press f. So navigating is still something not possible
without a mouse.

~~~
akio
I don't know about the Firefox version you're using, but Vimium on Chrome
works with `onclick` buttons.

------
Koshkin
Interestingly enough, there has been an opposite trend, in software
engineering, to have the user rely on the mouse for pretty much everything
except typing text. One curious example is Plan 9's text editor called _Acme_
, where to perform certain actions you even have to click more than one mouse
button simultaneously, a.k.a.'chords'. (I am not sure how long an average
mouse would be able to withstand this kind of abuse.)

~~~
stephengillie
I use a mouse with a 12-key thumb pad to move part of the keyboard onto the
mouse. Under my thumb are these keys:

    
    
      F5   Up   F2
      Left Down Right
      Tab Delete Backspace
      Enter Space ESC
    

Using this, I can click any page or terminal window, and quickly navigate,
while others are still finding their keyboard with their hand. This helps
maintain the state of flow while enabling the random selective capability of a
mouse.

~~~
microcolonel
I think I would sweat bullets if I knew there were an enter key on my mouse,
but to each his own.

------
un-devmox
What always bugs me is that finding complete documentation of keyboard
shortcuts for whatever program I'm using can be a battle. Better documentation
for many apps would be greatly appreciated.

As a side note, I've battled carpal tunnel and tennis elbo for years. One
thing that has helped, besides keyboard shourcuts (and many other things) is
using an upright mouse on my right and a track pad on my left.

------
fvargas
One of my most used shortcuts is Cmd+L/Ctrl+L to highlight the URL bar in
browsers. This is a default in most browsers

~~~
blunte
Absolutely.

cmd-t, cmd-l, cmd-v, return. Bam!

------
jmjanzen
Can't speak to the implementation, but the idea seems pleasantly cheeky,
lighthearted, and perhaps even useful.

As for myself, I find the use of the mouse to be its own punishment.

------
mapcars
FYI [http://plan9.bell-
labs.com/wiki/plan9/Mouse_vs._keyboard/ind...](http://plan9.bell-
labs.com/wiki/plan9/Mouse_vs._keyboard/index.html)

------
alkonaut
A mouse is a terrific thing to use in the right context. Selecting an item
among thousands or clicking an arbitrary position (for drawing something or
selecting items in a graphical context) is an order of magnitude faster with a
mouse.

Navigating a complex webpage with the keyboard is painful even if tab order is
perfect.

Starting a command that you have a keyboard shortcut for is perhaps slower
with a mouse - so use the keyboard then. But I suspect I do more of the first
kind than of the second. And yes I'm a programmer.

------
chedabob
I've found this really useful: [http://www.hotkey-eve.com/](http://www.hotkey-
eve.com/)

------
colanderman
For those using X11 who wish to replace keyboard-shortcutless mouse clicks
with keystrokes, I humbly suggest my own project SNAM:
[https://chris.pacejo.net/programs/snam](https://chris.pacejo.net/programs/snam)

~~~
kentt
Oh my. I've needed this so badly. There are so many little things that still
obstinately need a mouse even after I've almost completely done away with one.
Thank you so much.

------
israrkhan
My solution is not to connect a monitor to my dev-machine and use ssh/tmux to
do most things. It also makes work-from-home easy, as I can loginto my devbox
from anywhere. But then it depends on what type of work you are doing, and how
you are testing it.

~~~
tqkxzugoaupvwqr
Do you use an IDE on the client (the machine you connect from) and only have
sources on the dev machine, or do you work completely in the terminal?

~~~
wyager
Many people I know just use text editors, no IDEs at all. Modern text editors,
whether text-only (vim, emacs) or graphical (Atom, sublime) have plugins to
replicate whatever IDE functionality you want anyway.

~~~
teddyh
What? Emacs is graphical!

[https://www.gnu.org/software/emacs/tour/](https://www.gnu.org/software/emacs/tour/)

~~~
terminado
Try typing the following into a terminal window, at the prompt:

    
    
      emacs

~~~
bitexploder
-nw helps :)

------
a3n
I live in the terminal (and the browser), I use the command line, vim in the
terminal. I don't like vimperator, but I do use the VimFX addon for simple jk
control of scrolling. And I use the awesomewm tiling window manager.

Some people, when hearing or seeing that, assume that I don't like to use a
mouse.

I love my mouse, and it's sitting right there on the couch cushion next to me.
Some things, like cut/paste between tmux windows, or between terminal and
browser, are just easier with a mouse.

I do try to minimize how much I _have_ to use a mouse, but I use whatever my
hand is closest to. Sometimes I scroll the browser with the keyboard,
sometimes with the mouse.

I attach zero pride to my use or non-use of the mouse.

------
felipemesquita
This screen dimming idea seems anoying just the right amount to discourage
other kinds of behavior, like cheking emails in the morning or opening a
twitter client during some predefined supposedly porductive time window.

------
Flammy
Hrm... I think I'll bookmark until April Fools day...

------
navs
Another strategy: Use a laptop with a terrible touchpad. Being a longtime
Macbook user now switching to non-Mac laptops, I just don't find my current
Lenovo X1 touchpad to be in the same league. It feels slow and unresponsive.
But the keyboard is marvelous. I rarely use my mouse and when I do it's mostly
to click items that don't have attached shortcuts.

------
megapatch
Glue a push pin on each mouse button, pointy side up.

Cheap, very fast learning guaranteed.

------
SNBasti
Forcing yourself to this approach seems kinda sucking all the fun out of it. I
am "fluent" with many hotkeys and love Vim but sometimes I prefer just
clicking around...

------
dc2
This needs a Windows build, as Windows users need this the most.

------
andrepd
Making you less unproductive to theoretically eventually make you more
productive somewhere down the line. Love it!

------
jasonkostempski
It should also make a thwump followed by ringing ears sound so it's like
getting knocked in the head.

------
skaplun
Shower thought.. what about a keyboard with an application launcher inside it?

~~~
bartvk
You mean just for launching apps? Basically I think there's nothing faster
than Spotlight; Cmd-Space, then type the first one or two letters of the
application name and hit Enter.

------
k__
Reminds me of my first day as a programming intern.

All the older devs where blown away by my mouse usage speed.

I guess a skilled shortcut user is faster than a skilled mouse user, but I
still can outperform the average shortcut user :D

thanks to years of FPS and RTS games.

------
redsummer
Shortcat - [https://shortcatapp.com](https://shortcatapp.com) \- lets you
access nearly all parts of Mac GUI from the keyboard.

Together with the 'Command + Shift + ?' help menu, you don't need a mouse.

There's a lot of good info here:
[https://github.com/orta/keyboard_shortcuts/blob/master/READM...](https://github.com/orta/keyboard_shortcuts/blob/master/README.md)

~~~
hugodahl
I'll second the Shortcat recommendation. Got a license pretty much as soon as
I installed and used it (after the trial period, because I can be stingy).
Between it and Alfred, I can do most everything I need from the keyboard.

For me, the most obvious/immediate "bang for the buck" is enabling bluetooth
when I sit at my desk. If I don't, and use my Macbook from the living room,
the distance is _just_ awkward enough, on bad RF interference days, to
continuously get the "Connection lost" and "Reconnected" message for the
mouse.

------
grabcocque
Perfect for my inner technopaleoconservative

