Giter Club home page Giter Club logo

configuration's Introduction

Table of contents

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)
  • 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
    • & @ ^ $ ! ( ) [ ] { } < > …
  • 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

Coherence

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

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.

configuration's People

Contributors

chimay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.