X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/25869427afed90745b6b65cc6072c24caa2d8373..a554750431ca903abee306e449809b7ff3a77ba5:/rc.org?ds=sidebyside diff --git a/rc.org b/rc.org index 9dd226f..a7632fd 100644 --- a/rc.org +++ b/rc.org @@ -14,47 +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. -** [[https://github.com/afewmail/afew][afew]] -:PROPERTIES: -:header-args+: :tangle ~/.config/afew/config -:END: - -#+begin_quote -an initial tagging script for notmuch mail -#+end_quote - -#+begin_src conf -# This is the default filter chain -[SpamFilter] -#[ClassifyingFilter] -[KillThreadsFilter] -#[ListMailsFilter] -[ArchiveSentMailsFilter] -sent_tag = sent -[InboxFilter] - -#[Filter.1] -#query = 'folder:amin/lists/.haskell-cafe' -#tags = +lists;+lists/haskell-cafe -#message = lists/haskell-cafe - -#[Filter.2] -#query = 'folder:amin/lists/.haskell-weekly' -#tags = +lists;+lists/haskell-weekly -#message = lists/haskell-weekly - -#[Filter.3] -#query = 'folder:amin/lists/.hackernewsletter' -#tags = +lists;+lists/hackernewsletter -#message = lists/hackernewsletter - - -#[FolderNameFilter] -#folder_blacklist = Inbox -#maildir_separator = /. -#folder_transforms = Drafts:draft Junk:spam Trash:deleted Sent:sent Archive:archive lists/haskell-cafe:lists/haskell-cafe -#+end_src - ** bspwm *** bspwmrc @@ -62,11 +21,11 @@ sent_tag = sent :header-args+: :tangle ~/.config/bspwm/bspwmrc :shebang "#!/bin/sh" :END: -#+begin_src sh +#+begin_src sh :tangle no sxhkd & sh ~/.fehbg & xfce4-panel -d & -#compton & +compton & sleep 0.5 && pasystray --notify=all & bspc monitor -d I II III IV V VI VII VIII IX X @@ -85,7 +44,7 @@ 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 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 @@ -126,7 +85,7 @@ bspc rule -a Zathura state=tiled :header-args+: :tangle ~/.config/sxhkd/sxhkdrc :END: -#+begin_src conf +#+begin_src conf :tangle no # # wm independent hotkeys # @@ -177,6 +136,9 @@ XF86Audio{Raise,Lower}Volume XF86AudioMute pamixer --toggle-mute +XF86AudioMicMute + pactl set-source-mute 1 toggle + # playback control XF86Audio{Play,Prev,Next} mpc {toggle,prev,next} @@ -204,6 +166,9 @@ super + apostrophe #XF86KbdBrightness{Up,Down} # kbdlight {up,down} +XF86RotateWindows + toggle-tablet + # # bspwm hotkeys # @@ -323,7 +288,7 @@ super + {Left,Down,Up,Right} :header-args+: :tangle ~/.config/compton.conf :END: -#+begin_src conf +#+begin_src conf :tangle no # Shadow shadow = false; # Enabled client-side shadows on windows. no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows. @@ -623,7 +588,7 @@ timeout = 0 ** Fontconfig :PROPERTIES: -:header-args+: :tangle ~/.config/fontconfig/fonts.conf +:header-args+: :tangle ~/.config/fontconfig/fonts.conf :comments none :END: #+begin_src xml @@ -679,13 +644,13 @@ timeout = 0 [user] name = Amin Bandali email = amin@aminb.org - # signingkey = 4E05246AB0BF7FFB + signingkey = 4E05246AB0BF7FFB #+end_src **** signing #+begin_src conf -# [commit] -# gpgsign = true +[commit] + gpgsign = true # [format] # signoff = true #+end_src @@ -753,6 +718,16 @@ timeout = 0 user = aminb #+end_src +**** send-email +#+begin_src conf +[sendemail] + smtpuser = amin@aminb.org + smtpserver = nix.aminb.org + smtpserverport = 587 + smtpencryption = tls + annotate = yes +#+end_src + *** gitignore :PROPERTIES: :header-args+: :tangle ~/.gitignore_global @@ -768,6 +743,52 @@ 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=  +borders_color=#7FDBFF + +[ram] +preset=RAM +title=  +borders_color=#3D9970 + +[cpu] +preset=CPU +title=  +borders_color=#2ECC40 + +[hdd] +preset=HDD +title=  +borders_color=#01FF70 + +[battery] +preset=BAT +title=  +borders_color=#39CCCC + +[wifi] +preset=WIFI +title=  +borders_color=#01FF70 + +[date] +preset=DATE +command=date '+%I:%M, %a %b %d' +title=  +borders_color=#FFDC00 +separator_width=0 +#+end_src ** Latexmk :PROPERTIES: :header-args+: :tangle ~/.latexmkrc @@ -787,6 +808,23 @@ $clean_ext = "aux out"; # $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 + ** getmail *** getmailrc @@ -799,7 +837,7 @@ $clean_ext = "aux out"; type = SimplePOP3SSLRetriever server = fencepost.gnu.org username = aminb -password_command = ("gpg2", "--no-tty", "-q", "-d", "~/.passwd/gnu.gpg") +password_command = ("gpg2", "--no-tty", "-q", "-d", "/home/amin/.passwd/gnu.gpg") port = 995 use_apop = True @@ -1415,7 +1453,7 @@ logfile ~/.msmtp.log # aminb account aminb host nix.aminb.org -tls_fingerprint BB:98:B3:02:83:B0:E0:C3:49:3E:C2:B2:A8:60:62:78:03:B3:5D:B3:BD:B8:0A:39:BB:E4:B0:66:D1:CF:D1:6B +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 tls_starttls on from amin@aminb.org user amin@aminb.org @@ -1424,7 +1462,8 @@ passwordeval gpg2 --no-tty -q -d ~/.passwd/amin.gpg # gnu account gnu host fencepost.gnu.org -tls_fingerprint 94:0E:37:EB:EA:44:5A:4B:B6:6F:16:3D:6C:7E:7E:44:2D:93:61:C1:FE:82:A8:29:5E:3C:12:4E:2D:BE:0E:2C +# 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_starttls on from aminb@gnu.org user aminb @@ -2065,7 +2104,7 @@ path=/home/amin/mail [user] name=Amin Bandali primary_email=amin@aminb.org -other_email=amin.bandali@uwaterloo.ca;mbandali@uwaterloo.ca;aminb@gnu.org; +other_email=abandali@uwaterloo.ca;amin.bandali@uwaterloo.ca;aminb@gnu.org; # Configuration for "notmuch new" # @@ -2084,7 +2123,7 @@ other_email=amin.bandali@uwaterloo.ca;mbandali@uwaterloo.ca;aminb@gnu.org; [new] tags=new; #tags=unread;inbox; -ignore=.uidvalidity;.mbsyncstate +ignore=.uidvalidity;.mbsyncstate;/.*/dovecot*/ # Search configuration # @@ -2133,23 +2172,77 @@ synchronize_flags=true gpg_path=gpg #+end_src +*** pre-new hook +:PROPERTIES: +:header-args+: :tangle ~/mail/.notmuch/hooks/pre-new :shebang "#!/bin/sh" +:END: + +#+begin_src sh +touch /tmp/gnusieve.log +sieve-filter -eW -o postmaster_address=postmaster@aminb.org \ + -o mail_location=maildir:$MAILDIR/gnu:LAYOUT=fs:INBOX=$MAILDIR/gnu/Inbox ~/sieve/gnu.sieve INBOX delete &>>/tmp/gnusieve.log +#+end_src + *** post-new hook :PROPERTIES: :header-args+: :tangle ~/mail/.notmuch/hooks/post-new :shebang "#!/bin/sh" :END: #+begin_src sh -afew -tn +# 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 + +# initial tagging +notmuch tag -latest -- tag:latest +notmuch tag +inbox +unread +latest -new -- tag:new + # apply tags to lists -notmuch tag +lists +lists/deepspec -- folder:amin/lists/deepspec -notmuch tag +lists +lists/haskell-cafe -- folder:amin/lists/haskell-cafe -notmuch tag +lists +lists/haskell-weekly -- folder:amin/lists/haskell-weekly -notmuch tag +lists +lists/hackernewsletter -- folder:amin/lists/hackernewsletter -notmuch tag +lists +lists/notmuch -- folder:amin/lists/notmuch -notmuch tag +lists +lists/info-gnu-emacs -- folder:amin/lists/info-gnu-emacs -notmuch tag +lists +lists/help-gnu-emacs -- folder:amin/lists/help-gnu-emacs -notmuch tag +lists +lists/emacs-devel -- folder:amin/lists/emacs-devel + +# +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 +uw/cs136 -- folder:uwaterloo/lists/cs136 +notmuch tag -inbox +uw/se463 -- folder:uwaterloo/lists/se463 + +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 +notmuch tag -inbox +lists/scs-grads -- folder:uwaterloo/lists/scs-grads +notmuch tag -inbox +lists/watform-students -- folder:uwaterloo/lists/Watform-students +# + +# +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 -unread +archive/notmuch -- path:archive/notmuch/** +notmuch tag -inbox -unread +archive/emacs-devel -- path:archive/emacs-devel/** #+end_src *** notmuch.service @@ -2280,6 +2373,2496 @@ def prime_gpg_agent(): prime_gpg_agent() #+end_src +** pigeonhole +*** gnu.sieve +:PROPERTIES: +:header-args+: :tangle ~/sieve/gnu.sieve :comments none +:END: + +#+begin_src conf +require [ "regex", "variables", "fileinto", "envelope", "mailbox", "imap4flags", "include" ]; + +if anyof ( + address :is "from" "webmasters@gnu.org", + address :is "from" "webmasters-comment@gnu.org") { + fileinto :create "webmasters"; + stop; +} + +include :personal "lists"; +#+end_src + +*** lists.sieve +:PROPERTIES: +:header-args+: :tangle ~/sieve/lists.sieve :comments none +:END: + +#+begin_src conf +require [ "regex", "variables", "fileinto", "envelope", "mailbox", "imap4flags", + "include" ]; + +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" "") { + if header :regex "list-id" "<([a-z_0-9-]+)[.@]" { + set :lower "listname" "${1}"; + fileinto :create "l/${listname}"; + } +} +#+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 =