From: Frederik Vanrenterghem Date: Tue, 7 May 2024 12:17:13 +0000 (+0800) Subject: Voeg Zathura Emacs keybindings toe. X-Git-Url: http://git.vanrenterghem.biz/Dotty.git/commitdiff_plain/HEAD?hp=880428f728e4e1e5a2954be5739f605c68b80564;ds=sidebyside Voeg Zathura Emacs keybindings toe. --- diff --git a/autorandr/.config/autorandr/default b/autorandr/.config/autorandr/default new file mode 120000 index 0000000..317801a --- /dev/null +++ b/autorandr/.config/autorandr/default @@ -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 index 0000000..fb5a186 --- /dev/null +++ b/autorandr/.config/autorandr/docked-laptop-lid-closed/config @@ -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 index 0000000..40c5b26 --- /dev/null +++ b/autorandr/.config/autorandr/docked-laptop-lid-closed/setup @@ -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 index 0000000..29caf6d --- /dev/null +++ b/autorandr/.config/autorandr/docked/config @@ -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 index 0000000..5e225a2 --- /dev/null +++ b/autorandr/.config/autorandr/docked/setup @@ -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 index 0000000..7b0d1d4 --- /dev/null +++ b/autorandr/.config/autorandr/mobile/config @@ -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 index 0000000..61dd91f --- /dev/null +++ b/autorandr/.config/autorandr/mobile/setup @@ -0,0 +1 @@ +eDP-1 00ffffffffffff0030e4870500000000001a0104a51f1178eae3f5a351479c261050540000000101010101010101010101010101010160d100b4f0703e803c24350035ae1000001a000000000000000000000000000000000000000000fe004c4720446973706c61790a2020000000fe004c503133395544312d5350433100bc diff --git a/autorandr/.config/autorandr/postswitch b/autorandr/.config/autorandr/postswitch new file mode 100755 index 0000000..56b5016 --- /dev/null +++ b/autorandr/.config/autorandr/postswitch @@ -0,0 +1,3 @@ +#!/bin/sh +# reload feh bg script to fix up what's probably wrong after monitor switches +exec ~/.fehbg diff --git a/bash/.bashrc b/bash/.bashrc index 0aa3228..12b5184 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -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 index fc8ff51..0000000 --- a/emacs/.emacs +++ /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 index 0000000..a26675a --- /dev/null +++ b/emacs/.emacs.d/init.el @@ -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 and C-c . +(winner-mode 1) diff --git a/i3/.config/i3/config b/i3/.config/i3/config new file mode 100644 index 0000000..0c260d3 --- /dev/null +++ b/i3/.config/i3/config @@ -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 index 0000000..1bcc848 --- /dev/null +++ b/i3status/.config/i3status/config @@ -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" +} diff --git a/isync/.mbsyncrc b/isync/.mbsyncrc index 2ee438c..aaf3142 100644 --- a/isync/.mbsyncrc +++ b/isync/.mbsyncrc @@ -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 index 0000000..23c8062 --- /dev/null +++ b/mimeapps/.config/mimeapps.list @@ -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; diff --git a/ssh/.ssh/config b/ssh/.ssh/config index 28c7458..32b89d1 100644 --- a/ssh/.ssh/config +++ b/ssh/.ssh/config @@ -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 diff --git a/sway/.config/sway/config b/sway/.config/sway/config index 5c55f52..90de322 100644 --- a/sway/.config/sway/config +++ b/sway/.config/sway/config @@ -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 index 0000000..46ea061 --- /dev/null +++ b/sway/.config/sway/config.d/special_keys @@ -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 index 0000000..ac6b0a8 --- /dev/null +++ b/sway/.config/sway/scripts/gnome-keyring.sh @@ -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 index 0000000..0653e33 --- /dev/null +++ b/systemd/.config/environment.d/envvars.conf @@ -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 index 0000000..2323e51 --- /dev/null +++ b/zathura/.config/zathura/zathurarc @@ -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] scroll left +map [normal] scroll down +map [normal] scroll up +map [normal] scroll right +map [normal] abort +map [insert] abort +map [normal] abort +map [normal] goto top +map [normal] > goto bottom +map [normal] a adjust_window best-fit +map [normal] s adjust_window width +map [normal] F display_link +map [normal] 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] navigate next +map [normal] navigate previous +map [normal] scroll full-down +map [normal] scroll full-up +map [normal] print +map [normal] c recolor +map [normal] R reload +map [normal] v rotate rotate_cw +map [normal] V rotate rotate_ccw +map [normal] scroll left +map [normal] scroll up +map [normal] scroll down +map [normal] scroll right +map [normal] scroll half-left +map [normal] scroll half-down +map [normal] scroll half-up +map [normal] scroll half-right +map [normal] scroll full-left +map [normal] scroll full-down +map [normal] scroll full-down +map [normal] scroll full-up +map [normal] scroll full-right +map [normal] scroll full-down +map [normal] scroll full-up +map [normal] scroll full-up +map [normal] scroll full-up +map [normal] l jumplist backward +map [normal] r jumplist forward +map [normal] bisect forward +map [normal] bisect backward +# still need to use '/' to trigger search +map [normal] search forward +map [normal] search backward +map [normal] p snap_to_page +map [normal] toggle_index +map [normal] i toggle_index +map [normal] toggle_index +map [normal] toggle_statusbar +map [normal] 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] toggle_presentation +map [normal] toggle_fullscreen +map [normal] j toggle_fullscreen +map [fullscreen] j toggle_fullscreen +map [fullscreen] q toggle_fullscreen +map [fullscreen] scroll left +map [fullscreen] scroll down +map [fullscreen] scroll up +map [fullscreen] scroll right +map [fullscreen] abort +map [fullscreen] abort +map [fullscreen] goto top +map [fullscreen] > goto bottom +map [fullscreen] a adjust_window best-fit +map [fullscreen] s adjust_window width +map [fullscreen] F display_link +map [fullscreen] 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] navigate next +map [fullscreen] navigate previous +map [fullscreen] scroll full-down +map [fullscreen] scroll full-up +map [fullscreen] print +map [fullscreen] c recolor +map [fullscreen] R reload +map [fullscreen] v rotate rotate_cw +map [fullscreen] V rotate rotate_ccw +map [fullscreen] scroll left +map [fullscreen] scroll up +map [fullscreen] scroll down +map [fullscreen] scroll right +map [fullscreen] scroll half-left +map [fullscreen] scroll half-down +map [fullscreen] scroll half-up +map [fullscreen] scroll half-right +map [fullscreen] scroll full-left +map [fullscreen] scroll full-down +map [fullscreen] scroll full-down +map [fullscreen] scroll full-up +map [fullscreen] scroll full-right +map [fullscreen] scroll full-down +map [fullscreen] scroll full-up +map [fullscreen] scroll full-up +map [fullscreen] scroll full-up +map [fullscreen] l jumplist backward +map [fullscreen] r jumplist forward +map [fullscreen] bisect forward +map [fullscreen] bisect backward +map [fullscreen] search forward +map [fullscreen] search backward +map [fullscreen] p snap_to_page +map [fullscreen] i toggle_index +map [fullscreen] toggle_index +map [fullscreen] toggle_index +map [fullscreen] toggle_statusbar +map [fullscreen] 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] toggle_statusbar +map [index] q toggle_index +map [index] i toggle_index +map [index] navigate_index up +map [index] navigate_index up +map [index] navigate_index up +map [index] navigate_index down +map [index] navigate_index up +map [index] navigate_index down +map [index] \< navigate_index top +map [index] \> navigate_index bottom +map [index] navigate_index top +map [index] > navigate_index bottom +map [index] navigate_index collapse +map [index] navigate_index expand +map [index] navigate_index expand-all +map [index] navigate_index collapse-all +map [index] navigate_index up +map [index] navigate_index down +map [index] navigate_index collapse +map [index] navigate_index expand +map [index] navigate_index select +map [index] navigate_index select +map [index] navigate_index select +map [index] navigate_index select +map [index] toggle_index +map [index] toggle_index +map [index] toggle_index +map [index] toggle_index +map [presentation] i toggle_index +map [presentation] r navigate next +map [presentation] navigate next +map [presentation] navigate next +map [presentation] navigate next +map [presentation] navigate next +map [presentation] l navigate previous +map [presentation] navigate previous +map [presentation] navigate previous +map [presentation] navigate previous +map [presentation] navigate previous +map [presentation] navigate previous +map [presentation] toggle_presentation +map [presentation] q toggle_presentation +map [presentation] navigate previous +map [presentation] navigate previous +map [presentation] navigate next +map [presentation] goto top +map [presentation] > goto bottom