2 #+property: header-args :comments link :mkdirp yes :results silent
6 This org file contains the configuration files of pretty much every
7 program I use. The files are tangled (i.e. exported, or derived) from
8 this file using =org-babel=.
10 Note: This file is best viewed inside Emacs with org mode.
14 This section contains the configuration files (dotfiles) of various
17 ** [[https://github.com/afewmail/afew][afew]]
19 :header-args+: :tangle ~/.config/afew/config
23 an initial tagging script for notmuch mail
27 # This is the default filter chain
32 [ArchiveSentMailsFilter]
37 #query = 'folder:amin/lists/.haskell-cafe'
38 #tags = +lists;+lists/haskell-cafe
39 #message = lists/haskell-cafe
42 #query = 'folder:amin/lists/.haskell-weekly'
43 #tags = +lists;+lists/haskell-weekly
44 #message = lists/haskell-weekly
47 #query = 'folder:amin/lists/.hackernewsletter'
48 #tags = +lists;+lists/hackernewsletter
49 #message = lists/hackernewsletter
53 #folder_blacklist = Inbox
54 #maildir_separator = /.
55 #folder_transforms = Drafts:draft Junk:spam Trash:deleted Sent:sent Archive:archive lists/haskell-cafe:lists/haskell-cafe
62 :header-args+: :tangle ~/.config/bspwm/bspwmrc :shebang "#!/bin/sh"
70 sleep 0.5 && pasystray --notify=all &
72 bspc monitor -d I II III IV V VI VII VIII IX X
73 #bspc monitor eDP-1 -d I II III IV V
74 #bspc monitor HDMI-1 -d VI VII VIII IX X
76 #bspc config border_width 2
77 #bspc config window_gap 8
78 bspc config window_gap 0
80 bspc config bottom_padding 26
82 bspc config split_ratio 0.52
83 bspc config borderless_monocle true
84 bspc config gapless_monocle true
85 bspc config click_to_focus button1
86 bspc config directional_focus_tightness low
88 bspc rule -a Firefox desktop='^1' follow=on
89 bspc rule -a Nightly desktop='^1' follow=on
90 bspc rule -a Emacs desktop='^2' state=tiled follow=on
91 #bspc rule -a Chromium desktop='^4' follow=on
92 bspc rule -a URxvt state=floating
93 bspc rule -a URxvt:tiled state=tiled
94 bspc rule -a Connman-gtk state=floating
95 bspc rule -a Xfce4-panel state=floating
96 bspc rule -a TelegramDesktop state=floating
97 bspc rule -a Ec state=floating
98 bspc rule -a Pavucontrol state=floating
99 bspc rule -a Eog state=floating
100 bspc rule -a Seahorse state=floating
101 bspc rule -a mpv state=floating
102 bspc rule -a Evince state=floating
103 bspc rule -a Meld state=floating
104 bspc rule -a Autokey-gtk state=floating
105 bspc rule -a Mousepad state=floating
106 bspc rule -a Wrapper-1.0 state=floating
107 bspc rule -a File-roller state=floating
108 bspc rule -a Gnome-disks state=floating
109 bspc rule -a Termite state=floating
110 bspc rule -a Termite:tiled state=tiled
111 bspc rule -a Thunderbird:Calendar state=floating
112 bspc rule -a Audacity state=floating
113 bspc rule -a Proof state=floating # pvs x-show-proof
114 bspc rule -a Nm-connection-editor state=floating
115 bspc rule -a Wire state=floating
116 bspc rule -a discord state=floating
117 bspc rule -a X2goclient state=floating
118 bspc rule -a SimpleScreenRecorder state=floating
119 bspc rule -a Gimp state=floating
120 bspc rule -a Wrapper-2.0 state=floating
121 bspc rule -a Zathura state=tiled
126 :header-args+: :tangle ~/.config/sxhkd/sxhkdrc
131 # wm independent hotkeys
135 super + {_,shift} + Return
136 urxvt{_, -name tiled}
138 #super + {_,shift} + Return
139 # termite{_, --name=tiled}
143 rofi -show run -display-run '> ' -display-window ' 🗔 '
146 xfce4-popup-whiskermenu
150 rofi -show window -display-run '> ' -display-window ' 🗔 '
162 # chromium -incognito
168 # make sxhkd reload its configuration files:
173 XF86Audio{Raise,Lower}Volume
174 pamixer --allow-boost --{in,de}crease 5
178 pamixer --toggle-mute
181 XF86Audio{Play,Prev,Next}
182 mpc {toggle,prev,next}
186 light-locker-command -l
188 # Toggle keyboard layout
192 # Toggle Xfce presentation mode
194 toggle-presentation-mode
197 XF86MonBrightness{Up,Down}
203 # keyboard brightness
204 #XF86KbdBrightness{Up,Down}
211 # quit bspwm normally
219 # alternate between the tiled and monocle layout
223 # send the newest marked node to the newest preselected node
225 bspc node newest.marked.local -n newest.!automatic.local
227 # swap the current node and the biggest node
235 # set the window state
236 super + {t,shift + t,s,f}
237 bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
240 super + ctrl + {m,x,y,z}
241 bspc node -g {marked,locked,sticky,private}
247 # focus the node in the given direction
248 super + {_,shift + }{h,j,k,l}
249 bspc node -{f,s} {west,south,north,east}
251 # focus the node for the given path jump
252 super + {p,b,comma,period}
253 bspc node -f @{parent,brother,first,second}
255 # focus the next/previous node in the current desktop
256 super + {_,shift + }c
257 bspc node -f {next,prev}.local
259 # focus the next/previous desktop in the current monitor
260 super + bracket{left,right}
261 bspc desktop -f {prev,next}.local
263 # send to next/prev desktop
264 super + shift + bracket{left,right}
265 bspc node -d {prev,next} --follow
267 # focus the last node/desktop
269 bspc {node,desktop} -f last
271 # focus the older or newer node in the focus history
274 bspc node {older,newer} -f; \
277 # focus or send to the given desktop
278 super + {_,shift + }{1-9,0}
279 bspc {desktop -f,node -d} '^{1-9,10}'
285 # preselect the direction
286 super + ctrl + {h,j,k,l}
287 bspc node -p {west,south,north,east}
289 # preselect the ratio
293 # cancel the preselection for the focused node
297 # cancel the preselection for the focused desktop
298 super + ctrl + shift + space
299 bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
305 # expand a window by moving one of its side outward
306 super + alt + {h,j,k,l}
307 bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
309 # contract a window by moving one of its side inward
310 super + alt + shift + {h,j,k,l}
311 bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
313 # move a floating window
314 super + {Left,Down,Up,Right}
315 bspc node -v {-20 0,0 20,0 -20,20 0}
317 #alt + bracket{left,right}
318 # xdotool key --clearmodifiers ctrl+Page_{Up,Down}
323 :header-args+: :tangle ~/.config/compton.conf
328 shadow = false; # Enabled client-side shadows on windows.
329 no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows.
330 no-dnd-shadow = true; # Don't draw shadows on DND windows.
331 clear-shadow = true; # Zero the part of the shadow's mask behind the
332 # window. Fix some weirdness with ARGB windows.
333 shadow-radius = 5; # The blur radius for shadows. (default 12)
334 shadow-offset-x = -5; # The left offset for shadows. (default -15)
335 shadow-offset-y = -5; # The top offset for shadows. (default -15)
336 # shadow-opacity = 0.7; # The translucency for shadows. (default .75)
337 # shadow-red = 0.0; # Red color value of shadow. (0.0 - 1.0, defaults to 0)
338 # shadow-green = 0.0; # Green color value of shadow. (0.0 - 1.0, defaults to 0)
339 # shadow-blue = 0.0; # Blue color value of shadow. (0.0 - 1.0, defaults to 0)
340 shadow-exclude = [ "n:e:Notification", "class_g = 'Chromium'", "class_g = 'Dmenu'", "class_g = 'Firefox' && argb" ]; # Exclude conditions for shadows.
341 # shadow-exclude = "n:e:Notification";
342 #shadow-exclude = [ "_GTK_FRAME_EXTENTS@:c" ] # Fix dual shadow on some gtk3 powered applications
343 shadow-ignore-shaped = true; # Avoid drawing shadow on all shaped windows
344 # (see also: --detect-rounded-corners)
347 menu-opacity = 1.0; # The opacity for menus. (default 1.0)
348 #inactive-opacity = 0.9; # Default opacity of inactive windows. (0.0 - 1.0)
349 # active-opacity = 0.8; # Default opacity for active windows. (0.0 - 1.0)
350 frame-opacity = 1.0; # Opacity of window titlebars and borders. (0.1 - 1.0)
351 # inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacity' overrides
352 # value of _NET_WM_OPACITY. Bad choice.
353 alpha-step = 0.06; # XRender backend: Step size for alpha pictures. Increasing
354 # it may result in less X resource usage,
355 # Yet fading may look bad.
356 #inactive-dim = 0.5; # Dim inactive windows. (0.0 - 1.0)
357 #inactive-dim-fixed = true; # Do not let dimness adjust based on window opacity.
358 # blur-background = true; # Blur background of transparent windows.
359 # Bad performance with X Render backend.
360 # GLX backend is preferred.
361 # blur-background-frame = true; # Blur background of opaque windows with transparent
363 blur-background-fixed = true; # Do not let blur radius adjust based on window opacity.
364 blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
365 # Exclude conditions for background blur.
368 fading = false; # Fade windows during opacity changes.
369 fade-delta = 3; # The time between steps in a fade in milliseconds. (default 10).
370 fade-in-step = 0.03; # Opacity change between steps while fading in. (default 0.028).
371 fade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03).
372 # no-fading-openclose = true; # Avoid fade windows in/out when opening/closing.
373 fade-exclude = [ ]; # Exclude conditions for fading.
376 backend = "glx" # Backend to use: "xrender" or "glx". GLX backend is typically
377 # much faster but depends on a sane driver.
378 mark-wmwin-focused = true; # Try to detect WM windows and mark them as active.
379 mark-ovredir-focused = true; # Mark all non-WM but override-redirect windows active (e.g. menus).
380 use-ewmh-active-win = true; # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused
381 # instead of using FocusIn/Out events. Usually more reliable but
382 # depends on a EWMH-compliant WM.
383 detect-rounded-corners = false; # Detect rounded corners and treat them as rectangular when --shadow-ignore- shaped is on.
384 detect-client-opacity = true; # Detect _NET_WM_OPACITY on client windows, useful for window
385 # managers not passing _NET_WM_OPACITY of client windows to frame
387 refresh-rate = 0; # For --sw-opti: Specify refresh rate of the screen. 0 for auto.
388 vsync = "drm"; # "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc"
389 # See man page for more details.
390 dbe = false; # Enable DBE painting mode. Rarely needed.
391 paint-on-overlay = true; # Painting on X Composite overlay window. Recommended.
392 sw-opti = false; # Limit compton to repaint at most once every 1 / refresh_rate.
393 # Incompatible with certain VSync methods.
394 unredir-if-possible = false; # Unredirect all windows if a full-screen opaque window is
395 # detected, to maximize performance for full-screen windows.
396 focus-exclude = [ ]; # A list of conditions of windows that should always be considered
398 detect-transient = true; # Use WM_TRANSIENT_FOR to group windows, and consider windows in
399 # the same group focused at the same time.
400 detect-client-leader = true; # Use WM_CLIENT_LEADER to group windows.
401 invert-color-include = [ ]; # Conditions for windows to be painted with inverted color.
403 # GLX backend # GLX backend fine-tune options. See man page for more info.
404 glx-no-stencil = true; # Recommended.
405 glx-copy-from-front = false; # Useful with --glx-swap-method,
406 # glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
407 # glx-no-rebind-pixmap = true; # Recommended if it works.
408 glx-no-rebind-pixmap = true; # Recommended if it works.
409 #glx-swap-method = "4"; # See man page.
410 glx-swap-method = "4"; # See man page.
412 # Window type settings
415 tooltip = { fade = true; shadow = false; opacity = 1; focus = true; };
416 menu = { shadow = false; };
417 dropdown_menu = { shadow = false; };
418 popup_menu = { shadow = false; };
419 utility = { shadow = false; };
420 # fade: Fade the particular type of windows.
421 # shadow: Give those windows shadow
422 # opacity: Default opacity for the type of windows.
423 # focus: Whether to always consider windows of this type focused.
429 :header-args+: :tangle ~/.config/dunst/dunstrc
434 #font = Ubuntu Mono 10.5
435 font = Inconsolata 11
437 # Path to default icons.
438 icon_folders = /usr/share/icons/Moka/16x16/status/:/usr/share/icons/Moka/16x16/devices/:/usr/share/icons/Faba-Mono/16x16/status/:/usr/share/icons/Faba-Mono/16x16/devices/:/usr/share/icons/Moka/16x16/actions/:/usr/share/icons/Moka/16x16/categories/:/usr/share/icons/Moka/16x16/mimetypes/:/usr/share/icons/Moka/16x16/apps/:/usr/share/icons/Moka/16x16/places/:/usr/share/icons/Paper/16x16/status/
443 # <s>strikethrough<s/>
446 # The format of the message. Possible variables are:
450 # %i iconname (including its path)
451 # %I iconname (without its path)
452 # %p progress value if set ([ 0%] to [100%]) or nothing
454 format = "<b>%s</b>\n%b"
455 # Sort messages by urgency
457 # Show how many messages are currently hidden (because of geometry)
459 # Alignment of message text.
460 # Possible values are "left", "center" and "right"
462 # The frequency with wich text that is longer than the notification
463 # window allows bounces back and forth.
464 # This option conflicts with 'word_wrap'.
465 # Set to 0 to disable
467 # show age of message if message is older than show_age_threshold seconds.
468 # set to -1 to disable
469 show_age_threshold = -1
470 # split notifications into multiple lines if they don't fit into geometry
472 # ignore newlines '\n' in notifications
474 # The geometry of the message window.
475 # geometry [{width}]x{height}][+/-{x}+/-{y}]
476 # The height is measured in number of notifications everything else in pixels. If the width
477 # is omitted but the height is given ("-geometry x2"), the message window
478 # expands over the whole screen (dmenu-like). If width is 0,
479 # the window expands to the longest message displayed.
480 # A positive x is measured from the left, a negative from the
481 # right side of the screen. Y is measured from the top and down respectevly.
482 # The width can be negative. In this case the actual width is the
483 # screen width minus the width defined in within the geometry option.
484 #geometry = "410x12-12+12"
485 #geometry = "0x0-30-30"
486 geometry = "260x12-30-30"
487 # The transparency of the window. range: [0; 100]
488 # This option will only work if a compositing windowmanager is present (e.g. xcompmgr, compiz, etc..)
490 # Don't remove messages, if the user is idle (no mouse or keyboard input)
491 # for longer than idle_threshold seconds.
492 # Set to 0 to disable.
494 # Which monitor should the notifications be displayed on.
496 # Display notification on focused monitor. Possible modes are:
497 # mouse: follow mouse pointer
498 # keyboard: follow window with keyboard focus
499 # none: don't follow anything
501 # "keyboard" needs a windowmanager that exports the _NET_ACTIVE_WINDOW property.
502 # This should be the case for almost all modern windowmanagers.
504 # If this option is set to mouse or keyboard, the monitor option will be
507 # should a notification popped up from history be sticky or
508 # timeout as if it would normally do.
510 # The height of a single line. If the height is smaller than the font height,
511 # it will get raised to the font height.
512 # This adds empty space above and under the text.
515 show_indicators = yes
517 # Draw a line of 'separatpr_height' pixel height between two notifications.
518 # Set to 0 to disable
520 # padding between text and separator
523 horizontal_padding = 8
524 # Define a color for the separator.
525 # possible values are:
526 # * auto: dunst tries to find a color fitting to the background
527 # * foreground: use the same color as the foreground
528 # * frame: use the same color as the frame.
529 # * anything else will be interpreted as a X color
530 separator_color = foreground
531 # print a notification on startup
532 # This is mainly for error detection, since dbus (re-)starts dunst
533 # automatically after a crash.
534 startup_notification = false
536 #dmenu = /usr/bin/dmenu -p dunst:
537 dmenu = /usr/bin/rofi -dmenu -p dunst:
538 # browser for opening urls in context menu
539 browser = /usr/bin/firefox -new-tab
544 # shortcuts are specified as [modifier+][modifier+]...key
545 # available modifiers are 'ctrl', 'mod1' (the alt-key), 'mod2', 'mod3'
546 # and 'mod4' (windows-key)
547 # xev might be helpful to find names for keys
550 # close all notifications
551 close_all = ctrl+shift+space
552 # redisplay last message(s)
553 # On the US keyboard layout 'grave' is normally above TAB and left of '1'.
554 history = ctrl+shift+h
556 context = ctrl+shift+period
558 # IMPORTANT: colors have to be defined in quotation marks.
559 # Otherwise the '#' and following would be interpreted as a comment.
560 background = "#1d2a30"
561 foreground = "#71c2af"
564 background = "#1d2a30"
565 foreground = "#71c2af"
568 background = "#1d2a30"
569 foreground = "#ff9982"
572 # Every section that isn't one of the above is interpreted as a rules
573 # to override settings for certain messages.
574 # Messages can be matched by 'appname', 'summary', 'body' or 'icon'
575 # and you can override the 'timeout', 'urgency', 'foreground', 'background'
577 # Shell-like globbing will get expanded.
580 # you can specify a script that gets run when the rule matches by setting
581 # the 'script' option.
582 # The script will be called as follows:
583 # script appname summary body icon urgency
584 # where urgency can be "LOW", "NORMAL" or "CRITICAL".
586 # NOTE: if you don't want a notification to be displayed, set the format to ""
587 # NOTE: It might be helpful to run dunst -print in a terminal in order to find
588 # fitting options for rules.
591 # script = dunst_espeak.sh
593 # summary = "*script*"
594 # script = dunst_test.sh
596 ## This notification will not be displayed
601 # summary = "*signed on*"
606 # summary = *signed off*
616 # summary = *twitter.com*
620 summary = *Brightness*
626 :header-args+: :tangle ~/.config/fontconfig/fonts.conf
630 <?xml version="1.0"?>
631 <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
633 <match target="font">
634 <edit mode="assign" name="rgba">
638 <match target="font">
639 <edit mode="assign" name="hinting">
643 <match target="font">
644 <edit mode="assign" name="hintstyle">
645 <const>hintslight</const>
648 <match target="font">
649 <edit mode="assign" name="antialias">
653 <match target="font">
654 <edit mode="assign" name="lcdfilter">
655 <const>lcddefault</const>
660 <!-- Use Liberation Sans for Helvetica (instead of Nimbus Sans) -->
661 <alias binding="same">
662 <family>Helvetica</family>
664 <family>Liberation Sans</family>
674 :header-args+: :tangle ~/.gitconfig
681 email = amin@aminb.org
682 # signingkey = 4E05246AB0BF7FFB
696 autocrlf = input # CRLF -> LF on commit
697 editor = emacsclient -t
698 excludesfile = ~/.gitignore_global
711 git = !exec git # handle nested git calls, e.g. git git status
712 aliases = config --get-regexp '^alias\\.'
736 remote = magenta bold
745 # showUntrackedFiles = all
758 :header-args+: :tangle ~/.gitignore_global
773 :header-args+: :tangle ~/.latexmkrc
777 $pdf_previewer = "start zathura %O %S";
778 $clean_ext = "aux out";
780 # $pdf_update_method = 4;
781 # $pdf_update_command = "zathura %O %S";
783 # Synctex allows one to jump to from the PDF in Zathura to the source in Emacs
784 # by Ctrl+click in the PDF.
785 # Tell latexmk to use Zathura as a previewer, and run emacsclient as the Synctex
787 # $pdf_previewer = 'exec zathura --synctex-forward -x \'emacsclient --no-wait +%{line} %{input}\' %O %S';
794 :header-args+: :tangle ~/.getmail/getmailrc
799 type = SimplePOP3SSLRetriever
800 server = fencepost.gnu.org
802 password_command = ("gpg2", "--no-tty", "-q", "-d", "~/.passwd/gnu.gpg")
808 path = ~/mail/gnu/Inbox/
816 :header-args+: :tangle ~/.config/systemd/user/getmail.service
819 #+begin_src conf :tangle no
821 Description=getmail service
825 ExecStart=/usr/bin/getmail
826 StandardOutput=syslog
832 :header-args+: :tangle ~/.config/systemd/user/getmail.timer
835 #+begin_src conf :tangle no
837 Description=getmail timer
845 WantedBy=timers.target
850 :header-args+: :tangle ~/.gnupg/gpg-agent.conf
854 default-cache-ttl 43200
857 default-cache-ttl-ssh 10800
858 max-cache-ttl-ssh 10800
860 # pinentry-program /usr/bin/pinentry-qt
867 :header-args+: :tangle ~/.gtkrc-2.0
871 gtk-theme-name="Greybird"
872 gtk-icon-theme-name="Paper"
873 gtk-font-name="Ubuntu 10"
875 # gtk-key-theme-name = "Emacs"
880 :header-args+: :tangle ~/.config/gtk-3.0/settings.ini
883 #+begin_src conf :tangle no
885 gtk-icon-theme-name = Paper
886 # gtk-theme-name = Adwaita
888 gtk-theme-name = Greybird
889 # gtk-theme-name = Arc-Darker
890 # gtk-theme-name = Numix-ArchBlue
892 gtk-font-name = Ubuntu 10
893 # gtk-key-theme-name = Emacs
900 :header-args+: :tangle ~/.mbsyncrc
911 PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/amin.gpg"
914 IMAPStore amin-remote
917 MaildirStore amin-local
919 Inbox ~/mail/amin/Inbox
930 IMAPAccount uwaterloo
931 Host connect.uwaterloo.ca
933 PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/uwaterloo.gpg"
936 IMAPStore uwaterloo-remote
939 MaildirStore uwaterloo-local
940 Path ~/mail/uwaterloo/
941 Inbox ~/mail/uwaterloo/Inbox
945 Master :uwaterloo-remote:
946 Slave :uwaterloo-local:
954 :header-args+: :tangle ~/.config/systemd/user/mbsync.service
957 #+begin_src conf :tangle no
959 Description=mbsync service
963 ExecStart=/usr/bin/mbsync -Va
964 StandardOutput=syslog
970 :header-args+: :tangle ~/.config/systemd/user/mbsync.timer
973 #+begin_src conf :tangle no
975 Description=mbsync timer
983 WantedBy=timers.target
988 :header-args+: :tangle ~/.config/mpd/mpd.conf
992 # An example configuration file for MPD.
993 # Read the user manual for documentation: http://www.musicpd.org/doc/user/
996 # Files and directories #######################################################
998 # This setting controls the top directory which MPD will search to discover the
999 # available audio files and add them to the daemon's online database. This
1000 # setting defaults to the XDG directory, otherwise the music directory will be
1001 # be disabled and audio files will only be accepted over ipc socket (using
1002 # file:// protocol) or streaming files over an accepted protocol.
1004 music_directory "~/usr/music"
1006 # This setting sets the MPD internal playlist directory. The purpose of this
1007 # directory is storage for playlists created by MPD. The server will use
1008 # playlist files not created by the server but only if they are in the MPD
1009 # format. This setting defaults to playlist saving being disabled.
1011 playlist_directory "~/.mpd/playlists"
1013 # This setting sets the location of the MPD database. This file is used to
1014 # load the database at server start up and store the database while the
1015 # server is not up. This setting defaults to disabled which will allow
1016 # MPD to accept files over ipc socket (using file:// protocol) or streaming
1017 # files over an accepted protocol.
1019 db_file "~/.mpd/database"
1021 # These settings are the locations for the daemon log files for the daemon.
1022 # These logs are great for troubleshooting, depending on your log_level
1025 # The special value "syslog" makes MPD use the local syslog daemon. This
1026 # setting defaults to logging to syslog, otherwise logging is disabled.
1028 log_file "~/.mpd/log"
1030 # This setting sets the location of the file which stores the process ID
1031 # for use of mpd --kill and some init scripts. This setting is disabled by
1032 # default and the pid file will not be stored.
1034 pid_file "~/.mpd/pid"
1036 # This setting sets the location of the file which contains information about
1037 # most variables to get MPD back into the same general shape it was in before
1038 # it was brought down. This setting is disabled by default and the server
1039 # state will be reset on server start up.
1041 state_file "~/.mpd/state"
1043 # The location of the sticker database. This is a database which
1044 # manages dynamic information attached to songs.
1046 sticker_file "~/.mpd/sticker.sql"
1048 ###############################################################################
1051 # General music daemon options ################################################
1053 # This setting specifies the user that MPD will run as. MPD should never run as
1054 # root and you may use this setting to make MPD change its user ID after
1055 # initialization. This setting is disabled by default and MPD is run as the
1060 # This setting specifies the group that MPD will run as. If not specified
1061 # primary group of user specified with "user" setting will be used (if set).
1062 # This is useful if MPD needs to be a member of group such as "audio" to
1063 # have permission to use sound card.
1067 # This setting sets the address for the daemon to listen on. Careful attention
1068 # should be paid if this is assigned to anything other then the default, any.
1069 # This setting can deny access to control of the daemon. Not effective if
1070 # systemd socket activiation is in use.
1073 #bind_to_address "any"
1075 # And for Unix Socket
1076 #bind_to_address "~/.mpd/socket"
1078 # This setting is the TCP port that is desired for the daemon to get assigned
1083 # This setting controls the type of information which is logged. Available
1084 # setting arguments are "default", "secure" or "verbose". The "verbose" setting
1085 # argument is recommended for troubleshooting, though can quickly stretch
1086 # available resources on limited hardware storage.
1088 #log_level "default"
1090 # If you have a problem with your MP3s ending abruptly it is recommended that
1091 # you set this argument to "no" to attempt to fix the problem. If this solves
1092 # the problem, it is highly recommended to fix the MP3 files with vbrfix
1093 # (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which
1094 # point gapless MP3 playback can be enabled.
1096 #gapless_mp3_playback "yes"
1098 # Setting "restore_paused" to "yes" puts MPD into pause mode instead
1099 # of starting playback after startup.
1101 #restore_paused "no"
1103 # This setting enables MPD to create playlists in a format usable by other
1106 #save_absolute_paths_in_playlists "no"
1108 # This setting defines a list of tag types that will be extracted during the
1109 # audio file discovery process. The complete list of possible values can be
1110 # found in the user manual.
1111 #metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
1113 # This setting enables automatic update of MPD's database when files in
1114 # music_directory are changed.
1118 # Limit the depth of the directories being watched, 0 means only watch
1119 # the music directory itself. There is no limit by default.
1121 #auto_update_depth "3"
1123 ###############################################################################
1126 # Symbolic link behavior ######################################################
1128 # If this setting is set to "yes", MPD will discover audio files by following
1129 # symbolic links outside of the configured music_directory.
1131 #follow_outside_symlinks "yes"
1133 # If this setting is set to "yes", MPD will discover audio files by following
1134 # symbolic links inside of the configured music_directory.
1136 #follow_inside_symlinks "yes"
1138 ###############################################################################
1141 # Zeroconf / Avahi Service Discovery ##########################################
1143 # If this setting is set to "yes", service information will be published with
1146 #zeroconf_enabled "yes"
1148 # The argument to this setting will be the Zeroconf / Avahi unique name for
1149 # this MPD server on the network.
1151 #zeroconf_name "Music Player"
1153 ###############################################################################
1156 # Permissions #################################################################
1158 # If this setting is set, MPD will require password authorization. The password
1159 # setting can be specified multiple times for different password profiles.
1161 #password "password@read,add,control,admin"
1163 # This setting specifies the permissions a user has who has not yet logged in.
1165 #default_permissions "read,add,control,admin"
1167 ###############################################################################
1170 # Database #######################################################################
1175 # host "other.mpd.host"
1179 # Input #######################################################################
1184 # proxy "proxy.isp.com:8080"
1186 # proxy_password "password"
1190 ###############################################################################
1192 # Audio Output ################################################################
1203 path "/tmp/mpd.fifo"
1207 # MPD supports various audio output types, as well as playing through multiple
1208 # audio outputs at the same time, through multiple audio_output settings
1209 # blocks. Setting this block is optional, though the server will only attempt
1210 # autodetection for one sound card.
1212 # An example of an ALSA output:
1216 # name "My ALSA Device"
1217 ## device "hw:0,0" # optional
1218 ## mixer_type "hardware" # optional
1219 ## mixer_device "default" # optional
1220 ## mixer_control "PCM" # optional
1221 ## mixer_index "0" # optional
1224 # An example of an OSS output:
1228 # name "My OSS Device"
1229 ## device "/dev/dsp" # optional
1230 ## mixer_type "hardware" # optional
1231 ## mixer_device "/dev/mixer" # optional
1232 ## mixer_control "PCM" # optional
1235 # An example of a shout output (for streaming to Icecast):
1239 # encoder "vorbis" # optional
1240 # name "My Shout Stream"
1247 # format "44100:16:1"
1248 ## protocol "icecast2" # optional
1249 ## user "source" # optional
1250 ## description "My Stream Description" # optional
1251 ## url "http://example.com" # optional
1252 ## genre "jazz" # optional
1253 ## public "no" # optional
1254 ## timeout "2" # optional
1255 ## mixer_type "software" # optional
1258 # An example of a recorder output:
1262 # name "My recorder"
1263 # encoder "vorbis" # optional, vorbis or lame
1264 # path "/var/lib/mpd/recorder/mpd.ogg"
1265 ## quality "5.0" # do not define if bitrate is defined
1266 # bitrate "128" # do not define if quality is defined
1267 # format "44100:16:1"
1270 # An example of a httpd output (built-in HTTP streaming server):
1274 # name "My HTTP Stream"
1275 # encoder "vorbis" # optional, vorbis or lame
1277 # bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
1278 ## quality "5.0" # do not define if bitrate is defined
1279 # bitrate "128" # do not define if quality is defined
1280 # format "44100:16:1"
1281 # max_clients "0" # optional 0=no limit
1284 # An example of a pulseaudio output (streaming to a remote pulseaudio server)
1288 # name "My Pulse Output"
1289 ## server "remote_server" # optional
1290 ## sink "remote_server_sink" # optional
1293 # An example of a winmm output (Windows multimedia API).
1297 # name "My WinMM output"
1298 ## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
1300 ## device "0" # optional
1301 ## mixer_type "hardware" # optional
1304 # An example of an openal output.
1308 # name "My OpenAL output"
1309 ## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
1312 # An example of an sndio output.
1316 # name "sndio output"
1317 # mixer_type "software"
1320 # An example of an OS X output:
1324 # name "My OS X Device"
1325 ## device "Built-in Output" # optional
1326 ## channel_map "-1,-1,0,1" # optional
1329 ## Example "pipe" output:
1334 # command "aplay -f cd 2>/dev/null"
1335 ## Or if you're want to use AudioCompress
1336 # command "AudioCompress -m | aplay -f cd 2>/dev/null"
1337 ## Or to send raw PCM stream through PCM:
1338 # command "nc example.org 8765"
1339 # format "44100:16:2"
1342 ## An example of a null output (for no audio output):
1346 # name "My Null Output"
1347 # mixer_type "none" # optional
1350 ###############################################################################
1353 # Normalization automatic volume adjustments ##################################
1355 # This setting specifies the type of ReplayGain to use. This setting can have
1356 # the argument "off", "album", "track" or "auto". "auto" is a special mode that
1357 # chooses between "track" and "album" depending on the current state of
1358 # random playback. If random playback is enabled then "track" mode is used.
1359 # See <http://www.replaygain.org> for more details about ReplayGain.
1360 # This setting is off by default.
1364 # This setting sets the pre-amp used for files that have ReplayGain tags. By
1365 # default this setting is disabled.
1367 #replaygain_preamp "0"
1369 # This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
1370 # By default this setting is disabled.
1372 #replaygain_missing_preamp "0"
1374 # This setting enables or disables ReplayGain limiting.
1375 # MPD calculates actual amplification based on the ReplayGain tags
1376 # and replaygain_preamp / replaygain_missing_preamp setting.
1377 # If replaygain_limit is enabled MPD will never amplify audio signal
1378 # above its original level. If replaygain_limit is disabled such amplification
1379 # might occur. By default this setting is enabled.
1381 #replaygain_limit "yes"
1383 # This setting enables on-the-fly normalization volume adjustment. This will
1384 # result in the volume of all playing audio to be adjusted so the output has
1385 # equal "loudness". This setting is disabled by default.
1387 #volume_normalization "no"
1389 ###############################################################################
1391 # Character Encoding ##########################################################
1393 # If file or directory names do not display correctly for your locale then you
1394 # may need to modify this setting.
1396 #filesystem_charset "UTF-8"
1398 ###############################################################################
1403 :header-args+: :tangle ~/.msmtprc
1407 # Set default values for all following accounts.
1412 #tls_trust_file /etc/ssl/certs/ca-certificates.crt
1413 logfile ~/.msmtp.log
1418 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
1422 passwordeval gpg2 --no-tty -q -d ~/.passwd/amin.gpg
1426 host fencepost.gnu.org
1427 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
1431 passwordeval gpg2 --no-tty -q -d ~/.passwd/gnu.gpg
1435 host connect.uwaterloo.ca
1437 from abandali@uwaterloo.ca
1439 passwordeval gpg2 --no-tty -q -d ~/.passwd/uwaterloo.gpg
1440 tls_trust_file /etc/ssl/certs/ca-certificates.crt
1442 # uwaterloo (friendly address)
1443 account uwaterloo-friendly : uwaterloo
1444 from amin.bandali@uwaterloo.ca
1446 # Set a default account
1447 account default : aminb
1454 :header-args+: :tangle ~/.ncmpcpp/config
1457 #+begin_src conf :tangle no
1458 ##############################################################
1459 ## This is the example configuration file. Copy it to ##
1460 ## $HOME/.ncmpcpp/config or $XDG_CONFIG_HOME/ncmpcpp/config ##
1461 ## and set up your preferences. ##
1462 ##############################################################
1464 ##### directories ######
1466 ## Directory for storing ncmpcpp related files.
1467 ## Changing it is useful if you want to store
1468 ## everything somewhere else and provide command
1469 ## line setting for alternative location to config
1470 ## file which defines that while launching ncmpcpp.
1473 ncmpcpp_directory = ~/.ncmpcpp
1476 ## Directory for storing downloaded lyrics. It
1477 ## defaults to ~/.lyrics since other MPD clients
1478 ## (eg. ncmpc) also use that location.
1481 #lyrics_directory = ~/.lyrics
1483 ##### connection settings #####
1485 #mpd_host = localhost
1489 #mpd_connection_timeout = 5
1491 ## Needed for tag editor and file operations to work.
1493 mpd_music_dir = ~/usr/music
1495 #mpd_crossfade_time = 5
1497 ##### music visualizer #####
1499 ## Note: In order to make music visualizer work you'll
1500 ## need to use mpd fifo output, whose format parameter
1501 ## has to be set to 44100:16:1 for mono visualization
1502 ## or 44100:16:2 for stereo visualization. Example
1503 ## configuration (it has to be put into mpd.conf):
1507 ## name "Visualizer feed"
1508 ## path "/tmp/mpd.fifo"
1509 ## format "44100:16:2"
1513 visualizer_fifo_path = /tmp/mpd.fifo
1516 ## Note: Below parameter is needed for ncmpcpp
1517 ## to determine which output provides data for
1518 ## visualizer and thus allow syncing between
1519 ## visualization and sound as currently there
1520 ## are some problems with it.
1523 visualizer_output_name = my fifo
1526 ## If you set format to 44100:16:2, make it 'yes'.
1528 visualizer_in_stereo = yes
1531 ## Multiply received samples by given value. Very
1532 ## useful for proper visualization of quiet music.
1534 #visualizer_sample_multiplier = 1
1537 ## Note: Below parameter defines how often ncmpcpp
1538 ## has to "synchronize" visualizer and audio outputs.
1539 ## 30 seconds is optimal value, but if you experience
1540 ## synchronization problems, set it to lower value.
1541 ## Keep in mind that sane values start with >=10.
1544 visualizer_sync_interval = 30
1547 ## Note: To enable spectrum frequency visualization
1548 ## you need to compile ncmpcpp with fftw3 support.
1551 ## Available values: spectrum, wave, wave_filled, ellipse.
1553 visualizer_type = spectrum
1555 #visualizer_look = ●▮
1556 visualizer_look = "●•"
1558 #visualizer_color = blue, cyan, green, yellow, magenta, red
1560 ## Alternative subset of 256 colors for terminals that support it.
1562 #visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
1564 ##### system encoding #####
1566 ## ncmpcpp should detect your charset encoding
1567 ## but if it failed to do so, you can specify
1568 ## charset encoding you are using here.
1570 ## Note: You can see whether your ncmpcpp build
1571 ## supports charset detection by checking output
1572 ## of `ncmpcpp --version`.
1574 ## Note: Since MPD uses UTF-8 by default, setting
1575 ## this option makes sense only if your encoding
1579 #system_encoding = ""
1583 ## Time of inactivity (in seconds) after playlist
1584 ## highlighting will be disabled (0 = always on).
1586 #playlist_disable_highlight_delay = 5
1588 ## Defines how long messages are supposed to be visible.
1590 #message_delay_time = 5
1592 ##### song format #####
1594 ## For a song format you can use:
1600 ## %A - album artist
1604 ## %n - track number (01/12 -> 01)
1605 ## %N - full track info (01/12 -> 01/12)
1612 ## $R - begin right alignment
1614 ## If you want to make sure that a part of the format is displayed
1615 ## only when certain tags are present, you can archieve it by
1616 ## grouping them with brackets, e.g. '{%a - %t}' will be evaluated
1617 ## to 'ARTIST - TITLE' if both tags are present or '' otherwise.
1618 ## It is also possible to define a list of alternatives by providing
1619 ## several groups and separating them with '|', e.g. '{%t}|{%f}'
1620 ## will be evaluated to 'TITLE' or 'FILENAME' if the former is not
1623 ## Note: If you want to set limit on maximal length of a tag, just
1624 ## put the appropriate number between % and character that defines
1625 ## tag type, e.g. to make album take max. 20 terminal cells, use '%20b'.
1627 ## In addition, formats support markers used for text attributes.
1628 ## They are followed by character '$'. After that you can put:
1630 ## - 0 - default window color (discards all other colors)
1639 ## - 9 - end of current color
1641 ## - u - underline text
1642 ## - r - reverse colors
1643 ## - a - use alternative character set
1645 ## If you don't want to use a non-color attribute anymore, just put it
1646 ## again, but this time insert character '/' between '$' and attribute
1647 ## character, e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag
1648 ## or filename with reversed colors.
1650 ## If you want to use 256 colors and/or background colors in formats
1651 ## (the naming scheme is described below in section about color
1652 ## definitions), it can be done with the syntax $(COLOR), e.g. to set
1653 ## the artist tag to one of the non-standard colors and make it have
1654 ## yellow background, you need to write $(197_yellow)%a$(end). Note
1655 ## that for standard colors this is interchangable with attributes
1658 ## Note: colors can be nested.
1661 #song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
1663 #song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
1665 #song_library_format = {%n - }{%t}|{%f}
1668 #alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
1670 #alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
1672 #now_playing_prefix = $b
1674 #now_playing_suffix = $/b
1676 #browser_playlist_prefix = "$2playlist$9 "
1678 #selected_item_prefix = $6
1680 #selected_item_suffix = $9
1682 #modified_item_prefix = $3> $9
1685 ## Note: attributes are not supported for the following variables.
1687 #song_window_title_format = {%a - }{%t}|{%f}
1689 ## Note: Below variables are used for sorting songs in browser.
1690 ## The sort mode determines how songs are sorted, and can be used
1691 ## in combination with a sort format to specify a custom sorting format.
1692 ## Available values for browser_sort_mode are "name", "mtime", "format"
1696 #browser_sort_mode = name
1698 #browser_sort_format = {%a - }{%t}|{%f} {(%l)}
1700 ##### columns settings #####
1702 ## syntax of song columns list format is "column column etc."
1704 ## - syntax for each column is:
1706 ## (width of the column)[color of the column]{displayed tag}
1708 ## Note: Width is by default in %, if you want a column to
1709 ## have fixed size, add 'f' after the value, e.g. (10)[white]{a}
1710 ## will be the column that take 10% of screen (so the real width
1711 ## will depend on actual screen size), whereas (10f)[white]{a}
1712 ## will take 10 terminal cells, no matter how wide the screen is.
1714 ## - color is optional (if you want the default one,
1715 ## leave the field empty).
1717 ## Note: You can give a column additional attributes by putting appropriate
1718 ## character after displayed tag character. Available attributes are:
1720 ## - r - column will be right aligned
1721 ## - E - if tag is empty, empty tag marker won't be displayed
1725 ## - give a column custom name by putting it after attributes,
1726 ## separated with character ':', e.g. {lr:Length} gives you
1727 ## right aligned column of lengths named "Length".
1729 ## - define sequence of tags, that have to be displayed in case
1730 ## predecessor is empty in a way similar to the one in classic
1731 ## song format, i.e. using '|' character, e.g. {a|c|p:Owner}
1732 ## creates column named "Owner" that tries to display artist
1733 ## tag and then composer and performer if previous ones are
1737 #song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
1739 ##### various settings #####
1742 ## Note: Custom command that will be executed each
1743 ## time song changes. Useful for notifications etc.
1745 #execute_on_song_change = ""
1747 #playlist_show_mpd_host = no
1749 #playlist_show_remaining_time = no
1751 #playlist_shorten_total_times = no
1753 #playlist_separate_albums = no
1756 ## Note: Possible display modes: classic, columns.
1758 #playlist_display_mode = columns
1760 #browser_display_mode = classic
1762 #search_engine_display_mode = classic
1764 #playlist_editor_display_mode = classic
1766 #discard_colors_if_item_is_selected = yes
1768 #incremental_seeking = yes
1772 #volume_change_step = 2
1774 #autocenter_mode = no
1776 #centered_cursor = no
1779 ## Note: You can specify third character which will
1780 ## be used to build 'empty' part of progressbar.
1782 #progressbar_look = =>
1783 progressbar_look = "─╼╶"
1784 #progressbar_look = "─⊙╶"
1786 #progressbar_boldness = yes
1788 ## Available values: database, playlist.
1790 #default_place_to_search_in = database
1792 ## Available values: classic, alternative.
1794 #user_interface = classic
1796 #data_fetching_delay = yes
1798 ## Available values: artist, album_artist, date, genre, composer, performer.
1800 #media_library_primary_tag = artist
1802 ## Available values: wrapped, normal.
1804 #default_find_mode = wrapped
1806 #default_tag_editor_pattern = %n - %t
1808 #header_visibility = yes
1810 #statusbar_visibility = yes
1812 #titles_visibility = yes
1814 #header_text_scrolling = yes
1816 #cyclic_scrolling = no
1820 #follow_now_playing_lyrics = no
1822 #fetch_lyrics_for_current_song_in_background = no
1824 #store_lyrics_in_song_dir = no
1826 #generate_win32_compatible_filenames = yes
1828 #allow_for_physical_item_deletion = no
1831 ## Note: If you set this variable, ncmpcpp will try to
1832 ## get info from last.fm in language you set and if it
1833 ## fails, it will fall back to english. Otherwise it will
1834 ## use english the first time.
1836 ## Note: Language has to be expressed as an ISO 639 alpha-2 code.
1838 #lastfm_preferred_language = en
1840 #show_hidden_files_in_local_browser = no
1843 ## How shall screen switcher work?
1845 ## - "previous" - switch between the current and previous screen.
1846 ## - "screen1,...,screenN" - switch between given sequence of screens.
1848 ## Screens available for use: help, playlist, browser, search_engine,
1849 ## media_library, playlist_editor, tag_editor, outputs, visualizer, clock.
1851 #screen_switcher_mode = playlist, browser
1854 ## Note: You can define startup screen
1855 ## by choosing screen from the list above.
1857 #startup_screen = playlist
1860 ## Note: You can define startup slave screen
1861 ## by choosing screen from the list above or
1862 ## an empty value for no slave screen.
1864 #startup_slave_screen = ""
1866 #startup_slave_screen_focus = no
1869 ## Default width of locked screen (in %).
1870 ## Acceptable values are from 20 to 80.
1873 #locked_screen_width_part = 50
1875 #ask_for_locked_screen_width_part = yes
1877 #jump_to_now_playing_song_at_start = yes
1879 #ask_before_clearing_playlists = yes
1881 #clock_display_seconds = no
1883 #display_volume_level = yes
1885 #display_bitrate = no
1887 #display_remaining_time = no
1889 ## Available values: none, basic, extended, perl.
1891 #regular_expressions = perl
1894 ## Note: If below is enabled, ncmpcpp will ignore leading
1895 ## "The" word while sorting items in browser, tags in
1896 ## media library, etc.
1898 #ignore_leading_the = no
1900 #block_search_constraints_change_if_items_found = yes
1902 #mouse_support = yes
1904 #mouse_list_scroll_whole_page = yes
1906 #empty_tag_marker = <empty>
1908 #tags_separator = " | "
1910 #tag_editor_extended_numeration = no
1912 #media_library_sort_by_mtime = no
1914 #enable_window_title = yes
1917 ## Note: You can choose default search mode for search
1918 ## engine. Available modes are:
1920 ## - 1 - use mpd built-in searching (no regexes, pattern matching)
1921 ## - 2 - use ncmpcpp searching (pattern matching with support for regexes,
1922 ## but if your mpd is on a remote machine, downloading big database
1923 ## to process it can take a while
1924 ## - 3 - match only exact values (this mode uses mpd function for searching
1925 ## in database and local one for searching in current playlist)
1928 #search_engine_default_search_mode = 1
1930 #external_editor = nano
1932 ## Note: set to yes if external editor is a console application.
1934 #use_console_editor = yes
1936 ##### colors definitions #####
1938 ## It is possible to set a background color by setting a color
1939 ## value "<foreground>_<background>", e.g. red_black will set
1940 ## foregound color to red and background color to black.
1942 ## In addition, for terminals that support 256 colors it
1943 ## is possible to set one of them by using a number in range
1944 ## [1, 256] instead of color name, e.g. numerical value
1945 ## corresponding to red_black is 2_1. To find out if the
1946 ## terminal supports 256 colors, run ncmpcpp and check out
1947 ## the bottom of the help screen for list of available colors
1948 ## and their numerical values.
1950 ## Note: due to technical limitations of ncurses, if 256 colors
1951 ## are used, it is possible to either use only the colors with
1952 ## default background color, or all pairs from 1_1 up to 254_127,
1953 ## depending on the ncurses version used.
1956 #colors_enabled = yes
1958 #empty_tag_color = cyan
1960 #header_window_color = default
1962 #volume_color = default
1964 #state_line_color = default
1966 #state_flags_color = default
1968 #main_window_color = yellow
1974 #main_window_highlight_color = yellow
1976 #progressbar_color = black
1978 #progressbar_elapsed_color = green
1980 #statusbar_color = default
1982 #alternative_ui_separator_color = black
1984 #active_column_color = red
1986 #window_border_color = green
1988 #active_window_border = red
1994 :header-args+: :tangle ~/.ncmpcpp/bindings
1997 #+begin_src conf :tangle no
2022 move_sort_order_down
2031 :header-args+: :tangle ~/.notmuch-config
2035 # .notmuch-config - Configuration file for the notmuch mail system
2037 # For more information about notmuch, see https://notmuchmail.org
2039 # Database configuration
2041 # The only value supported here is 'path' which should be the top-level
2042 # directory where your mail currently exists and to where mail will be
2043 # delivered in the future. Files should be individual email messages.
2044 # Notmuch will store its database within a sub-directory of the path
2045 # configured here named ".notmuch".
2048 path=/home/amin/mail
2050 # User configuration
2052 # Here is where you can let notmuch know how you would like to be
2053 # addressed. Valid settings are
2055 # name Your full name.
2056 # primary_email Your primary email address.
2057 # other_email A list (separated by ';') of other email addresses
2058 # at which you receive email.
2060 # Notmuch will use the various email addresses configured here when
2061 # formatting replies. It will avoid including your own addresses in the
2062 # recipient list of replies, and will set the From address based on the
2063 # address to which the original email was addressed.
2067 primary_email=amin@aminb.org
2068 other_email=amin.bandali@uwaterloo.ca;mbandali@uwaterloo.ca;aminb@gnu.org;
2070 # Configuration for "notmuch new"
2072 # The following options are supported here:
2074 # tags A list (separated by ';') of the tags that will be
2075 # added to all messages incorporated by "notmuch new".
2077 # ignore A list (separated by ';') of file and directory names
2078 # that will not be searched for messages by "notmuch new".
2080 # NOTE: *Every* file/directory that goes by one of those
2081 # names will be ignored, independent of its depth/location
2082 # in the mail store.
2087 ignore=.uidvalidity;.mbsyncstate
2089 # Search configuration
2091 # The following option is supported here:
2094 # A ;-separated list of tags that will be excluded from
2095 # search results by default. Using an excluded tag in a
2096 # query will override that exclusion.
2099 exclude_tags=deleted;spam;
2101 # Maildir compatibility configuration
2103 # The following option is supported here:
2105 # synchronize_flags Valid values are true and false.
2107 # If true, then the following maildir flags (in message filenames)
2108 # will be synchronized with the corresponding notmuch tags:
2116 # S unread (added when 'S' flag is not present)
2118 # The "notmuch new" command will notice flag changes in filenames
2119 # and update tags, while the "notmuch tag" and "notmuch restore"
2120 # commands will notice tag changes and update flags in filenames
2123 synchronize_flags=true
2125 # Cryptography related configuration
2127 # The following option is supported here:
2130 # binary name or full path to invoke gpg.
2138 :header-args+: :tangle ~/mail/.notmuch/hooks/post-new :shebang "#!/bin/sh"
2144 # apply tags to lists
2145 notmuch tag +lists +lists/deepspec -- folder:amin/lists/deepspec
2146 notmuch tag +lists +lists/haskell-cafe -- folder:amin/lists/haskell-cafe
2147 notmuch tag +lists +lists/haskell-weekly -- folder:amin/lists/haskell-weekly
2148 notmuch tag +lists +lists/hackernewsletter -- folder:amin/lists/hackernewsletter
2149 notmuch tag +lists +lists/notmuch -- folder:amin/lists/notmuch
2150 notmuch tag +lists +lists/info-gnu-emacs -- folder:amin/lists/info-gnu-emacs
2151 notmuch tag +lists +lists/help-gnu-emacs -- folder:amin/lists/help-gnu-emacs
2152 notmuch tag +lists +lists/emacs-devel -- folder:amin/lists/emacs-devel
2157 :header-args+: :tangle ~/.config/systemd/user/notmuch.service
2160 #+begin_src conf :tangle no
2162 Description=notmuch service
2166 ExecStart=/usr/bin/notmuch new
2167 StandardOutput=syslog
2168 StandardError=syslog
2173 :header-args+: :tangle ~/.config/systemd/user/notmuch.timer
2176 #+begin_src conf :tangle no
2178 Description=notmuch timer
2183 Unit=notmuch.service
2186 WantedBy=timers.target
2193 :header-args+: :tangle ~/.offlineimaprc
2196 #+begin_src conf :tangle no
2198 pythonfile = ~/.offlineimap.py
2199 accounts = Gmail, aminb
2203 localrepository = GmailL
2204 remoterepository = GmailR
2207 localrepository = aminbL
2208 remoterepository = aminbR
2212 localfolders = ~/Maildir/Gmail
2216 remotehost = imap.gmail.com
2217 remoteusereval = mailuser("gmail")
2218 remotepasseval = mailpasswd("gmail")
2219 sslcacertfile = /etc/ssl/certs/ca-certificates.crt
2221 folderfilter = lambda foldername: foldername not in '[Gmail]/All Mail'
2227 localfolders = ~/Maildir/aminb
2231 remotehost = mail.aminb.org
2232 remoteusereval = mailuser("aminb")
2233 remotepasseval = mailpasswd("aminb")
2234 sslcacertfile = /etc/ssl/certs/ca-certificates.crt
2236 folderfilter = lambda foldername: foldername not in 'dovecot.sieve'
2243 :header-args+: :tangle ~/.offlineimap.py
2246 #+begin_src python :tangle no
2250 def mailpasswd(acct):
2251 acct = os.path.basename(acct)
2252 path = "/home/amin/.passwd/%s.gpg" % acct
2253 args = ["gpg", "--use-agent", "--quiet", "--batch", "-d", path]
2255 return subprocess.check_output(args).strip()
2256 except subprocess.CalledProcessError:
2260 acct = os.path.basename(acct)
2261 path = "/home/amin/.passwd/%s" % acct
2262 args = ["cat", path]
2264 return subprocess.check_output(args).strip()
2265 except subprocess.CalledProcessError:
2268 def prime_gpg_agent():
2272 ret = (mailpasswd("prime") == "prime")
2274 from offlineimap.ui import getglobalui
2275 sys.stderr.write("Error reading in passwords. Terminating.\n")
2276 getglobalui().terminate()
2285 This section contains various useful scripts and the ones used by the
2286 programs above. For instance, =toggle-tablet= for switching to and
2287 from tablet mode on my X220T, =toggle-presentation-mode= for toggling
2288 Xfce's presentation mode which keeps the screen awake, and
2289 =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
2290 exact brightness value.
2294 :header-args+: :tangle ~/.local/bin/rofi-light :shebang "#!/bin/bash"
2299 val=$(rofi -dmenu -mesg "light $cur" -p "light -S " -l 0 -width 8)
2305 :header-args+: :tangle ~/.local/bin/toggle-layout :shebang "#!/bin/bash"
2309 lang="$(setxkbmap -print | grep xkb_symbols | cut -d'+' -f 2)"
2311 if [ "$lang" = "us" ]; then
2315 # xmodmap $HOME/.Xmodmap
2319 ** toggle-presentation-mode
2321 :header-args+: :tangle ~/.local/bin/toggle-presentation-mode :shebang "#!/bin/bash"
2325 xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/presentation-mode -T
2332 :header-args+: :tangle ~/.local/bin/eat-em :shebang "#!/bin/sh"
2336 # Original Posted at http://crunchbang.org/forums/viewtopic.php?pid=126921%23p126921#p126921
2337 # [ESC] character in original post removed here.
2339 # ANSI Color -- use these variables to easily have different color
2340 # and format output. Make sure to output the reset sequence after
2341 # colors (f = foreground, b = background), and use the 'off'
2342 # feature for anything you turn on.
2346 esc="$(echo -en '\e')"
2348 blackf="${esc}[30m"; redf="${esc}[31m"; greenf="${esc}[32m"
2349 yellowf="${esc}[33m" bluef="${esc}[34m"; purplef="${esc}[35m"
2350 cyanf="${esc}[36m"; whitef="${esc}[37m"
2352 blackb="${esc}[40m"; redb="${esc}[41m"; greenb="${esc}[42m"
2353 yellowb="${esc}[43m" blueb="${esc}[44m"; purpleb="${esc}[45m"
2354 cyanb="${esc}[46m"; whiteb="${esc}[47m"
2356 boldon="${esc}[1m"; boldoff="${esc}[22m"
2357 italicson="${esc}[3m"; italicsoff="${esc}[23m"
2358 ulon="${esc}[4m"; uloff="${esc}[24m"
2359 invon="${esc}[7m"; invoff="${esc}[27m"
2364 # note in this first use that switching colors doesn't require a reset
2365 # first - the new color overrides the old one.
2373 ${yellowf} ▄███████▄${reset} ${redf} ▄██████▄${reset} ${greenf} ▄██████▄${reset} ${bluef} ▄██████▄${reset} ${purplef} ▄██████▄${reset} ${cyanf} ▄██████▄${reset}
2374 ${yellowf}▄█████████▀▀${reset} ${redf}▄${whitef}█▀█${redf}██${whitef}█▀█${redf}██▄${reset} ${greenf}▄${whitef}█▀█${greenf}██${whitef}█▀█${greenf}██▄${reset} ${bluef}▄${whitef}█▀█${bluef}██${whitef}█▀█${bluef}██▄${reset} ${purplef}▄${whitef}█▀█${purplef}██${whitef}█▀█${purplef}██▄${reset} ${cyanf}▄${whitef}█▀█${cyanf}██${whitef}█▀█${cyanf}██▄${reset}
2375 ${yellowf}███████▀${reset} ${redf}█${whitef}▄▄█${redf}██${whitef}▄▄█${redf}███${reset} ${greenf}█${whitef}▄▄█${greenf}██${whitef}▄▄█${greenf}███${reset} ${bluef}█${whitef}▄▄█${bluef}██${whitef}▄▄█${bluef}███${reset} ${purplef}█${whitef}▄▄█${purplef}██${whitef}▄▄█${purplef}███${reset} ${cyanf}█${whitef}▄▄█${cyanf}██${whitef}▄▄█${cyanf}███${reset}
2376 ${yellowf}███████▄${reset} ${redf}████████████${reset} ${greenf}████████████${reset} ${bluef}████████████${reset} ${purplef}████████████${reset} ${cyanf}████████████${reset}
2377 ${yellowf}▀█████████▄▄${reset} ${redf}██▀██▀▀██▀██${reset} ${greenf}██▀██▀▀██▀██${reset} ${bluef}██▀██▀▀██▀██${reset} ${purplef}██▀██▀▀██▀██${reset} ${cyanf}██▀██▀▀██▀██${reset}
2378 ${yellowf} ▀███████▀${reset} ${redf}▀ ▀ ▀ ▀${reset} ${greenf}▀ ▀ ▀ ▀${reset} ${bluef}▀ ▀ ▀ ▀${reset} ${purplef}▀ ▀ ▀ ▀${reset} ${cyanf}▀ ▀ ▀ ▀${reset}
2380 ${boldon}${yellowf} ▄███████▄ ${redf} ▄██████▄ ${greenf} ▄██████▄ ${bluef} ▄██████▄ ${purplef} ▄██████▄ ${cyanf} ▄██████▄${reset}
2381 ${boldon}${yellowf}▄█████████▀▀ ${redf}▄${whitef}█▀█${redf}██${whitef}█▀█${redf}██▄ ${greenf}▄${whitef}█▀█${greenf}██${whitef}█▀█${greenf}██▄ ${bluef}▄${whitef}█▀█${bluef}██${whitef}█▀█${bluef}██▄ ${purplef}▄${whitef}█▀█${purplef}██${whitef}█▀█${purplef}██▄ ${cyanf}▄${whitef}█▀█${cyanf}██${whitef}█▀█${cyanf}██▄${reset}
2382 ${boldon}${yellowf}███████▀ ${redf}█${whitef}▄▄█${redf}██${whitef}▄▄█${redf}███ ${greenf}█${whitef}▄▄█${greenf}██${whitef}▄▄█${greenf}███ ${bluef}█${whitef}▄▄█${bluef}██${whitef}▄▄█${bluef}███ ${purplef}█${whitef}▄▄█${purplef}██${whitef}▄▄█${purplef}███ ${cyanf}█${whitef}▄▄█${cyanf}██${whitef}▄▄█${cyanf}███${reset}
2383 ${boldon}${yellowf}███████▄ ${redf}████████████ ${greenf}████████████ ${bluef}████████████ ${purplef}████████████ ${cyanf}████████████${reset}
2384 ${boldon}${yellowf}▀█████████▄▄ ${redf}██▀██▀▀██▀██ ${greenf}██▀██▀▀██▀██ ${bluef}██▀██▀▀██▀██ ${purplef}██▀██▀▀██▀██ ${cyanf}██▀██▀▀██▀██${reset}
2385 ${boldon}${yellowf} ▀███████▀ ${redf}▀ ▀ ▀ ▀ ${greenf}▀ ▀ ▀ ▀ ${bluef}▀ ▀ ▀ ▀ ${purplef}▀ ▀ ▀ ▀ ${cyanf}▀ ▀ ▀ ▀${reset}
2392 :header-args+: :tangle ~/.local/bin/invade-em :shebang "#!/bin/bash"
2397 # ANSI color scheme script featuring Space Invaders
2399 # Original: http://crunchbang.org/forums/viewtopic.php?pid=126921%23p126921#p126921
2400 # Modified by lolilolicon
2406 printf -v $j$i %b "\e[${!j}${i}m"
2414 $f1 ▀▄ ▄▀ $f2 ▄▄▄████▄▄▄ $f3 ▄██▄ $f4 ▀▄ ▄▀ $f5 ▄▄▄████▄▄▄ $f6 ▄██▄ $rst
2415 $f1 ▄█▀███▀█▄ $f2███▀▀██▀▀███ $f3▄█▀██▀█▄ $f4 ▄█▀███▀█▄ $f5███▀▀██▀▀███ $f6▄█▀██▀█▄$rst
2416 $f1█▀███████▀█ $f2▀▀███▀▀███▀▀ $f3▀█▀██▀█▀ $f4█▀███████▀█ $f5▀▀███▀▀███▀▀ $f6▀█▀██▀█▀$rst
2417 $f1▀ ▀▄▄ ▄▄▀ ▀ $f2 ▀█▄ ▀▀ ▄█▀ $f3▀▄ ▄▀ $f4▀ ▀▄▄ ▄▄▀ ▀ $f5 ▀█▄ ▀▀ ▄█▀ $f6▀▄ ▄▀$rst
2419 $bld$f1▄ ▀▄ ▄▀ ▄ $f2 ▄▄▄████▄▄▄ $f3 ▄██▄ $f4▄ ▀▄ ▄▀ ▄ $f5 ▄▄▄████▄▄▄ $f6 ▄██▄ $rst
2420 $bld$f1█▄█▀███▀█▄█ $f2███▀▀██▀▀███ $f3▄█▀██▀█▄ $f4█▄█▀███▀█▄█ $f5███▀▀██▀▀███ $f6▄█▀██▀█▄$rst
2421 $bld$f1▀█████████▀ $f2▀▀▀██▀▀██▀▀▀ $f3▀▀█▀▀█▀▀ $f4▀█████████▀ $f5▀▀▀██▀▀██▀▀▀ $f6▀▀█▀▀█▀▀$rst
2422 $bld$f1 ▄▀ ▀▄ $f2▄▄▀▀ ▀▀ ▀▀▄▄ $f3▄▀▄▀▀▄▀▄ $f4 ▄▀ ▀▄ $f5▄▄▀▀ ▀▀ ▀▀▄▄ $f6▄▀▄▀▀▄▀▄$rst