[emacs] update packages
[~bandali/configs] / rc.org
diff --git a/rc.org b/rc.org
index 097e265..691480a 100644 (file)
--- a/rc.org
+++ b/rc.org
@@ -14,275 +14,6 @@ Note: This file is best viewed inside Emacs with org mode.
 This section contains the configuration files (dotfiles) of various
 programs I use.
 
-** bspwm
-
-*** bspwmrc
-:PROPERTIES:
-:header-args+: :tangle ~/.config/bspwm/bspwmrc :shebang "#!/bin/sh"
-:END:
-
-#+begin_src sh :tangle no
-sxhkd &
-sh ~/.fehbg &
-xfce4-panel -d &
-compton &
-sleep 0.5 && pasystray --notify=all &
-
-bspc monitor -d I II III IV V VI VII VIII IX X
-#bspc monitor eDP-1 -d I II III IV V
-#bspc monitor HDMI-1 -d VI VII VIII IX X
-
-#bspc config border_width         2
-#bspc config window_gap           8
-bspc config window_gap           0
-
-bspc config bottom_padding 26
-
-bspc config split_ratio          0.52
-bspc config borderless_monocle   true
-bspc config gapless_monocle      true
-bspc config click_to_focus       button1
-bspc config directional_focus_tightness low
-
-#bspc rule -a Firefox desktop='^1' follow=on
-bspc rule -a Nightly desktop='^1' follow=on
-bspc rule -a Emacs desktop='^2' state=tiled follow=on
-#bspc rule -a Chromium desktop='^4' follow=on
-bspc rule -a URxvt state=floating
-bspc rule -a URxvt:tiled state=tiled
-bspc rule -a Connman-gtk state=floating
-bspc rule -a Xfce4-panel state=floating
-bspc rule -a TelegramDesktop state=floating
-bspc rule -a Ec state=floating
-bspc rule -a Pavucontrol state=floating
-bspc rule -a Eog state=floating
-bspc rule -a Seahorse state=floating
-bspc rule -a mpv state=floating
-bspc rule -a Evince state=floating
-bspc rule -a Meld state=floating
-bspc rule -a Autokey-gtk state=floating
-bspc rule -a Mousepad state=floating
-bspc rule -a Wrapper-1.0 state=floating
-bspc rule -a File-roller state=floating
-bspc rule -a Gnome-disks state=floating
-bspc rule -a Termite state=floating
-bspc rule -a Termite:tiled state=tiled
-bspc rule -a Thunderbird:Calendar state=floating
-bspc rule -a Audacity state=floating
-bspc rule -a Proof state=floating # pvs x-show-proof
-bspc rule -a Nm-connection-editor state=floating
-bspc rule -a Wire state=floating
-bspc rule -a discord state=floating
-bspc rule -a X2goclient state=floating
-bspc rule -a SimpleScreenRecorder state=floating
-bspc rule -a Gimp state=floating
-bspc rule -a Wrapper-2.0 state=floating
-bspc rule -a Zathura state=tiled
-#+end_src
-
-*** sxhkdrc
-:PROPERTIES:
-:header-args+: :tangle ~/.config/sxhkd/sxhkdrc
-:END:
-
-#+begin_src conf :tangle no
-#
-# wm independent hotkeys
-#
-
-# terminal emulator
-super + {_,shift} + Return
-       urxvt{_, -name tiled}
-
-#super + {_,shift} + Return
-#      termite{_, --name=tiled}
-
-# program launcher
-super + space
-       rofi -show run -display-run '> ' -display-window ' 🗔 '
-
-super + alt + space
-       xfce4-popup-whiskermenu
-
-# window finder
-super + backslash
-       rofi -show window  -display-run '> ' -display-window ' 🗔 '
-
-# password manager
-alt + space
-       rofi-pass
-
-# firefox
-#super + r
-#      firefox
-
-# chromium
-#super + c
-#      chromium -incognito
-
-# emacs
-super + e
-       emacs
-
-# make sxhkd reload its configuration files:
-super + Escape
-       pkill -USR1 -x sxhkd
-
-# volume {up,down}
-XF86Audio{Raise,Lower}Volume
-       pamixer --allow-boost --{in,de}crease 5
-
-# mute
-XF86AudioMute
-       pamixer --toggle-mute
-
-XF86AudioMicMute
-       pactl set-source-mute 1 toggle
-
-# playback control
-XF86Audio{Play,Prev,Next}
-       mpc {toggle,prev,next}
-
-# lock the screen
-super + shift + q
-       light-locker-command -l
-
-# Toggle keyboard layout
-super + F7
-       toggle-layout
-
-# Toggle Xfce presentation mode
-XF86LaunchB
-       toggle-presentation-mode
-
-# monitor brightness
-XF86MonBrightness{Up,Down}
-       light -{A,U} 5
-
-super + apostrophe
-       rofi-light
-
-# keyboard brightness
-#XF86KbdBrightness{Up,Down}
-#      kbdlight {up,down}
-
-XF86RotateWindows
-       toggle-tablet
-
-#
-# bspwm hotkeys
-#
-
-# quit bspwm normally
-super + alt + Escape
-       bspc quit
-
-# close and kill
-super + {w,q}
-       bspc node -{c,k}
-
-# alternate between the tiled and monocle layout
-super + m
-       bspc desktop -l next
-
-# send the newest marked node to the newest preselected node
-super + y
-       bspc node newest.marked.local -n newest.!automatic.local
-
-# swap the current node and the biggest node
-super + g
-       bspc node -s biggest
-
-#
-# state/flags
-#
-
-# set the window state
-super + {t,shift + t,s,f}
-       bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
-
-# set the node flags
-super + ctrl + {m,x,y,z}
-       bspc node -g {marked,locked,sticky,private}
-
-#
-# focus/swap
-#
-
-# focus the node in the given direction
-super + {_,shift + }{h,j,k,l}
-       bspc node -{f,s} {west,south,north,east}
-
-# focus the node for the given path jump
-super + {p,b,comma,period}
-       bspc node -f @{parent,brother,first,second}
-
-# focus the next/previous node in the current desktop
-super + {_,shift + }c
-       bspc node -f {next,prev}.local
-
-# focus the next/previous desktop in the current monitor
-super + bracket{left,right}
-       bspc desktop -f {prev,next}.local
-
-# send to next/prev desktop
-super + shift + bracket{left,right}
-       bspc node -d {prev,next} --follow
-
-# focus the last node/desktop
-super + {grave,Tab}
-       bspc {node,desktop} -f last
-
-# focus the older or newer node in the focus history
-super + {o,i}
-       bspc wm -h off; \
-       bspc node {older,newer} -f; \
-       bspc wm -h on
-
-# focus or send to the given desktop
-super + {_,shift + }{1-9,0}
-       bspc {desktop -f,node -d} '^{1-9,10}'
-
-#
-# preselect
-#
-
-# preselect the direction
-super + ctrl + {h,j,k,l}
-       bspc node -p {west,south,north,east}
-
-# preselect the ratio
-super + ctrl + {1-9}
-       bspc node -o 0.{1-9}
-
-# cancel the preselection for the focused node
-super + ctrl + space
-       bspc node -p cancel
-
-# cancel the preselection for the focused desktop
-super + ctrl + shift + space
-       bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
-
-#
-# move/resize
-#
-
-# expand a window by moving one of its side outward
-super + alt + {h,j,k,l}
-       bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
-
-# contract a window by moving one of its side inward
-super + alt + shift + {h,j,k,l}
-       bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
-
-# move a floating window
-super + {Left,Down,Up,Right}
-       bspc node -v {-20 0,0 20,0 -20,20 0}
-
-#alt + bracket{left,right}
-#      xdotool key --clearmodifiers ctrl+Page_{Up,Down}
-#+end_src
-
 ** compton
 :PROPERTIES:
 :header-args+: :tangle ~/.config/compton.conf
@@ -1597,6 +1328,9 @@ from amin@aminb.org
 user amin@aminb.org
 passwordeval gpg2 --no-tty -q -d ~/.passwd/amin.gpg
 
+account bandali-me : aminb
+from amin@bandali.me
+
 # gnu
 account gnu
 host fencepost.gnu.org
@@ -2428,113 +2162,20 @@ Unit=notmuch.service
 WantedBy=timers.target
 #+end_src
 
-** offlineimap
-
-*** offlineimaprc
-:PROPERTIES:
-:header-args+: :tangle ~/.offlineimaprc
-:END:
-
-#+begin_src conf :tangle no
-[general]
-pythonfile = ~/.offlineimap.py
-accounts = Gmail, aminb
-maxsyncaccounts = 3
-
-[Account Gmail]
-localrepository = GmailL
-remoterepository = GmailR
-
-[Account aminb]
-localrepository = aminbL
-remoterepository = aminbR
-
-[Repository GmailL]
-type = Maildir
-localfolders = ~/Maildir/Gmail
-
-[Repository GmailR]
-type = IMAP
-remotehost = imap.gmail.com
-remoteusereval = mailuser("gmail")
-remotepasseval = mailpasswd("gmail")
-sslcacertfile = /etc/ssl/certs/ca-certificates.crt
-ssl = yes
-folderfilter = lambda foldername: foldername not in '[Gmail]/All Mail'
-maxconnections = 1
-realdelete = no
-
-[Repository aminbL]
-type = Maildir
-localfolders = ~/Maildir/aminb
-
-[Repository aminbR]
-type = IMAP
-remotehost = mail.aminb.org
-remoteusereval = mailuser("aminb")
-remotepasseval = mailpasswd("aminb")
-sslcacertfile = /etc/ssl/certs/ca-certificates.crt
-ssl = yes
-folderfilter = lambda foldername: foldername not in 'dovecot.sieve'
-maxconnections = 1
-realdelete = no
-#+end_src
-
-*** offlineimap.py
-:PROPERTIES:
-:header-args+: :tangle ~/.offlineimap.py
-:END:
-
-#+begin_src python :tangle no
-import os
-import subprocess
-
-def mailpasswd(acct):
-    acct = os.path.basename(acct)
-    path = "/home/amin/.passwd/%s.gpg" % acct
-    args = ["gpg", "--use-agent", "--quiet", "--batch", "-d", path]
-    try:
-        return subprocess.check_output(args).strip()
-    except subprocess.CalledProcessError:
-        return ""
-
-def mailuser(acct):
-    acct = os.path.basename(acct)
-    path = "/home/amin/.passwd/%s" % acct
-    args = ["cat", path]
-    try:
-        return subprocess.check_output(args).strip()
-    except subprocess.CalledProcessError:
-        return ""
-
-def prime_gpg_agent():
-  ret = False
-  i = 1
-  while not ret:
-    ret = (mailpasswd("prime") == "prime")
-    if i > 2:
-      from offlineimap.ui import getglobalui
-      sys.stderr.write("Error reading in passwords. Terminating.\n")
-      getglobalui().terminate()
-    i += 1
-  return ret
-
-prime_gpg_agent()
-#+end_src
-
 ** pigeonhole
-*** gnu.sieve
+*** amin.sieve
 :PROPERTIES:
-:header-args+: :tangle ~/sieve/gnu.sieve :comments none
+:header-args+: :tangle ~/mail/aminb.org/amin/sieve/amin.sieve :comments none
 :END:
 
 #+begin_src conf
-require [ "regex", "variables", "fileinto", "envelope", "mailbox", "imap4flags", "include" ];
+require ["regex", "variables", "fileinto", "envelope",
+         "mailbox", "imap4flags", "include"];
 
+# webmasters
 if anyof (
-  address :is "from" "webmasters@gnu.org",
-  address :is "from" "webmasters-comment@gnu.org") {
-  fileinto :create "webmasters";
+  address :is "from" ["webmasters@gnu.org", "webmasters-comment@gnu.org"]) {
+  fileinto :create "gnu.webmasters";
   stop;
 }
 
@@ -2543,453 +2184,57 @@ include :personal "lists";
 
 *** lists.sieve
 :PROPERTIES:
-:header-args+: :tangle ~/sieve/lists.sieve :comments none
+:header-args+: :tangle ~/mail/aminb.org/amin/sieve/lists.sieve :comments none
 :END:
 
 #+begin_src conf
-require [ "regex", "variables", "fileinto", "envelope", "mailbox", "imap4flags",
"include" ];
+require ["regex", "variables", "fileinto", "envelope",
        "mailbox", "imap4flags", "include"];
 
+# mailing lists
 if anyof (
-    header :contains "list-id" "<emacs-devel.gnu.org>",
-    header :contains "list-id" "<emacs-orgmode.gnu.org>",
-    header :contains "list-id" "<emacsconf-discuss.gnu.org>",
-    header :contains "list-id" "<fencepost-users.gnu.org>",
-    header :contains "list-id" "<guix-devel.gnu.org>",
-    header :contains "list-id" "<guile-devel.gnu.org>",
-    header :contains "list-id" "<help-gnu-emacs.gnu.org>",
-    header :contains "list-id" "<info-gnu-emacs.gnu.org>",
-    header :contains "list-id" "<www-commits.gnu.org>",
-    header :contains "list-id" "<www-discuss.gnu.org>",
-    header :contains "list-id" "<deepspec.lists.cs.princeton.edu>",
-    header :contains "list-id" "<haskell-cafe.haskell.org>",
-    header :contains "list-id" "<haskell-art.we.lurk.org>",
-    header :contains "list-id" "<notmuch.notmuchmail.org>") {
+    header :contains "list-id"
+        [ "<emacs-devel.gnu.org>"
+        , "<emacs-orgmode.gnu.org>"
+        , "<emacsconf-discuss.gnu.org>"
+        , "<fencepost-users.gnu.org>"
+        , "<guix-devel.gnu.org>"
+        , "<guile-devel.gnu.org>"
+        , "<help-gnu-emacs.gnu.org>"
+        , "<info-gnu-emacs.gnu.org>"
+        , "<info-guix.gnu.org>"
+        , "<www-commits.gnu.org>"
+        , "<www-discuss.gnu.org>"
+        , "<deepspec.lists.cs.princeton.edu>"
+        , "<haskell-cafe.haskell.org>"
+        , "<haskell-art.we.lurk.org>"
+        , "<notmuch.notmuchmail.org>"
+        ] ) {
     if header :regex "list-id" "<([a-z_0-9-]+)[.@]" {
         set :lower "listname" "${1}";
-        fileinto :create "l/${listname}";
+        fileinto :create "gnu.${listname}";
+        stop;
     }
 }
 
+# sr.ht lists, with dots ('.') omitted
 if anyof (
-    header :contains "list-id" "<~aminb/test-priv@lists.sr.ht>",
-    header :contains "list-id" "<~sircmpwn/sr.ht-admins@lists.sr.ht>",
-    header :contains "list-id" "<~sircmpwn/sr.ht-announce@lists.sr.ht>",
-    header :contains "list-id" "<~sircmpwn/sr.ht-dev@lists.sr.ht>",
-    header :contains "list-id" "<~sircmpwn/sr.ht-discuss@lists.sr.ht>") {
-    if header :regex "list-id" "(~[a-z_0-9-]+)/([a-z_0-9.-]+)@" {
+    header :contains "list-id"
+        [ "<~bandali/public-inbox@lists.sr.ht>"
+        , "<~sircmpwn/sr.ht-admins@lists.sr.ht>"
+        , "<~sircmpwn/sr.ht-announce@lists.sr.ht>"
+        , "<~sircmpwn/sr.ht-dev@lists.sr.ht>"
+        , "<~sircmpwn/sr.ht-discuss@lists.sr.ht>"
+        ] ) {
+    if header :regex "list-id" "(~[a-z_0-9-]+)/([^.]*)\\.?([^.]*)\\.?([^.]*)\\.?([^.]*)\\.?([^.]*)\\.?([^.]*)@" {
         set :lower "username" "${1}";
-        set :lower "listname" "${2}";
-        fileinto :create "l/${username}/${listname}";
+        set :lower "listname" "${2}${3}${4}${5}${6}${7}";
+        fileinto :create "gnu.${username}.${listname}";
+        stop;
     }
 }
 #+end_src
 
-** polybar
-
-*** config
-:PROPERTIES:
-:header-args+: :tangle ~/.config/polybar/config
-:END:
-
-#+begin_src conf :tangle no
-;=====================================================
-;
-;   To learn more about how to configure Polybar
-;   go to https://github.com/jaagr/polybar
-;
-;   The README contains alot of information
-;
-;=====================================================
-
-[colors]
-;background = ${xrdb:color0:#222}
-background = #222
-background-alt = #444
-;foreground = ${xrdb:color7:#222}
-foreground = #eee
-foreground-alt = #888
-primary = #ffb52a
-secondary = #e60053
-alert = #bd2c40
-
-[bar/main]
-;monitor = ${env:MONITOR:HDMI-1}
-width = 100%
-height = 27
-;offset-x = 1%
-;offset-y = 1%
-radius = 3.0
-fixed-center = true
-
-background = ${colors.background}
-foreground = ${colors.foreground}
-
-line-size = 3
-line-color = #f00
-
-border-size = 4
-border-color = #00000000
-
-padding-left = 0
-padding-right = 2
-
-module-margin-left = 2
-module-margin-right = 2
-
-font-0 = Ubuntu:fontformat=truetype:antialias=true:pixelsize=9;1
-font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
-font-2 = Wuncon Siji:pixelsize=10;1
-font-3 = FontAwesome:pixelsize=10;1
-
-modules-left = bspwm xwindow
-modules-center = 
-modules-right = volume filesystem mail xkeyboard memory cpu temperature date powermenu
-
-tray-position = right
-tray-padding = 1
-;tray-transparent = true
-;tray-background = #0063ff
-tray-maxsize = 18
-
-wm-restack = bspwm
-
-;override-redirect = true
-
-scroll-up = bspwm-desknext
-scroll-down = bspwm-deskprev
-
-[module/xwindow]
-type = internal/xwindow
-label = %title:0:50:...%
-
-[module/xkeyboard]
-type = internal/xkeyboard
-blacklist-0 = num lock
-
-format-prefix = " "
-format-prefix-foreground = ${colors.foreground-alt}
-format-prefix-underline = ${colors.secondary}
-
-label-layout = %layout%
-label-layout-underline = ${colors.secondary}
-
-label-indicator-padding = 2
-label-indicator-margin = 1
-label-indicator-background = ${colors.secondary}
-label-indicator-underline = ${colors.secondary}
-
-[module/filesystem]
-type = internal/fs
-interval = 25
-
-mount-0 = /
-
-label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
-label-unmounted = %mountpoint% not mounted
-label-unmounted-foreground = ${colors.foreground-alt}
-
-[module/bspwm]
-type = internal/bspwm
-
-label-focused = %index%
-label-focused-background = ${colors.background-alt}
-label-focused-underline= ${colors.primary}
-label-focused-padding = 2
-
-label-occupied = %index%
-label-occupied-padding = 2
-
-label-urgent = %index%!
-label-urgent-background = ${colors.alert}
-label-urgent-padding = 2
-
-label-empty = %index%
-label-empty-foreground = ${colors.foreground-alt}
-label-empty-padding = 2
-
-[module/i3]
-type = internal/i3
-format = <label-state> <label-mode>
-index-sort = true
-wrapping-scroll = false
-
-; Only show workspaces on the same output as the bar
-;pin-workspaces = true
-
-label-mode-padding = 2
-label-mode-foreground = #000
-label-mode-background = ${colors.primary}
-
-; focused = Active workspace on focused monitor
-label-focused = %index%
-label-focused-background = ${module/bspwm.label-focused-background}
-label-focused-underline = ${module/bspwm.label-focused-underline}
-label-focused-padding = ${module/bspwm.label-focused-padding}
-
-; unfocused = Inactive workspace on any monitor
-label-unfocused = %index%
-label-unfocused-padding = ${module/bspwm.label-occupied-padding}
-
-; visible = Active workspace on unfocused monitor
-label-visible = %index%
-label-visible-background = ${self.label-focused-background}
-label-visible-underline = ${self.label-focused-underline}
-label-visible-padding = ${self.label-focused-padding}
-
-; urgent = Workspace with urgency hint set
-label-urgent = %index%
-label-urgent-background = ${module/bspwm.label-urgent-background}
-label-urgent-padding = ${module/bspwm.label-urgent-padding}
-
-[module/mpd]
-type = internal/mpd
-format-online = <label-song>  <icon-prev> <icon-stop> <toggle> <icon-next>
-
-icon-prev = 
-icon-stop = 
-icon-play = 
-icon-pause = 
-icon-next = 
-
-label-song-maxlen = 25
-label-song-ellipsis = true
-
-[module/xbacklight]
-type = internal/xbacklight
-
-format = <label> <bar>
-label = BL
-
-bar-width = 10
-bar-indicator = |
-bar-indicator-foreground = #ff
-bar-indicator-font = 2
-bar-fill = ─
-bar-fill-font = 2
-bar-fill-foreground = #9f78e1
-bar-empty = ─
-bar-empty-font = 2
-bar-empty-foreground = ${colors.foreground-alt}
-
-[module/backlight-acpi]
-inherit = module/xbacklight
-type = internal/backlight
-;card = intel_backlight
-card = mba6x_backlight
-
-[module/cpu]
-type = internal/cpu
-interval = 2
-format-prefix = " "
-format-prefix-foreground = ${colors.foreground-alt}
-format-underline = #f90000
-label = %percentage%%
-
-[module/memory]
-type = internal/memory
-interval = 2
-format-prefix = " "
-format-prefix-foreground = ${colors.foreground-alt}
-format-underline = #4bffdc
-label = %percentage_used%%
-
-[module/wlan]
-type = internal/network
-interface = 
-interval = 3.0
-
-format-connected = <ramp-signal> <label-connected>
-format-connected-underline = #9f78e1
-label-connected = %essid%
-
-format-disconnected =
-;format-disconnected = <label-disconnected>
-;format-disconnected-underline = ${self.format-connected-underline}
-;label-disconnected = %ifname% disconnected
-;label-disconnected-foreground = ${colors.foreground-alt}
-
-ramp-signal-0 = 
-ramp-signal-1 = 
-ramp-signal-2 = 
-ramp-signal-3 = 
-ramp-signal-4 = 
-ramp-signal-foreground = ${colors.foreground-alt}
-
-[module/eth]
-type = internal/network
-interface = 
-interval = 3.0
-
-format-connected-underline = #55aa55
-format-connected-prefix = " "
-format-connected-prefix-foreground = ${colors.foreground-alt}
-label-connected = %local_ip%
-
-format-disconnected =
-;format-disconnected = <label-disconnected>
-;format-disconnected-underline = ${self.format-connected-underline}
-;label-disconnected = %ifname% disconnected
-;label-disconnected-foreground = ${colors.foreground-alt}
-
-[module/date]
-type = internal/date
-interval = 5
-
-date =
-date-alt = " %Y-%m-%d"
-
-time = %H:%M
-time-alt = %H:%M:%S
-
-format-prefix = 
-format-prefix-foreground = ${colors.foreground-alt}
-format-underline = #0a6cf5
-
-label = %date% %time%
-
-[module/volume]
-type = internal/volume
-
-format-volume = <label-volume> <bar-volume>
-label-volume = vol
-label-volume-foreground = ${root.foreground}
-
-format-muted-prefix = " "
-format-muted-foreground = ${colors.foreground-alt}
-label-muted = mute
-
-bar-volume-width = 10
-bar-volume-foreground-0 = #55aa55
-bar-volume-foreground-1 = #55aa55
-bar-volume-foreground-2 = #55aa55
-bar-volume-foreground-3 = #55aa55
-bar-volume-foreground-4 = #55aa55
-bar-volume-foreground-5 = #f5a70a
-bar-volume-foreground-6 = #ff5555
-bar-volume-gradient = false
-bar-volume-indicator = |
-bar-volume-indicator-font = 2
-bar-volume-fill = ─
-bar-volume-fill-font = 2
-bar-volume-empty = ─
-bar-volume-empty-font = 2
-bar-volume-empty-foreground = ${colors.foreground-alt}
-
-[module/battery]
-type = internal/battery
-battery = BAT0
-adapter = ADP1
-full-at = 64
-
-format-charging = <animation-charging> <label-charging>
-format-charging-underline = #ffb52a
-
-format-discharging = <ramp-capacity> <label-discharging>
-format-discharging-underline = ${self.format-charging-underline}
-
-format-full-prefix = " "
-format-full-prefix-foreground = ${colors.foreground-alt}
-format-full-underline = ${self.format-charging-underline}
-
-ramp-capacity-0 = 
-ramp-capacity-1 = 
-ramp-capacity-2 = 
-ramp-capacity-foreground = ${colors.foreground-alt}
-
-animation-charging-0 = 
-animation-charging-1 = 
-animation-charging-2 = 
-animation-charging-foreground = ${colors.foreground-alt}
-animation-charging-framerate = 750
-
-[module/temperature]
-type = internal/temperature
-thermal-zone = 1
-warn-temperature = 66
-
-format = <ramp> <label>
-format-underline = #f50a4d
-format-warn = <ramp> <label-warn>
-format-warn-underline = ${self.format-underline}
-
-label = %temperature%
-label-warn = %temperature%
-label-warn-foreground = ${colors.secondary}
-
-ramp-0 = 
-ramp-1 = 
-ramp-2 = 
-ramp-foreground = ${colors.foreground-alt}
-
-[module/powermenu]
-type = custom/menu
-
-format-spacing = 1
-
-label-open = 
-label-open-foreground = ${colors.secondary}
-label-close =  cancel
-label-close-foreground = ${colors.secondary}
-label-separator = |
-label-separator-foreground = ${colors.foreground-alt}
-
-menu-0-0 = reboot
-menu-0-0-exec = menu-open-1
-menu-0-1 = power off
-menu-0-1-exec = menu-open-2
-
-menu-1-0 = cancel
-menu-1-0-exec = menu-open-0
-menu-1-1 = reboot
-menu-1-1-exec = sudo reboot
-
-menu-2-0 = power off
-menu-2-0-exec = sudo poweroff
-menu-2-1 = cancel
-menu-2-1-exec = menu-open-0
-
-[module/mail]
-type = custom/script
-interval = 60
-format = <label>
-format-prefix = " "
-format-prefix-foreground = ${colors.foreground-alt}
-format-underline = #0a6cf5
-exec = notmuch count tag:unread
-
-[settings]
-screenchange-reload = true
-;compositing-background = xor
-;compositing-background = screen
-;compositing-foreground = source
-;compositing-border = over
-
-[global/wm]
-margin-top = 0
-margin-bottom = 0
-
-; vim:ft=dosini
-#+end_src
-
-*** polybar-launch
-:PROPERTIES:
-:header-args+: :tangle ~/.local/bin/polybar-launch :shebang "#!/usr/bin/env sh"
-:END:
-
-#+begin_src sh :tangle no
-# Terminate already running bar instances
-killall -q polybar
-
-# Wait until the processes have been shut down
-while pgrep -x polybar >/dev/null; do sleep 1; done
-
-# Launch main bar
-polybar main &
-
-echo "Bars launched..."
-#+end_src
-
 ** PowerTOP
 :PROPERTIES:
 :header-args+: :tangle "/sudo::/etc/systemd/system/powertop.service"
@@ -3007,637 +2252,6 @@ RemainAfterExit=true
 WantedBy=multi-user.target
 #+end_src
 
-** ranger
-
-*** rc.conf
-:PROPERTIES:
-:header-args+: :tangle ~/.config/ranger/rc.conf
-:END:
-
-#+begin_src conf :tangle no
-# ===================================================================
-# This file contains the default startup commands for ranger.
-# To change them, it is recommended to create the file
-# ~/.config/ranger/rc.conf and add your custom commands there.
-#
-# If you copy this whole file there, you may want to set the environment
-# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
-#
-# The purpose of this file is mainly to define keybindings and settings.
-# For running more complex python code, please create a plugin in "plugins/" or
-# a command in "commands.py".
-#
-# Each line is a command that will be run before the user interface
-# is initialized.  As a result, you can not use commands which rely
-# on the UI such as :delete or :mark.
-# ===================================================================
-
-# ===================================================================
-# == Options
-# ===================================================================
-
-# How many columns are there, and what are their relative widths?
-set column_ratios 1,3,4
-
-# Which files should be hidden? (regular expression)
-set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
-
-# Show hidden files? You can toggle this by typing 'zh'
-set show_hidden false
-
-# Ask for a confirmation when running the "delete" command?
-# Valid values are "always" (default), "never", "multiple"
-# With "multiple", ranger will ask only if you delete multiple files at once.
-set confirm_on_delete multiple
-
-# Which script is used to generate file previews?
-# ranger ships with scope.sh, a script that calls external programs (see
-# README for dependencies) to preview images, archives, etc.
-set preview_script ~/.config/ranger/scope.sh
-
-# Use the external preview script or display simple plain text previews?
-set use_preview_script true
-
-# Open all images in this directory when running certain image viewers
-# like feh or sxiv?  You can still open selected files by marking them.
-set open_all_images true
-
-# Be aware of version control systems and display information.
-set vcs_aware false
-
-# State of the three backends git, hg, bzr. The possible states are
-# disabled, local (only show local info), enabled (show local and remote
-# information).
-set vcs_backend_git enabled
-set vcs_backend_hg disabled
-set vcs_backend_bzr disabled
-
-# Preview images in full color with the external command "w3mimgpreview"?
-# This requires the console web browser "w3m" and a supported terminal.
-# It has been successfully tested with "xterm" and "urxvt" without tmux.
-set preview_images true
-
-# Use a unicode "..." character to mark cut-off filenames?
-set unicode_ellipsis false
-
-# Show dotfiles in the bookmark preview box?
-set show_hidden_bookmarks true
-
-# Which colorscheme to use?  These colorschemes are available by default:
-# default, jungle, snow
-set colorscheme default
-
-# Preview files on the rightmost column?
-# And collapse (shrink) the last column if there is nothing to preview?
-set preview_files true
-set preview_directories true
-set collapse_preview true
-
-# Save the console history on exit?
-set save_console_history true
-
-# Draw the status bar on top of the browser window (default: bottom)
-set status_bar_on_top false
-
-# Draw a progress bar in the status bar which displays the average state of all
-# currently running tasks which support progress bars?
-set draw_progress_bar_in_status_bar true
-
-# Draw borders around columns?
-set draw_borders true
-
-# Display the directory name in tabs?
-set dirname_in_tabs false
-
-# Enable the mouse support?
-set mouse_enabled true
-
-# Display the file size in the main column or status bar?
-set display_size_in_main_column true
-set display_size_in_status_bar true
-
-# Display files tags in all columns or only in main column?
-set display_tags_in_all_columns true
-
-# Set a title for the window?
-set update_title false
-
-# Set the title to "ranger" in the tmux program?
-set update_tmux_title false
-
-# Shorten the title if it gets long?  The number defines how many
-# directories are displayed at once, 0 turns off this feature.
-set shorten_title 3
-
-# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
-set tilde_in_titlebar false
-
-# How many directory-changes or console-commands should be kept in history?
-set max_history_size 20
-set max_console_history_size 50
-
-# Try to keep so much space between the top/bottom border when scrolling:
-set scroll_offset 8
-
-# Flush the input after each key hit?  (Noticable when ranger lags)
-set flushinput true
-
-# Padding on the right when there's no preview?
-# This allows you to click into the space to run the file.
-set padding_right true
-
-# Save bookmarks (used with mX and `X) instantly?
-# This helps to synchronize bookmarks between multiple ranger
-# instances but leads to *slight* performance loss.
-# When false, bookmarks are saved when ranger is exited.
-set autosave_bookmarks true
-
-# You can display the "real" cumulative size of directories by using the
-# command :get_cumulative_size or typing "dc".  The size is expensive to
-# calculate and will not be updated automatically.  You can choose
-# to update it automatically though by turning on this option:
-set autoupdate_cumulative_size false
-
-# Turning this on makes sense for screen readers:
-set show_cursor false
-
-# One of: size, basename, mtime, type
-set sort natural
-
-# Additional sorting options
-set sort_reverse false
-set sort_case_insensitive true
-set sort_directories_first true
-
-# Enable this if key combinations with the Alt Key don't work for you.
-# (Especially on xterm)
-set xterm_alt_key false
-
-# ===================================================================
-# == Local Options
-# ===================================================================
-# You can set local options that only affect a single directory.
-
-# Examples:
-# setlocal path=~/downloads sort mtime
-
-# ===================================================================
-# == Command Aliases in the Console
-# ===================================================================
-
-alias e    edit
-alias q    quit
-alias q!   quitall
-alias qall quitall
-alias setl setlocal
-
-alias filter     scout -prt
-alias find       scout -aet
-alias mark       scout -mr
-alias unmark     scout -Mr
-alias search     scout -rs
-alias search_inc scout -rts
-alias travel     scout -aefiklst
-
-# ===================================================================
-# == Define keys for the browser
-# ===================================================================
-
-# Basic
-map     Q quit!
-map     q quit
-copymap q ZZ ZQ
-
-map R     reload_cwd
-map <C-r> reset
-map <C-l> redraw_window
-map <C-c> abort
-map <esc> change_mode normal
-
-map i display_file
-map ? help
-map W display_log
-map w taskview_open
-map S shell $SHELL
-
-map :  console
-map ;  console
-map !  console shell 
-map @  console -p6 shell  %%s
-map #  console shell -p 
-map s  console shell 
-map r  chain draw_possible_programs; console open_with 
-map f  console find 
-map cd console cd 
-
-# Tagging / Marking
-map t       tag_toggle
-map ut      tag_remove
-map "<any>  tag_toggle tag=%any
-map <Space> mark_files toggle=True
-map v       mark_files all=True toggle=True
-map uv      mark_files all=True val=False
-map V       toggle_visual_mode
-map uV      toggle_visual_mode reverse=True
-
-# For the nostalgics: Midnight Commander bindings
-map <F1> help
-map <F3> display_file
-map <F4> edit
-map <F5> copy
-map <F6> cut
-map <F7> console mkdir 
-map <F8> console delete
-map <F10> exit
-
-# In case you work on a keyboard with dvorak layout
-map <UP>       move up=1
-map <DOWN>     move down=1
-map <LEFT>     move left=1
-map <RIGHT>    move right=1
-map <HOME>     move to=0
-map <END>      move to=-1
-map <PAGEDOWN> move down=1   pages=True
-map <PAGEUP>   move up=1     pages=True
-map <CR>       move right=1
-map <DELETE>   console delete
-map <INSERT>   console touch 
-
-# VIM-like
-copymap <UP>       k
-copymap <DOWN>     j
-copymap <LEFT>     h
-copymap <RIGHT>    l
-copymap <HOME>     gg
-copymap <END>      G
-copymap <PAGEDOWN> <C-F>
-copymap <PAGEUP>   <C-B>
-
-map J  move down=0.5  pages=True
-map K  move up=0.5    pages=True
-copymap J <C-D>
-copymap K <C-U>
-
-# Jumping around
-map H     history_go -1
-map L     history_go 1
-map ]     move_parent 1
-map [     move_parent -1
-map }     traverse
-
-map gh cd ~
-map ge cd /etc
-map gu cd /usr
-map gd cd /dev
-map gl cd -r .
-map gL cd -r %f
-map go cd /opt
-map gv cd /var
-map gm cd /media
-map gM cd /mnt
-map gs cd /srv
-map gr cd /
-map gR eval fm.cd(ranger.RANGERDIR)
-map g/ cd /
-map g? cd /usr/share/doc/ranger
-
-# External Programs
-map E  edit
-map du shell -p du --max-depth=1 -h --apparent-size
-map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
-map yp shell -d echo -n %d/%f | xsel -i
-map yd shell -d echo -n %d    | xsel -i
-map yn shell -d echo -n %f    | xsel -i
-
-# Filesystem Operations
-map =  chmod
-
-map cw console rename 
-map A  eval fm.open_console('rename ' + fm.thisfile.basename)
-map I  eval fm.open_console('rename ' + fm.thisfile.basename, position=7)
-
-map pp paste
-map po paste overwrite=True
-map pl paste_symlink relative=False
-map pL paste_symlink relative=True
-map phl paste_hardlink
-map pht paste_hardlinked_subtree
-
-map dd cut
-map ud uncut
-map da cut mode=add
-map dr cut mode=remove
-
-map yy copy
-map uy uncut
-map ya copy mode=add
-map yr copy mode=remove
-
-# Temporary workarounds
-map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
-map dG  eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
-map dj  eval fm.cut(dirarg=dict(down=1), narg=quantifier)
-map dk  eval fm.cut(dirarg=dict(up=1), narg=quantifier)
-map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
-map yG  eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
-map yj  eval fm.copy(dirarg=dict(down=1), narg=quantifier)
-map yk  eval fm.copy(dirarg=dict(up=1), narg=quantifier)
-
-# Searching
-map /  console search 
-map n  search_next
-map N  search_next forward=False
-map ct search_next order=tag
-map cs search_next order=size
-map ci search_next order=mimetype
-map cc search_next order=ctime
-map cm search_next order=mtime
-map ca search_next order=atime
-
-# Tabs
-map <C-n>     tab_new ~
-map <C-w>     tab_close
-map <TAB>     tab_move 1
-map <S-TAB>   tab_move -1
-map <A-Right> tab_move 1
-map <A-Left>  tab_move -1
-map gt        tab_move 1
-map gT        tab_move -1
-map gn        tab_new ~
-map gc        tab_close
-map uq        tab_restore
-map <a-1>     tab_open 1
-map <a-2>     tab_open 2
-map <a-3>     tab_open 3
-map <a-4>     tab_open 4
-map <a-5>     tab_open 5
-map <a-6>     tab_open 6
-map <a-7>     tab_open 7
-map <a-8>     tab_open 8
-map <a-9>     tab_open 9
-
-# Sorting
-map or toggle_option sort_reverse
-map os chain set sort=size;      set sort_reverse=False
-map ob chain set sort=basename;  set sort_reverse=False
-map on chain set sort=natural;   set sort_reverse=False
-map om chain set sort=mtime;     set sort_reverse=False
-map oc chain set sort=ctime;     set sort_reverse=False
-map oa chain set sort=atime;     set sort_reverse=False
-map ot chain set sort=type;      set sort_reverse=False
-
-map oS chain set sort=size;      set sort_reverse=True
-map oB chain set sort=basename;  set sort_reverse=True
-map oN chain set sort=natural;   set sort_reverse=True
-map oM chain set sort=mtime;     set sort_reverse=True
-map oC chain set sort=ctime;     set sort_reverse=True
-map oA chain set sort=atime;     set sort_reverse=True
-map oT chain set sort=type;      set sort_reverse=True
-
-map dc get_cumulative_size
-
-# Settings
-map zc    toggle_option collapse_preview
-map zd    toggle_option sort_directories_first
-map zh    toggle_option show_hidden
-map <C-h> toggle_option show_hidden
-map zi    toggle_option flushinput
-map zm    toggle_option mouse_enabled
-map zp    toggle_option preview_files
-map zP    toggle_option preview_directories
-map zs    toggle_option sort_case_insensitive
-map zu    toggle_option autoupdate_cumulative_size
-map zv    toggle_option use_preview_script
-map zf    console filter 
-
-# Bookmarks
-map `<any>  enter_bookmark %any
-map '<any>  enter_bookmark %any
-map m<any>  set_bookmark %any
-map um<any> unset_bookmark %any
-
-map m<bg>   draw_bookmarks
-copymap m<bg>  um<bg> `<bg> '<bg>
-
-# Generate all the chmod bindings with some python help:
-eval for arg in "rwxXst": cmd("map +u{0} shell -d chmod u+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +g{0} shell -d chmod g+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +o{0} shell -d chmod o+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +a{0} shell -d chmod a+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +{0}  shell -d chmod u+{0} %s".format(arg))
-
-eval for arg in "rwxXst": cmd("map -u{0} shell -d chmod u-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -g{0} shell -d chmod g-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -o{0} shell -d chmod o-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -a{0} shell -d chmod a-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -{0}  shell -d chmod u-{0} %s".format(arg))
-
-# ===================================================================
-# == Define keys for the console
-# ===================================================================
-# Note: Unmapped keys are passed directly to the console.
-
-# Basic
-cmap <tab>   eval fm.ui.console.tab()
-cmap <s-tab> eval fm.ui.console.tab(-1)
-cmap <ESC>   eval fm.ui.console.close()
-cmap <CR>    eval fm.ui.console.execute()
-cmap <C-l>   redraw_window
-
-copycmap <ESC> <C-c>
-copycmap <CR>  <C-j>
-
-# Move around
-cmap <up>    eval fm.ui.console.history_move(-1)
-cmap <down>  eval fm.ui.console.history_move(1)
-cmap <left>  eval fm.ui.console.move(left=1)
-cmap <right> eval fm.ui.console.move(right=1)
-cmap <home>  eval fm.ui.console.move(right=0, absolute=True)
-cmap <end>   eval fm.ui.console.move(right=-1, absolute=True)
-
-# Line Editing
-cmap <backspace>  eval fm.ui.console.delete(-1)
-cmap <delete>     eval fm.ui.console.delete(0)
-cmap <C-w>        eval fm.ui.console.delete_word()
-cmap <C-k>        eval fm.ui.console.delete_rest(1)
-cmap <C-u>        eval fm.ui.console.delete_rest(-1)
-cmap <C-y>        eval fm.ui.console.paste()
-
-# And of course the emacs way
-copycmap <up>        <C-p>
-copycmap <down>      <C-n>
-copycmap <left>      <C-b>
-copycmap <right>     <C-f>
-copycmap <home>      <C-a>
-copycmap <end>       <C-e>
-copycmap <delete>    <C-d>
-copycmap <backspace> <C-h>
-
-# Note: There are multiple ways to express backspaces.  <backspace> (code 263)
-# and <backspace2> (code 127).  To be sure, use both.
-copycmap <backspace> <backspace2>
-
-# This special expression allows typing in numerals:
-cmap <allow_quantifiers> false
-
-# ===================================================================
-# == Pager Keybindings
-# ===================================================================
-
-# Movement
-pmap  <down>      pager_move  down=1
-pmap  <up>        pager_move  up=1
-pmap  <left>      pager_move  left=4
-pmap  <right>     pager_move  right=4
-pmap  <home>      pager_move  to=0
-pmap  <end>       pager_move  to=-1
-pmap  <pagedown>  pager_move  down=1.0  pages=True
-pmap  <pageup>    pager_move  up=1.0    pages=True
-pmap  <C-d>       pager_move  down=0.5  pages=True
-pmap  <C-u>       pager_move  up=0.5    pages=True
-
-copypmap <UP>       k  <C-p>
-copypmap <DOWN>     j  <C-n> <CR>
-copypmap <LEFT>     h
-copypmap <RIGHT>    l
-copypmap <HOME>     g
-copypmap <END>      G
-copypmap <C-d>      d
-copypmap <C-u>      u
-copypmap <PAGEDOWN> n  f  <C-F>  <Space>
-copypmap <PAGEUP>   p  b  <C-B>
-
-# Basic
-pmap     <ESC> pager_close
-copypmap <ESC> q Q i <F3>
-pmap E      edit_file
-
-# ===================================================================
-# == Taskview Keybindings
-# ===================================================================
-
-# Movement
-tmap <up>        taskview_move up=1
-tmap <down>      taskview_move down=1
-tmap <home>      taskview_move to=0
-tmap <end>       taskview_move to=-1
-tmap <pagedown>  taskview_move down=1.0  pages=True
-tmap <pageup>    taskview_move up=1.0    pages=True
-tmap <C-d>       taskview_move down=0.5  pages=True
-tmap <C-u>       taskview_move up=0.5    pages=True
-
-copytmap <UP>       k  <C-p>
-copytmap <DOWN>     j  <C-n> <CR>
-copytmap <HOME>     g
-copytmap <END>      G
-copytmap <C-u>      u
-copytmap <PAGEDOWN> n  f  <C-F>  <Space>
-copytmap <PAGEUP>   p  b  <C-B>
-
-# Changing priority and deleting tasks
-tmap J          eval -q fm.ui.taskview.task_move(-1)
-tmap K          eval -q fm.ui.taskview.task_move(0)
-tmap dd         eval -q fm.ui.taskview.task_remove()
-tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
-tmap <pageup>   eval -q fm.ui.taskview.task_move(0)
-tmap <delete>   eval -q fm.ui.taskview.task_remove()
-
-# Basic
-tmap <ESC> taskview_close
-copytmap <ESC> q Q w <C-c>
-#+end_src
-
-*** scope.sh
-:PROPERTIES:
-:header-args+: :tangle ~/.config/ranger/scope.sh :shebang "#!/usr/bin/env sh"
-:END:
-
-#+begin_src sh :tangle no
-# ranger supports enhanced previews.  If the option "use_preview_script"
-# is set to True and this file exists, this script will be called and its
-# output is displayed in ranger.  ANSI color codes are supported.
-
-# NOTES: This script is considered a configuration file.  If you upgrade
-# ranger, it will be left untouched. (You must update it yourself.)
-# Also, ranger disables STDIN here, so interactive scripts won't work properly
-
-# Meanings of exit codes:
-# code | meaning    | action of ranger
-# -----+------------+-------------------------------------------
-# 0    | success    | success. display stdout as preview
-# 1    | no preview | failure. display no preview at all
-# 2    | plain text | display the plain content of the file
-# 3    | fix width  | success. Don't reload when width changes
-# 4    | fix height | success. Don't reload when height changes
-# 5    | fix both   | success. Don't ever reload
-
-# Meaningful aliases for arguments:
-path="$1"    # Full path of the selected file
-width="$2"   # Width of the preview pane (number of fitting characters)
-height="$3"  # Height of the preview pane (number of fitting characters)
-
-maxln=200    # Stop after $maxln lines.  Can be used like ls | head -n $maxln
-
-# Find out something about the file:
-mimetype=$(file --mime-type -Lb "$path")
-extension=${path##*.}
-
-# Functions:
-# runs a command and saves its output into $output.  Useful if you need
-# the return value AND want to use the output in a pipe
-try() { output=$(eval '"$@"'); }
-
-# writes the output of the previouosly used "try" command
-dump() { echo "$output"; }
-
-# a common post-processing function used after most commands
-trim() { head -n "$maxln"; }
-
-# wraps highlight to treat exit code 141 (killed by SIGPIPE) as success
-highlight() { command highlight "$@"; test $? = 0 -o $? = 141; }
-
-case "$extension" in
-    # Archive extensions:
-    7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
-    rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
-        try als "$path" && { dump | trim; exit 0; }
-        try acat "$path" && { dump | trim; exit 3; }
-        try bsdtar -lf "$path" && { dump | trim; exit 0; }
-        exit 1;;
-    rar)
-        try unrar -p- lt "$path" && { dump | trim; exit 0; } || exit 1;;
-    # PDF documents:
-    pdf)
-        try pdftotext -l 10 -nopgbrk -q "$path" - && \
-            { dump | trim | fmt -s -w $width; exit 0; } || exit 1;;
-    # BitTorrent Files
-    torrent)
-        try transmission-show "$path" && { dump | trim; exit 5; } || exit 1;;
-    # HTML Pages:
-    htm|html|xhtml)
-        try w3m    -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
-        try lynx   -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
-        try elinks -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
-        ;; # fall back to highlight/cat if the text browsers fail
-esac
-
-case "$mimetype" in
-    # Syntax highlight for text files:
-    text/* | */xml)
-        try highlight --out-format=ansi "$path" && { dump | trim; exit 5; } || exit 2;;
-    # Ascii-previews of images:
-    image/*)
-        img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || exit 1;;
-    # Display information about media files:
-    video/* | audio/*)
-        exiftool "$path" && exit 5
-        # Use sed to remove spaces so the output fits into the narrow window
-        try mediainfo "$path" && { dump | trim | sed 's/  \+:/: /;';  exit 5; } || exit 1;;
-esac
-
-exit 1
-#+end_src
-
 ** redshift
 :PROPERTIES:
 :header-args+: :tangle ~/.config/redshift.conf :comments none
@@ -3855,7 +2469,6 @@ output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
 exec swayidle \
    timeout 120  '[ -f ~/.nosleep ] || swaymsg "output * dpms off"' \
         resume  '[ -f ~/.nosleep ] || swaymsg "output * dpms on"'  \
-   before-sleep swaylock
 
 
 ### Key bindings
@@ -3863,7 +2476,9 @@ exec swayidle \
 # Basics:
 #
     # start a terminal
-    bindsym $mod+Return exec $term
+    bindsym $mod+Return exec $term -name floating
+    bindsym $mod+Shift+Return exec $term
+    for_window [class="URxvt" instance="floating"] floating enable
 
     # kill focused window
     bindsym $mod+Shift+q kill
@@ -3885,7 +2500,7 @@ exec swayidle \
     bindsym $mod+Shift+c reload
 
     # exit sway (logs you out of your wayland session)
-    bindsym $mod+Shift+e exit
+    bindsym $mod+Shift+e exit
 
     bindsym $mod+apostrophe exec rofi-light        # rofi-based brightness chooser
     bindsym XF86MonBrightnessUp exec light -A 5    # increase screen brightness
@@ -4040,7 +2655,8 @@ mode "$mode_system" {
     bindsym Escape mode "default"
     bindsym q      mode "default"
 }
-bindsym XF86PowerOff mode "$mode_system"
+# bindsym XF86PowerOff mode "$mode_system"
+bindsym $mod+Shift+e mode "$mode_system"
 
 #
 # Presentation mode
@@ -4083,8 +2699,8 @@ bar {
     position bottom
     colors {
         statusline #ffffff
-        background #323232
-        inactive_workspace #32323200 #32323200 #5c5c5c
+        background #212121
+        inactive_workspace #21212100 #21212100 #5c5c5c
     }
     status_command i3status | my-i3status.py
 }
@@ -4096,9 +2712,9 @@ font pango: DejaVu Sans Mono 9
 # font pango: Liberation Mono 9
 
 exec xrdb .Xresources
-exec pgrep -x "systemd-inhibit" || \
-     systemd-inhibit --what=handle-power-key --who=aminb \
-     --why="Handle power button in sway" sleep infinity
+exec pgrep -x "systemd-inhibit" || \
+     systemd-inhibit --what=handle-power-key --who=aminb \
+     --why="Handle power button in sway" sleep infinity
 exec mako 2>&1 >/tmp/mako.log
 exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
 
@@ -5367,6 +3983,12 @@ export MOZ_USE_XINPUT2=1  # precise scrolling in firefox
 export NIXPKGS=$HOME/src/git/nixpkgs
 
 if [ -e /home/amin/.nix-profile/etc/profile.d/nix.sh ]; then . /home/amin/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
+
+export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
+export PATH="/$HOME/.config/guix/current/bin${PATH:+:}$PATH"
+export SSL_CERT_DIR="$HOME/.guix-profile/etc/ssl/certs"
+export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"
+export GIT_SSL_CAINFO="$SSL_CERT_FILE"
 #+end_src
 
 *** zshenv
@@ -5445,7 +4067,7 @@ alias mv="mv -iv"
 alias cp="cp -iv"
 alias scl=systemctl
 alias jcl=journalctl
-alias m="mbsync -a"
+alias m="mbsync uwaterloo; mbsync amin"
 alias best="youtube-dl -f best"
 alias sd="ssh deb"
 alias sf="ssh fp"
@@ -5609,8 +4231,15 @@ for f in os.listdir(remmina_dir):
     fdict[n] = fp
 
 lines = max(min(15, len(fdict)), 1);
-rofi = Popen(["rofi", "-i", "-dmenu", "-l", str(lines), "-p", "connection: "], stdout=PIPE, stdin=PIPE)
-selected = rofi.communicate("\n".join(fdict.keys()).encode("utf-8"))[0].decode("utf-8").strip()
+width = len(max(fdict.keys(), key=len))
+rofi = Popen(["rofi", "-i", "-dmenu", \
+              "-l", str(lines), "-width", str(width), \
+              "-p", "connection"], stdout=PIPE, stdin=PIPE)
+selected = rofi.communicate("\n" \
+                            .join(fdict.keys()) \
+                            .encode("utf-8"))[0] \
+               .decode("utf-8") \
+               .strip()
 rofi.wait()
 
 r = Popen(["remmina", "-c", fdict[selected]])