Content :
- a coherent set of configuration files for my favorite apps.
- little autoloaded functions for vim & neovim
The keybindings are essentially vim, less or emacs like, depending on the context. For example :
- Vim
- Neomutt index
- Less
- Elinks
- W3m
- Neomutt pager
- Newsboat
- Emacs
- Zsh
- Elinks edit mode
Some applications :
- Can use an independant keymap introduced by a prefix key
- tmux
- Can chain keys
- sxhkd
- Can use independant keymap modes
- i3, tmux, emacs, vim
The following keys are reserved for Window Manager (i3, bspwm, …) :
- Hyper (Mod3, I bind it to the Menu key) with any key(s)
- Super (Mod4) with
- Arrows
- Page Up / Down
- Home / End
- Tab, Backspace
- F1 .. F12
- Super (Mod4) with any modifier(s) and same keys as above
- Super with Control and
- Any key(s)
- Prefix chosen among the previous keys
- Sub mode entered with one or more of the previous keys
The following keys are reserved for applications :
- Super with all other keys
- Letters
- Digits
- Insert, Delete, Space, Return
- & @ ^ $ ! ( ) [ ] { } < > …
- Super with Shift and same keys as above
- Prefix chosen among the previous keys
- Sub mode entered with one or more of the previous keys
To be as intuitive as possible, some conventions are applied :
- Move focus between desktops :
- Super + home / end
- Move focus between X windows :
- Super + arrows
- Super + prior (page up) / next (page down)
- Move focus between tmux panes & vim :
- Shift + arrows
- Also in emacs, but not in org files (org-shift<arrows>)
- In buffer oriented applications, move focus between buffers :
- Ctrl + page up / down
- In tab oriented applications, move focus between tabs :
- Ctrl + page up / down
- In pager context : ^ and $
- w3m, elinks, …
- In (neo)vim : <m-^> and <m-$> in normal mode
- In buffers & tabs oriented applications like vim with wheel or emacs with torus :
- Next / previous file in group : Ctrl + page up / down
- Next / previous group : Ctrl + home / end
- Move in history
- In pager context
- Backspace = back
- H = back
- L = forward
- In REPL context
- Up, M-p = back, with typed text as filter
- Down, M-n = forward, with typed text as filter
- In pager context
- Filters
- &, é, è
- Most Recently Used
- ù
- Tree / Structure exploration
- §
Comments on applications.
- Vim & family : Neovim, Kakoune
- Emacs with Org mode and torus.el
- Zsh
- Tmux
- Deep analogy with Vim keys
- Views
- Mount
- Archives with archivemount
- Handy to quickly edit a file in it
- Iso images with fuseiso
- Ssh file systems with sshfs
- Ftp file systems with curlftpfs
- And you have a great ftp client
- Archives with archivemount
- Can launch background programs
- You can cancel them in :jobs view
- Cope well with external programs
- User commands :… and :!…
- Tools to select and modify selection
- Feature rich git repo browser
- Views
- Commits
- Diffs
- Log
- Tree
- Cope well with external programs
- User commands :… and :!…
- Fast
- Scriptable, you can also open a Kitty shell to control the term
- Support keyboard shortcuts with super key
- Scrollback in pager
- Insert UTF-8 character with completion
- Good image support
- Quickly select url / file / line
- Plugins (kittens)
- Can be used as dropdown with kitti3 on i3
And much more
- Scriptable via bspc
- You can litteraly juggle with windows
- Configurable split ratio
- Possibility to circulate windows clockwise or counterclockwise
- Modes
- Tiling and floating
- Monocle mode : only one window visible
- Full screen
- Automatic properties of windows : workspace, floating, …
- Multi monitors support
- Keybindings
- Managed by sxhkd
- Support of Super and Hyper keys
- Keybinding chains
- Panels (bars) : polybar
- Custom scripts
- IPC, polybar-msg to send commands, hooks
- Good choice of internal modules
- Menu
- Dynamic layouts with bsp-layout (in AUR)
- Tiling, tabbed, staking and floating modes
- Tiling means all screen space is available for apps
- Good support for floating window, so you can use it as an hybrid WM if you want
- Dynamic workspaces
- Support of Super and Hyper keys in bindings
- You can define keybinding modes
- Automatic properties of windows : workspace, floating, size, …
- Scriptable via i3-msg
- You can add rofi scripts, or any script to the panel (called bar) via i3block ; see also i3status for information
- Multi monitors support
I try to be mindful when I code, but some bugs might remain, so be careful.