Mouseless
Mapping keys
It’s usually reasonable to remap CAPS LOCK to something more useful.
A simple option is Ctrl
.
An advanced option (if available) is Tap&Hold:
configure CAPS LOCK key to behave as Esc
when tapping
and as Ctrl
when holding.
With my Kinesis Advantage360 it’s not well supported unfortunately.
I map CAPS LOCK to Mod4 key which is used in my Awesome window manager.
Before I used xmodmap
for the mapping,
now it is mapped directly in the keyboard configuration.
Xmodmap
xmodmap -e "clear Lock"
xmodmap -e "keycode 66 = Hyper_L"
Keyboard layouts
I am using QWERTZ. by pressing a sequence of keys, e.g.
Composition key
Compose key is a key which allows you to type special characters
Compose
+ "
+ a
= ä
or
Compose
+ >
+ >
= »
or
Compose
+ c
+ =
= €
.
Or hundreds of other combinations.
Tiling window manager
Let the window manager manage your windows without a need of dragging your windows with mouse.
A lot things can be
configured
(via rc.lua
and with plugins).
I am using tile.left
layout 99% of time.
It can handle external monitors well.
E.g. mod4+o
sends the active window to the other screen
(and since the focus follows the window, by repeating you can
toggle position of the current window between your screens).
Opening a new terminal is a matter of mod4+Enter
.
CLI, terminal emulator, gnome-terminal
For quick computations I always invoked python
and wrote an expression.
Then I added this into my .bashrc
and I can write e.g. c 123+234*345/456
:
c() { printf "%s\n" "$@" | bc -l; }
I am using Gnome-terminal so
I can quickly open another terminal in the current working directory
with Ctrl+Shift+n
.
Bash
You can enable vi key bindings with set -o vi
in .bashrc
.
Or globally with set editing-mode vi
in .inputrc
.
Note, that Ctrl+L
in insert mode won’t work,
you need to switch to command mode first.
Tmux, GNU screen
The multiwindow/terminal capability of these multiplexers is not so important when I am working with the tiling WM and locally (I am turning off my laptop every day so the session persistence is not granted).
What is cool for the mouseless work is the copy mode with vim bindings.
There are some tool to help you with it, e.g. tmux-fingers.
Fuzzy search
Only recently I started using fzf
extensively and it is a huge time-saver.
Alt+c
for fuzzy change directoryCtrl+r
for fuzzy search in command historycommand \*\*<tab><tab>
It can save a lot of typing when manipulating files in terminal.
Vim
I use Vim most of my screen time on computer, for mouseless work this is a nobrainer. I have no experience with Emacs.
I learned recently you can open a URL in a browser with gx
.
Using fzf
in Vim is easy with
fzf.vim plugin, then you can use Ctrl+p
or ff
to fuzzy search for a file to be opened.
You can send a text from Vim to standard input of an external command
and write the standard output to the buffer with :.!command
.
E.g. format text into a table with :.!column -t
.
I have this alias fvim='vim $(fzf)'
to quickly edit a file.
An alternative for copy-paste without a mouse from terminal is Vim’s terminal.
:ter
opens a vim terminal emulator, :vert term
in a vertical window.
Ctrl+w N
switches to normal mode in which you can copy and navigate
ior
awill switch back to normal terminal use which you can leave with
Ctrl+d` as usual.
Do not open Vim in that terminal. :)
Browsing
In Firefox I am using Vim Vixen.
I am yet to get used to qutebrowser which has native Vim key bindings and uses two mode browsing.
Other tools
Many mouseless tools (mail, RSS reader, spreadsheet, …) are also text-user-interface tools I use.
Resources
- Universal mouseless navigation
- Another
- Keynav
last modified: 2023-11-29
https://vit.baisa.cz/notes/code/mouseless/