]> git.vanrenterghem.biz Git - Dotty.git/commitdiff
Voeg Zathura Emacs keybindings toe. master
authorFrederik Vanrenterghem <frederik@vanrenterghem.biz>
Tue, 7 May 2024 12:17:13 +0000 (20:17 +0800)
committerFrederik Vanrenterghem <frederik@vanrenterghem.biz>
Tue, 7 May 2024 12:17:13 +0000 (20:17 +0800)
21 files changed:
autorandr/.config/autorandr/default [new symlink]
autorandr/.config/autorandr/docked-laptop-lid-closed/config [new file with mode: 0644]
autorandr/.config/autorandr/docked-laptop-lid-closed/setup [new file with mode: 0644]
autorandr/.config/autorandr/docked/config [new file with mode: 0644]
autorandr/.config/autorandr/docked/setup [new file with mode: 0644]
autorandr/.config/autorandr/mobile/config [new file with mode: 0644]
autorandr/.config/autorandr/mobile/setup [new file with mode: 0644]
autorandr/.config/autorandr/postswitch [new file with mode: 0755]
bash/.bashrc
emacs/.emacs [deleted file]
emacs/.emacs.d/init.el [new file with mode: 0644]
i3/.config/i3/config [new file with mode: 0644]
i3status/.config/i3status/config [new file with mode: 0644]
isync/.mbsyncrc
mimeapps/.config/mimeapps.list [new file with mode: 0644]
ssh/.ssh/config
sway/.config/sway/config
sway/.config/sway/config.d/special_keys [new file with mode: 0644]
sway/.config/sway/scripts/gnome-keyring.sh [new file with mode: 0755]
systemd/.config/environment.d/envvars.conf [new file with mode: 0644]
zathura/.config/zathura/zathurarc [new file with mode: 0644]

diff --git a/autorandr/.config/autorandr/default b/autorandr/.config/autorandr/default
new file mode 120000 (symlink)
index 0000000..317801a
--- /dev/null
@@ -0,0 +1 @@
+mobile
\ No newline at end of file
diff --git a/autorandr/.config/autorandr/docked-laptop-lid-closed/config b/autorandr/.config/autorandr/docked-laptop-lid-closed/config
new file mode 100644 (file)
index 0000000..fb5a186
--- /dev/null
@@ -0,0 +1,19 @@
+output eDP-1
+off
+output DP-1
+off
+output DP-2
+off
+output DP-2-1
+off
+output DP-2-3
+off
+output DP-2-2
+crtc 1
+mode 2560x1440
+pos 0x0
+rate 59.95
+x-prop-audio auto
+x-prop-broadcast_rgb Automatic
+x-prop-max_bpc 12
+x-prop-non_desktop 0
diff --git a/autorandr/.config/autorandr/docked-laptop-lid-closed/setup b/autorandr/.config/autorandr/docked-laptop-lid-closed/setup
new file mode 100644 (file)
index 0000000..40c5b26
--- /dev/null
@@ -0,0 +1 @@
+DP-2-2 00ffffffffffff004c2d17104256423032300103803f24782ac8b5ad50449e250f5054bfef80714f810081c081809500a9c0b3000101ca2e90a0601a234030203600ffff0000001e000000fd00324b1e8721000a202020202020000000fc004c5532385235350a2020202020000000ff00484e4d4e3530303035340a20200112020335f04900120313041f10005f2309070783010000e30500006b030c001000b03c200020016700000000000000e20f81e3060501023a801871382d40582c450078682100001e023a80d072382d40102c458078682100001e04740030f2705a80b0588a0078682100001e565e00a0a0a029503020350078682100001a0000d7
diff --git a/autorandr/.config/autorandr/docked/config b/autorandr/.config/autorandr/docked/config
new file mode 100644 (file)
index 0000000..29caf6d
--- /dev/null
@@ -0,0 +1,28 @@
+output DP-1
+off
+output DP-2
+off
+output DP-2-1
+off
+output DP-2-3
+off
+output eDP-1
+crtc 0
+mode 2048x1152
+pos 0x0
+primary
+rate 59.90
+x-prop-broadcast_rgb Automatic
+x-prop-colorspace Default
+x-prop-max_bpc 12
+x-prop-non_desktop 0
+x-prop-scaling_mode Full aspect
+output DP-2-2
+crtc 1
+mode 2560x1440
+pos 2048x0
+rate 59.95
+x-prop-audio auto
+x-prop-broadcast_rgb Automatic
+x-prop-max_bpc 12
+x-prop-non_desktop 0
diff --git a/autorandr/.config/autorandr/docked/setup b/autorandr/.config/autorandr/docked/setup
new file mode 100644 (file)
index 0000000..5e225a2
--- /dev/null
@@ -0,0 +1,2 @@
+DP-2-2 00ffffffffffff004c2d17104256423032300103803f24782ac8b5ad50449e250f5054bfef80714f810081c081809500a9c0b3000101ca2e90a0601a234030203600ffff0000001e000000fd00324b1e8721000a202020202020000000fc004c5532385235350a2020202020000000ff00484e4d4e3530303035340a20200112020335f04900120313041f10005f2309070783010000e30500006b030c001000b03c200020016700000000000000e20f81e3060501023a801871382d40582c450078682100001e023a80d072382d40102c458078682100001e04740030f2705a80b0588a0078682100001e565e00a0a0a029503020350078682100001a0000d7
+eDP-1 00ffffffffffff0030e4870500000000001a0104a51f1178eae3f5a351479c261050540000000101010101010101010101010101010160d100b4f0703e803c24350035ae1000001a000000000000000000000000000000000000000000fe004c4720446973706c61790a2020000000fe004c503133395544312d5350433100bc
diff --git a/autorandr/.config/autorandr/mobile/config b/autorandr/.config/autorandr/mobile/config
new file mode 100644 (file)
index 0000000..7b0d1d4
--- /dev/null
@@ -0,0 +1,15 @@
+output DP-1
+off
+output DP-2
+off
+output eDP-1
+crtc 0
+mode 2048x1152
+pos 0x0
+primary
+rate 59.90
+x-prop-broadcast_rgb Automatic
+x-prop-colorspace Default
+x-prop-max_bpc 12
+x-prop-non_desktop 0
+x-prop-scaling_mode Full aspect
diff --git a/autorandr/.config/autorandr/mobile/setup b/autorandr/.config/autorandr/mobile/setup
new file mode 100644 (file)
index 0000000..61dd91f
--- /dev/null
@@ -0,0 +1 @@
+eDP-1 00ffffffffffff0030e4870500000000001a0104a51f1178eae3f5a351479c261050540000000101010101010101010101010101010160d100b4f0703e803c24350035ae1000001a000000000000000000000000000000000000000000fe004c4720446973706c61790a2020000000fe004c503133395544312d5350433100bc
diff --git a/autorandr/.config/autorandr/postswitch b/autorandr/.config/autorandr/postswitch
new file mode 100755 (executable)
index 0000000..56b5016
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+# reload feh bg script to fix up what's probably wrong after monitor switches
+exec ~/.fehbg
index 0aa32287d5f918baf8fd8398274052befbb8b6d9..12b51840e0a52f24eb53c3204185a44cf145a3c5 100644 (file)
@@ -6,7 +6,29 @@
 [[ $- != *i* ]] && return
 
 alias ls='ls --color=auto'
-PS1='[\u@\h \W]\$ '
+
+git_branch() {
+  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
+}
+
+PS1="[\u@\h \W]\[\033[00;32m\]\$(git_branch)\[\033[00m\]\$ "
+
+unset SSH_AGENT_PID
+if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
+  export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
+fi
 
 export GPG_TTY=$(tty)
 gpg-connect-agent updatestartuptty /bye >/dev/null
+
+[ -n "$DISPLAY" ] && export BROWSER=firefox || export BROWSER=w3m
+
+source /etc/profile.d/nix-daemon.sh
+export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive
+
+# Initialise pyenv
+export PYENV_ROOT="$HOME/.pyenv"
+[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
+eval "$(pyenv init -)"
+
+export PATH="$PATH:$HOME/scripts"
diff --git a/emacs/.emacs b/emacs/.emacs
deleted file mode 100644 (file)
index fc8ff51..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-;; Added by Package.el.  This must come before configurations of
-;; installed packages.  Don't delete this line.  If you don't want it,
-;; just comment it out by adding a semicolon to the start of the line.
-;; You may delete these explanatory comments.
-(package-initialize)
-
-;; Mandatory theme, being from Leuven originally
-(load-theme 'leuven t)
-
-;; ESS - for working in R
-(autoload 'R-mode "ess-site.el" "Major mode for editing R source." t)
-
-(require 'org)
-
-;; Auctex
-(load "auctex.el" nil t t)
-(load "preview-latex.el" nil t t)
-
-;; org-mode support for R and LaTeX
-(org-babel-do-load-languages
- 'org-babel-load-languages
- '((R . t)
-   (latex . t)))
-;; Security risk - This is somewhat ill-advised it appears
-(setq org-confirm-babel-evaluate nil)
-
-;; Automatically switch to various modes
-(setq auto-mode-alist
-    '(("\\.mdwn\\'" . markdown-mode)
-      ("\\.md\\'" . markdown-mode)
-      ("\\.yarn\\'" . markdown-mode)
-      ("\\.js\\'" . js-mode)
-      ("\\.json\\'" . js-mode)
-      ("Makefile" . makefile-mode)
-      ("README" . markdown-mode)
-      ("NEWS" . markdown-mode)
-      ("COMMIT_EDITMSG\\'" . text-mode)
-      ("\\.html\\'" . html-mode)
-      ("\\.css\\'" . css-mode)
-      ("\\.yaml\\'" . yaml-mode)
-      ("\\.yml\\'" . yaml-mode)
-      ("\\.ick\\'" . yaml-mode)
-      ("\\.py\\'" . python-mode)
-      ("\\.R\\'" . R-mode)
-      ("\\.org\\'" . org-mode)
-      ("\\.sh\\'" . shell-script-mode)))
-
-;; Enable the melpa archive for packages
-(require 'package)
-(setq package-enable-at-startup nil)
-(add-to-list 'package-archives
-             '("melpa" . "http://melpa.milkbox.net/packages/") t)
-(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
-(add-to-list 'package-archives
-             '("elpy" . "http://jorgenschaefer.github.io/packages/"))
-
-
-(custom-set-variables
- ;; custom-set-variables was added by Custom.
- ;; If you edit it by hand, you could mess it up, so be careful.
- ;; Your init file should contain only one such instance.
- ;; If there is more than one, they won't work right.
- '(org-export-backends (quote (ascii html icalendar latex md odt)))
- '(package-selected-packages
-   (quote
-    (elpy ## org htmlize leuven-theme lua-mode ess-smart-underscore ess-R-data-view ess))))
-(custom-set-faces
- ;; custom-set-faces was added by Custom.
- ;; If you edit it by hand, you could mess it up, so be careful.
- ;; Your init file should contain only one such instance.
- ;; If there is more than one, they won't work right.
- '(default ((t (:family "Source Code Pro" :foundry "ADBO" :slant normal :weight normal :height 143 :width normal)))))
-
-
diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el
new file mode 100644 (file)
index 0000000..a26675a
--- /dev/null
@@ -0,0 +1,220 @@
+;; Added by Package.el.  This must come before configurations of
+;; installed packages.  Don't delete this line.  If you don't want it,
+;; just comment it out by adding a semicolon to the start of the line.
+;; You may delete these explanatory comments.
+(package-initialize)
+
+(add-to-list 'load-path "~/.emacs.d/lisp/")
+
+;; Use a dark theme now
+;(load-theme 'wheatgrass)
+
+;; Use light theme
+;;(load-theme 'leuven t)
+(require 'modus-themes)
+(load-theme 'modus-operandi t)
+(setq modus-themes-mixed-fonts t)
+
+;; ESS - for working in R
+(autoload 'R-mode "ess-site.el" "Major mode for editing R source." t)
+(setq load-path (cons "/usr/share/emacs/site-lisp/ess" load-path))
+(load "/usr/share/emacs/site-lisp/ess/lisp/ess-site")
+(setq inferior-julia-program-name "/usr/bin/julia")
+
+;; enable autocomplete
+(add-hook 'after-init-hook 'global-company-mode)
+
+(require 'org)
+
+;; Automatically flow lines based on window width and use
+;; variable width fonts in org-mode.
+(add-hook 'org-mode-hook 'visual-line-mode)
+(add-hook 'org-mode-hook 'variable-pitch-mode)
+
+;; Auctex
+(load "auctex.el" nil t t)
+(load "preview-latex.el" nil t t)
+
+;; org-mode support for R and LaTeX
+(org-babel-do-load-languages
+ 'org-babel-load-languages
+ '((R . t)
+   (latex . t)))
+;; Security risk - This is somewhat ill-advised it appears
+(setq org-confirm-babel-evaluate nil)
+
+;; Automatically switch to various modes
+(setq auto-mode-alist
+    '(("\\.mdwn\\'" . markdown-mode)
+      ("\\.md\\'" . markdown-mode)
+      ("\\.yarn\\'" . markdown-mode)
+      ("\\.js\\'" . js-mode)
+      ("\\.json\\'" . js-mode)
+      ("Makefile" . makefile-mode)
+      ("README" . markdown-mode)
+      ("NEWS" . markdown-mode)
+      ("COMMIT_EDITMSG\\'" . text-mode)
+      ("\\.html\\'" . html-mode)
+      ("\\.css\\'" . css-mode)
+      ("\\.yaml\\'" . yaml-mode)
+      ("\\.yml\\'" . yaml-mode)
+      ("\\.ick\\'" . yaml-mode)
+      ("\\.py\\'" . python-mode)
+      ("\\.R\\'" . R-mode)
+      ("\\.org\\'" . org-mode)
+      ("\\.sh\\'" . shell-script-mode)
+      ("\\.hs\\'" . haskell-mode)
+      ("\\.el\\'" . emacs-lisp-mode)))
+
+;; Enable the melpa archive for packages
+(require 'package)
+(setq package-enable-at-startup nil)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
+(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
+(add-to-list 'package-archives
+             '("elpy" . "http://jorgenschaefer.github.io/packages/"))
+
+(custom-set-variables
+ ;; custom-set-variables was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ '(browse-url-browser-function 'browse-url-firefox)
+ '(custom-safe-themes
+   '("0cf95236abcf59e05b1ea69b4edd53d293a5baec4fe4c3484543fee99bfd2204" "80b00f3bf7cdbdca6c80aadfbbb03145f3d0aacf6bf2a559301e61109954e30a" default))
+ '(denote-directory "/home/frederik/Nextcloud/notes/" t)
+ '(org-export-backends '(ascii html icalendar latex md odt))
+ '(package-selected-packages
+   '(ftable flx nerd-icons-dired nerd-icons all-the-icons-dired marginalia vertico denote ox-rss org-ql org-contrib mustache org-static-blog haskell-mode julia-mode elfeed-protocol ack company magit auctex lsp-mode elpy ## org htmlize leuven-theme lua-mode ess-smart-underscore ess-R-data-view ess)))
+(custom-set-faces
+ ;; custom-set-faces was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ '(default ((t (:family "Source Code Pro" :foundry "ADBO" :slant normal :weight normal :height 143 :width normal)))))
+
+
+;; Send mail using SMTP via mail.vanrenterghem.io.
+(setq send-mail-function    'smtpmail-send-it)
+(setq smtpmail-smtp-server "mail.vanrenterghem.io"
+      smtpmail-smtp-service 587
+      smtpmail-stream-type 'starttls)
+(setq user-full-name "Frederik Vanrenterghem"
+      smtpmail-local-domain "vanrenterghem.io"
+      user-mail-address (concat "frederik@" smtpmail-local-domain))
+(setq mail-default-headers
+      (concat "X-Mailer: GNU Emacs " (symbol-value 'emacs-version))) 
+(setq w3m-pop-up-frames t)
+
+(global-set-key [remap list-buffers] 'ibuffer)
+
+;;; use pass (~/.password-store)
+;;; (see The Unix password store)
+(auth-source-pass-enable)
+
+;; Elfeed news reader from Nextcloud
+(require 'elfeed)
+(require 'elfeed-protocol)
+
+(setq elfeed-use-curl nil)
+(elfeed-set-timeout 36000)
+(setq elfeed-protocol-feeds '(
+            ("owncloud+https://frederik@owncloud.vanrenterghem.biz" :use-authinfo t)
+        ))
+(elfeed-protocol-enable)
+(define-key elfeed-search-mode-map (kbd "*") (lambda () (interactive) (apply 'elfeed-search-toggle-all '(star))))
+(define-key elfeed-show-mode-map (kbd "*") (lambda () (interactive) (apply 'elfeed-show-tag '(star))))
+
+;; Read email using mu4e
+(require 'mu4e)
+(setq mail-user-agent 'mu4e-user-agent)
+(setq mu4e-get-mail-command "mbsync io")
+(setq mu4e-update-interval 600)
+(setq mu4e-use-fancy-chars t)
+(setq mu4e-view-show-images t)
+(setq mu4e-sent-folder   "/Sent"
+      mu4e-drafts-folder "/Drafts"
+      mu4e-trash-folder  "/Trash")
+;; Create custom spam status header and show in message view
+(add-to-list 'mu4e-header-info-custom
+ '(:spam-status .
+     ( :name "Spam-Status"     ;; long name, as seen in the message-view
+       :shortname "Spam"      ;; short name, as seen in the headers view
+       :help "The Spam status" ;; tooltip
+       ;; uses mu4e-fetch-field which is rel. slow, so only appropriate
+       ;; for mu4e-view-fields, and _not_ mu4e-headers-fields
+       :function (lambda (msg)
+                  (or (string-join (seq-take (split-string (or (mu4e-fetch-field msg "X-Spam-Status") "") " ") 2) " ") "")))))
+(add-to-list 'mu4e-view-fields :spam-status)
+
+;; Resize image attachments when sending email
+(defvar mu4e-resize-image-types '("jpg" "png" "svg" "jpeg")
+  "List of attached image types to resize.")
+
+(defvar mu4e-inhibit-resize nil)
+
+(defun mu4e-resize-image-attachments ()
+  (unless mu4e-inhibit-resize
+    (let (cmds
+      (image-types
+       (mapconcat #'identity mu4e-resize-image-types "\\|")))
+      (save-excursion
+    (message-goto-body-1)
+    (while (re-search-forward 
+        (format "<#part.+\\(filename=\"\\)\\(.+\\(\\.%s\\)\\)\""
+            image-types)
+        nil t)
+      (let* ((infile (match-string-no-properties 2))
+         (outfile (concat (temporary-file-directory)
+                  (file-name-nondirectory infile))))
+        (push (format "convert %s -resize 1200x1200\\> %s"
+              (shell-quote-argument infile)
+              (shell-quote-argument outfile))
+          cmds)
+        (replace-match outfile t t nil 2)))
+    (mapcar #'shell-command cmds)))))
+
+(add-hook 'message-send-hook 'mu4e-resize-image-attachments)
+
+(defun mu4e-inhibit-resize()
+  (interactive)
+  (set (make-local-variable 'mu4e-inhibit-resize) t))
+
+;; Load configuration for website
+;(load "mustache-html")
+
+;; Denote config
+(setq denote-directory "/home/frederik/Nextcloud/notes/")
+
+;; Dired configuration
+(with-eval-after-load 'dired
+  (require 'dired-x)
+  ;; Set dired-x global variables here.  For example:
+  ;; (setq dired-x-hands-off-my-keys nil)
+  )
+(add-hook 'dired-mode-hook
+          (lambda ()
+            ;; Set dired-x buffer-local variables here.
+            (dired-omit-mode 1)
+           (dired-hide-details-mode 1)
+           (nerd-icons-dired-mode 1)
+            ))
+(setq delete-by-moving-to-trash t)
+(setq dired-guess-shell-alist-user
+      '(("\\.\\(png\\|jpe?g\\|tiff\\)" "feh" "xdg-open")
+        ("\\.\\(mp[34]\\|m4a\\|ogg\\|flac\\|webm\\|mkv\\)" "mpv" "xdg-open")
+               (".*" "xdg-open")))
+
+;; Use `vertico' package to get a vertical view of the minibuffer.
+(setq vertico-resize nil)
+(vertico-mode 1)
+
+;; Use `marginalia' package.  This will display useful
+;; annotations next to entries in the minibuffer.  For example, when
+;; using M-x it will show a brief description of the command as well
+;; as the keybinding associated with it (if any).
+(marginalia-mode 1)
+
+;; Use 'winner' mode to undo and redo windows changes
+;; using C-c <left> and C-c <right>.
+(winner-mode 1)
diff --git a/i3/.config/i3/config b/i3/.config/i3/config
new file mode 100644 (file)
index 0000000..0c260d3
--- /dev/null
@@ -0,0 +1,219 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+# Set up laptop monitor as primary screen and external screen on its right
+# Managed by autorandr
+exec --no-startup-id autorandr --change
+#exec_always --no-startup-id xrandr --output eDP-1 --mode 2048x1152 --primary \
+#     --output DP-1-2 --auto --mode 2560x1440 --right-of eDP-1
+
+set $mod Mod4
+
+# Move the current workspace to the next output
+# (effectively toggles when you only have two outputs)
+bindsym $mod+x move workspace to output next
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+font pango:monospace 8
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so
+# they are included here as an example. Modify as you see fit.
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+
+# NetworkManager is the most popular way to manage wireless networks on Linux,
+# and nm-applet is a desktop environment-independent system tray GUI for it.
+exec --no-startup-id nm-applet
+
+## Control brightness
+bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%
+bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-
+
+# Use pactl to adjust volume in PulseAudio.
+# Notification via dunst - TODO refactor as per https://github.com/dunst-project/dunst/blob/master/contrib/progress-notify.sh
+exec --no-startup-id dunst
+
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status && dunstify -a "changeVolume" -u low -i audio-volume-medium \
+    -h int:value:"$(pamixer --get-volume)" "Volume: $(pamixer --get-volume)%" \
+    -h string:x-dunst-stack-tag:volume \
+    -h string:hlcolor:#3397ff
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && \
+$refresh_i3status && \
+dunstify -a "changeVolume" -u low -i audio-volume-low \
+    -h int:value:"$(pamixer --get-volume)" "Volume: $(pamixer --get-volume)%" \
+    -h string:x-dunst-stack-tag:volume \
+    -h string:hlcolor:#3397ff
+    
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status && dunstify -t 2000 -u low -i audio-volume-muted \
+-h string:x-dunst-stack-tag:volume "Muted"
+
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec i3-sensible-terminal
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+d exec dmenu_run
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindsym $mod+j focus left
+bindsym $mod+k focus down
+bindsym $mod+l focus up
+bindsym $mod+semicolon focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+j move left
+bindsym $mod+Shift+k move down
+bindsym $mod+Shift+l move up
+bindsym $mod+Shift+semicolon move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+h split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+        # These bindings trigger as soon as you enter the resize mode
+
+        # Pressing left will shrink the window’s width.
+        # Pressing right will grow the window’s width.
+        # Pressing up will shrink the window’s height.
+        # Pressing down will grow the window’s height.
+        bindsym j resize shrink width 10 px or 10 ppt
+        bindsym k resize grow height 10 px or 10 ppt
+        bindsym l resize shrink height 10 px or 10 ppt
+        bindsym semicolon resize grow width 10 px or 10 ppt
+
+        # same bindings, but for the arrow keys
+        bindsym Left resize shrink width 10 px or 10 ppt
+        bindsym Down resize grow height 10 px or 10 ppt
+        bindsym Up resize shrink height 10 px or 10 ppt
+        bindsym Right resize grow width 10 px or 10 ppt
+
+        # back to normal: Enter or Escape or $mod+r
+        bindsym Return mode "default"
+        bindsym Escape mode "default"
+        bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+        status_command i3status
+}
+
+
+# Display Wallpaper
+exec_always feh --bg-fill images/20180418T1659__Outback_regenboog.jpg
+
+# Take a screenshot upon pressing PrtSc (select an area)
+bindsym --release Print exec --no-startup-id import /tmp/`date +%Y%m%dT%H%M%S`--screenshot-`hostname`.png
+
+# Take a screenshot upon pressing PrtSc (select an area)
+bindsym --release Shift+Print exec --no-startup-id import -window root /tmp/`date +%Y%m%dT%H%M%S`--screenshot-`hostname`.png
diff --git a/i3status/.config/i3status/config b/i3status/.config/i3status/config
new file mode 100644 (file)
index 0000000..1bcc848
--- /dev/null
@@ -0,0 +1,65 @@
+# i3status configuration file.
+# see "man i3status" for documentation.
+
+# It is important that this file is edited as UTF-8.
+# The following line should contain a sharp s:
+# ß
+# If the above line is not correctly displayed, fix your editor first!
+
+general {
+        colors = true
+        interval = 5
+}
+
+order += "ipv6"
+order += "wireless _first_"
+order += "ethernet _first_"
+order += "battery all"
+order += "disk /"
+order += "load"
+order += "memory"
+order += "volume master"
+order += "tztime local"
+
+wireless _first_ {
+        format_up = "W: (%quality at %essid) %ip"
+        format_down = "W: down"
+}
+
+ethernet _first_ {
+        format_up = "E: %ip (%speed)"
+        format_down = "E: down"
+}
+
+battery all {
+        format = "%status %percentage %remaining"
+       status_chr = "⚡"
+        status_bat = "🔋"
+        status_unk = "? UNK"
+        status_full = "☻ FULL"
+        low_threshold = 10
+}
+
+disk "/" {
+        format = "%avail"
+}
+
+load {
+        format = "%1min"
+}
+
+memory {
+        format = "%used | %available"
+        threshold_degraded = "1G"
+        format_degraded = "MEMORY < %available"
+}
+
+volume master {
+        format = "♪: %volume"
+        format_muted = "♪: muted (%volume)"
+        device = "pulse:alsa_output.pci-0000_00_1f.3.analog-stereo"
+}
+       
+tztime local {
+        format = "%Y-%m-%d %H:%M:%S"
+}
index 2ee438ca0f3fd48d7576cd60d8aa8e5babc8231d..aaf3142f33ef8f13a8b5f6401f820b6403fcc54b 100644 (file)
@@ -1,7 +1,7 @@
 IMAPAccount io
 Host mail.vanrenterghem.io
 User frederik@vanrenterghem.io
-PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/Documents/paswoorden/frederik@vanrenterghem.io.asc"
+PassCmd "pass mail.vanrenterghem.io/frederik@vanrenterghem.io"
 SSLType IMAPS
 CertificateFile /etc/ssl/certs/ca-certificates.crt
 
@@ -9,76 +9,16 @@ IMAPStore io-remote
 Account io
 
 MaildirStore io-local
-Path ~/.mail/io/
-Inbox ~/.mail/io/Inbox
-
-Channel io-default
-Master :io-remote:
-Slave :io-local:Inbox
-
-Channel io-sent
-Master :io-remote:"Sent"
-slave  :io-local:sent
-
-Channel io-trash
-Master :io-remote:"Trash"
-slave  :io-local:trash
-
-Channel io-archive
-Master :io-remote:"Archive"
-slave  :io-local:archive
-
-Channel io-junk
-Master :io-remote:"Junk"
-slave  :io-local:junk
+Path ~/Mail/mail.vanrenterghem.io/frederik/
+Inbox ~/Mail/mail.vanrenterghem.io/frederik/Inbox
 
+Channel io
+Far :io-remote:
+Near :io-local:
+Patterns *
 # Automatically create missing mailboxes, both locally and on the server
 Create Both
 # Automatically delete messages on either side if they are found deleted on the other.
 Expunge Both
 # Save the synchronization state files in the relevant directory
 SyncState *
-
-Group io
-Channel io-default
-Channel io-trash
-Channel io-archive
-Channel io-sent
-Channel io-junk
-
-IMAPAccount biz
-Host imap.gmail.com
-User frederik@vanrenterghem.biz
-PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/Documents/paswoorden/frederik@vanrenterghem.biz.asc"
-SSLType IMAPS
-CertificateFile /etc/ssl/certs/ca-certificates.crt
-
-IMAPStore biz-remote
-Account biz
-
-MaildirStore biz-local
-Subfolders Verbatim
-Path ~/.mail/biz/
-Inbox ~/.mail/biz/Inbox
-
-Channel biz
-Master :biz-remote:
-Slave :biz-local:
-# Exclude everything under the internal [Gmail] folder, except the interesting folders
-Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/Starred" "[Gmail]/All Mail"
-# Or include everything
-#Patterns *
-
-Channel biz-sent
-Master :biz-remote:"[Gmail]/Verzonden berichten"
-Slave :biz-local:sent
-Create Slave
-
-# Automatically create missing mailboxes, both locally and on the server
-Create Both
-# Save the synchronization state files in the relevant directory
-SyncState *
-
-Group biz
-Channel biz
-Channel biz-sent
diff --git a/mimeapps/.config/mimeapps.list b/mimeapps/.config/mimeapps.list
new file mode 100644 (file)
index 0000000..23c8062
--- /dev/null
@@ -0,0 +1,84 @@
+[Added Associations]
+application/pdf=org.gnome.Evince.desktop;libreoffice-writer.desktop;
+application/vnd.adobe.adept+xml=com.calibre_ebook.calibre.desktop;
+application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
+application/x-remmina=org.remmina.Remmina.desktop;
+application/xhtml+xml=firefox.desktop;
+image/bmp=org.gnome.eog.desktop;
+image/gif=org.gnome.eog.desktop;
+image/jpeg=gimp.desktop;feh.desktop;eog.desktop;
+image/jpg=org.gnome.eog.desktop;
+image/pjpeg=org.gnome.eog.desktop;
+image/png=gimp.desktop;org.gnome.eog.desktop;eog.desktop;
+image/svg+xml=org.gnome.eog.desktop;
+image/svg+xml-compressed=org.gnome.eog.desktop;
+image/tiff=org.gnome.eog.desktop;
+image/vnd.wap.wbmp=org.gnome.eog.desktop;
+image/x-bmp=org.gnome.eog.desktop;
+image/x-gray=org.gnome.eog.desktop;
+image/x-icb=org.gnome.eog.desktop;
+image/x-icns=org.gnome.eog.desktop;
+image/x-ico=org.gnome.eog.desktop;
+image/x-pcx=org.gnome.eog.desktop;
+image/x-png=org.gnome.eog.desktop;
+image/x-portable-anymap=org.gnome.eog.desktop;
+image/x-portable-bitmap=org.gnome.eog.desktop;
+image/x-portable-graymap=org.gnome.eog.desktop;
+image/x-portable-pixmap=org.gnome.eog.desktop;
+image/x-xbitmap=org.gnome.eog.desktop;
+image/x-xpixmap=org.gnome.eog.desktop;
+text/csv=libreoffice-calc.desktop;
+text/html=firefox.desktop;
+text/plain=emacs.desktop;calibre-gui.desktop;vim.desktop;
+text/x-readme=wine-extension-txt.desktop;
+x-scheme-handler/http=firefox.desktop;
+x-scheme-handler/https=firefox.desktop;
+x-scheme-handler/mailto=org.gnome.Evolution.desktop;
+x-scheme-handler/rdp=org.remmina.Remmina.desktop;
+x-scheme-handler/remmina=org.remmina.Remmina.desktop;
+x-scheme-handler/spice=org.remmina.Remmina.desktop;
+x-scheme-handler/vnc=org.remmina.Remmina.desktop;
+text/x-opml+xml=emacs.desktop;
+
+[Default Applications]
+application/x-remmina=org.remmina.Remmina.desktop
+application/xhtml+xml=firefox.desktop
+image/bmp=org.gnome.eog.desktop
+image/gif=org.gnome.eog.desktop
+image/jpeg=org.gnome.eog.desktop
+image/jpg=org.gnome.eog.desktop
+image/pjpeg=org.gnome.eog.desktop
+image/png=org.gnome.eog.desktop
+image/svg+xml=org.gnome.eog.desktop
+image/svg+xml-compressed=org.gnome.eog.desktop
+image/tiff=org.gnome.eog.desktop
+image/vnd.wap.wbmp=org.gnome.eog.desktop
+image/x-bmp=org.gnome.eog.desktop
+image/x-gray=org.gnome.eog.desktop
+image/x-icb=org.gnome.eog.desktop
+image/x-icns=org.gnome.eog.desktop
+image/x-ico=org.gnome.eog.desktop
+image/x-pcx=org.gnome.eog.desktop
+image/x-png=org.gnome.eog.desktop
+image/x-portable-anymap=org.gnome.eog.desktop
+image/x-portable-bitmap=org.gnome.eog.desktop
+image/x-portable-graymap=org.gnome.eog.desktop
+image/x-portable-pixmap=org.gnome.eog.desktop
+image/x-xbitmap=org.gnome.eog.desktop
+image/x-xpixmap=org.gnome.eog.desktop
+text/csv=libreoffice-calc.desktop
+text/html=firefox.desktop
+text/plain=emacs.desktop;
+x-scheme-handler/http=firefox.desktop
+x-scheme-handler/https=firefox.desktop
+x-scheme-handler/mailto=org.gnome.Evolution.desktop
+x-scheme-handler/msteams=teams.desktop
+x-scheme-handler/rdp=org.remmina.Remmina.desktop
+x-scheme-handler/remmina=org.remmina.Remmina.desktop
+x-scheme-handler/spice=org.remmina.Remmina.desktop
+x-scheme-handler/vnc=org.remmina.Remmina.desktop
+application/pdf=org.pwmt.zathura.desktop
+
+[Removed Associations]
+application/xhtml+xml=chromium.desktop;
+text/html=chromium.desktop;
index 28c7458ff3c0074ae044915d1d348cdc2933da42..32b89d18b1af415aecd430dbfc13ef59d6a02f28 100644 (file)
@@ -23,12 +23,10 @@ Host laysan.onion
        User frederik
         PreferredAuthentications publickey
         IdentityFile /home/frederik/.ssh/id_rsa
-Host A20.onion
-       HostName d77qthgfqebrzql2.onion
-       Port 22
-        User frederik
-        PreferredAuthentications publickey
-        IdentityFile /home/frederik/.ssh/id_rsa
+Host n9.onion
+        HostName w6zeptejzz5b7xuy.onion
+        Port 22
+        User user
 
 Host *.onion
        ProxyCommand nc -xlocalhost:9050 -X5 %h %p
index 5c55f526adade478e4d80d2fd2ff63ea5d6873d3..90de32280a7cd1fe04e9e0e56319c7dd8db501af 100644 (file)
@@ -220,4 +220,11 @@ bar {
     font pango:DejaVu Sans Mono 10
 }
 
+# Use swaylock via swayidle - lock screen after 5 minutes of inactivity
+exec swayidle -w \
+timeout 300 'swaylock -f -c 000000' \
+timeout 600 'swaymsg "output * dpms off"' \
+resume 'swaymsg "output * dpms on"' \
+before-sleep 'swaylock -f -c 000000'
+
 include /etc/sway/config.d/*
diff --git a/sway/.config/sway/config.d/special_keys b/sway/.config/sway/config.d/special_keys
new file mode 100644 (file)
index 0000000..46ea061
--- /dev/null
@@ -0,0 +1,10 @@
+bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
+bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
+bindsym pactl set-sink-mute `pactl list sinks short | grep RUNNING | awk '{print $1}'` toggle
+bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
+bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
+bindsym XF86MonBrightnessUp exec brightnessctl set +5%
+bindsym XF86AudioPlay exec playerctl play-pause
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+
diff --git a/sway/.config/sway/scripts/gnome-keyring.sh b/sway/.config/sway/scripts/gnome-keyring.sh
new file mode 100755 (executable)
index 0000000..ac6b0a8
--- /dev/null
@@ -0,0 +1,2 @@
+eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
+export GNOME_KEYRING_CONTROL GNOME_KEYRING_PID GPG_AGENT_INFO SSH_AUTH_SOCK
diff --git a/systemd/.config/environment.d/envvars.conf b/systemd/.config/environment.d/envvars.conf
new file mode 100644 (file)
index 0000000..0653e33
--- /dev/null
@@ -0,0 +1,5 @@
+# systemd user environment variables
+
+# Enable Wayland support for Firefox
+# https://wiki.archlinux.org/index.php/Firefox#Wayland
+MOZ_ENABLE_WAYLAND=1
diff --git a/zathura/.config/zathura/zathurarc b/zathura/.config/zathura/zathurarc
new file mode 100644 (file)
index 0000000..2323e51
--- /dev/null
@@ -0,0 +1,208 @@
+# Being an Emacs user, it is natural for me to use emacs-like and info-like keybindings for zathura.
+# 
+# Zathura configuration documentation is available at
+# https://git.pwmt.org/pwmt/zathura/-/blob/e5d2ca487147e79d0bb7acbf5174cd9dcc92a86c/doc/man/zathurarc.5.rst
+# A full list of available functions and default keybindings is available at
+# https://git.pwmt.org/pwmt/zathura/-/blob/e5d2ca487147e79d0bb7acbf5174cd9dcc92a86c/zathura/config.c#L301
+# 
+# If you want to integrate Zathura with Emacs AUCTeX mode, see
+# [emacs wiki](https://www.emacswiki.org/emacs/AUCTeX).
+# 
+# Put the following inside `$XDG_CONFIG_HOME/zathura/zathurarc
+
+## niceties
+# when selecting text with mouse,
+# copy to clipboard
+set selection-clipboard clipboard
+
+# keep several lines of text when
+# scrolling a screenful
+set scroll-full-overlap 0.2
+
+# see documentation for details
+set scroll-page-aware true
+set window-title-basename true
+set adjust-open width
+set statusbar-home-tilde true
+set vertical-center true
+set synctex true
+# large bold font easier on the eyes in index mode
+# status bar can be disabled with A-s
+set font "FreeSans bold 16"
+set zoom-step 3
+
+map [normal] <C-b> scroll left
+map [normal] <C-n> scroll down
+map [normal] <C-p> scroll up
+map [normal] <C-f> scroll right
+map [normal] <C-g> abort
+map [insert] <C-g> abort
+map [normal] <C-[> abort
+map [normal] <A-\<> goto top
+map [normal] <A-\>> goto bottom
+map [normal] a adjust_window best-fit
+map [normal] s adjust_window width
+map [normal] F display_link
+map [normal] <C-c> copy_link
+map [normal] f follow
+map [normal] m mark_add
+map [normal] \' mark_evaluate
+map [normal] \, navigate next
+map [normal] \. navigate previous
+map [normal] <A-Right> navigate next
+map [normal] <A-Left> navigate previous
+map [normal] <PageDown> scroll full-down
+map [normal] <PageUp> scroll full-up
+map [normal] <C-P> print
+map [normal] c recolor
+map [normal] R reload
+map [normal] v rotate rotate_cw
+map [normal] V rotate rotate_ccw
+map [normal] <Left> scroll left
+map [normal] <Up> scroll up
+map [normal] <Down> scroll down
+map [normal] <Right> scroll right
+map [normal] <A-a> scroll half-left
+map [normal] <C-V> scroll half-down
+map [normal] <A-V> scroll half-up
+map [normal] <A-e> scroll half-right
+map [normal] <C-a> scroll full-left
+map [normal] <C-v> scroll full-down
+map [normal] <Return> scroll full-down
+map [normal] <A-v> scroll full-up
+map [normal] <C-e> scroll full-right
+map [normal] <Space> scroll full-down
+map [normal] <C-h> scroll full-up
+map [normal] <BackSpace> scroll full-up
+map [normal] <S-Space> scroll full-up
+map [normal] l jumplist backward
+map [normal] r jumplist forward
+map [normal] <A-r> bisect forward
+map [normal] <A-l> bisect backward
+# still need to use '/' to trigger search
+map [normal] <C-s> search forward
+map [normal] <C-r> search backward
+map [normal] p snap_to_page
+map [normal] <C-i> toggle_index
+map [normal] i toggle_index
+map [normal] <Tab> toggle_index
+map [normal] <A-s> toggle_statusbar
+map [normal] <A-i> focus_inputbar
+map [normal] d toggle_page_mode
+map [normal] q quit
+map [normal] + zoom in
+map [normal] - zoom out
+map [normal] = zoom in
+map [normal] <A-P> toggle_presentation
+map [normal] <A-F> toggle_fullscreen
+map [normal] j toggle_fullscreen
+map [fullscreen] j toggle_fullscreen
+map [fullscreen] q toggle_fullscreen
+map [fullscreen] <C-b> scroll left
+map [fullscreen] <C-n> scroll down
+map [fullscreen] <C-p> scroll up
+map [fullscreen] <C-f> scroll right
+map [fullscreen] <C-g> abort
+map [fullscreen] <C-[> abort
+map [fullscreen] <A-\<> goto top
+map [fullscreen] <A-\>> goto bottom
+map [fullscreen] a adjust_window best-fit
+map [fullscreen] s adjust_window width
+map [fullscreen] F display_link
+map [fullscreen] <C-c> copy_link
+map [fullscreen] f follow
+map [fullscreen] m mark_add
+map [fullscreen] \' mark_evaluate
+map [fullscreen] \, navigate next
+map [fullscreen] \. navigate previous
+map [fullscreen] <A-Right> navigate next
+map [fullscreen] <A-Left> navigate previous
+map [fullscreen] <PageDown> scroll full-down
+map [fullscreen] <PageUp> scroll full-up
+map [fullscreen] <C-P> print
+map [fullscreen] c recolor
+map [fullscreen] R reload
+map [fullscreen] v rotate rotate_cw
+map [fullscreen] V rotate rotate_ccw
+map [fullscreen] <Left> scroll left
+map [fullscreen] <Up> scroll up
+map [fullscreen] <Down> scroll down
+map [fullscreen] <Right> scroll right
+map [fullscreen] <A-a> scroll half-left
+map [fullscreen] <C-V> scroll half-down
+map [fullscreen] <A-V> scroll half-up
+map [fullscreen] <A-e> scroll half-right
+map [fullscreen] <C-a> scroll full-left
+map [fullscreen] <C-v> scroll full-down
+map [fullscreen] <Return> scroll full-down
+map [fullscreen] <A-v> scroll full-up
+map [fullscreen] <C-e> scroll full-right
+map [fullscreen] <Space> scroll full-down
+map [fullscreen] <C-h> scroll full-up
+map [fullscreen] <BackSpace> scroll full-up
+map [fullscreen] <S-Space> scroll full-up
+map [fullscreen] l jumplist backward
+map [fullscreen] r jumplist forward
+map [fullscreen] <A-r> bisect forward
+map [fullscreen] <A-l> bisect backward
+map [fullscreen] <C-s> search forward
+map [fullscreen] <C-r> search backward
+map [fullscreen] p snap_to_page
+map [fullscreen] i toggle_index
+map [fullscreen] <C-i> toggle_index
+map [fullscreen] <Tab> toggle_index
+map [fullscreen] <A-s> toggle_statusbar
+map [fullscreen] <A-i> focus_inputbar
+map [fullscreen] d toggle_page_mode
+map [fullscreen] + zoom in
+map [fullscreen] - zoom out
+map [fullscreen] = zoom in
+# status bar will obscure last item in index mode
+map [index] <A-s> toggle_statusbar
+map [index] q toggle_index
+map [index] i toggle_index
+map [index] <C-p> navigate_index up
+map [index] <C-h> navigate_index up
+map [index] <BackSpace> navigate_index up
+map [index] <C-n> navigate_index down
+map [index] <A-v> navigate_index up
+map [index] <C-v> navigate_index down
+map [index] \< navigate_index top
+map [index] \> navigate_index bottom
+map [index] <A-\<> navigate_index top
+map [index] <A-\>> navigate_index bottom
+map [index] <C-b> navigate_index collapse
+map [index] <C-f> navigate_index expand
+map [index] <C-i> navigate_index expand-all
+map [index] <A-i> navigate_index collapse-all
+map [index] <Up> navigate_index up
+map [index] <Down> navigate_index down
+map [index] <Left> navigate_index collapse
+map [index] <Right> navigate_index expand
+map [index] <C-m> navigate_index select
+map [index] <Space> navigate_index select
+map [index] <Return> navigate_index select
+map [index] <C-j> navigate_index select
+map [index] <Esc> toggle_index
+map [index] <C-[> toggle_index
+map [index] <C-g> toggle_index
+map [index] <C-c> toggle_index
+map [presentation] i toggle_index
+map [presentation] r navigate next
+map [presentation] <Down> navigate next
+map [presentation] <Right> navigate next
+map [presentation] <PageDown> navigate next
+map [presentation] <Space> navigate next
+map [presentation] l navigate previous
+map [presentation] <Left> navigate previous
+map [presentation] <Up> navigate previous
+map [presentation] <PageUp> navigate previous
+map [presentation] <S-Space> navigate previous
+map [presentation] <BackSpace> navigate previous
+map [presentation] <F5> toggle_presentation
+map [presentation] q toggle_presentation
+map [presentation] <C-h> navigate previous
+map [presentation] <M-v> navigate previous
+map [presentation] <C-v> navigate next
+map [presentation] <A-\<> goto top
+map [presentation] <A-\>> goto bottom