Using Gnu Stow to manage dotfiles.
- window manager - pretty heavily patched version of dwm which you can find here
- notification daemon - dunst
- network management - NetworkManager - nmcli
- password management - keepassxc
- web browser - firefox-nightly with vimium and qutebrowser
- shell - zsh with grml config
- launcher - rofi
I like to keep my vim config simple but it still has grown quite a lot.
Plugins used:
- vim-gitgutter by airblade - shows git line changes in gutter
- vim-rooter by airblade - change the working directory to project root
- nord-vim by arcticicestudio
- base16-vim by chriskempson
- jedi-vim by davidhalter - for python programming
- tabular by godlygeek - great plugin to alignment
- fzf by junegunn - awesome fuzzy search plugin
- fzf.vim by junegunn
- tmux.vim by keith - syntax highlighting for tmux files
- vim-minisnip by KeyboardFire - simple snippet manager
- colorizer by lilydjwg - colorize text
- vim-gutentags by ludovicchabant - tags management
- tagbar by majutsushi - show tags in a sidebar
- jellybeans.vim by nanotech
- vim-sol by notpratheek
- vim-puppet by rodjek - puppet files handling
- vim-eunuch by tpope - UNIX helper commands
- vim-fugitive by tpope - git wrapper
- vim-surround by tpope - nice mappings
- vim-vinegar by tpope - better file browser
- targets.vim by wellle - additional text objects
- vim-gotham by whatyouhide
- deoplete-jedi by zchee - python completion
Config is pretty easy to understand and is divided in sensible sections. I am not using any heavy statusline plugins as I find them to be overkill. Weird parts in the config are commented, rest should be pretty self-explanatory.
set listchars=tab:\│\ ,trail:¬,extends:>,precedes:<,nbsp:+
- show indentlines in vimset inccommand=split
- show realtime changes with substitute commands - neovim onlyset virtualedit=inser,block
- allows you to position the cursor where there is no actual charactertnoremap <Esc> <C-\><C-n>
- Lets you exit from neovim terminal with ESC - neovim only
I use a prefix-less tmux config. Splitting and moving between panes is done with the alt modifier.
alt+w
- new windowalt+n
- move to the n-th windowalt+q
- kill current windowalt+{h,j,k,l}
- move between panes {left,down,up,right}alt+shift+{h,j,k,l}
- resize current pane {left,down,up,right}alt+m
- maximize current panealt+v
- split window verticallyalt+h
- split window horizontally
I am using konsole mostly because of ligature support and hassle-free config (both gui and config file). It mostly just works and that's great.
I start konsole with /usr/bin/tmux new-session -t konsolesession; new-window
as the starting shell making it automatically connect to the current tmux session and open new window in it.
This way all my opened terminals are connected to the same session.
With agressive resize turned off tmux windows are not automatically resized when viewed from different terminals.