Giter Club home page Giter Club logo

dotfiles's Introduction

bugeats/dotfiles

Now managed by yadm, which is pretty nice.

My environment is based around alacritty, tmux, and neovim. xmonad on Linux. Divvy on macOS.

Default Keybindings

xmonad https://xmonad.org/manpage.html kakoune https://github.com/mawww/kakoune/blob/master/doc/pages/keys.asciidoc tmux https://gist.github.com/mzmonsour/8791835 tmux-tilish https://github.com/jabirali/tmux-tilish i3m https://i3wm.org/docs/refcard.html

Kakoune keybindings that use control: MANY

Key binding strategy

There are three nested layers in which operations are performed.

  • OS Window Manager (xmonad, amethyst)
    • Application Context (tmux, chromium)
      • Application Operations (kakoune, neovim)

Super - OS Window Manager (xmonad, amethyst) Control - Application / tmux Space - Application Context / neovim

The goal is to have keys perform the same conceptual operation within the given layer. Where X is the modifier to target a layer.


Key combos that feel good on the fingers (Kinesis Advantage custom layout) in order:

  • [Super] + [Shift] - Target OS window manager

    • macos: amethyst
    • linux: xmonad
  • [Alt] + [Shift] - Target application context

    • chrome: tabs
    • tmux: tabs, panes
  • [Ctrl] + [Shift] - Target application actions

    • kakoune: user mode bindings
    • neovim: leader bindings

By always using the [Shift] modifier, we avoid conflicts with most existing app and OS keybindings.

Keys that should be left alone (used by misc apps):

  • Ctrl
  • Alt
  • Alt

DONE

  • X-n - (n)ew item (xmonad window, tmux session, neovim tab)
  • X- - jump to (xmonad workspace, tmux tab, neovim tab)
  • X-0 - show all available (xmonad windows, tmux sessions, neovim buffers)
  • X-g - to(g)gle minimalist layout (xmonad panel gap, tmux status bar, neovim focus mode)

TODO

  • X- - jump to

    • xmonad: jump to workspace
    • tmux: jump to (or create) tab
    • kakoune: jump to (or create) buffer (TODO)
    • neovim: jump to tab
  • -j - move down

    • xmonad: focus next window
    • tmux: focus next pane
    • kakoune: open next buffer
  • -k - move up

    • xmonad: focus prev window
    • tmux: focus prev pane
    • kakoune: open prev buffer
  • -h - move left

    • xmonad: expand window size
    • tmux: expand pane width
    • kakoune: ???
  • -h - move right

    • xmonad: shrink window size
    • tmux: shrink pane width
    • kakoune: ???
  • -s - split horizontally

    • xmonad: split into sub-layout horizontally
    • tmux: split pane horizontally
    • kakoune: ???
  • -v - split vertically

    • xmonad: split into sub-layout vertically
    • tmux: split pane vertically
    • kakoune: ???
  • -g - toggle minimalist layout

    • xmonad: show/hide desktop panel
    • tmux: show/hide status bar
    • neovim: toggle GoYo
    • kakoune: ???

X-Tab - rotate between (xmonad window, tmux tab, neovim tab) X-Shift-Tab - " reversed

X-. - rotate layout (xmonad layout, tmux ???, neovim ???) X-, - " reversed

X-Up - move workspace focus (xmonad display, tmux window) X-Down - " reversed

X-Left - resize workspace (xmonad display, tmux ???, neovim window) X-Right - " reversed

X-w - close focused item (window/tab) X-n - new item (window/tab) X-/ - deep search X-p - fuzzy search X-:, X-; - Command Prompt

X-q - soft quit (confirm) X-Shift-q - hard quit

X-c - kill / stop / SIGINT


[MacOS:Command] [MacOS:Option] [MacOS:Control]

[Linux:Super] [Linux:Alt] [Linux:Ctrl]

Keys used by applications.

Kakoune

  • Alt
  • Ctrl

MacOS

  • Alt
  • Ctrl
  • Ctrl

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.