diff --git a/.gnupg/gpg.conf b/.gnupg/gpg.conf
deleted file mode 100644
index 19e4b53..0000000
--- a/.gnupg/gpg.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-keyserver hkp://keys.gnupg.net
-keyserver-options auto-key-retrieve
-keyserver hkp://pgp.mit.edu:11371
diff --git a/.local/share/applications/FlowScape.desktop b/.local/share/applications/FlowScape.desktop
deleted file mode 100644
index ad824ec..0000000
--- a/.local/share/applications/FlowScape.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Version=1.5
-Name=FlowScape
-Comment=Create gorgeous 3D landscapes with ease.
-Exec=/usr/bin/prime-run /home/phundrak/.local/opt/FlowScape/FlowScape.x86_64
-Path=/home/phundrak/.local/opt/FlowScape
-Icon=/home/phundrak/.local/opt/FlowScape/icon.jpg
-Terminal=false
-Type=Application
-Categories=Graphics
diff --git a/.local/share/applications/OtherWorldMapper.desktop b/.local/share/applications/OtherWorldMapper.desktop
deleted file mode 100644
index bc89308..0000000
--- a/.local/share/applications/OtherWorldMapper.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Version=1.0.4
-Name=OtherWorldMapper
-Comment=OtherWorldMapper is a powerful yet intuitive fantasy map creation tool.
-Exec=/usr/bin/prime-run /home/phundrak/.local/opt/OtherWorldMapper/OWM
-Path=/home/phundrak/.local/opt/OtherWorldMapper
-Icon=/home/phundrak/.local/opt/OtherWorldMapper/owm.ico
-Terminal=false
-Type=Application
-Categories=Graphics
diff --git a/.local/share/applications/Wonderdraft.desktop b/.local/share/applications/Wonderdraft.desktop
deleted file mode 100644
index 4579d5f..0000000
--- a/.local/share/applications/Wonderdraft.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Version=1.1.3.2
-Name=Wonderdraft
-Comment=Wonderdraft is a powerful yet intuitive fantasy map creation tool.
-Exec=/usr/bin/prime-run /home/phundrak/Wonderdraft/Wonderdraft.x86_64
-Path=/home/phundrak/Wonderdraft
-Icon=/home/phundrak/Wonderdraft/Wonderdraft.png
-Terminal=false
-Type=Application
-Categories=Graphics
diff --git a/.local/share/applications/emacs.desktop b/.local/share/applications/emacs.desktop
deleted file mode 100644
index c23fa61..0000000
--- a/.local/share/applications/emacs.desktop
+++ /dev/null
@@ -1,12 +0,0 @@
-[Desktop Entry]
-Name=Emacs
-GenericName=Text Editor
-Comment=Edit text
-MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
-Exec=emacsclient -c %F
-Icon=emacs
-Type=Application
-Terminal=false
-Categories=Development;TextEditor;
-StartupWMClass=Emacs
-Keywords=Text;Editor;
diff --git a/org/config/desktop.org b/org/config/desktop.org
new file mode 100644
index 0000000..171ba49
--- /dev/null
+++ b/org/config/desktop.org
@@ -0,0 +1,795 @@
+#+title: Desktop settings
+#+setupfile: headers
+#+options: auto-id:t
+#+html_head:
+#+html_head:
+#+html_head:
+#+property: header-args:emacs-lisp :mkdirp yes :lexical t :exports code
+#+property: header-args:emacs-lisp+ :tangle ~/.emacs.d/desktop.el
+#+property: header-args:emacs-lisp+ :mkdirp yes :noweb no-export
+#+property: header-args:lisp :mkdirp :tangle ~/.stumpwm.d/desktop.lisp :noweb yes
+
+* Introduction
+:PROPERTIES:
+:CUSTOM_ID: Introduction-w831x4a0l9j0
+:END:
+Many settings formerly present in this website’s index are related to
+my desktop settings, while some others are not.
+
+# Also, since I switched to StumpWM, many of my keybinds from Emacs need
+# to be kept up to date with my StumpWM keybinds, and /vice versa/. This
+# document aims to regroup all settings related to the desktop in order
+# to have an easier time managing them.
+
+* Common Emacs and StumpWM settings :noexport:
+:PROPERTIES:
+:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-neseiaa0l9j0
+:END:
+Both Emacs and StumpWM work on the same principle of keychords
+powering a function or command. With both of them I have a prefix key,
+~SPC~ in the case of Emacs (or ~C-SPC~ when in insert-mode, see the
+relevant config) and ~s-SPC~ in the case of StumpWM. That means I can
+give them the same keychord following this, for instance ~w/~ to create
+a new vertically split frame to the right of the current one.
+
+All the keybinds will be presented in the form of tables, with on the
+first column the keychord following the leader key, on the second
+column the EmacsLisp function to be called, and on the third the
+StumpWM command. If one of the ELisp or StumpWM case’s is empty, it
+means there is no equivalence. If it’s ~nil~, then it means it is a
+prefix key. The fourth column is for now reserved for Emacs’ which-key
+so I can give it a better name. If its value is ~nil~, then it should
+not show up. Hopefully this can be implemented someday in StumpWM.
+
+** Generating Code :noexport:
+:PROPERTIES:
+:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Generating-Code-ngnclyk0l9j0
+:END:
+*** Elisp
+:PROPERTIES:
+:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Generating-Code-Elisp-oeqclyk0l9j0
+:END:
+#+name: emacs-keybinds-gen
+#+header: :var keymap=emacs-stumpwm-media-control
+#+begin_src emacs-lisp :exports none :tangle no :wrap "src emacs-lisp :tangle no"
+(mapconcat (lambda (keybind)
+ (let* ((keychord (replace-regexp-in-string (rx (or (seq line-start "~")
+ (seq "~" line-end)))
+ ""
+ (car keybind)))
+ (function (replace-regexp-in-string (rx (or (seq line-start "~")
+ (seq "~" line-end)))
+ ""
+ (nth 1 keybind)))
+ (which (nth 3 keybind)))
+ (format "\"%s\" %s"
+ keychord
+ (if (string= "nil" function)
+ (format "%S"
+ `(:ignore :which-key ,which))
+ (if (string= "" which)
+ (concat "#'" function)
+ (format "%S"
+ `'(,(intern function) :which-key ,which)))))))
+ (seq-filter (lambda (elem)
+ (not (string= "" (nth 1 elem))))
+ keymap)
+ "\n")
+#+end_src
+
+#+RESULTS: emacs-keybinds-gen
+#+begin_src emacs-lisp :tangle no
+"m" (:ignore :which-key "media")
+"m«" #'emms-player-mpd-previous
+"m»" #'emms-player-mpd-next
+"ma" '(hydra-media/body :which-key "MPD add")
+"mb" (:ignore :which-key "browse")
+"mba" #'emms-browse-by-artist
+"mbA" #'emms-browse-by-album
+"mbg" #'emms-browse-by-genre
+"mbp" #'emms-playlists-mode-go
+"mbs" #'emms-smart-browse
+"mby" #'emms-browse-by-year
+"mc" #'emms-player-mpd-clear
+"mp" #'emms-player-toggle-pause
+"ms" #'emms-player-mpd-show
+"mu" (:ignore :which-key "update")
+"mum" #'emms-player-mpd-update-all
+"muc" #'emms-cache-set-from-mpd-all
+#+end_src
+
+#+name: emacs-hydra-keybinds-gen
+#+header: :var keymap=emacs-stumpwm-resize-frame
+#+begin_src emacs-lisp :exports none :tangle no :wrap "src emacs-lisp :tangle no"
+(mapconcat (lambda (keybind)
+ (let ((keychord (replace-regexp-in-string "^~\\|~$"
+ ""
+ (car keybind)))
+ (function (replace-regexp-in-string "^~\\|~$"
+ ""
+ (nth 1 keybind)))
+ (which (nth 3 keybind)))
+ (format "%S" (if (string= "" which)
+ `(,keychord ,(intern function))
+ `(,keychord ,(intern function) ,which)))))
+ keymap
+ "\n")
+#+end_src
+
+#+RESULTS: emacs-hydra-keybinds-gen
+#+begin_src emacs-lisp :tangle no
+("c" shrink-window-horizontally)
+("t" enlarge-window)
+("s" shrink-window)
+("r" enlarge-window-horizontally)
+#+end_src
+
+*** Lisp
+:PROPERTIES:
+:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Generating-Code-Lisp-qntclyk0l9j0
+:END:
+#+name: stumpwm-filter-keybinds
+#+begin_src emacs-lisp :exports none :tangle no
+(let ((no-tilde (lambda (string)
+ (replace-regexp-in-string "^~\\|~$" "" string))))
+ (seq-filter (lambda (elem)
+ (= 1 (length (car elem))))
+ (mapcar (lambda (elem)
+ `(,(replace-regexp-in-string (format "^%s" prefix) "" (car elem))
+ .
+ ,(cdr elem)))
+ (seq-filter (lambda (elem)
+ (and (not (string= "" (cdr elem)))
+ (not (string= prefix (car elem)))
+ (string-prefix-p prefix (car elem))))
+ (mapcar (lambda (elem)
+ (let ((keychord (apply no-tilde (list (car elem))))
+ (function (apply no-tilde (list (nth 2 elem)))))
+ `(,keychord . ,function)))
+ keymap)))))
+#+end_src
+
+#+name: stumpwm-keybinds-gen
+#+header: :var keymap=emacs-stumpwm-media-control keymap-name="my-mpd-add-map" prefix="m"
+#+begin_src emacs-lisp :exports none :tangle no :wrap "src lisp :tangle no" :noweb yes
+(require 'seq)
+(format "%S"
+ `(defvar ,(intern (format "*%s*" keymap-name))
+ (let ((m (make-sparse-keymap)))
+ ,@(mapcar (lambda (keybind)
+ (let ((keychord (replace-regexp-in-string (format "^%s" prefix)
+ ""
+ (car keybind)))
+ (function (cdr keybind)))
+ `(define-key m (kbd ,keychord) ,function)))
+ <>
+ )
+ m)))
+#+end_src
+
+#+RESULTS: stumpwm-keybinds-gen
+#+begin_src lisp :tangle no
+(defvar *my-mpd-add-map* (let ((m (make-sparse-keymap))) (define-key m (kbd ".") "media-interactive") (define-key m (kbd "«") "mpd-prev") (define-key m (kbd "»") "mpd-next") (define-key m (kbd "a") "'*my-mpd-add-keymap*") (define-key m (kbd "b") "'*my-mpd-browse-keymap*") (define-key m (kbd "c") "mpd-clear") (define-key m (kbd "p") "mpd-toggle-pause") m))
+#+end_src
+
+#+name: stumpwm-interactive-keybinds-gen
+#+header: :var keymap=emacs-stumpwm-resize-frame prefix=""
+#+begin_src emacs-lisp :noweb yes
+(format "%S" `,@(mapcar (lambda (keybind)
+ (let ((keychord (car keybind))
+ (function (cdr keybind)))
+ `((kbd ,keychord) ,function)))
+ <>))
+#+end_src
+
+#+RESULTS: stumpwm-interactive-keybinds-gen
+: (((kbd "c") "resize-direction left") ((kbd "t") "resize-direction down") ((kbd "s") "resize-direction up") ((kbd "r") "resize-direction right"))
+
+#+name: stumpwm-interactive-gen
+#+header: :var keymap=emacs-stumpwm-resize-frame keymap-name="my-mpd-add-map" prefix=""
+#+begin_src emacs-lisp :exports none :tangle no :wrap "src lisp :tangle no"
+(format "%S"
+ `(define-interactive-keymap ,(intern keymap-name)
+ (:exit-on '((kbd "RET")
+ (kbd "ESC")
+ (kbd "C-g")
+ (kbd "q")))
+ ,@
+ <>
+ ))
+#+end_src
+
+#+RESULTS: stumpwm-interactive-gen
+#+begin_src lisp :tangle no
+(define-interactive-keymap my-mpd-add-map (:exit-on '((kbd "RET") (kbd "ESC") (kbd "C-g") (kbd "q"))) ((kbd "c") "resize-direction left" (kbd "t") "resize-direction down" (kbd "s") "resize-direction up" (kbd "r") "resize-direction right"))
+#+end_src
+
+** Frames Management
+:PROPERTIES:
+:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Frames-Management-5zhea5c0l9j0
+:END:
+In StumpWM, I’ll consider my various windows the same as Emacs’
+buffers.
+#+name: emacs-stumpwm-frames-management
+| Keychord | Emacs | StumpWM | which-key |
+|----------+---------------------------+-------------------------+-----------|
+| ~b~ | ~nil~ | ~'*my-buffers-keymap*~ | buffers |
+| ~bb~ | ~buflers-switch-buffer~ | ~windowlist~ | |
+| ~bB~ | ~bury-buffer~ | | |
+| ~bd~ | ~kill-this-buffer~ | ~delete-window~ | |
+| ~bD~ | ~kill-buffer~ | ~window-window-and-frame~ | |
+| ~bh~ | ~dashboard-refresh-buffer~ | | |
+| ~bk~ | | ~kill-window~ | |
+| ~bl~ | ~bufler~ | | |
+| ~bm~ | ~switch-to-messages-buffer~ | | |
+| ~bn~ | ~evil-next-buffer~ | ~next~ | |
+| ~bp~ | ~evil-prev-buffer~ | ~prev~ | |
+| ~br~ | ~counsel-buffer-or-recentf~ | | |
+| ~bs~ | ~switch-to-scratch-buffer~ | | |
+
+EmacsLisp code:
+#+begin_src emacs-lisp
+(phundrak/leader-key
+ <>
+ )
+#+end_src
+
+StumpWM’s Lisp code:
+#+begin_src lisp
+<>
+(define-key *root-map (kbd "b") '*my-buffers-keymap*)
+#+end_src
+
+** Window Management
+:PROPERTIES:
+:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Window-Management-8kt59fa0l9j0
+:END:
+The following allows to have an interactive keymap for resizing the
+current frame. In Emacs, it will be translated as a hydra while in
+StumpWM it will be an interactive keymap.
+#+name: emacs-stumpwm-resize-frame
+| Keychord | Emacs | StumpWM | which-key |
+|----------+-----------------------------+------------------------+-----------|
+| ~c~ | ~shrink-window-horizontally~ | ~resize-direction left~ | |
+| ~t~ | ~enlarge-window~ | ~resize-direction down~ | |
+| ~s~ | ~shrink-window~ | ~resize-direction up~ | |
+| ~r~ | ~enlarge-window-horizontally~ | ~resize-direction right~ | |
+
+This translates into the following hydra in EmacsLisp:
+#+begin_src emacs-lisp
+(defhydra windows-adjust-size ()
+ "
+^Zoom^ ^Other
+^^^^^^^-----------------------------------------
+[_t_/_s_] shrink/enlarge vertically [_q_] quit
+[_c_/_r_] shrink/enlarge horizontally
+"
+ <>
+ ("q" nil :exit t))
+#+end_src
+
+While the following Lisp code is used with StumpWM.
+#+begin_src lisp
+(define-interactive-keymap (iresize tile-group) (:on-enter #'setup-iresize
+ :on-exit #'resize-unhide
+ :abort-if #'abort-resize-p
+ :exit-on '((kbd "RET")
+ (kbd "ESC")
+ (kbd "C-g")
+ (kbd "q")))
+ <>
+ )
+#+end_src
+
+Below you will find my window management keybinds.
+#+name: emacs-stump-window-management
+| Keychord | Emacs | StumpWM | which-key |
+|----------+-------------------------------+--------------------------+------------------|
+| ~w~ | ~nil~ | ~'*my-windows-keymap*~ | windows |
+| ~w.~ | ~windows-adjust-size/body~ | ~iresize~ | resize windows |
+| ~w-~ | ~split-window-below-and-focus~ | ~vsplit-and-focus~ | |
+| ~w+~ | | ~balance-frames~ | |
+| ~wv~ | ~split-window-below~ | ~vsplit~ | |
+| ~wV~ | | ~vsplit-equally~ | |
+| ~w/~ | ~split-window-right-and-focus~ | ~hsplit-and-focus~ | |
+| ~wh~ | ~split-window-right~ | ~hsplit~ | |
+| ~wH~ | | ~hsplit-equally~ | |
+| ~wc~ | ~evil-window-left~ | ~move-focus left~ | |
+| ~wt~ | ~evil-window-down~ | ~move-focus down~ | |
+| ~ws~ | ~evil-window-up~ | ~move-focus up~ | |
+| ~wr~ | ~evil-window-right~ | ~move-focus right~ | |
+| ~wC~ | | ~move-window left~ | |
+| ~wT~ | | ~move-window down~ | |
+| ~wS~ | | ~move-window up~ | |
+| ~wR~ | | ~move-window right~ | |
+| ~w C-c~ | | ~exchange-direction right~ | |
+| ~w C-s~ | | ~exchange-direction down~ | |
+| ~w C-t~ | | ~exchange-direction up~ | |
+| ~w C-r~ | | ~exchange-direction right~ | |
+| ~wb~ | ~kill-buffer-and-delete-window~ | | |
+| ~we~ | ~winum-select-window-by-number~ | ~expose~ | |
+| ~wf~ | | ~fullscreen~ | |
+| ~wF~ | | ~'*my-floating-keymap*~ | floating windows |
+| ~wFf~ | | ~float-this~ | |
+| ~wFF~ | | ~flatten-floats~ | |
+| ~wFu~ | | ~unfloat-this~ | |
+| ~wi~ | | ~info~ | |
+| ~wd~ | ~delete-window~ | ~remove-split~ | |
+| ~wD~ | ~delete-other-windows~ | ~only~ | |
+| ~wm~ | | ~meta~ | |
+| ~wo~ | ~other-window~ | ~other-window~ | |
+| ~ws~ | | ~sibling~ | |
+| ~wu~ | | ~next-urgent~ | |
+| ~wU~ | | ~unmaximize~ | |
+| ~ww~ | ~nil~ | | writeroom |
+| ~ww.~ | ~writeroom-buffer-width/body~ | | |
+| ~www~ | ~writeroom-mode~ | | |
+
+** Media Control
+:PROPERTIES:
+:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Media-Control-r56g2hc0l9j0
+:END:
+#+name: emacs-stumpwm-media-interactive
+| Keychord | Emacs | StumpWM | which-key |
+|----------+-------------------------------------------------------------+-----------------+-----------|
+| ~c~ | ~emms-player-mpd-previous~ | ~mpd-prev~ | |
+| ~t~ | ~(shell-command-and-echo "mpc volume -2" "mpc volume" "mpc")~ | ~mpd-volume-down~ | |
+| ~s~ | ~(shell-command-and-echo "mpc volume +2" "mpc volume" "mpc")~ | ~mpd-volume-up~ | |
+| ~r~ | ~emms-player-mpd-next~ | ~mpd-next~ | |
+| ~s~ | ~emms-player-mpd-stop~ | ~mpd-stop~ | |
+
+#+name: emacs-stumpwm-general-media
+| Keychord | Emacs | StumpWM | which-key |
+|----------+-------+--------------------------------------+----------------|
+| ~c~ | | ~exec xbacklight -dec 2~ | backlight down |
+| ~t~ | | ~exec amixer -q set Master 2%- unmute~ | volume down |
+| ~s~ | | ~exec amixer -q set Master 2%+ unmute~ | volume up |
+| ~r~ | | ~exec xbacklight -inc 2~ | backlight up |
+| ~m~ | | ~exec amixer -q set Master 1+ toggle~ | toggle mute |
+
+#+name: emacs-stumpwm-media-control
+| Keychord | Emacs | StumpWM | which-key |
+|----------+-----------------------------+---------------------------+-----------|
+| ~m~ | ~nil~ | ~'*my-media-keymap*~ | media |
+| ~m.~ | | ~media-interactive~ | |
+| ~m«~ | ~emms-player-mpd-previous~ | ~mpd-prev~ | |
+| ~m»~ | ~emms-player-mpd-next~ | ~mpd-next~ | |
+| ~ma~ | ~hydra-media/body~ | ~'*my-mpd-add-keymap*~ | MPD add |
+| ~maa~ | | ~mpd-serach-and-add-artist~ | |
+| ~maA~ | | ~mpd-serach-and-add-album~ | |
+| ~maf~ | | ~mpd-search-and-add-file~ | |
+| ~maF~ | | ~mpd-add-file~ | |
+| ~mag~ | | ~mpd-search-and-add-genre~ | |
+| ~mat~ | | ~mpd-search-and-add-title~ | |
+| ~mb~ | ~nil~ | ~'*my-mpd-browse-keymap*~ | browse |
+| ~mba~ | ~emms-browse-by-artist~ | ~mpd-browse-artists~ | |
+| ~mbA~ | ~emms-browse-by-album~ | ~mpd-browse-albums~ | |
+| ~mbg~ | ~emms-browse-by-genre~ | ~mpd-browse-genres~ | |
+| ~mbp~ | ~emms-playlists-mode-go~ | ~mpd-browse-playlist~ | |
+| ~mbs~ | ~emms-smart-browse~ | | |
+| ~mbt~ | | ~mpd-browse-tracks~ | |
+| ~mby~ | ~emms-browse-by-year~ | | |
+| ~mc~ | ~emms-player-mpd-clear~ | ~mpd-clear~ | |
+| ~mp~ | ~emms-player-toggle-pause~ | ~mpd-toggle-pause~ | |
+| ~ms~ | ~emms-player-mpd-show~ | | |
+| ~mu~ | ~nil~ | | update |
+| ~mum~ | ~emms-player-mpd-update-all~ | | |
+| ~muc~ | ~emms-cache-set-from-mpd-all~ | | |
+
+* Theme and graphical tweaks
+:PROPERTIES:
+:CUSTOM_ID: Theme-and-graphical-tweaks-ukp6gbc0l9j0
+:END:
+** GTK Settings
+:PROPERTIES:
+:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-2307gbc0l9j0
+:END:
+*** GTK2
+:PROPERTIES:
+:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-GTK2-fq77gbc0l9j0
+:END:
+**** General configuration
+:PROPERTIES:
+:HEADER-ARGS: :mkdirp yes :tangle ~/.gtkrc-2.0
+:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-GTK2-General-configuration-xod7gbc0l9j0
+:END:
+This file is tangled at ~$HOME/.gtkrc-2.0~. This is an equivalent for the GTK3
+configuration file you will see below, and it shares most of its settings.
+First, let’s select the Nordic theme for GTK2. Let’s also set the icon theme.
+#+BEGIN_SRC conf-unix
+# -*- mode: unix-config -*-
+gtk-theme-name="Nordic"
+gtk-icon-theme-name="Flat-Remix-Dark"
+#+END_SRC
+
+#+BEGIN_SRC conf-unix
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle="hintslight"
+#+END_SRC
+
+This changes the shortcuts in menu, let’s also make the menus snappier.
+#+BEGIN_SRC conf-unix
+gtk-can-change-accels=1
+gtk-menu-bar-popup-delay=0
+gtk-menu-popdown-delay=0
+gtk-menu-popup-delay=0
+#+END_SRC
+
+**** Filechooser
+:PROPERTIES:
+:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-2.0/gtkfilechooser.ini
+:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-GTK2-Filechooser-nmh7gbc0l9j0
+:END:
+#+BEGIN_SRC conf-unix
+[Filechooser Settings]
+#+END_SRC
+
+The first option alows me to open the file chooser in the current working
+directory:
+#+BEGIN_SRC conf-unix
+StartupMode=cwd
+#+END_SRC
+
+Next, setting the location mode to ~path-bar~ will show the path as buttons that
+can be clicked rather than the full path.
+#+BEGIN_SRC conf-unix
+LocationMode=path-bar
+#+END_SRC
+
+With this configuration, by default we won’t see hidden files.
+#+BEGIN_SRC conf-unix
+ShowHidden=true
+#+END_SRC
+
+And we'll also see the size of the visible files.
+#+BEGIN_SRC conf-unix
+ShowSizeColumn=true
+#+END_SRC
+
+Now, let’s choose the geometry of our file picker. These two first lines set
+where the file picker appears:
+#+BEGIN_SRC conf-unix
+GeometryX=566
+GeometryY=202
+#+END_SRC
+
+And these two describe the size of the window:
+#+BEGIN_SRC conf-unix
+GeometryWidth=800
+GeometryHeight=400
+#+END_SRC
+
+With these two lines, we set how our files are sorted: by name, and in the
+ascending order.
+#+BEGIN_SRC conf-unix
+SortColumn=name
+SortOrder=ascending
+#+END_SRC
+
+Our default view mode is a list of files:
+#+BEGIN_SRC conf-unix
+ViewMode=list-view
+#+END_SRC
+
+And finally, setting our icon view scale to ~-1~ sets the icon view to the max
+size.
+#+BEGIN_SRC conf-unix
+IconViewScale=-1
+#+END_SRC
+
+*** GTK3
+:PROPERTIES:
+:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-3.0/settings.ini
+:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-GTK3-ojl7gbc0l9j0
+:END:
+The following file helps me choosing the aspect of various GTK+ 3 software,
+including their theme and icons. First, let’s declare the header:
+#+BEGIN_SRC conf-unix
+[Settings]
+#+END_SRC
+
+Now, let’s hint to GTK that I prefer dark themes. This can have an influence
+also on some websites that can detect this preference and therefore set their
+own theme to dark by themselves.
+#+BEGIN_SRC conf-unix
+gtk-application-prefer-dark-theme = true
+#+END_SRC
+
+Next, the icon theme is the Flat Remix Dark icon theme:
+#+BEGIN_SRC conf-unix
+gtk-icon-theme-name = Flat-Remix-Dark
+#+END_SRC
+
+Now, the general theme for GTK3 is Nordic.
+#+BEGIN_SRC conf-unix
+gtk-theme-name = Nordic
+#+END_SRC
+
+#+BEGIN_SRC conf-unix
+gtk-can-change-accels=1
+gtk-menu-bar-popup-delay=0
+gtk-menu-popdown-delay=0
+gtk-menu-popup-delay=0
+#+END_SRC
+
+#+BEGIN_SRC conf-unix
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle=hintslight
+# gtk-xft-rgba=rgb
+#+END_SRC
+
+Since window decorations are handled by my WMs, I will leave this variable
+empty.
+#+BEGIN_SRC conf-unix
+gtk-decoration-layout=
+#+END_SRC
+
+** Picom (Compton)
+:PROPERTIES:
+:CUSTOM_ID: Theme-and-graphical-tweaks-Picom-Compton-uko7gbc0l9j0
+:END:
+Picom is a standalone compositor for Xorg, and the successor to
+Compton, itself successor to xcompmgr-dana, itself a fork of xcompmgr.
+You can find my Picom configuration [[file:picom.org][here]].
+
+** Xresources
+:PROPERTIES:
+:HEADER-ARGS: :mkdirp yes :tangle ~/.Xresources :exports code
+:CUSTOM_ID: Theme-and-graphical-tweaks-Xresources-4dr7gbc0l9j0
+:END:
+The main body in my Xresources declaration is the declaration of my
+color theme. It is based on the [[https://www.nordtheme.com/][Nord]] theme, from their [[https://github.com/arcticicestudio/nord-xresources/][Git repository]].
+#+BEGIN_SRC conf
+#define nord0 #2E3440
+#define nord1 #3B4252
+#define nord2 #434C5E
+#define nord3 #4C566A
+#define nord4 #D8DEE9
+#define nord5 #E5E9F0
+#define nord6 #ECEFF4
+#define nord7 #8FBCBB
+#define nord8 #88C0D0
+#define nord9 #81A1C1
+#define nord10 #5E81AC
+#define nord11 #BF616A
+#define nord12 #D08770
+#define nord13 #EBCB8B
+#define nord14 #A3BE8C
+#define nord15 #B48EAD
+
+,*.foreground: nord4
+,*.background: nord0
+,*.cursorColor: nord4
+,*fading: 35
+,*fadeColor: nord3
+
+,*.color0: nord1
+,*.color1: nord11
+,*.color2: nord14
+,*.color3: nord13
+,*.color4: nord9
+,*.color5: nord15
+,*.color6: nord8
+,*.color7: nord5
+,*.color8: nord3
+,*.color9: nord11
+,*.color10: nord14
+,*.color11: nord13
+,*.color12: nord9
+,*.color13: nord15
+,*.color14: nord7
+,*.color15: nord6
+#+END_SRC
+
+* Gpg configuration
+:PROPERTIES:
+:CUSTOM_ID: Gpg-configuration-6i2ip6l0m9j0
+:END:
+#+begin_src conf :tangle ~/.gnupg/gpg.conf
+keyserver hkp://keys.gnupg.net
+keyserver-options auto-key-retrieve
+keyserver hkp://pgp.mit.edu:11371
+#+end_src
+
+* Email signature
+:PROPERTIES:
+:HEADER-ARGS: :mkdirp yes :tangle ~/.signature
+:CUSTOM_ID: Email-signature-jnn75ac0l9j0
+:END:
+This file gets inserted automatically at the end of my emails.
+#+BEGIN_SRC text
+Lucien “Phundrak” Cartier-Tilet
+https://phundrak.com (Français)
+https://phundrak.com/en (English)
+Sent from GNU/Emacs
+#+END_SRC
+
+* ~.desktop~ files for custom applications
+:PROPERTIES:
+:CUSTOM_ID: -desktop-files-for-custom-applications-cksiyhg0m9j0
+:END:
+Some software I use are not packaged (yet) on my system. Therefore, in
+order to make them available in ~rofi~, I need to write a ~.desktop~ file
+so I can launch them.
+
+** Emacs
+:PROPERTIES:
+:CUSTOM_ID: -desktop-files-for-custom-applications-Emacs-6e9actg0m9j0
+:END:
+Emacs does have a default ~.desktop~ file, but I want to override it so
+I can just “open with Emacs” from other software (such as Nemo) and it
+will instead open with ~emacsclient~.
+#+begin_src conf-desktop :tangle ~/.local/share/applications/emacs.desktop
+[Desktop Entry]
+Name=Emacs
+GenericName=Text Editor
+Comment=Edit text
+MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+Exec=emacsclient -c %F
+Icon=emacs
+Type=Application
+Terminal=false
+Categories=Development;TextEditor;
+StartupWMClass=Emacs
+Keywords=Text;Editor;
+#+end_src
+
+I also have ~mu4e.desktop~ which is used to set my default email client.
+It relies on ~emacsmail~ defined in [[file:bin.org::#Emacsmail-afffb7cd][this document]].
+#+begin_src conf-desktop :tangle ~/.local/share/applications/mu4e.desktop
+[Desktop Entry]
+Name=Mu4e
+GenericName=Mu4e
+Comment=Maildir Utils for Emacs
+MimeType=x-scheme-handler/mailto;
+Exec=/home/phundrak/.local/bin/emacsmail %U
+Icon=emacs
+Type=Application
+Terminal=false
+Categories=Network;Email;TextEditor
+StartupWMClass=Gnus
+Keywords=Text;Editor;
+#+end_src
+
+Then I also have ~org-protocol.desktop~ so I can capture elements from
+other software, mainly web pages from Firefox through the [[https://github.com/sprig/org-capture-extension][org-capture
+extension]].
+#+begin_src conf-desktop :tangle ~/.local/share/applications/org-protocol.desktop
+[Desktop Entry]
+Name=org-protocol
+Exec=emacsclient %u
+Type=Application
+Terminal=false
+Categories=System;
+MimeType=x-scheme-handler/org-protocol;
+#+end_src
+
+** FlowScape
+:PROPERTIES:
+:CUSTOM_ID: -desktop-files-for-custom-applications-FlowScape-7zelglg0m9j0
+:END:
+[[https://pixelforest.itch.io/flowscape][FlowScape]] is a nice 3D compositing software I sometimes use to create
+landscapes. I always install it in =~/.local/opt/Flowscape=, so the
+~.desktop~ file is relatively straightforward.
+#+begin_src conf-desktop :tangle ~/.local/share/applications/FlowScape.desktop
+[Desktop Entry]
+Version=1.5
+Name=FlowScape
+Comment=Create gorgeous 3D landscapes with ease.
+Exec=/usr/bin/prime-run /home/phundrak/.local/opt/FlowScape/FlowScape.x86_64
+Path=/home/phundrak/.local/opt/FlowScape
+Icon=/home/phundrak/.local/opt/FlowScape/icon.jpg
+Terminal=false
+Type=Application
+Categories=Graphics
+#+end_src
+
+** macOS
+:PROPERTIES:
+:CUSTOM_ID: -desktop-files-for-custom-applications-macOS-yb1dmyg0m9j0
+:END:
+You did not read wrong! Yes I have an entry for macOS, but this is for
+a virtual machine located in ~~/VMs/macOS~.
+#+begin_src conf-desktop :tangle ~/.local/share/applications/macos.desktop
+[Desktop Entry]
+Version=1
+Name=macOS
+Comment=macOS in a virtual machine
+Exec=/usr/bin/prime-run /home/phundrak/VMs/macOS/basic.sh
+Path=/home/phundrak/VMs/macOS
+Icon=/home/phundrak/VMs/macOS/macOS.png
+Terminal=false
+Type=Application
+Categories=Development
+#+end_src
+
+** Minecraft
+:PROPERTIES:
+:CUSTOM_ID: -desktop-files-for-custom-applications-Minecraft-tds7ddh0m9j0
+:END:
+Yup, I play Minecraft. And yes, it does have a default ~.desktop~ file,
+but this one overrides it so it launches automatically Minecraft with
+[[https://wiki.archlinux.org/title/PRIME][prime-run]] so my GPU is used.
+#+begin_src conf-desktop :tangle ~/.local/share/applications/minecraft-launcher.desktop
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=Minecraft Launcher (Nvidia)
+Comment=Official Minecraft Launcher
+Exec=/usr/bin/prime-run /usr/bin/minecraft-launcher
+Path=/usr/bin/
+Icon=minecraft-launcher
+Terminal=false
+Categories=Game;Application;
+#+end_src
+
+** OtherWorldMapper
+:PROPERTIES:
+:CUSTOM_ID: -desktop-files-for-custom-applications-OtherWorldMapper-rnh4omg0m9j0
+:END:
+OtherWorldMapper is a map creation software. It is always installed in
+~~/.local/opt/OtherWorldMapper~.
+#+begin_src conf-desktop :tangle ~/.local/share/applications/OWM.desktop
+[Desktop Entry]
+Version=1.0.4
+Name=OtherWorldMapper
+Comment=OtherWorldMapper is a powerful yet intuitive fantasy map creation tool.
+Exec=/usr/bin/prime-run /home/phundrak/.local/opt/OtherWorldMapper/OWM
+Path=/home/phundrak/.local/opt/OtherWorldMapper
+Icon=/home/phundrak/.local/opt/OtherWorldMapper/owm.ico
+Terminal=false
+Type=Application
+Categories=Graphics
+#+end_src
+
+** Wonderdraft
+:PROPERTIES:
+:CUSTOM_ID: -desktop-files-for-custom-applications-Wonderdraft-0qaa6qg0m9j0
+:END:
+Wonderdraft is another map creation software. I install it in
+~~/.local/opt/Wonderdraft~.
+#+begin_src conf-desktop
+[Desktop Entry]
+Version=1.1.3.2
+Name=Wonderdraft
+Comment=Wonderdraft is a powerful yet intuitive fantasy map creation tool.
+Exec=/usr/bin/prime-run /home/phundrak/.local/opt/Wonderdraft/Wonderdraft.x86_64
+Path=/home/phundrak/.local/opt/Wonderdraft
+Icon=/home/phundrak/.local/opt/Wonderdraft/Wonderdraft.png
+Terminal=false
+Type=Application
+Categories=Graphics
+#+end_src
+
+** YouTube ~.desktop~ files
+:PROPERTIES:
+:CUSTOM_ID: -desktop-files-for-custom-applications-YouTube-desktop-files-0pw918h0m9j0
+:END:
+The first ~.desktop~ file related to YouTube is ~ytdl.desktop~ which runs
+~ytdl~ defined in [[file:bin.org::#ytdl-a-youtube-dl-wrapper-03bd63e0][this document]].
+#+begin_src conf-desktop :tangle ~/.local/share/applications/ytdl.desktop
+[Desktop Entry]
+Version=0.3
+Name=YTDL
+Comment=YouTube (and more) video downloader
+Exec=/home/phundrak/.local/bin/rofi-ytdl
+Path=/home/phundrak/.local/bin
+Terminal=false
+Type=Application
+Categories=Network;Video
+#+end_src
+
+There is also ~ytplay.desktop~ for ~ytplay~ defined in [[file:bin.org::#Media-youtube-dl-wrappers-ytplay-z6ka39h0m9j0][this document]].
+#+begin_src conf-desktop
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=ytplay (YouTube in mpv)
+Comment=Play YouTube videos in mpv
+Exec=/home/phundrak/.local/bin/ytplay
+Path=/home/phundrak/.local/bin
+Terminal=false
+Categories=Media
+#+end_src
diff --git a/org/config/index.org b/org/config/index.org
index f89cc3a..9ad7295 100644
--- a/org/config/index.org
+++ b/org/config/index.org
@@ -92,213 +92,6 @@ My annotated polybar config can be found [[file:polybar.org][here]], if you wish
do not use polybar anymore, and I will not update it until I may someday use it
again. This was deprecated on August 22nd, 2020.
-** Theme and graphical tweaks
-:PROPERTIES:
-:CUSTOM_ID: Features-Graphical_tweaks-9879f6b0
-:END:
-*** GTK Settings
-:PROPERTIES:
-:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-752e9916
-:END:
-**** GTK2
-:PROPERTIES:
-:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-74c9de24
-:END:
-***** General configuration
-:PROPERTIES:
-:HEADER-ARGS: :mkdirp yes :tangle ~/.gtkrc-2.0
-:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-General_configuration-eb1f1f3c
-:END:
-This file is tangled at ~$HOME/.gtkrc-2.0~. This is an equivalent for the GTK3
-configuration file you will see below, and it shares most of its settings.
-First, let’s select the Nordic theme for GTK2. Let’s also set the icon theme.
-#+BEGIN_SRC conf-unix
-# -*- mode: unix-config -*-
-gtk-theme-name="Nordic"
-gtk-icon-theme-name="Flat-Remix-Dark"
-#+END_SRC
-
-#+BEGIN_SRC conf-unix
-gtk-xft-antialias=1
-gtk-xft-hinting=1
-gtk-xft-hintstyle="hintslight"
-#+END_SRC
-
-This changes the shortcuts in menu, let’s also make the menus snappier.
-#+BEGIN_SRC conf-unix
-gtk-can-change-accels=1
-gtk-menu-bar-popup-delay=0
-gtk-menu-popdown-delay=0
-gtk-menu-popup-delay=0
-#+END_SRC
-
-***** Filechooser
-:PROPERTIES:
-:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-2.0/gtkfilechooser.ini
-:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-Filechooser-389f040d
-:END:
-#+BEGIN_SRC conf-unix
-[Filechooser Settings]
-#+END_SRC
-
-The first option alows me to open the file chooser in the current working
-directory:
-#+BEGIN_SRC conf-unix
-StartupMode=cwd
-#+END_SRC
-
-Next, setting the location mode to ~path-bar~ will show the path as buttons that
-can be clicked rather than the full path.
-#+BEGIN_SRC conf-unix
-LocationMode=path-bar
-#+END_SRC
-
-With this configuration, by default we won’t see hidden files.
-#+BEGIN_SRC conf-unix
-ShowHidden=true
-#+END_SRC
-
-And we'll also see the size of the visible files.
-#+BEGIN_SRC conf-unix
-ShowSizeColumn=true
-#+END_SRC
-
-Now, let’s choose the geometry of our file picker. These two first lines set
-where the file picker appears:
-#+BEGIN_SRC conf-unix
-GeometryX=566
-GeometryY=202
-#+END_SRC
-
-And these two describe the size of the window:
-#+BEGIN_SRC conf-unix
-GeometryWidth=800
-GeometryHeight=400
-#+END_SRC
-
-With these two lines, we set how our files are sorted: by name, and in the
-ascending order.
-#+BEGIN_SRC conf-unix
-SortColumn=name
-SortOrder=ascending
-#+END_SRC
-
-Our default view mode is a list of files:
-#+BEGIN_SRC conf-unix
-ViewMode=list-view
-#+END_SRC
-
-And finally, setting our icon view scale to ~-1~ sets the icon view to the max
-size.
-#+BEGIN_SRC conf-unix
-IconViewScale=-1
-#+END_SRC
-
-**** GTK3
-:PROPERTIES:
-:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-3.0/settings.ini
-:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK3-3d6cba86
-:END:
-The following file helps me choosing the aspect of various GTK+ 3 software,
-including their theme and icons. First, let’s declare the header:
-#+BEGIN_SRC conf-unix
-[Settings]
-#+END_SRC
-
-Now, let’s hint to GTK that I prefer dark themes. This can have an influence
-also on some websites that can detect this preference and therefore set their
-own theme to dark by themselves.
-#+BEGIN_SRC conf-unix
-gtk-application-prefer-dark-theme = true
-#+END_SRC
-
-Next, the icon theme is the Flat Remix Dark icon theme:
-#+BEGIN_SRC conf-unix
-gtk-icon-theme-name = Flat-Remix-Dark
-#+END_SRC
-
-Now, the general theme for GTK3 is Nordic.
-#+BEGIN_SRC conf-unix
-gtk-theme-name = Nordic
-#+END_SRC
-
-#+BEGIN_SRC conf-unix
-gtk-can-change-accels=1
-gtk-menu-bar-popup-delay=0
-gtk-menu-popdown-delay=0
-gtk-menu-popup-delay=0
-#+END_SRC
-
-#+BEGIN_SRC conf-unix
-gtk-xft-antialias=1
-gtk-xft-hinting=1
-gtk-xft-hintstyle=hintslight
-# gtk-xft-rgba=rgb
-#+END_SRC
-
-Since window decorations are handled by my WMs, I will leave this variable
-empty.
-#+BEGIN_SRC conf-unix
-gtk-decoration-layout=
-#+END_SRC
-
-*** Picom (Compton)
-:PROPERTIES:
-:CUSTOM_ID: Features-Graphical_tweaks-Picom-b5b9a4dd
-:END:
-Picom is a standalone compositor for Xorg, and the successor to
-Compton, itself successor to xcompmgr-dana, itself a fork of xcompmgr.
-You can find my Picom configuration [[file:picom.org][here]].
-
-*** Xresources
-:PROPERTIES:
-:HEADER-ARGS: :mkdirp yes :tangle ~/.Xresources :exports code
-:CUSTOM_ID: Features-Graphical_tweaks-Xresources-8b622de1
-:END:
-The main body in my Xresources declaration is the declaration of my
-color theme. It is based on the [[https://www.nordtheme.com/][Nord]] theme, from their [[https://github.com/arcticicestudio/nord-xresources/][Git repository]].
-#+BEGIN_SRC conf
-#define nord0 #2E3440
-#define nord1 #3B4252
-#define nord2 #434C5E
-#define nord3 #4C566A
-#define nord4 #D8DEE9
-#define nord5 #E5E9F0
-#define nord6 #ECEFF4
-#define nord7 #8FBCBB
-#define nord8 #88C0D0
-#define nord9 #81A1C1
-#define nord10 #5E81AC
-#define nord11 #BF616A
-#define nord12 #D08770
-#define nord13 #EBCB8B
-#define nord14 #A3BE8C
-#define nord15 #B48EAD
-
-,*.foreground: nord4
-,*.background: nord0
-,*.cursorColor: nord4
-,*fading: 35
-,*fadeColor: nord3
-
-,*.color0: nord1
-,*.color1: nord11
-,*.color2: nord14
-,*.color3: nord13
-,*.color4: nord9
-,*.color5: nord15
-,*.color6: nord8
-,*.color7: nord5
-,*.color8: nord3
-,*.color9: nord11
-,*.color10: nord14
-,*.color11: nord13
-,*.color12: nord9
-,*.color13: nord15
-,*.color14: nord7
-,*.color15: nord6
-#+END_SRC
-
** Text and source code editing
:PROPERTIES:
:CUSTOM_ID: Features-Text_and_source_code_editing-63cc66d5
@@ -368,19 +161,6 @@ You can find my tmux configuration in [[file:tmux.org][tmux.org]]. It depends on
:PROPERTIES:
:CUSTOM_ID: Features-And_some_minor_configuration_files-d5cec319
:END:
-*** Email signature
-:PROPERTIES:
-:HEADER-ARGS: :mkdirp yes :tangle ~/.signature
-:CUSTOM_ID: Features-And_some_minor_configuration_files-Email_signature-8c5f2218
-:END:
-This file gets inserted automatically at the end of my emails.
-#+BEGIN_SRC text
-Lucien “Phundrak” Cartier-Tilet
-https://phundrak.com (Français)
-https://phundrak.com/en (English)
-Sent from GNU/Emacs
-#+END_SRC
-
*** Global gitignore
:PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.gitignore_global