[emacs] update 12 drones
[~bandali/configs] / rc.org
diff --git a/rc.org b/rc.org
index 1830d6c..84a5f0d 100644 (file)
--- a/rc.org
+++ b/rc.org
@@ -643,7 +643,7 @@ timeout = 0
 #+begin_src conf
 [user]
     name = Amin Bandali
-    email = amin@aminb.org
+    email = mab@gnu.org
     signingkey = 4E05246AB0BF7FFB
 #+end_src
 
@@ -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
@@ -743,6 +745,58 @@ timeout = 0
 *-autoloads.el
 #+end_src
 
+** [[https://github.com/Leinnan/i3gs][i3gs]]
+:PROPERTIES:
+:header-args+: :tangle ~/.config/i3gs/config
+:END:
+
+#+begin_src conf :comments none
+borders_width=0 0 2 0
+separator_width=10
+
+#[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
+
+#[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
+command=battery-percentage-time
+title=<span weight='heavy' fgcolor='#39CCCC'> </span>
+borders_color=#39CCCC
+
+[wifi]
+preset=WIFI
+title=<span weight='heavy' fgcolor='#01FF70'> </span>
+borders_color=#01FF70
+
+[date]
+preset=DATE
+command=date '+%-I:%M, %a %b %d '
+title=<span weight='heavy' fgcolor='#FFDC00'> </span>
+borders_color=#FFDC00
+separator_width=0
+#+end_src
 ** Latexmk
 :PROPERTIES:
 :header-args+: :tangle ~/.latexmkrc
@@ -1407,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
@@ -1423,6 +1478,10 @@ from aminb@gnu.org
 user aminb
 passwordeval gpg2 --no-tty -q -d ~/.passwd/gnu.gpg
 
+# gnu (new address)
+account gnu-mab : gnu
+from mab@gnu.org
+
 # uwaterloo
 account uwaterloo
 host connect.uwaterloo.ca
@@ -1432,10 +1491,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
@@ -2058,7 +2113,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=abandali@uwaterloo.ca;mab@gnu.org;aminb@gnu.org;
 
 # Configuration for "notmuch new"
 #
@@ -2144,25 +2199,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: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>
@@ -2177,22 +2228,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/**
@@ -2375,6 +2432,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
@@ -3617,10 +3687,12 @@ insert_pass="Alt+n"
 
 #+begin_src conf
 exec xrdb .Xresources
+exec dunst
 ### Variables
-#
-# Logo key. Use Mod1 for Alt.
+# super
 set $mod Mod4
+# alt
+set $mod2 Mod1
 set $left h
 set $down j
 set $up k
@@ -3660,11 +3732,14 @@ input "1739:31251:DLL07BE:01_06CB:7A13_Touchpad" {
     tap enabled
     natural_scroll enabled
     middle_emulation enabled
+    click_method clickfinger
 }
 
 input "1:1:AT_Translated_Set_2_keyboard" {
     repeat_delay 200
     repeat_rate 45
+    xkb_layout us,ir
+    xkb_options ctrl:nocaps,altwin:swap_alt_win,ctrl:rctrl_ralt,grp:shifts_toggle
 }
 
 
@@ -3686,7 +3761,7 @@ input "1:1:AT_Translated_Set_2_keyboard" {
     # 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
+    floating_modifier $mod normal
 
     # reload the configuration file
     bindsym $mod+Shift+c reload
@@ -3698,11 +3773,22 @@ input "1:1:AT_Translated_Set_2_keyboard" {
     bindsym XF86MonBrightnessUp exec light -A 5    # increase screen brightness
     bindsym XF86MonBrightnessDown exec light -U 5  # decrease screen brightness
 
-    bindsym $mod+bracketleft exec sway-ws-util switch prev
-    bindsym $mod+bracketright exec sway-ws-util switch next
+    bindsym XF86AudioRaiseVolume exec pamixer --allow-boost --increase 5
+    bindsym XF86AudioLowerVolume exec pamixer --allow-boost --decrease 5
+    bindsym XF86AudioMute exec pamixer --toggle-mute
+    bindsym XF86AudioMicMute exec pactl set-source-mute 1 toggle
+
+    # original sway workspace switch and window move
+    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
 
-    bindsym $mod+braceleft exec sway-ws-util move prev follow
-    bindsym $mod+braceright exec sway-ws-util move next follow
+    # 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:
 #
@@ -3814,7 +3900,7 @@ mode "resize" {
     bindsym Return mode "default"
     bindsym Escape mode "default"
 }
-bindsym $mod+r mode "resize"
+bindsym $mod+Shift+r mode "resize"
 
 #
 # Status Bar:
@@ -3827,7 +3913,7 @@ bar {
         background #323232
         inactive_workspace #32323200 #32323200 #5c5c5c
     }
-    status_command i3blocks
+    status_command i3gs ~/.config/i3gs/config
 }
 
 include /etc/sway/config.d/*
@@ -4649,7 +4735,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_mab)
 
 
 #
@@ -4816,6 +4902,34 @@ Xfce's presentation mode which keeps the screen awake, and
 =rofi-light= a small utility that uses [[https://github.com/DaveDavenport/rofi][Rofi]] to ask and [[https://github.com/haikarainen/light][light]] to set an
 exact brightness value.
 
+** battery-percentage-time
+:PROPERTIES:
+:header-args+: :tangle ~/.local/bin/battery-percentage-time :shebang "#!/bin/sh"
+:END:
+
+#+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
 :PROPERTIES:
 :header-args+: :tangle ~/.local/bin/rofi-light :shebang "#!/bin/bash"
@@ -4833,7 +4947,6 @@ light -S $val
 :END:
 
 #+begin_src bash
-export XKB_DEFAULT_OPTIONS=ctrl:nocaps,altwin:swap_alt_win,ctrl:rctrl_ralt
 export _JAVA_AWT_WM_NONREPARENTING=1
 export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'
 light -Scrs "intel_backlight" 2
@@ -4860,7 +4973,7 @@ if [ "$1" = "switch" ] || [ "$1" = "move" ]; then
   elif [ "$2" = "next" ]; then
     dest_ws="$next_ws"
   else
-    echo "Usage: $0 $1 {prev|next}"
+    echo "Usage: $0 $1 {prev|next} [follow]"
     exit 1
   fi
 else
@@ -4952,6 +5065,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.