Skip to content

Latest commit

 

History

619 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#+STARTUP: showall

#+TAGS: TOC(t)

* Table of contents                                                     :TOC_2_gh:
- [[#configuration-files][Configuration files]]
- [[#keybindings][Keybindings]]
  - [[#prefix--modes][Prefix & Modes]]
  - [[#allocation][Allocation]]
  - [[#coherence][Coherence]]
- [[#features][Features]]
  - [[#the-classics][The classics]]
  - [[#vifm][Vifm]]
  - [[#tig][Tig]]
  - [[#kitty][Kitty]]
  - [[#bspwm][Bspwm]]
  - [[#i3-wm][I3 wm]]
- [[#warning][Warning]]

* Configuration files

Content :

- a coherent set of configuration files for my favorite apps.
- little autoloaded functions for vim & neovim

* Keybindings

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


** Prefix & Modes

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


** Allocation


*** Window Manager

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)
  - Super with Shift and
    + Any key(s)
  - Prefix chosen among the previous keys
  - Sub mode entered with one or more of the previous keys


*** Applications

The following keys are reserved for applications :

  - Super with all other keys
    + Letters
    + Digits
    + Insert, Delete, Space, Return
    + & @ ^ $ ! ( ) [ ] { } < > ...
  - Prefix chosen among the previous keys
  - Sub mode entered with one or more of the previous keys

** Coherence

To be as intuitive as possible, some conventions are applied :

  - Move focus between desktops :
    + Hyper + page up / page down
  - Move focus between X windows :
    + Super + arrows
    + Super + prior (page up) / next (page down)
  - Move focus between tmux panes & vim :
    + Control + arrows
    + Also in emacs
  - In tab oriented applications, move focus between tabs
    + Ctrl + page up / down
    + In pager context : ^ and $
      * w3m, elinks, vifm, ...
  - Move in history
    + In pager context
      * Backspace = back
      * Shift-Backspace = forward
      * 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
  - Filters
    + &, é, è
  - Most Recently Used
    + ù
  - Tree / Structure exploration
    + §

* Features

Comments on applications.

** The classics

  - Vim & family : Neovim, Kakoune
  - Emacs with Org mode and torus.el
  - Zsh
  - Tmux

** Vifm

  - Deep analogy with Vim keys
  - Views
    + Dual-pane, vertical or horizontal
    + Tree view (like the tree command)
    + Grid view (ls view)
    + Miller view with 3 panes, like ranger
    + Preview mode
      * Also of images with [[https://github.com/cirala/vifmimg][Vifmimg]] & [[https://github.com/seebye/ueberzug][Ueberzug]]
  - 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
  - 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


** Tig

  - Feature rich git repo browser
  - Views
    + Commits
    + Diffs
    + Log
    + Tree
  - Cope well with external programs
    + User commands :... and :!...

** Kitty

  - 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

** Herbstluftwm

  - Scriptable via herbstclient
    + You can litteraly juggle with windows
  - Modes
    + Tiling and floating
    + Monocle or tabs mode : only one window visible
    + Full screen
  - Automatic properties of windows : workspace, floating, ...
  - Multi monitors support
  - Keybindings
    + Managed by herbstluftwm and sxhkd
    + Support of Super and Hyper keys
    + Keybinding chains with sxhkd
  - Panels (bars) : polybar
    + Custom scripts
    + IPC, polybar-msg to send commands, hooks
    + Good choice of internal modules
    + Menu

** Bspwm

  - 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)

** I3 wm

  - 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


* Warning

I try to be mindful when I code, but some bugs might remain, so be careful.

Releases

Packages

Contributors

Languages