{"id":13897993,"url":"https://github.com/gerardbm/dotfiles","last_synced_at":"2025-07-17T15:31:47.291Z","repository":{"id":50932958,"uuid":"79682992","full_name":"gerardbm/dotfiles","owner":"gerardbm","description":"My *NIX dotfiles [i3wm, URxvt, tmux, zsh, rofi, cmus, irssi, vifm, mutt, feh, mpv, newsbeuter]","archived":false,"fork":false,"pushed_at":"2024-04-20T14:54:06.000Z","size":15256,"stargazers_count":55,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-07T18:44:58.397Z","etag":null,"topics":["cmus","compton","git","i3-gaps","irssi","mutt","neovim","tmux","urxvt","vim","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gerardbm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-01-22T00:47:09.000Z","updated_at":"2024-07-11T20:43:53.000Z","dependencies_parsed_at":"2024-02-22T00:37:07.771Z","dependency_job_id":null,"html_url":"https://github.com/gerardbm/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardbm%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardbm%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardbm%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardbm%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gerardbm","download_url":"https://codeload.github.com/gerardbm/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226274632,"owners_count":17598852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmus","compton","git","i3-gaps","irssi","mutt","neovim","tmux","urxvt","vim","zsh"],"created_at":"2024-08-06T18:04:00.021Z","updated_at":"2025-07-17T15:31:47.283Z","avatar_url":"https://github.com/gerardbm.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# ~/dotfiles for Debian and i3wm\n\n![screenshot01](https://github.com/gerardbm/dotfiles/blob/master/images/Cosmic-Lunar-Mode.png)\n\n![screenshot02](https://github.com/gerardbm/dotfiles/blob/master/images/Cosmic-Solar-Mode.png)\n\nThis repository uses **stow** hierarchy: clone it into `$HOME` and use `stow --no-folding \u003cpackage\u003e` to create the symlinks automatically for each package. For more information about stow read its documentation: `stow(8)`.\n\nColor schemes and vim/neovim files are not into this repository. Find them into:\n\n- Color schemes: [cosmic](https://github.com/gerardbm/cosmic)\n- Vim/neovim: [vimrc](https://github.com/gerardbm/vimrc)\n\nConfiguration files:\n\n```\n- Distro      : Debian\n- WM          : i3-wm (i3-gaps)\n- Menu        : rofi\n- Shell       : zsh\n- Terminal    : urxvt, xterm\n- Multiplexer : tmux\n- Font        : Terminess Powerline\n- CVS         : git\n- Editor      : vim, neovim\n- Files       : vifm, ranger\n- Finder      : fzf\n- Youtube     : ytfzf\n- IRC         : irssi\n- Email       : mutt\n- Music       : cmus\n- Video       : mpv\n- Images      : feh\n- Reader      : mupdf, apvlv, zathura\n- Browser     : w3m\n- Interface   : surfraw\n- Bittorrent  : transmission-cli\n```\n\n## Setup\n\n### Debian\n\n**Add the user to the sudoers file**\n\n1. Enter to the root mode: `su -` (then, root password)\n\n2. Edit the file `/etc/sudoers`:\n\n`sudo visudo -f /etc/sudoers`\n\n3. Add this line after `ROOT ALL (ALL:ALL) ALL`:\n\n`\u003cuser\u003e ALL (ALL:ALL) ALL`\n\n**Disable autologin on LXDE**:\n\n1. Edit the following file:\n\n`sudo nano /etc/lightdm/lightdm.conf`\n\n2. Find the line `#autologin-user=`.\n\n3. Uncomment the line and add the user:\n\n`autologin-user=\u003cuser\u003e`\n\n### i3-wm\n\nInstall [i3-radius](https://github.com/terroo/i3-radius). It's i3-wm with gaps and rounded corners. Just clone the linked repository and run `sh build.sh`. From the i3-wm version 4.22, i3-gaps settings will be included.\n\nMake sure you have installed the following libraries, which are a requirement to run my setup properly:\n\n- compton: compositor based on xcompmgr with some improvements.\n- dunst: a customizable and lightweight notification-daemon.\n- libnotify-bin: a program to send desktop notifications.\n- lxappearance: customize look and feel (lxde-native).\n- lxpolkit: authorization manager for the desktop.\n- lxqt-openssh-askpass: handle password access.\n- pulseaudio-utils: to run pulse audio controls from the keyboard.\n- rofi: a window switcher, run dialog and dmenu replacement.\n- rxvt-unicde-256color: VT102 emulator for the X window system.\n- udiskie: automounter for removable media (flash drives).\n- volumeicon-alsa: volume icon for the system tray.\n- wicd: Wired and wireless network connection manager.\n- xbacklight: adjust backlight brightness using RandR extension.\n- xsel: command-line tool to manipulate the X selection.\n\nOptional:\n- arandr: can be useful to generate xrandr \\*.sh scripts.\n- libfm-pref-apps and exo-preferred-applications: the name is self-descriptive.\n- redshift: adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less or reduce the risk for delayed sleep phase syndrome if you are working in front of the screen at night.\n\nUseful tools: uuid, fbreader, simplescreenrecorder, translate-shell, trash-cli\n\n### Zsh\n\nInstall it from the repositories:\n\n`sudo apt-get install zsh`\n\nInstall [Oh My Zsh](https://github.com/robbyrussell/oh-my-zsh) following the instructions from its page.\n\nVia curl:\n\n`sh -c \"$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)\"`\n\nVia wget:\n\n`sh -c \"$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)\"`\n\nAtomic theme must be downloaded from [Atomic repository](https://github.com/gerardbm/atomic).\n\nEnable zsh-syntax-highlighting:\n\n`git clone https://github.com/zsh-users/zsh-syntax-highlighting $HOME/.syntax`\n\nEnable zsh-autosuggestions:\n\n`git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions`\n\nSymlink the zsh settings:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding zsh`\n\nChange the current shell:\n\n`$ chsh -s /usr/bin/zsh`\n\nLog out and log in to see the new shell as default.\n\n### URxvt\n\nInstall it from the repositories:\n\n`sudo apt-get install rxvt-unicode-256color`\n\nSymlink the rxvt-unicode settings:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding X`\n\nCosmic color scheme is already included.\n\nInstall the scripts:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding urxvt`\n\nTo check for newer versions on Github:\n\n- The script `resize-font`: https://github.com/simmel/urxvt-resize-font\n- The script `url-select`: https://github.com/johntyree/urxvt-perls\n- The script `clipboard`: https://github.com/pkkolos/urxvt-scripts\n- The script `unichr`: https://emergent.unpythonic.net/\n\n### Tmux\n\nThe version from the repositories is too old. Install it from the source code:\n\n1. Download a tar.gz from github.\n2. Unzip: `tar -zxvf tmux-2.7.tar.gz`\n3. Join to the directory created: `cd tmux-2.7`\n4. Compile it: `./configure; make; sudo checkinstall`\n5. Install the required dependencies and repeat the `./configure`\n\nThen, install the package `urlview`:\n\n`sudo apt-get install urlview`\n\nSymlink the tmux settings:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding tmux`\n\n### Git\n\nInstall it from the repositories:\n\n`sudo apt-get install git`\n\nSymlink the git settings:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding git`\n\n### Powerline\n\nClone the [Powerline fonts repository](https://github.com/powerline/fonts):\n\n`git clone https://github.com/powerline/fonts`\n\nAnd install it:\n\n`cd fonts \u0026\u0026 ./install.sh`.\n\n**Fontconfig**\n\n«In some distributions (e.g. Debian), Terminess Powerline is ignored by default and must be explicitly allowed. A fontconfig file is provided which enables it. Copy this file from the fontconfig directory to your home folder under ~/.config/fontconfig/conf.d (create it if it doesn't exist) and re-run `fc-cache -vf`». Paragraph extracted from [Powerline](https://github.com/powerline/fonts).\n\n### FontAwesome\n\nInstall it from the repositories:\n\n`sudo apt-get install fonts-font-awesome`\n\n(Not using anymore, though).\n\n### Vim 8\n\nInstall it from the repositories (the stable version is enough):\n\n`sudo apt-get install vim vim-gtk3`\n\nThe package `vim-gtk3` adds the 'huge version' with a lot of features (+python3, +clipboard...), and the GTK3 GUI.\n\nInstall the plugins manager [vim-plug](https://github.com/junegunn/vim-plug); follow the instructions from its repository:\n\n```sh\ncurl -fLo ~/.vim/autoload/plug.vim --create-dirs \\\n    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim\n ```\n\nInstall the plugins with the command:\n\n`:PlugInstall`.\n\nTo make it compatible with the plugin `Shougo/deoplete.nvim`, it requires two plugins (`roxma/vim-hug-neovim-rpc` and `roxma/nvim-yarp`) that require neovim installed from pip3, so first install python3-pip and then install neovim from there:\n\n`sudo apt-get install python3-pip`\n\n`pip3 install neovim`\n\n`pip3 install pynvim`\n\nFrom the Vim command line:\n\n`:pythonx import pynvim`\n\nMy vim config files are into [vimrc](https://github.com/gerardbm/vimrc).\n\n### Neovim\n\nNeovim is available from github, so download the AppImage from the releases section.\n\nMove the file `nvim.appimage` to `/opt/neovim/`:\n\n`sudo mv nvim.appimage /opt/neovim/`\n\nJoin to the folder and create the symlink:\n\n`sudo ln -sf /opt/neovim/nvim.appimage /usr/local/bin/nvim`\n\nGive permissions to the file:\n\n`sudo chmod 755 /opt/neovim/nvim.appimage`\n\nA desktop file is not needed because it's a terminal application.\n\nFinally, install [vim-plug](https://github.com/junegunn/vim-plug) for neovim using this command:\n\n```sh\ncurl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \\\n    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim\n```\n\nMy neovim config files are into [vimrc](https://github.com/gerardbm/vimrc).\n\n### Clang\n\nInstall clang from the repositories:\n\n`sudo apt-get install clang libclang-dev`\n\nThe package `libclang-dev` is required on Debian.\n\n### Golang\n\nInistall golang from the repositories:\n\n`sudo apt-get install golang`\n\nOpen Vim and run the following command:\n\n`:GoInstallBinaries`\n\n### Pylint\n\nNote: check pyenv to install other Python versions.\n\nInstall pylint from pip3:\n\n`sudo pip3 install pylint`\n\n### Vint\n\nInstall vint from pip3:\n\n`sudo pip3 install vim-vint`\n\n### Shellcheck\n\nInstall shellcheck from the repositories:\n\n`sudo apt-get install shellcheck`\n\n### Chktex\n\nInstall chktex from the repositories:\n\n`sudo apt-get install chktex`\n\n### Nodejs, tern, jshint, csslint\n\nDownload Node.js from [https://nodejs.org](https://nodejs.org).\n\nUnzip the binary archive (v.10.15.3 in my case):\n\n```sh\nsudo mkdir /usr/lib/nodejs\nsudo tar -xJvf node-v10.15.3-linux-x64.tar.xz -C /usr/lib/nodejs\nsudo mv /usr/lib/nodejs/node-v10.15.3-linux-x64 /usr/lib/nodejs/node-v10.15.3\n```\n\nSymlink the executables:\n\n```sh\nsudo ln -s /usr/lib/nodejs/node-v10.15.3/bin/node /usr/bin/node\nsudo ln -s /usr/lib/nodejs/node-v10.15.3/bin/npx /usr/bin/npx\nsudo ln -s /usr/lib/nodejs/node-v10.15.3/bin/npm /usr/bin/npm\n```\n\nTest the installation using:\n\n```sh\nnode -v\nnpm version\n```\n\nMake a directory to install global npm modules:\n\n`mkdir ~/.npm-global`\n\nConfigure npm to use the new directory path:\n\n`npm config set prefix '~/.npm-global'`\n\nAdd the path to `~/.zshrc` file:\n\n`export PATH=~/.npm-global/bin:$PATH`\n\nUpdate the system variables:\n\n`source ~/.zshrc`\n\nFinally install the packages using npm:\n\n```sh\nnpm install -g tern\nnpm install -g jshint\nnpm install -g csslint\n```\n\n### Pyenv\n\nInstall pyenv:\n\n```sh\ncurl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash\n```\n\nAdd pyenv to the path:\n\n```sh\necho 'export PYENV_ROOT=\"$HOME/.pyenv\"' \u003e\u003e ~/.zprofile\necho 'export PATH=\"$PYENV_ROOT/bin:$PATH\"' \u003e\u003e ~/.zprofile\necho 'eval \"$(pyenv init --path)\"' \u003e\u003e ~/.zprofile\n\necho 'export PYENV_ROOT=\"$HOME/.pyenv\"' \u003e\u003e ~/.profile\necho 'export PATH=\"$PYENV_ROOT/bin:$PATH\"' \u003e\u003e ~/.profile\necho 'eval \"$(pyenv init --path)\"' \u003e\u003e ~/.profile\n\necho 'eval \"$(pyenv init -)\"' \u003e\u003e ~/.zshrc\n```\n\nInstall a Python version. For example:\n\n```sh\npyenv install 3.8.0\n```\n\nActivate the Python version:\n\n```sh\npyenv local 3.8.0\n```\n\nThen use `pip3.8` to install some Python tools: `youtube-dl`, `skyfield`, `pylint`, etc.\n\nHow to use again the system version:\n\n```sh\npyenv local system\n```\n\nHow to list all the available versions:\n\n```sh\npyenv versions\n```\n\n### Ruby and Jekyll\n\nInstall the dependencies:\n\n`sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev`\n\nThen install Rbenv:\n\n`curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -`\n\nAdd Rbenv to the PATH in `~/.zshrc`:\n\n```sh\nexport PATH=\"$HOME/.rbenv/bin:$PATH\"\neval \"$(~/.rbenv/bin/rbenv init - zsh)\"\n```\n\nInstall the wanted Ruby version:\n\n`rbenv install 2.6.4`\n\nAnd make it global:\n\n`rbenv global 2.6.4`\n\nFinally install the last Jekyll version:\n\n`gem install jekyll`\n\n#### Update Ruby with\n\nIf the Ruby version is missing, upgrade ruby-build:\n\n`cd /home/gerard/.rbenv/plugins/ruby-build \u0026\u0026 git pull \u0026\u0026 cd -`\n\nThen install the newer version:\n\n`rbenv install 3.2.0`\n\nThen update Jekyll:\n\n`gem install jekyll -v 4.3.3`\n\nSome updates:\n\n```\ngem update --system\nbundle update --bundler\n```\n\n### W3m\n\nInstall it from the repositories:\n\n`sudo apt-get install w3m`\n\nSymlink the w3m settings:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding w3m`\n\n### Ranger\n\nInstall it from the repositories:\n\n`sudo apt-get install ranger`\n\nSymlink the ranger settings:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding ranger`\n\n### Vifm\n\nInstall it from the repositories:\n\n`sudo apt-get install vifm`\n\nSymlink the vifm settings:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding vifm`\n\nInstall the atomic theme for vifm:\n\n```sh\nmkdir $HOME/.mutt\ngit clone https://github.com/gerardbm/atomic\ncp atomic/vifm/atomic.vifm $HOME/.config/vifm/colors/\n```\n\n### FZF\n\nInstall it following the instructions from [fzf Github page](https://github.com/junegunn/fzf/).\n\n```sh\ngit clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf\n~/.fzf/install\n```\n\n### Ytfzf\n\nInstall it following the instructions from [ytfzf Github page](https://github.com/pystardust/ytfzf/).\n\n```sh\ngit clone https://github.com/pystardust/ytfzf\ncd ytfzf\nsudo make install\n```\n\n### Mutt\n\nInstall it from the repositories:\n\n`sudo apt-get install mutt`\n\nCopy the mutt settings (no symlink):\n\n`cp $HOME/dotfiles/mutt/.muttrc $HOME/`\n\nInstall the atomic theme for mutt:\n\n```sh\nmkdir $HOME/.mutt\ngit clone https://github.com/gerardbm/atomic\ncp atomic/mutt/atomic.muttrc $HOME/.mutt\n```\n\n### Cmus\n\nInstall it from the repositories:\n\n`sudo apt-get install cmus`\n\nSymlink the cmus settings:\n\n`cd $HOME/dotfiles \u0026\u0026 stow --no-folding cmus`\n\nInstall the atomic theme for cmus:\n\n```sh\ngit clone https://github.com/gerardbm/atomic\ncp atomic/cmus/atomic.theme $HOME/.config/cmus\n```\n\nFrom cmus command line:\n\n- Set the colorscheme: `:colorscheme atomic`\n- Add the playlist: `:add $HOME/.config/cmus/playlist.pl`\n\n### Irssi\n\nInstall it from the repositories:\n\n`sudo apt-get install irssi`\n\nCreate the folder first and then copy (no symlink) the irssi settings:\n\n`mkdir $HOME/.irssi \u0026\u0026 cp $HOME/dotfiles/irssi/.irssi/config $HOME/.irssi/`\n\nCopy the script to install the plugins for the first time:\n\n`cp $HOME/dotfiles/irssi/.irssi/config $HOME/.irssi/`\n\nRun it:\n\n`. ./iip.sh`\n\n### Less\n\nLess config is into a binarry file called `$HOME/.less`.\n\nCompile the file `$HOME/.lesskey` with `lesskey` command to generate it.\n\nSources: https://www.systutorials.com/docs/linux/man/1-lesskey/#lbAE\n\n### Youtube-dl\n\nDownload it from the repositories:\n\n`sudo apt-get install youtube-dl`\n\nUpdate it to the last version:\n\n`sudo -H pip install --upgrade youtube-dl`\n\n### VirtualBox\n\nPackages for VirtualBox are not available in Debian 9. To install VirtualBox you must use the stretch-backports repository or the upstream third-party repository. More info, here: https://wiki.debian.org/VirtualBox.\n\n## Navigation\n\nAll shortcuts are vim-style (H, J, K, L + U, D) and they are configured to work without conflicts coherently between i3wm, tmux, (neo)vim et al. Explanation:\n\nHorizontal navigation between WM workspaces, tmux windows and vim buffers only has two directions: left and right. In this case, a modifier in combination with H and L is coherent with vim-style.\n\nFour directions navigation (e.g. i3wm windows, tmux panes, vim windows) needs four keys: for left, right, top and bottom. In this case, a modifier in combination with H, J, K, L is coherent with vim-style.\n\nVertical navigation to scroll up/down tmux windows, vim buffers or man pages has two directions but as well two speeds. In this case, a modifier in combination with J, K, U and D is coherent with vim-style.\n\nThese are the guidelines:\n- Vim-like navigation.\n- Make it intuitive.\n- Reduce the keystrokes.\n- Improve the workflow.\n\nThat said, it is very logical to have different modifier keys for every application:\n- \u003ckbd\u003eSuper\u003c/kbd\u003e to control the windows manager (i3wm in my case).\n- \u003ckbd\u003eAlt\u003c/kbd\u003e to control the terminal multiplexer (tmux in my case).\n- \u003ckbd\u003eControl\u003c/kbd\u003e to control a specific program (vim, w3m, irssi).\n\nTmux and vim share \u003ckbd\u003eAlt\u003c/kbd\u003e+{hjkl} to navigate between tmux panes and vim windows; thanks to the plugin [vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator).\n\nTmux uses a prefix key to separate all the shortcuts from the system. This idea is very convenient to avoid conflicts between shortcuts, however it implies too much keystrokes. This prefix also has some disadvantages, because it uses the default \u003ckbd\u003eControl\u003c/kbd\u003e+\u003ckbd\u003eb\u003c/kbd\u003e: you lose a useful readline command (backward character). Some people remap it to \u003ckbd\u003eControl\u003c/kbd\u003e+\u003ckbd\u003ea\u003c/kbd\u003e because it's easier to press, so they lose a useful readline command (go to the start of the line). Also, it is used into vim to increase a numeric value.\n\nMy recommendation is to use the \u003ckbd\u003eAlt\u003c/kbd\u003e key to remap some tmux bind-keys (using the `-n` flag), skipping the prefix for the most used actions.\n\nThe following table shows the main workflow:\n\n```\n| ACTION        | I3WM          | TMUX         | VIM          |\n| $mod key      | Super         | Alt          | Control      |\n| ------------- | ------------- | ------------ | ------------ |\n|               | (workspaces)  | (windows)    | (buffers)    |\n| Next          | Ctrl+Super+l  | Ctrl+Alt+l   | Ctrl+l       |\n| Previous      | Ctrl+Super+h  | Ctrl+Alt+h   | Ctrl+h       |\n| Last          | Ctrl+Super+p  | Ctrl+Alt+p   | Ctrl+p Enter |\n| ------------- | ------------- | ------------ | ------------ |\n|               |               | (windows)    | (buffers)    |\n| Up: 1 line    |               | Alt+space k  | Ctrl+k       |\n| Down: 1 line  |               | Alt+space j  | Ctrl+j       |\n| Up: ½ page    |               | Alt+space u  | Ctrl+u       |\n| Down: ½ page  |               | Alt+space d  | Ctrl+d       |\n| ------------- | ------------- | ------------ | ------------ |\n|               | (windows)     | (panes)      | (windows)    |\n| Focus ←       | Super+h       | Alt+h        | Alt+h        |\n| Focus →       | Super+l       | Alt+l        | Alt+l        |\n| Focus ↑       | Super+k       | Alt+k        | Alt+k        |\n| Focus ↓       | Super+j       | Alt+j        | Alt+j        |\n| Focus last    |               |              | Ctrl+w p     |\n| Focus next    |               |              | Ctrl+w l     |\n| Focus prev    |               |              | Ctrl+w h     |\n| Focus #1      | Super+1       | Alt+1        |              |\n| Focus #2      | Super+2       | Alt+2        |              |\n| Focus #3      | Super+3       | Alt+3        |              |\n| Focus #4      | Super+4       | Alt+4        |              |\n| Focus #5      | Super+5       | Alt+5        |              |\n| Focus #6      | Super+6       | Alt+6        |              |\n| Focus #7      | Super+7       | Alt+7        |              |\n| Focus #8      | Super+8       | Alt+8        |              |\n| Focus #9      | Super+9       | Alt+9        |              |\n| New terminal  | Super+n       | Alt+n        | Ctrl+t       |\n| Kill active   | Super+x       | Alt+x        | Ctrl+w j     |\n| New terminal  | Ctrl+Super+n  | Ctrl+Alt+n   | Ctrl+t       |\n| Kill active   | Ctrl+Super+j  | Ctrl+Alt+j   | Ctrl+w j     |\n| Only active   |               |              | Ctrl+w o     |\n| ------------- | ------------- | ------------ | ------------ |\n|               | (windows)     | (panes)      | (windows)    |\n| Fullscreen    | Super+f       | Alt+f        | Ctrl+f       |\n| Resize ←      | Super+r h     | Alt+H        | \u003e            |\n| Resize →      | Super+r l     | Alt+L        | \u003c            |\n| Resize ↑      | Super+r k     | Alt+K        | -            |\n| Resize ↓      | Super+r j     | Alt+J        | +            |\n| Split v       | Super+.       | Alt+.        | Ctrl+w .     |\n| Split h       | Super+-       | Alt+-        | Ctrl+w -     |\n| ------------- | ------------- | ------------ | ------------ |\n|               | (windows)     | (panes)      | (windows)    |\n| Move to ←     | Super+H       |              | Ctrl+w H     |\n| Move to →     | Super+L       |              | Ctrl+w L     |\n| Move to ↑     | Super+K       | Alt+K        | Ctrl+w K     |\n| Move to ↓     | Super+J       | Alt+J        | Ctrl+w J     |\n| Move to last  | Super+Shift+p |              |              |\n| Move to # WS  | Super+Shift+# |              |              |\n```\n\nCommand line tools:\n\n```\n| ACTION        | man (less)    | w3m          | irssi        |\n| ------------- | ------------- | ------------ | ------------ |\n|               | (pages)       | (tabs)       | (windows)    |\n| Next          |               | Ctrl+l       | Ctrl+j       |\n| Previous      |               | Ctrl+h       | Ctrl+k (1)   |\n| ------------- | ------------- | ------------ | ------------ |\n|               | (buffers)     | (websites)   | (buffers)    |\n| Up: 1 line    | k             | k            |              |\n| Down: 1 line  | j             | j            |              |\n| Up: ½ page    | u             | u            | Alt+u, Alt+p |\n| Down: ½ page  | d             | d            | Alt+d, Alt+n |\n|               |               |              |        (2)   |\n\n---\n\n| ACTION        | vifm          | ranger        | cmus         | mutt         |\n| ------------- | ------------- | ------------- | ------------ | ------------ |\n|               | (files, dirs) | (files, dirs) | (playlists)  | (emails)     |\n| Up: 1 line    | k             | k             | k            | k            |\n| Down: 1 line  | j             | j             | j            | j            |\n| Custom ←      | h, fold       | h, fold       | h, seek -5   |              |\n| Custom →      | l, unfold     | l, unfold     | l, seek +5   |              |\n\n---\n\n1. Irssi windows are displayed in a column (vertical) according to my setup.\n2. Alt+p and Alt+n are configured by default into irssi.\n```\n\nPDF and images:\n\n```\n| ACTION        | mupdf         | apvlv         | feh          |\n| ------------- | ------------- | ------------- | ------------ |\n|               | (pdfs)        | (pdfs)        | (images)     |\n| ←             | h             | h             | h            |\n| →             | l             | l             | l            |\n| ↑             | k             | k             | k            |\n| ↓             | j             | j             | j            |\n| Zoom in       | +             | z             | z            |\n| Zoom out      | -             | Z             | Z            |\n| Up: ½ page    | b             | u             |              |\n| Down: ½ page  | space         | d             |              |\n| Rotate        | R, L          | r             | \u003c, \u003e         |\n| Quit          | q             | q             | q            |\n```\n\nAudio:\n\n```\n| ACTION        | cmus          |\n| ------------- | ------------- |\n| ← (-seek)     | h             |\n| → (+seek)     | l             |\n| ↑             | k             |\n| ↓             | j             |\n| Pause         | c             |\n| Stop          | v             |\n| Volume up     | +             |\n| Volume down   | -             |\n| Quit          | q             |\n```\n\nVideo:\n\n```\n| ACTION        | mpv           |\n| ------------- | ------------- |\n| ← (-seek)     | h             |\n| → (+seek)     | l             |\n| ←             | Ctrl+h        |\n| →             | Ctrl+l        |\n| ↑             | Ctrl+k        |\n| ↓             | Ctrl+j        |\n| Reset         | Ctrl+p        |\n| Zoom in       | z             |\n| Zoom out      | Z             |\n| Reset zoom    | Ctrl+z        |\n| Rotate        | r             |\n| Reset rotate  | Ctrl+r        |\n| Volume up     | +             |\n| Volume down   | -             |\n| Quit          | q             |\n```\n\nYes, a mouse would make the life easier. And slower ;-)\n\nThis setup works in Debian 9 or later.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerardbm%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerardbm%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerardbm%2Fdotfiles/lists"}