CLOSED: [2018-06-18 Mon 18:40] :PROPERTIES: :CREATED: [2018-06-18 Mon 18:00] :ID: 2018-06-18-Miro-talk :END: :LOGBOOK: - State "DONE" from "NEXT" [2018-06-18 Mon 18:40] :END: At the [[https://entropia.de/GPN18][Gulaschprogrammiernacht 18]] [[https://twitter.com/eumiro][Miroslav Šedivý]] did [[https://media.ccc.de/v/gpn18-98-one-brain-one-keyboard-one-editor][an inspiring talk about keyboard and shortcut setup optimization for multiple-language settings]]: #+BEGIN_EXPORT HTML #+END_EXPORT *** What I've Learned The first five minutes of the talk are truly amazing, even when you don't have any clue about keyboard layouts, vim, and IT in general. The [[https://en.wikipedia.org/wiki/Compose_key][compose key]] is a powerful tool to type characters like ⅘, ¢, °, and so forth. With Linux, it is easy to set-up. My [[https://en.wikipedia.org/wiki/Xfce][xfce]] offers a drop-down for an optional compose key in the keyboard settings dialog. For Windows, [[https://www.startpage.com/do/search?q=windows+compose+key][there seem to be solutions]] like [[https://github.com/samhocevar/wincompose][this one]]. Mapping right control key to compose seems a reasonable choice from my perspective, since I never use the right control key and it offers a good choice for a not so frequently used compose key. For many people, it is clever to [[https://github.com/alols/xcape][configure your operating system]] so that pressing the left control key once without any other key, it is interpreted as an ESC key. To me, this would not bring that many advantages I guess. I found it very interesting when Miro explained the origins of =hjkl= as arrow keys on the keyboard. I did not know the connection to the ASCII table up to character 32 and early computing terminals. [[https://neovim.io/][Neovim]] looks like a cool replacement for my beloved [[https://en.wikipedia.org/wiki/Vim_(text_editor)][vim]]. I especially liked the way Miro is able to expand its functionality using Python scripts when working with [[https://en.wikipedia.org/wiki/Mutt_(email_client)][mutt]] as I do like [[id:2007-08-06-remote-URL-opening][here]] or [[id:2015-02-01-muttfilter][here]]. His method to add dotfiles in his $HOME to a [[https://en.wikipedia.org/wiki/Git][Git]] repository is really clever: #+BEGIN_EXAMPLE alias config='/usr/bin/git --git-dir=$HOME/.dotfile/ --work-tree=$HOME' git init --bare $HOME/.dotfiles config config --local status.showUntrackedFiles no # optional: git remote add ... config add .config/nvim/init.vlm # commit, branch, ... #+END_EXAMPLE *** My Personal Setup :PROPERTIES: :END: So far, I am using US international keyboard layout with [[https://en.wikipedia.org/wiki/Dead_keys][dead keys]]. The only customization I do is to map the CAPS LOCK key (I never use) to an additional control key (which I use all the time). Remapping the CAPS LOCK key [[id:Tod-dem-CAPS-LOCK!][is easy]]. With this, I am able to type the most important special characters without any further modification and in a mnemonic way: ="o= → ö, AltGr and =5= → =€=, =`e= → =è=. Within Emacs, I am using [[https://github.com/mrkkrp/char-menu][char-menu]] to [[https://github.com/novoid/dot-emacs/blob/master/config.org#char-menu---insert-special-characters--f4][insert various frequently used Unicode characters]]. For the rest, I am using =M-x insert-char= which lets me search for any kind of Unicode character there is. I have to admit that having the advanced input method in all applications would be worth a setup investment. However, I seldom type text outside of my Emacs which significantly reduces the need for any change at the moment. I might look into neovim some day, although my current vim setup satisfies me resulting in no need for change here as well. For my dotfiles, I developed a git-less concept with symbolic links and shared config files using [[https://www.cis.upenn.edu/~bcpierce/unison/][unison]] and/or [[https://syncthing.net/][syncthing]] across all of my hosts. Therefore, my other hosts are my backups which allows me for reverting changes I don't like. I most probably would not use git branching and so forth for it. With the [[https://github.com/novoid/dot-emacs][exception of Emacs]], my dotfiles are quite static.