X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/835adbdb431cbd9dd5f081fca459cbe25f3c4dc2..d9b09483e4ada687ff8ac004cef0e0affc75094a:/rc.org?ds=inline diff --git a/rc.org b/rc.org index 7451fa4..362a28b 100644 --- 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 @@ -389,6 +120,52 @@ wintypes: }; #+end_src +** dovecot +:PROPERTIES: +:header-args+: :tangle "/sudo::/etc/dovecot/dovecot.conf" +:END: + +#+begin_src conf +protocols = imap + +listen = 127.0.0.1 +log_path = /var/log/dovecot.log +info_log_path = /var/log/dovecot-info.log + +ssl = no +disable_plaintext_auth = no + +auth_verbose = yes +auth_mechanisms = plain + +passdb { + driver = passwd-file + args = /etc/dovecot/passwd +} + +userdb { + driver = static + args = uid=amin gid=amin home=/home/amin/mail/%d/%n + default_fields = mail=maildir:/home/amin/mail/%d/%n/mail +} + +# mail_home = /home/amin/mail/%d/%n +# mail_location = maildir:/home/amin/mail/%d/%n/mail:LAYOUT=fs:INBOX=/home/amin/mail/%d/%n/mail/Inbox + +# namespace { +# inbox = yes +# separator = / +# } + +mail_plugins = $mail_plugins fts fts_lucene + +plugin { + fts = lucene + fts_lucene = whitespace_chars=@. + fts_autoindex = yes +} +#+end_src + ** Dunst :PROPERTIES: :header-args+: :tangle ~/.config/dunst/dunstrc @@ -625,13 +402,71 @@ timeout = 0 Helvetica - + Liberation Sans - + #+end_src +** getmail + +*** getmailrc +:PROPERTIES: +:header-args+: :tangle ~/.getmail/getmailrc +:END: + +#+begin_src conf +[retriever] +type = SimplePOP3SSLRetriever +server = fencepost.gnu.org +username = bandali +password_command = ("gpg2", "--no-tty", "-q", "-d", "/home/amin/.passwd/gnu.gpg") +port = 995 +use_apop = True + +[destination] +type = Maildir +path = ~/mail/gnu/Inbox/ + +[options] +delete = True +#+end_src + +*** getmail.service +:PROPERTIES: +:header-args+: :tangle ~/.config/systemd/user/getmail.service +:END: + +#+begin_src conf :tangle no +[Unit] +Description=getmail service + +[Service] +Type=oneshot +ExecStart=/usr/bin/getmail +StandardOutput=syslog +StandardError=syslog +#+end_src + +*** getmail.timer +:PROPERTIES: +:header-args+: :tangle ~/.config/systemd/user/getmail.timer +:END: + +#+begin_src conf :tangle no +[Unit] +Description=getmail timer + +[Timer] +OnCalendar=*:0/30 +Persistent=true +Unit=getmail.service + +[Install] +WantedBy=timers.target +#+end_src + ** Git *** gitconfig @@ -643,8 +478,8 @@ timeout = 0 #+begin_src conf [user] name = Amin Bandali - email = amin@gnu.org - signingkey = CDDE75F903538E71813CDA27D1FBA36627D65876 + email = bandali@gnu.org + signingkey = BE6273738E616D6D1B3A08E8A21A020248816103 #+end_src **** signing @@ -723,7 +558,7 @@ timeout = 0 **** send-email #+begin_src conf [sendemail] - smtpuser = aminb + smtpuser = bandali smtpserver = fencepost.gnu.org smtpserverport = 587 smtpencryption = tls @@ -745,12 +580,60 @@ timeout = 0 *-autoloads.el #+end_src +** GnuPG +:PROPERTIES: +:header-args+: :tangle ~/.gnupg/gpg-agent.conf +:END: + +#+begin_src conf +default-cache-ttl 43200 +max-cache-ttl 43200 + +default-cache-ttl-ssh 10800 +max-cache-ttl-ssh 10800 + +# pinentry-program /usr/bin/pinentry-qt +#+end_src + +** GTK + +*** gtk-2.0 +:PROPERTIES: +:header-args+: :tangle ~/.gtkrc-2.0 +:END: + +#+begin_src conf +gtk-theme-name="Greybird" +gtk-icon-theme-name="Paper" +gtk-font-name="Ubuntu 10" +gtk-menu-images=0 +# gtk-key-theme-name = "Emacs" +#+end_src + +*** gtk-3.0 +:PROPERTIES: +:header-args+: :tangle ~/.config/gtk-3.0/settings.ini +:END: + +#+begin_src conf :tangle no +[Settings] +gtk-icon-theme-name = Paper +# gtk-theme-name = Adwaita + +gtk-theme-name = Greybird +# gtk-theme-name = Arc-Darker +# gtk-theme-name = Numix-ArchBlue + +gtk-font-name = Ubuntu 10 +# gtk-key-theme-name = Emacs +#+end_src + ** [[https://github.com/Leinnan/i3gs][i3gs]] :PROPERTIES: :header-args+: :tangle ~/.config/i3gs/config :END: -#+begin_src conf :comments none +#+begin_src conf :comments none :tangle no borders_width=0 0 2 0 separator_width=10 @@ -797,162 +680,97 @@ title=  borders_color=#FFDC00 separator_width=0 #+end_src -** Latexmk + +** i3status :PROPERTIES: -:header-args+: :tangle ~/.latexmkrc +:header-args+: :tangle ~/.config/i3status/config :END: -#+begin_src conf -$pdf_previewer = "start zathura %O %S"; -$clean_ext = "aux out"; +#+begin_src conf :comments none +# 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 + output_format = "i3bar" +} -# $pdf_update_method = 4; -# $pdf_update_command = "zathura %O %S"; +# order += "ipv6" +order += "disk /" +order += "disk /data" +order += "wireless _first_" +order += "ethernet _first_" +order += "battery 0" +order += "volume master" +order += "load" +order += "tztime local" + +wireless _first_ { + format_up = "W:%quality %essid %ip" + format_down = "W: down" +} -# Synctex allows one to jump to from the PDF in Zathura to the source in Emacs -# by Ctrl+click in the PDF. -# Tell latexmk to use Zathura as a previewer, and run emacsclient as the Synctex -# editor. -# $pdf_previewer = 'exec zathura --synctex-forward -x \'emacsclient --no-wait +%{line} %{input}\' %O %S'; -#+end_src +ethernet _first_ { + # if you use %speed, i3status requires root privileges + format_up = "E: %ip (%speed)" + format_down = "E: down" +} -** libinput +battery 0 { + format = "%status %percentage %remaining (%consumption)" + path = "/sys/class/power_supply/BAT%d/uevent" + low_threshold = "10" + threshold_type = "percentage" + last_full_capacity = true + integer_battery_capacity = true + hide_seconds = true +} -Improve XPS 15 9560's touchpad experience. +tztime local { + format = "%-I:%M%P %a %b %d" +} -# begin_src conf :tangle (when (and (eq system-type 'gnu/linux) (string= (system-name) "plasma")) "/sudo::/etc/X11/xorg.conf.d/30-touchpad.conf") -#+begin_src conf :tangle no -Section "InputClass" - Identifier "libinput touchpad catchall" - Driver "libinput" - MatchIsTouchpad "on" - Option "ClickMethod" "clickfinger" - Option "NaturalScrolling" "true" - Option "Tapping" "on" - Option "TappingButtonMap" "lrm" -EndSection +volume master { + format = "♪ %volume" + format_muted = "🔇 %volume" + device = "pulse" +} + +load { + format = "%1min" +} + +disk "/" { + format = "/ %avail" +} + +disk "/data" { + format = "/data %avail" +} #+end_src -** getmail +** isync -*** getmailrc +*** mbsyncrc :PROPERTIES: -:header-args+: :tangle ~/.getmail/getmailrc +:header-args+: :tangle ~/.mbsyncrc :END: #+begin_src conf -[retriever] -type = SimplePOP3SSLRetriever -server = fencepost.gnu.org -username = aminb -password_command = ("gpg2", "--no-tty", "-q", "-d", "/home/amin/.passwd/gnu.gpg") -port = 995 -use_apop = True - -[destination] -type = Maildir -path = ~/mail/gnu/Inbox/ - -[options] -delete = True -#+end_src - -*** getmail.service -:PROPERTIES: -:header-args+: :tangle ~/.config/systemd/user/getmail.service -:END: - -#+begin_src conf :tangle no -[Unit] -Description=getmail service - -[Service] -Type=oneshot -ExecStart=/usr/bin/getmail -StandardOutput=syslog -StandardError=syslog -#+end_src - -*** getmail.timer -:PROPERTIES: -:header-args+: :tangle ~/.config/systemd/user/getmail.timer -:END: - -#+begin_src conf :tangle no -[Unit] -Description=getmail timer - -[Timer] -OnCalendar=*:0/30 -Persistent=true -Unit=getmail.service - -[Install] -WantedBy=timers.target -#+end_src - -** GnuPG -:PROPERTIES: -:header-args+: :tangle ~/.gnupg/gpg-agent.conf -:END: - -#+begin_src conf -default-cache-ttl 43200 -max-cache-ttl 43200 - -default-cache-ttl-ssh 10800 -max-cache-ttl-ssh 10800 - -# pinentry-program /usr/bin/pinentry-qt -#+end_src - -** GTK - -*** gtk-2.0 -:PROPERTIES: -:header-args+: :tangle ~/.gtkrc-2.0 -:END: - -#+begin_src conf -gtk-theme-name="Greybird" -gtk-icon-theme-name="Paper" -gtk-font-name="Ubuntu 10" -gtk-menu-images=0 -# gtk-key-theme-name = "Emacs" -#+end_src - -*** gtk-3.0 -:PROPERTIES: -:header-args+: :tangle ~/.config/gtk-3.0/settings.ini -:END: - -#+begin_src conf :tangle no -[Settings] -gtk-icon-theme-name = Paper -# gtk-theme-name = Adwaita - -gtk-theme-name = Greybird -# gtk-theme-name = Arc-Darker -# gtk-theme-name = Numix-ArchBlue - -gtk-font-name = Ubuntu 10 -# gtk-key-theme-name = Emacs -#+end_src - -** isync - -*** mbsyncrc -:PROPERTIES: -:header-args+: :tangle ~/.mbsyncrc -:END: - -#+begin_src conf -# Global defaults -CopyArrivalDate yes +# Global defaults +CopyArrivalDate yes +Create Both +Expunge Both ###### IMAPAccount amin -Host nix.aminb.org +Host mail.aminb.org User amin@aminb.org PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/amin.gpg" SSLType IMAPS @@ -960,17 +778,20 @@ SSLType IMAPS IMAPStore amin-remote Account amin -MaildirStore amin-local -Path ~/mail/amin/ -Inbox ~/mail/amin/Inbox -SubFolders Verbatim +IMAPAccount amin-dovecot +Host 127.0.0.1 +Port 143 +User amin@aminb.org +PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/amin-dovecot.gpg" +SSLType None + +IMAPStore amin-local +Account amin-dovecot Channel amin Master :amin-remote: Slave :amin-local: -Patterns * !dovecot* -Create Both -SyncState * +Patterns * ###### IMAPAccount uwaterloo @@ -982,17 +803,20 @@ SSLType IMAPS IMAPStore uwaterloo-remote Account uwaterloo -MaildirStore uwaterloo-local -Path ~/mail/uwaterloo/ -Inbox ~/mail/uwaterloo/Inbox -SubFolders Verbatim +IMAPAccount uwaterloo-dovecot +Host 127.0.0.1 +Port 143 +User abandali@uwaterloo.ca +PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/uwaterloo-dovecot.gpg" +SSLType None + +IMAPStore uwaterloo-local +Account uwaterloo-dovecot Channel uwaterloo Master :uwaterloo-remote: Slave :uwaterloo-local: -Patterns * !dovecot* -Create Both -SyncState * +Patterns * #+end_src *** mbsync.service @@ -1029,6 +853,42 @@ Unit=mbsync.service WantedBy=timers.target #+end_src +** Latexmk +:PROPERTIES: +:header-args+: :tangle ~/.latexmkrc +:END: + +#+begin_src conf +$pdf_previewer = "start zathura %O %S"; +$clean_ext = "aux out"; + +# $pdf_update_method = 4; +# $pdf_update_command = "zathura %O %S"; + +# Synctex allows one to jump to from the PDF in Zathura to the source in Emacs +# by Ctrl+click in the PDF. +# Tell latexmk to use Zathura as a previewer, and run emacsclient as the Synctex +# editor. +# $pdf_previewer = 'exec zathura --synctex-forward -x \'emacsclient --no-wait +%{line} %{input}\' %O %S'; +#+end_src + +** libinput + +Improve XPS 15 9560's touchpad experience. + +# begin_src conf :tangle (when (and (eq system-type 'gnu/linux) (string= (system-name) "plasma")) "/sudo::/etc/X11/xorg.conf.d/30-touchpad.conf") +#+begin_src conf :tangle no +Section "InputClass" + Identifier "libinput touchpad catchall" + Driver "libinput" + MatchIsTouchpad "on" + Option "ClickMethod" "clickfinger" + Option "NaturalScrolling" "true" + Option "Tapping" "on" + Option "TappingButtonMap" "lrm" +EndSection +#+end_src + ** mpd :PROPERTIES: :header-args+: :tangle ~/.config/mpd/mpd.conf @@ -1460,29 +1320,32 @@ logfile ~/.msmtp.log # aminb account aminb -host nix.aminb.org +host mail.aminb.org # 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_fingerprint DE:5F:73:0C:F7:9A:7B:1D:55:AA:49:28:E7:28:49:24:A4:08:55:00:7A:7E:D8:7F:30:06:26:24:11:29:61:07 tls_starttls on 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 # use `msmtp -a gnu --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint -tls_fingerprint 28:70:42:76:1C:EC:91:5F:D1:B3:27:A1:CD:3B:32:A4:8B:0B:DC:3A:CD:CA:F6:6F:E4:61:BA:69:D7:4D:0D:0B +tls_fingerprint 93:59:52:1D:A6:95:13:31:7C:81:ED:DB:A5:BA:B5:2B:C8:BC:38:3E:71:A5:DF:8C:80:46:C1:E0:5D:2D:F4:E3 tls_starttls on -from aminb@gnu.org -user aminb +from bandali@gnu.org +user bandali passwordeval gpg2 --no-tty -q -d ~/.passwd/gnu.gpg -# gnu (amin) +# gnu (old) +account gnu-aminb : gnu +from aminb@gnu.org account gnu-amin : gnu from amin@gnu.org - -# gnu (mab) account gnu-mab : gnu from mab@gnu.org @@ -2097,7 +1960,7 @@ def_key "K" # configured here named ".notmuch". # [database] -path=/home/amin/mail +path=/home/amin/oldmail # User configuration # @@ -2117,7 +1980,7 @@ path=/home/amin/mail [user] name=Amin Bandali primary_email=amin@aminb.org -other_email=amin@gnu.org;abandali@uwaterloo.ca;mab@gnu.org;aminb@gnu.org; +other_email=bandali@gnu.org;abandali@uwaterloo.ca; # Configuration for "notmuch new" # @@ -2203,7 +2066,7 @@ 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:amin@gnu.org or from:mab@gnu.org or from:aminb@gnu.org or from:abandali@uwaterloo.ca +notmuch tag -new +sent -- from:amin@aminb.org or from:bandali@gnu.org or from:aminb@gnu.org or from:amin@gnu.org or from:mab@gnu.org or from:abandali@uwaterloo.ca # initial tagging notmuch tag -latest -- tag:latest @@ -2216,14 +2079,19 @@ notmuch tag +inbox +unread +latest -new -- tag:new 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 +pay -- folder:amin/pay notmuch tag -inbox +banking -- folder:amin/banking +notmuch tag -inbox +work -- folder:amin/work # # -notmuch tag -inbox +uw/cs136 -- folder:uwaterloo/lists/cs136 -notmuch tag -inbox +uw/se463 -- folder:uwaterloo/lists/se463 +notmuch tag -inbox +uw/cs136 -- folder:uwaterloo/lists/cs136 +notmuch tag -inbox +uw/cs846 -- folder:uwaterloo/lists/cs846 +notmuch tag -inbox +uw/ece750 -- folder:uwaterloo/lists/ece750 +notmuch tag -inbox +uw/se212 -- folder:uwaterloo/lists/se212 +notmuch tag -inbox +uw/se463 -- folder:uwaterloo/lists/se463 +notmuch tag -inbox +lists/alloytools -- folder:uwaterloo/lists/alloytools notmuch tag -inbox +lists/clvsingle -- folder:uwaterloo/lists/Clvsingle notmuch tag -inbox +lists/gsa -- folder:uwaterloo/lists/GSA notmuch tag -inbox +lists/math-grad -- folder:uwaterloo/lists/Math-grad @@ -2294,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; } @@ -2409,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" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "", - header :contains "list-id" "") { + header :contains "list-id" + [ "" + , "" + , "" + , "" + , "" + , "" + , "" + , "" + , "" + , "" + , "" + , "" + , "" + , "" + , "" + ] ) { 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 = -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 = - -icon-prev =  -icon-stop =  -icon-play =  -icon-pause =  -icon-next =  - -label-song-maxlen = 25 -label-song-ellipsis = true - -[module/xbacklight] -type = internal/xbacklight - -format =