Also, check this out: https://github.com/jwilm/i3-vim-focus
As for remembering keybindings, what I did was comment/remove all but the basic keybindings from i3, then added them back in when I needed them. The only ones I really use are left/right to rearrange windows, moving items to a new desktop, moving to the new desktop, and closing windows.
If your going down this rabbit hole, you might want to look at rofi (as a launcher), i3lock-color and i3blocks, which lets you put any script onto a bar at the top or bottom of the screen. This is also a good chance to remove everything, and add it back in when needed. Things I have on my bar are cpu usage, date, time, wifi, a toggle for num/caps lock, a vpn indicator to show when I'm connected, as well as one showing when my webcam is plugged in or on.
Having all these things with config files makes managing them really easy with config management. I use Saltstack personally to keep terminal config, desktop setup and packages consistent across work and home. This helps me remember shortcuts if I can expect them to be the same on all PCs I use.
Im using windows key for i3 and ctrl space for tmux and i cant say ive ever experienced any problems.
I strictly use i3 for displaying windows at certain monitors and stacking windows
Besides. If I'd remap anything to capslock it'd be escape, but thats down to Vim.
I understand the concern. This does trip me up from time to time, as do other UI preferences such as tracking speed and scroll direction. How much time do you spend (both frequency and duration) using others' computers? Regardless, I suggest you give it a try to see how often it actually does cause an issue, and whether or not it's manageable. Of course, YMMV. It's a trivial change to revert if it doesn't work for you. I know for me personally it's been a substantial overall win to remap caps lock.
Typically, the context shift requires no more than 5 minutes, and usually 0 minutes, for me to stop making mistakes. In my experience, the fact that I don't have the precise same physical keyboard helps a ton. My primary office desktop keyboard is different than in the labs (where I have less control), and different than my home laptop. So what I'm typing on feels different and I'm able to quickly adjust.
It takes some practice, I won't lie, but after a few weeks you'll probably not be making any major mistakes.
Ctrl-T, Ctrl-G, Ctrl-B, Ctrl-Y, Ctrl-H and Ctrl-N should never be used for control key sequences except for something invoked rarely (and certainly not at the beginning of each command).
Besides, Ctrl-B is not even logical. It was decided upon as "well, screen uses Ctrl-A, so we'll use Ctrl-B". Zero concerns about usability.
C-b, for me, is deeply ingrained as cursor navigation - in the terminal, Emacs, Conkeror, and even general GTK+ widgets.
Edit: I don't experience hand strain though. I have caps-lock as Ctrl, and I use the Colemak keyboard layout.
I don't know why everybody seems to hate the arrow keys; I am a blind typer, and I definitely get more strain from emacs control sequences than from CUA and arrow keys.
I would have used vim, but pressing Esc to switch between modes is akin to feeling an unwanted electrical jolt; breaks the flow in 100% of cases. And I like my flow.
set-option -g prefix `
if you are on a remote box, I simply do a (c-b : and type it)
although if you share this with other users that probably get them angry
It's basically just the detach / attach functionality of tmux or screen, without any of the window/frame handling functionality.
(often paired with dvtm but will also work for other setups)
Eventually I settled on stumpwm because the default bindings didn't interfere. In the same way Emacs commands often start with a C-x followed by some other key (e.g. C-x C-c to quit), stumpwm prefixes every command with C-t. So to split a pane, you do C-t s, then C-t n to jump to the next pane, C-t k to kill the window in the current pane, etc. The only thing it conflicts with is opening a new tab in a browser, and you can accomplish that by hitting 'C-t t' which quickly becomes second nature.
The other alternative is to use a mouse-oriented WM like fvwm or rio, but that's easy and doesn't involve memorizing dozens of key bindings ;)
I'm thinking I can have a key combination load a config file, which will include loading the command mode key bindings and some visual indication of entering a command mode; another key combination unloads them and returns to an "insert" mode.
mode "pause" {
bindsym Escape mode "default"
}
bindsym $mod+p mode "pause"
That should show a 'pause' indicator in the i3 bar when you press $mod+p, and unpause when you press escapeCapsLock -> Hyper -> mod3 (used for i3wm) Alt+key (used for tmux) Ctrl+key (as usual in vim)
one tmux lifesaver is this one for me:
# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
I think you should just explore various dotfiles. does not take much time that way.
But, even better, I think I can make tmux and i3 modal by mapping config switching to a keybinding. In this way they can be put into a command mode and all keybindings in command mode can be shared. Include a visual indicator and I think it'd work really well.
I also agree with OP on keeping with Vim defaults. Simply because you are more likely to find yourself behind a non-configured Vim than a non-configured tmux.