diff --git a/org/config/tmux.org b/org/config/tmux.org
new file mode 100644
index 0000000..5e787e0
--- /dev/null
+++ b/org/config/tmux.org
@@ -0,0 +1,238 @@
+#+title: Tmux
+#+setupfile: headers
+#+options: unique-id:t
+#+html_head:
+#+html_head:
+#+html_head:
+#+property: header-args:tmux :mkdirp yes :lexical t :exports code
+#+property: header-args:tmux+ :tangle ~/.config/tmux/tmux.conf
+#+property: header-args:tmux+ :mkdirp yes :noweb yes
+
+* Introduction
+:PROPERTIES:
+:CUSTOM_ID: Introduction-elnbk9c1huj0
+:END:
+Tmux is one of the widest known terminal multiplexers along with
+=screen=. I find it useful when I don’t want to bother with panes in my
+[[https://sw.kovidgoyal.net/kitty/][kitty]] terminal.
+
+Be aware this configuration is mostly keybinds.
+
+* Setting sane configurations
+:PROPERTIES:
+:CUSTOM_ID: Settingsaneconfigurations-7mrbk9c1huj0
+:END:
+By default, Tmux does not support all the colours your terminal may
+support, so we need to tell it to set true colours..
+#+begin_src tmux
+set-option -sa terminal-overrides ",xterm*:Tc"
+#+end_src
+
+We can also tell it to enable mouse support. That way, we will be able
+to click on Tmux elements and scroll in its panes!
+#+begin_src tmux
+set -g mouse on
+#+end_src
+
+Finally, I’ll set ~vi-mode~ for some sane movements.
+#+begin_src tmux
+set-window-option -g mode-keys vi
+#+end_src
+
+* Windows and panes configuration
+:PROPERTIES:
+:CUSTOM_ID: Windowsandpanesconfiguration-nnelqdd1huj0
+:END:
+Although I agree in computer science most things should begin with
+zero, I find it quite weird to see my first window and my first pane
+to be labeled with it rather than one. So, let’s pull a Lua on Tmux
+and force it to begin with 1 instead of 0.
+#+begin_src tmux
+set -g base-index 1
+set -g pane-base-index 1
+set-window-option -g pane-base-index 1
+set-option -g renumber-windows on
+#+end_src
+
+* Plugins!
+:PROPERTIES:
+:CUSTOM_ID: Plugins-0550rdd1huj0
+:END:
+Using [[https://github.com/tmux-plugins/tpm][TPM]], we can use plugins in Tmux! The way I installed it is very simple:
+#+begin_src bash
+mkdir -p ~/.config/tmux/
+git clone https://github.com/tmux-plugins/tpm.git ~/.config/tmux/tpm
+#+end_src
+
+Here’s a list of the plugins that I use.
+#+name: plugins
+| Plugin | Why |
+|-----------------------+------------------------------------------------------|
+| tpm | TPM itself |
+| tmux-sensible | Better defaults I can’t be bothered to change myself |
+| tmux-yank | Better copy/pasting |
+| tmux-prefix-highlight | Tell me which prefix I’m using |
+| nordtheme/tmux | Nord theme for Tmux! |
+
+#+begin_src emacs-lisp :var plugins=plugins[,0] :exports code :wrap src tmux
+(mapconcat (lambda (plugin)
+ (format "set -g @plugin '%s'"
+ (if (string-match-p (quote "/") plugin)
+ plugin
+ (concat "tmux-plugins/" plugin))))
+ plugins
+ "\n")
+#+end_src
+
+#+RESULTS:
+#+begin_src tmux
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'tmux-plugins/tmux-sensible'
+set -g @plugin 'tmux-plugins/tmux-yank'
+set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
+set -g @plugin 'nordtheme/tmux'
+#+end_src
+
+Let’s run TPM right after that.
+#+begin_src tmux
+run '~/.config/tmux/tpm/tpm'
+#+end_src
+
+* Keybindings
+:PROPERTIES:
+:CUSTOM_ID: Keybindings-tx80rdd1huj0
+:END:
+First of all, I don’t like prefixing all of my keybindings with ~C-b~,
+that’s what I use in ~insert-mode~ in Emacs to make the cursor go back.
+So instead, let’s set meta with space as my prefix.
+#+begin_src tmux
+unbind C-b
+set -g prefix M-Space
+bind M-Space send-prefix
+#+end_src
+
+Now, I will only add few keybindings on the root prefix that actually
+do something immediately, I will mostly add keybindings that will lead
+to other prefixes; I prefer by far to have keychords that are a bit
+lengthy and mnemonic than some obscure “ ~C-M-&~ is for doing this and
+that”.
+
+#+name: std-prefix
+| Keybinding | Command | Prefix to go to |
+|------------+------------------+-----------------|
+| =«= | select-window -p | |
+| =»= | select-window -n | |
+| =p= | | pane |
+| =y= | | copy-mode |
+
+#+name: gen-keybinds
+#+begin_src emacs-lisp :var keybinds=std-prefix :var prefix="prefix" :exports none
+(mapconcat (lambda (keybind)
+ (format "bind-key -T %s %s %s"
+ prefix
+ (string-replace "=" "" (car keybind))
+ (let* ((command (nth 1 keybind))
+ (command (if (string= "" command) nil command))
+ (goto-prefix (nth 2 keybind))
+ (goto-prefix (if (string= "" goto-prefix) nil (concat "switch-client -T " goto-prefix))))
+ (if (and command goto-prefix)
+ (concat command "\\; " goto-prefix)
+ (or command goto-prefix)))))
+ keybinds
+ "\n")
+#+end_src
+
+#+RESULTS: gen-keybinds
+: bind-key -T prefix « select-window -p
+: bind-key -T prefix » select-window -n
+: bind-key -T prefix p switch-client -T pane
+: bind-key -T prefix y switch-client -T copy-mode
+
+#+begin_src tmux
+<>
+#+end_src
+
+** Panes
+:PROPERTIES:
+:CUSTOM_ID: KeybindingsPanes-7z99hld1huj0
+:END:
+As you will see not only here but also lower, I am not using the usual
+=hjkl= to navigate around since I am using the [[https://bepo.fr][bépo]] layout. I use
+instead the =ctsr= keys.
+
+Below are the keybindings living in the =pane= prefix. Note that calls to
+=split-window= have a =-c "#{pane_current_path}"= argument so new panes
+open in the same directory as the directory I am currently in.
+#+name: pane-prefix
+| Keybinding | Command | Prefix to go to |
+|------------+-------------------------------------------+-----------------|
+| =/= | split-window -h -c "#{pane-current_path}" | |
+| =-= | split-window -v -c "#{pane-current_path}" | |
+| =c= | select-panel -L | |
+| =t= | select-panel -D | |
+| =s= | select-panel -U | |
+| =r= | select-panel -R | |
+| =.= | | pane-resize |
+
+#+begin_src tmux
+<>
+#+end_src
+
+When it comes to resizing the panes, the keybindings are in their own
+prefix referenced above: =pane-resize=. All keybindings will lead to the
+same prefix again, which enables the user to type for instance =M-Space
+w . r r r r r= in order to call repetitively =resize-pane -R 5=. Hitting
+any key that is not part of the current prefix will get us out of it.
+#+name: pane-resize-prefix
+| Keybinding | Command | Prefix to go to |
+|------------+------------------+-----------------|
+| c | resize-pane -L 5 | pane-resize |
+| t | resize-pane -D 5 | pane-resize |
+| s | resize-pane -U 5 | pane-resize |
+| r | resize-pane -R 5 | pane-resize |
+| C | resize-pane -L | pane-resize |
+| T | resize-pane -D | pane-resize |
+| S | resize-pane -U | pane-resize |
+| R | resize-pane -R | pane-resize |
+
+#+begin_src tmux
+<>
+#+end_src
+
+** Copy in vi mode
+:PROPERTIES:
+:CUSTOM_ID: KeybindingsCopyinvimode-2mjfpie1huj0
+:END:
+Tmux has a nice mode for vim keybindings users: =copy-mode-vi= which
+allows to move the cursor around in the pane, select some stuff, and
+copy it. But first, I need to unbind some keys:
+#+begin_src tmux
+unbind -T copy-mode-vi H
+unbind -T copy-mode-vi J
+unbind -T copy-mode-vi K
+unbind -T copy-mode-vi L
+unbind -T copy-mode-vi h
+unbind -T copy-mode-vi j
+unbind -T copy-mode-vi k
+unbind -T copy-mode-vi l
+#+end_src
+
+#+name: copy-mode-vi-prefix
+| Keybinding | Command |
+|------------+----------------------------------------|
+| v | send-keys -X begin-selection |
+| C-v | send-keys -X rectangle-toggle |
+| y | send-keys -X copy-selection-and-cancel |
+| C | send-keys -X top-line |
+| J | send-keys -X jump-to-backward |
+| S | send-keys -X scroll-up |
+| R | send-keys -X bottom-line |
+| T | send-keys -X scroll-down |
+| c | send-keys -X cursor-left |
+| t | send-keys -X cursor-down |
+| s | send-keys -X cursor-up |
+| r | send-keys -X cursor-right |
+
+#+begin_src tmux
+<>
+#+end_src