[emacs] update 7 drones
[~bandali/configs] / rc.org
diff --git a/rc.org b/rc.org
index d679189..7451fa4 100644 (file)
--- a/rc.org
+++ b/rc.org
@@ -643,8 +643,8 @@ timeout = 0
 #+begin_src conf
 [user]
     name = Amin Bandali
-    email = amin@aminb.org
-    signingkey = 4E05246AB0BF7FFB
+    email = amin@gnu.org
+    signingkey = CDDE75F903538E71813CDA27D1FBA36627D65876
 #+end_src
 
 **** signing
@@ -686,6 +686,8 @@ timeout = 0
     pr = pull --rebase
     ps = push
     psf = push --force
+    nmam = "!f() { notmuch show --format=raw $1 | git am -; }; f"
+    nmam3 = "!f() { notmuch show --format=raw $1 | git am -3 -; }; f"
 #+end_src
 
 **** color
@@ -721,8 +723,8 @@ timeout = 0
 **** send-email
 #+begin_src conf
 [sendemail]
-       smtpuser = amin@aminb.org
-       smtpserver = nix.aminb.org
+       smtpuser = aminb
+       smtpserver = fencepost.gnu.org
        smtpserverport = 587
        smtpencryption = tls
        annotate = yes
@@ -752,25 +754,30 @@ timeout = 0
 borders_width=0 0 2 0
 separator_width=10
 
-[mpd]
-preset=MPD
-title=<span weight='heavy' fgcolor='#7FDBFF'> </span>
-borders_color=#7FDBFF
+#[mpd]
+#preset=MPD
+#title=<span weight='heavy' fgcolor='#7FDBFF'> </span>
+#borders_color=#7FDBFF
 
 [ram]
 preset=RAM
 title=<span weight='heavy' fgcolor='#3D9970'> </span>
 borders_color=#3D9970
 
-[cpu]
-preset=CPU
-title=<span weight='heavy' fgcolor='#2ECC40'> </span>
-borders_color=#2ECC40
+#[cpu]
+#preset=CPU
+#title=<span weight='heavy' fgcolor='#2ECC40'> </span>
+#borders_color=#2ECC40
 
-[hdd]
-preset=HDD
-title=<span weight='heavy' fgcolor='#01FF70'> </span>
-borders_color=#01FF70
+#[hdd]
+#preset=HDD
+#title=<span weight='heavy' fgcolor='#01FF70'> </span>
+#borders_color=#01FF70
+
+[volume]
+command=volume-info
+title=<span weight='heavy' fgcolor='#7FDBFF'></span>
+borders_color=#7FDBFF
 
 [battery]
 preset=BAT
@@ -785,7 +792,7 @@ borders_color=#01FF70
 
 [date]
 preset=DATE
-command=date '+%-I:%M, %a %b %d'
+command=date '+%-I:%M, %a %b %d '
 title=<span weight='heavy' fgcolor='#FFDC00'> </span>
 borders_color=#FFDC00
 separator_width=0
@@ -1454,7 +1461,8 @@ logfile ~/.msmtp.log
 # aminb
 account aminb
 host nix.aminb.org
-tls_fingerprint 65:DD:B8:32:D8:CD:F1:DC:B6:34:EE:35:04:18:AC:09:F3:1D:6D:20:F2:4A:E2:BD:64:48:B7:1F:90:BD:C4:BA
+# use `msmtp -a aminb --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint
+tls_fingerprint 98:C7:F0:02:7F:2B:D8:B6:D3:BF:E8:C1:D4:07:6B:B5:6C:B1:C7:5D:97:20:70:88:AB:9E:B5:09:5D:2C:DC:8E
 tls_starttls on
 from amin@aminb.org
 user amin@aminb.org
@@ -1470,6 +1478,14 @@ from aminb@gnu.org
 user aminb
 passwordeval gpg2 --no-tty -q -d ~/.passwd/gnu.gpg
 
+# gnu (amin)
+account gnu-amin : gnu
+from amin@gnu.org
+
+# gnu (mab)
+account gnu-mab : gnu
+from mab@gnu.org
+
 # uwaterloo
 account uwaterloo
 host connect.uwaterloo.ca
@@ -1479,10 +1495,6 @@ user abandali
 passwordeval gpg2 --no-tty -q -d ~/.passwd/uwaterloo.gpg
 tls_trust_file /etc/ssl/certs/ca-certificates.crt
 
-# uwaterloo (friendly address)
-account uwaterloo-friendly : uwaterloo
-from amin.bandali@uwaterloo.ca
-
 # Set a default account
 account default : aminb
 #+end_src
@@ -2105,7 +2117,7 @@ path=/home/amin/mail
 [user]
 name=Amin Bandali
 primary_email=amin@aminb.org
-other_email=abandali@uwaterloo.ca;amin.bandali@uwaterloo.ca;aminb@gnu.org;
+other_email=amin@gnu.org;abandali@uwaterloo.ca;mab@gnu.org;aminb@gnu.org;
 
 # Configuration for "notmuch new"
 #
@@ -2191,25 +2203,21 @@ sieve-filter -eW -o postmaster_address=postmaster@aminb.org \
 
 #+begin_src sh
 # apply sent tag to messages sent by me
-notmuch tag -new +sent -- from:amin@aminb.org or from:aminb@gnu.org or from:abandali@uwaterloo.ca or from:amin.bandali@uwaterloo.ca
+notmuch tag -new +sent -- from:amin@aminb.org or from:amin@gnu.org or from:mab@gnu.org or from:aminb@gnu.org or from:abandali@uwaterloo.ca
 
 # initial tagging
-notmuch tag -latest -- tag:latest
+notmuch tag -latest                     -- tag:latest
 notmuch tag +inbox +unread +latest -new -- tag:new
 
 
 # apply tags to lists
 
 # <aminb>
-notmuch tag -inbox +lists/~sircmpwn/srht-admins   -- folder:amin/lists/~sircmpwn/srht-admins
-notmuch tag -inbox +lists/~sircmpwn/srht-announce -- folder:amin/lists/~sircmpwn/srht-announce
-notmuch tag -inbox +lists/~sircmpwn/srht-dev      -- folder:amin/lists/~sircmpwn/srht-dev
-notmuch tag -inbox +lists/~sircmpwn/srht-discuss  -- folder:amin/lists/~sircmpwn/srht-discuss
-
 notmuch tag -inbox +lists/hackernewsletter -- folder:amin/lists/hackernewsletter
 notmuch tag -inbox +lists/haskell-weekly   -- folder:amin/lists/haskell-weekly
 
 notmuch tag -inbox +pay -- folder:amin/pay
+notmuch tag -inbox +banking -- folder:amin/banking
 # </aminb>
 
 # <uw>
@@ -2224,22 +2232,28 @@ notmuch tag -inbox +lists/watform-students -- folder:uwaterloo/lists/Watform-stu
 # </uw>
 
 # <gnu>
-notmuch tag -inbox +lists/emacs-devel       -- folder:gnu/l/emacs-devel
-notmuch tag -inbox +lists/emacs-orgmode     -- folder:gnu/l/emacs-orgmode
-notmuch tag -inbox +lists/emacsconf-discuss -- folder:gnu/l/emacsconf-discuss
-notmuch tag -inbox +lists/fencepost-users   -- folder:gnu/l/fencepost-users
-notmuch tag -inbox +lists/guix-devel        -- folder:gnu/l/guix-devel
-notmuch tag -inbox +lists/guile-devel       -- folder:gnu/l/guile-devel
-notmuch tag -inbox +lists/help-gnu-emacs    -- folder:gnu/l/help-gnu-emacs
-notmuch tag -inbox +lists/info-gnu-emacs    -- folder:gnu/l/info-gnu-emacs
-notmuch tag -inbox +lists/www-commits       -- folder:gnu/l/www-commits
-notmuch tag -inbox +lists/www-discuss       -- folder:gnu/l/www-discuss
-notmuch tag -inbox +webmasters              -- folder:gnu/webmasters
-
-notmuch tag -inbox +lists/deepspec          -- folder:gnu/l/deepspec
-notmuch tag -inbox +lists/haskell-cafe      -- folder:gnu/l/haskell-cafe
-notmuch tag -inbox +lists/haskell-art       -- folder:gnu/l/haskell-art
-notmuch tag -inbox +lists/notmuch           -- folder:gnu/l/notmuch
+notmuch tag -inbox +l/emacs-devel       -- folder:gnu/l/emacs-devel
+notmuch tag -inbox +l/emacs-orgmode     -- folder:gnu/l/emacs-orgmode
+notmuch tag -inbox +l/emacsconf-discuss -- folder:gnu/l/emacsconf-discuss
+notmuch tag -inbox +l/fencepost-users   -- folder:gnu/l/fencepost-users
+notmuch tag -inbox +l/guix-devel        -- folder:gnu/l/guix-devel
+notmuch tag -inbox +l/guile-devel       -- folder:gnu/l/guile-devel
+notmuch tag -inbox +l/help-gnu-emacs    -- folder:gnu/l/help-gnu-emacs
+notmuch tag -inbox +l/info-gnu-emacs    -- folder:gnu/l/info-gnu-emacs
+notmuch tag -inbox +l/www-commits       -- folder:gnu/l/www-commits
+notmuch tag -inbox +l/www-discuss       -- folder:gnu/l/www-discuss
+notmuch tag -inbox +webmasters          -- folder:gnu/webmasters
+
+notmuch tag -inbox +l/deepspec     -- folder:gnu/l/deepspec
+notmuch tag -inbox +l/haskell-cafe -- folder:gnu/l/haskell-cafe
+notmuch tag -inbox +l/haskell-art  -- folder:gnu/l/haskell-art
+notmuch tag -inbox +l/notmuch      -- folder:gnu/l/notmuch
+
+notmuch tag -inbox +l/~aminb/test-priv         -- folder:gnu/l/~aminb/test-priv
+notmuch tag -inbox +l/~sircmpwn/sr.ht-admins   -- folder:gnu/l/~sircmpwn/sr.ht-admins
+notmuch tag -inbox +l/~sircmpwn/sr.ht-announce -- folder:gnu/l/~sircmpwn/sr.ht-announce
+notmuch tag -inbox +l/~sircmpwn/sr.ht-dev      -- folder:gnu/l/~sircmpwn/sr.ht-dev
+notmuch tag -inbox +l/~sircmpwn/sr.ht-discuss  -- folder:gnu/l/~sircmpwn/sr.ht-discuss
 # </gnu>
 
 notmuch tag -inbox -unread +archive/notmuch     -- path:archive/notmuch/**
@@ -2422,6 +2436,19 @@ if anyof (
         fileinto :create "l/${listname}";
     }
 }
+
+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.-]+)@" {
+        set :lower "username" "${1}";
+        set :lower "listname" "${2}";
+        fileinto :create "l/${username}/${listname}";
+    }
+}
 #+end_src
 
 ** polybar
@@ -3664,6 +3691,7 @@ insert_pass="Alt+n"
 
 #+begin_src conf
 exec xrdb .Xresources
+exec dunst
 ### Variables
 # super
 set $mod Mod4
@@ -3734,7 +3762,10 @@ input "1:1:AT_Translated_Set_2_keyboard" {
 
     # Drag floating windows by holding down $mod and left mouse button.
     # Resize them with right mouse button + $mod.
-    floating_modifier $mod
+    # Despite the name, also works for non-floating windows.
+    # Change normal to inverse to use left mouse button for resizing and right
+    # mouse button for dragging.
+    floating_modifier $mod normal
 
     # reload the configuration file
     bindsym $mod+Shift+c reload
@@ -3751,17 +3782,17 @@ input "1:1:AT_Translated_Set_2_keyboard" {
     bindsym XF86AudioMute exec pamixer --toggle-mute
     bindsym XF86AudioMicMute exec pactl set-source-mute 1 toggle
 
-    # bspwm-esque workspace switch and window move
-    bindsym $mod+bracketleft exec sway-ws-util switch prev
-    bindsym $mod+bracketright exec sway-ws-util switch next
-    bindsym $mod+braceleft exec sway-ws-util move prev follow
-    bindsym $mod+braceright exec sway-ws-util move next follow
-
     # original sway workspace switch and window move
-    bindsym $mod2+bracketleft workspace prev
-    bindsym $mod2+bracketright workspace next
-    bindsym $mod2+braceleft move container to workspace prev
-    bindsym $mod2+braceright move container to workspace next
+    bindsym $mod+bracketleft workspace prev
+    bindsym $mod+bracketright workspace next
+    bindsym $mod+braceleft move container to workspace prev
+    bindsym $mod+braceright move container to workspace next
+
+    # bspwm-esque workspace switch and window move
+    bindsym $mod2+bracketleft exec sway-ws-util switch prev
+    bindsym $mod2+bracketright exec sway-ws-util switch next
+    bindsym $mod2+braceleft exec sway-ws-util move prev follow
+    bindsym $mod2+braceright exec sway-ws-util move next follow
 #
 # Moving around:
 #
@@ -4708,7 +4739,7 @@ zhighlighters=(main brackets pattern)
 #
 
 # Load these ssh identities with the ssh module
-zssh_ids=(id_rsa plasma_id_rsa id_ed25519 id_rsa_aur)
+zssh_ids=(id_ed25519_amin)
 
 
 #
@@ -4877,13 +4908,30 @@ exact brightness value.
 
 ** battery-percentage-time
 :PROPERTIES:
-:header-args+: :tangle ~/.local/bin/battery-percentage-time :shebang "#!/bin/bash"
+:header-args+: :tangle ~/.local/bin/battery-percentage-time :shebang "#!/bin/sh"
 :END:
 
-#+begin_src bash
-pct=$(upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep percentage | awk '{print $2}')
-time=$(upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep time | awk '{print $4,$5}')
-echo "$pct ($time)"
+#+begin_src sh
+dbus_send() {
+       label=$1
+       dbus-send --print-reply=literal --system \
+               --dest=org.freedesktop.UPower \
+               /org/freedesktop/UPower/devices/battery_BAT0 \
+               org.freedesktop.DBus.Properties.Get \
+               string:org.freedesktop.UPower.Device \
+               string:"${label}" | awk '{print $3}'
+}
+
+perc=$(dbus_send 'Percentage')
+state=$(dbus_send 'State')
+
+if [ "$state" -eq 2 ]; then  # Discharging
+       secs=$(dbus_send 'TimeToEmpty')
+elif [ "$state" -eq 1 ]; then  # Charging
+       secs=$(dbus_send 'TimeToFull')
+fi
+
+printf '%s%%%%%2dh%02dm \n' "$perc" $((secs / 3600)) $((secs % 3600 / 60))
 #+end_src
 
 ** rofi-light
@@ -5021,6 +5069,21 @@ import gnomekeyring as gk
 gk.unlock_sync('Default_keyring',gk.item_get_info_sync('login',1L).get_secret())
 #+end_src
 
+** volume-info
+:PROPERTIES:
+:header-args+: :tangle ~/.local/bin/volume-info :shebang "#!/bin/sh"
+:END:
+
+#+begin_src sh
+cur_vol=$(pamixer --get-volume)
+
+if [ $(pamixer --get-mute) = true ]; then
+  printf 'mt \n' "$cur_vol"
+else
+  printf '%02d \n' "$cur_vol"
+fi
+#+end_src
+
 ** wp
 
 My little wallpaper changer script.