├── urlview ├── config ├── autorandr │ ├── default │ ├── settings.ini │ ├── postswitch │ ├── portrait │ │ ├── config │ │ └── setup │ ├── conf-271 │ │ ├── config │ │ └── setup │ ├── a7s │ │ ├── config │ │ └── setup │ ├── mobile │ │ ├── config │ │ └── setup │ ├── home │ │ ├── config │ │ └── setup │ └── office │ │ ├── config │ │ └── setup ├── youtube-dl │ └── config ├── bat │ └── config ├── mpv │ ├── scripts │ │ └── reload.lua │ └── config ├── ranger │ ├── commands.py │ └── rc.conf ├── vimiv │ └── keys.conf ├── undertime.yml ├── firejail │ ├── aria2c.profile │ ├── chromium.profile │ ├── wormhole.profile │ ├── virtualbox.profile │ ├── yt-dlp.profile │ ├── ncmpcpp.profile │ ├── feh.profile │ ├── firefox.profile │ ├── rtorrent.profile │ ├── skypeforlinux.profile │ ├── wire-desktop.profile │ ├── feedreader.profile │ ├── gimp.profile │ ├── qutebrowser.profile │ ├── zulip.profile │ ├── weechat.profile │ ├── transmission-gtk.profile │ ├── zathura.profile │ ├── calibre.profile │ ├── mpd.profile │ └── mpv.profile ├── rofi │ ├── config.rasi │ └── nord.rasi ├── gtk-3.0 │ └── settings.ini ├── proselint │ └── config ├── mimeapps.list ├── tig │ ├── config │ └── vim.tigrc ├── redshift.conf ├── firewarden │ ├── feh.sh │ ├── zathura.sh │ └── qutebrowser.sh ├── mutt │ ├── sigs │ │ ├── tad │ │ └── pigmonkey │ ├── tad.muttrc │ ├── havenaut.muttrc │ ├── save.sh │ ├── mailcap │ ├── print.sh │ ├── vim-keybindings.rc │ ├── colors │ │ ├── zenburn.muttrc │ │ ├── gruvbox-dark.muttrc │ │ ├── base16.muttrc │ │ └── base16-tomorrow.dark.256.muttrc │ └── muttrc ├── udiskie │ └── config.yml ├── yt-dlp │ └── config ├── alacritty │ └── alacritty.toml ├── systemd │ └── user │ │ ├── borg.timer │ │ ├── borg.service │ │ ├── pinboard-backup.timer │ │ ├── library-repos.timer │ │ ├── library-repos.service │ │ ├── znc-tunnel.service │ │ ├── pinboard-backup.service │ │ ├── gmail-tunnel.service │ │ └── fastmail-tunnel.service ├── khard │ └── khard.conf ├── rofi-pass │ └── config ├── feh │ └── keys ├── ghostty │ └── config ├── user-dirs.dirs ├── Dharkael │ └── flameshot.ini ├── mopidy │ └── mopidy.conf ├── beets │ └── config.yaml ├── imapnotify │ ├── tad.yaml │ └── havenaut.yaml ├── sxiv │ └── exec │ │ ├── image-info │ │ └── key-handler ├── kitty │ └── kitty.conf ├── fontconfig │ └── fonts.conf ├── tmux │ └── zenburn.conf ├── mpd │ └── mpd.conf ├── starship.toml ├── vdirsyncer │ └── config ├── khal │ └── config ├── termite │ └── config ├── zathura │ └── zathurarc ├── i3status │ └── config ├── qutebrowser │ ├── config.py │ ├── solarized.py │ └── base16-gruvbox-dark-hard.config.py ├── teiler │ └── config ├── sxhkd │ └── sxhkdrc ├── dunst │ └── dunstrc └── i3 │ └── config ├── gnupg ├── gpg-agent.conf ├── dirmngr.conf ├── gpg.conf └── sks-keyservers.netCA.pem ├── weechat ├── perl │ └── autoload │ │ ├── beep.pl │ │ ├── iset.pl │ │ ├── menu.pl │ │ ├── spell_menu.pl │ │ └── sort_buffers.pl ├── python │ └── autoload │ │ ├── urlserver.py │ │ ├── urlview.py │ │ ├── vimode.py │ │ ├── weemoji.py │ │ └── wee_slack.py ├── charset.conf ├── exec.conf ├── logger.conf ├── spell.conf ├── iset.conf ├── alias.conf ├── xfer.conf ├── buflist.conf ├── relay.conf ├── script.conf ├── trigger.conf ├── buffers.conf ├── menu.conf └── irc.conf ├── vim ├── ftplugin │ ├── python.vim │ ├── ruby.vim │ ├── liquid.vim │ ├── yaml.vim │ ├── javascript.vim │ ├── journal.vim │ ├── csv.vim │ ├── org.vim │ ├── ledger.vim │ └── mail.vim └── ftdetect │ ├── csv.vim │ ├── org.vim │ └── journal.vim ├── zsh-dircolors.config ├── gtkrc-2.0 ├── ledgerrc ├── xinitrc ├── local └── share │ └── python_keyring ├── mrtrust ├── hooks ├── post-up │ ├── vim.sh │ ├── tmux.sh │ └── antibody.sh └── pre-up │ └── submodules.sh ├── zprofile ├── caffrc ├── inputrc ├── zsh_plugins.txt ├── Xmodmap ├── taskrc ├── gitignore ├── i3 ├── wnot_cli_config └── py3status │ └── msmtpq.py ├── taskopenrc ├── gitconfig ├── ncmpcpp ├── config └── bindings ├── offlineimap.py ├── README.md ├── .gitmodules ├── visidatarc ├── ipython └── profile_default │ └── ipython_config.py ├── xprofile ├── .gitignore ├── mbsyncrc ├── msmtprc ├── tmux.conf ├── Xresources ├── offlineimaprc ├── taskwarrior └── zenburn-256.theme ├── profile ├── abcde.conf ├── visidata ├── vdtabulate.py ├── vdnormcol.py └── vddedupe.py ├── aliases ├── dir_colors ├── zshrc └── vimrc /urlview: -------------------------------------------------------------------------------- 1 | COMMAND xdg-open 2 | -------------------------------------------------------------------------------- /config/autorandr/default: -------------------------------------------------------------------------------- 1 | mobile -------------------------------------------------------------------------------- /config/youtube-dl/config: -------------------------------------------------------------------------------- 1 | --add-metadata 2 | -------------------------------------------------------------------------------- /gnupg/gpg-agent.conf: -------------------------------------------------------------------------------- 1 | enable-ssh-support 2 | -------------------------------------------------------------------------------- /weechat/perl/autoload/beep.pl: -------------------------------------------------------------------------------- 1 | ../beep.pl -------------------------------------------------------------------------------- /weechat/perl/autoload/iset.pl: -------------------------------------------------------------------------------- 1 | ../iset.pl -------------------------------------------------------------------------------- /weechat/perl/autoload/menu.pl: -------------------------------------------------------------------------------- 1 | ../menu.pl -------------------------------------------------------------------------------- /config/bat/config: -------------------------------------------------------------------------------- 1 | --theme="gruvbox-dark" 2 | -------------------------------------------------------------------------------- /config/mpv/scripts/reload.lua: -------------------------------------------------------------------------------- 1 | mpv-reload/reload.lua -------------------------------------------------------------------------------- /vim/ftplugin/python.vim: -------------------------------------------------------------------------------- 1 | set colorcolumn=80,100 2 | -------------------------------------------------------------------------------- /weechat/perl/autoload/spell_menu.pl: -------------------------------------------------------------------------------- 1 | ../spell_menu.pl -------------------------------------------------------------------------------- /weechat/python/autoload/urlserver.py: -------------------------------------------------------------------------------- 1 | ../urlserver.py -------------------------------------------------------------------------------- /zsh-dircolors.config: -------------------------------------------------------------------------------- 1 | dircolors.ansi-universal 2 | -------------------------------------------------------------------------------- /weechat/perl/autoload/sort_buffers.pl: -------------------------------------------------------------------------------- 1 | ../sort_buffers.pl -------------------------------------------------------------------------------- /weechat/python/autoload/urlview.py: -------------------------------------------------------------------------------- 1 | ../../urlview/urlview.py -------------------------------------------------------------------------------- /weechat/python/autoload/vimode.py: -------------------------------------------------------------------------------- 1 | ../../vimode/vimode.py -------------------------------------------------------------------------------- /weechat/python/autoload/weemoji.py: -------------------------------------------------------------------------------- 1 | ../../weemoji/weemoji.py -------------------------------------------------------------------------------- /config/ranger/commands.py: -------------------------------------------------------------------------------- 1 | from ranger.api.commands import * 2 | -------------------------------------------------------------------------------- /vim/ftplugin/ruby.vim: -------------------------------------------------------------------------------- 1 | set tabstop=2 2 | set shiftwidth=2 3 | -------------------------------------------------------------------------------- /config/autorandr/settings.ini: -------------------------------------------------------------------------------- 1 | [config] 2 | skip-options=gamma 3 | -------------------------------------------------------------------------------- /config/vimiv/keys.conf: -------------------------------------------------------------------------------- 1 | [IMAGE] 2 | ] : zoom in 3 | [ : zoom out 4 | -------------------------------------------------------------------------------- /gtkrc-2.0: -------------------------------------------------------------------------------- 1 | include "/usr/share/themes/Arc-Gruvbox/gtk-2.0/gtkrc" 2 | -------------------------------------------------------------------------------- /weechat/python/autoload/wee_slack.py: -------------------------------------------------------------------------------- 1 | ../../wee-slack/wee_slack.py -------------------------------------------------------------------------------- /config/undertime.yml: -------------------------------------------------------------------------------- 1 | abbreviate: True 2 | timezones: 3 | - UTC 4 | -------------------------------------------------------------------------------- /ledgerrc: -------------------------------------------------------------------------------- 1 | --file ~/library/ledger/.ledger 2 | --date-format=%Y-%m-%d 3 | -------------------------------------------------------------------------------- /vim/ftdetect/csv.vim: -------------------------------------------------------------------------------- 1 | autocmd BufRead,BufNewFile *.csv set filetype=csv 2 | -------------------------------------------------------------------------------- /vim/ftdetect/org.vim: -------------------------------------------------------------------------------- 1 | autocmd BufRead,BufNewFile *.org set filetype=org 2 | -------------------------------------------------------------------------------- /vim/ftplugin/liquid.vim: -------------------------------------------------------------------------------- 1 | setl softtabstop=2 2 | setl tabstop=2 3 | setl shiftwidth=2 4 | -------------------------------------------------------------------------------- /vim/ftplugin/yaml.vim: -------------------------------------------------------------------------------- 1 | setl softtabstop=2 2 | setl tabstop=2 3 | setl shiftwidth=2 4 | -------------------------------------------------------------------------------- /vim/ftplugin/javascript.vim: -------------------------------------------------------------------------------- 1 | setl softtabstop=2 2 | setl tabstop=2 3 | setl shiftwidth=2 4 | -------------------------------------------------------------------------------- /xinitrc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | [ -f ~/.xprofile ] && source ~/.xprofile 4 | 5 | exec i3 6 | -------------------------------------------------------------------------------- /config/firejail/aria2c.profile: -------------------------------------------------------------------------------- 1 | ignore private-tmp 2 | include /etc/firejail/aria2c.profile 3 | -------------------------------------------------------------------------------- /gnupg/dirmngr.conf: -------------------------------------------------------------------------------- 1 | keyserver hkps://keys.openpgp.org 2 | keyserver hkps://mail-api.proton.me 3 | -------------------------------------------------------------------------------- /vim/ftdetect/journal.vim: -------------------------------------------------------------------------------- 1 | autocmd BufRead,BufNewFile ~/library/journal/* set filetype=journal 2 | -------------------------------------------------------------------------------- /config/firejail/chromium.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/chromium.profile 2 | 3 | dbus-user none 4 | -------------------------------------------------------------------------------- /config/firejail/wormhole.profile: -------------------------------------------------------------------------------- 1 | include /usr/local/etc/firejail/wormhole.profile 2 | private ~/tmp 3 | -------------------------------------------------------------------------------- /local/share/python_keyring: -------------------------------------------------------------------------------- 1 | [backend] 2 | default-keyring=keyring.backends.SecretService.Keyring 3 | -------------------------------------------------------------------------------- /config/firejail/virtualbox.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/virtualbox.profile 2 | 3 | whitelist ~/tmp 4 | -------------------------------------------------------------------------------- /mrtrust: -------------------------------------------------------------------------------- 1 | ~/projects/tad/docs/config/myrepos.conf 2 | ~/projects/.mrconfig 3 | ~/library/src/myrepos.conf 4 | -------------------------------------------------------------------------------- /vim/ftplugin/journal.vim: -------------------------------------------------------------------------------- 1 | if !filereadable(expand('%')) 2 | 0r! date 3 | j 4 | endif 5 | Goyo 6 | -------------------------------------------------------------------------------- /config/firejail/yt-dlp.profile: -------------------------------------------------------------------------------- 1 | private-bin ffprobe,yt-dlp,setfattr 2 | include /etc/firejail/yt-dlp.profile 3 | -------------------------------------------------------------------------------- /config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | font: "PragmataPro Liga 12"; 3 | } 4 | @theme "theme.rasi" 5 | -------------------------------------------------------------------------------- /hooks/post-up/vim.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if hash vim 2> /dev/null; then 4 | vim +PlugInstall! +qall 5 | fi 6 | -------------------------------------------------------------------------------- /config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Arc-Gruvbox 3 | gtk-application-prefer-dark-theme = true 4 | -------------------------------------------------------------------------------- /config/proselint/config: -------------------------------------------------------------------------------- 1 | { 2 | "checks": { 3 | "typography.diacritical_marks": false 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /config/firejail/ncmpcpp.profile: -------------------------------------------------------------------------------- 1 | include /usr/local/etc/firejail/ncmpcpp.profile 2 | 3 | whitelist ~/projects/dotfiles 4 | -------------------------------------------------------------------------------- /config/firejail/feh.profile: -------------------------------------------------------------------------------- 1 | quiet 2 | ignore private-cache 3 | noblacklist ~/library 4 | include /etc/firejail/feh.profile 5 | -------------------------------------------------------------------------------- /config/firejail/firefox.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/firefox.profile 2 | 3 | # Use ~/www as user home 4 | private ~/www 5 | -------------------------------------------------------------------------------- /vim/ftplugin/csv.vim: -------------------------------------------------------------------------------- 1 | " Use tabs rather than spaces 2 | set noexpandtab 3 | 4 | " Do not show list characters 5 | set nolist 6 | -------------------------------------------------------------------------------- /vim/ftplugin/org.vim: -------------------------------------------------------------------------------- 1 | " Wrapping lines will break tables. 2 | set nowrap 3 | 4 | " Enable vim table mode. 5 | TableModeEnable 6 | -------------------------------------------------------------------------------- /zprofile: -------------------------------------------------------------------------------- 1 | source ~/.profile 2 | 3 | # Ensure path arrays do not contain duplicates. 4 | typeset -gU cdpath fpath mailpath path 5 | -------------------------------------------------------------------------------- /config/autorandr/postswitch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | notify-send -i display "Display profile:" "$AUTORANDR_CURRENT_PROFILE" 3 | sh ~/.fehbg 4 | -------------------------------------------------------------------------------- /config/firejail/rtorrent.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/rtorrent.profile 2 | 3 | # Use ~/torrents as user home 4 | private ~/torrents 5 | -------------------------------------------------------------------------------- /config/firejail/skypeforlinux.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/skypeforlinux.profile 2 | 3 | # Use ~/www as user home 4 | private ~/www 5 | -------------------------------------------------------------------------------- /config/firejail/wire-desktop.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/wire-desktop.profile 2 | private-bin wire-desktop,bash,sh,env,electron4 3 | -------------------------------------------------------------------------------- /config/mimeapps.list: -------------------------------------------------------------------------------- 1 | 2 | [Default Applications] 3 | text/plain=vim.desktop 4 | application/pdf=org.pwmt.zathura-pdf-mupdf.desktop; 5 | -------------------------------------------------------------------------------- /config/tig/config: -------------------------------------------------------------------------------- 1 | set log-options = --show-signature 2 | set diff-options = --show-signature 3 | 4 | source ~/.config/tig/vim.tigrc 5 | -------------------------------------------------------------------------------- /caffrc: -------------------------------------------------------------------------------- 1 | $CONFIG{'owner'} = q{Peter Hogg}; 2 | $CONFIG{'email'} = q{peter@havenaut.net}; 3 | $CONFIG{'keyid'} = [ qw{0x70B220FF8D2ACF29} ]; 4 | -------------------------------------------------------------------------------- /config/firejail/feedreader.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/feedreader.profile 2 | 3 | whitelist ${HOME}/projects/dotfiles/config/gtk-3.0 4 | -------------------------------------------------------------------------------- /config/redshift.conf: -------------------------------------------------------------------------------- 1 | ; Global settings 2 | [redshift] 3 | temp-day=5800 4 | temp-night=4900 5 | transition=1 6 | location-provider=geoclue2 7 | -------------------------------------------------------------------------------- /inputrc: -------------------------------------------------------------------------------- 1 | set editing-mode vi 2 | set keymap vi 3 | 4 | $if mode=vi 5 | set keymap vi-insert 6 | "kj": vi-movement-mode 7 | $endif 8 | -------------------------------------------------------------------------------- /zsh_plugins.txt: -------------------------------------------------------------------------------- 1 | zsh-users/zsh-completions 2 | zsh-users/zsh-history-substring-search 3 | chrissicool/zsh-256color 4 | pigmonkey/notes.sh 5 | -------------------------------------------------------------------------------- /config/firewarden/feh.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mkdir -p "$FIREWARDEN_HOME/.config/feh" 3 | cp "$HOME/.config/feh/keys" "$FIREWARDEN_HOME/.config/feh" 4 | -------------------------------------------------------------------------------- /hooks/post-up/tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if hash tmux 2> /dev/null; then 4 | ~/projects/dotfiles/tmux/plugins/tpm/bin/install_plugins 5 | fi 6 | -------------------------------------------------------------------------------- /hooks/pre-up/submodules.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Initialize git submodules 3 | cd ~/projects/dotfiles 4 | git submodule init 5 | git submodule update 6 | -------------------------------------------------------------------------------- /Xmodmap: -------------------------------------------------------------------------------- 1 | ! 2 | ! Swap Caps_Lock and Control_L 3 | ! 4 | remove Lock = Caps_Lock 5 | keysym Caps_Lock = Control_L 6 | add Control = Control_L 7 | -------------------------------------------------------------------------------- /config/mutt/sigs/tad: -------------------------------------------------------------------------------- 1 | *TRIPLE AUGHT DESIGN* / +37° 45' 28.95", -122° 23' 16.35" 2 | 660 22nd Street San Francisco, CA 94107 USA / Desk: (415) 520.3232 3 | -------------------------------------------------------------------------------- /hooks/post-up/antibody.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if hash antibody 2> /dev/null; then 4 | antibody bundle < ~/.zsh_plugins.txt > ~/.zsh_plugins.sh 5 | fi 6 | -------------------------------------------------------------------------------- /config/firejail/gimp.profile: -------------------------------------------------------------------------------- 1 | noblacklist ~/library 2 | include /etc/firejail/gimp.profile 3 | 4 | # Use ~/www as user home 5 | whitelist ~/library/pictures 6 | -------------------------------------------------------------------------------- /config/firejail/qutebrowser.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/qutebrowser.profile 2 | 3 | whitelist ~/projects/dotfiles/config/qutebrowser 4 | private-etc passwd 5 | -------------------------------------------------------------------------------- /taskrc: -------------------------------------------------------------------------------- 1 | # Files 2 | data.location=~/.tasks 3 | 4 | # Colors 5 | include ~/.taskwarrior/zenburn-256.theme 6 | 7 | # Weeks start on Monday 8 | weekstart=Monday 9 | -------------------------------------------------------------------------------- /config/firejail/zulip.profile: -------------------------------------------------------------------------------- 1 | seccomp !chroot 2 | private-etc asound.conf,fonts,machine-id,localtime 3 | ignore private-bin 4 | include /etc/firejail/zulip.profile 5 | -------------------------------------------------------------------------------- /config/firewarden/zathura.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mkdir -p "$FIREWARDEN_HOME/.config/zathura" 3 | cp "$HOME/.config/zathura/zathurarc" "$FIREWARDEN_HOME/.config/zathura" 4 | -------------------------------------------------------------------------------- /config/mutt/sigs/pigmonkey: -------------------------------------------------------------------------------- 1 | Pig Monkey 2 | pig-monkey.com 3 | _________________________________________________ 4 | 82DF 2E38 B136 1F43 D862 91B2 E4F5 430D D064 9C5D 5 | -------------------------------------------------------------------------------- /config/udiskie/config.yml: -------------------------------------------------------------------------------- 1 | program_options: 2 | tray: auto 3 | automount: false 4 | notify: true 5 | password_prompt: ["pass", "crypt/usb/{id_uuid}"] 6 | -------------------------------------------------------------------------------- /config/yt-dlp/config: -------------------------------------------------------------------------------- 1 | --add-metadata 2 | --xattrs 3 | --prefer-free-formats 4 | --geo-bypass 5 | --downloader aria2c 6 | --downloader-args '-j 16 -s 16 -x 16 -k 1M' 7 | -------------------------------------------------------------------------------- /gitignore: -------------------------------------------------------------------------------- 1 | # Python # 2 | ########## 3 | __pycache__/ 4 | *.py[cod] 5 | *.egg* 6 | build/ 7 | dist/ 8 | 9 | 10 | # Editors # 11 | ########### 12 | .*.sw[a-z] 13 | -------------------------------------------------------------------------------- /config/firejail/weechat.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/weechat.profile 2 | 3 | whitelist ~/projects/dotfiles 4 | whitelist ~/.weechat 5 | whitelist ~/log 6 | whitelist ~/www 7 | -------------------------------------------------------------------------------- /config/ranger/rc.conf: -------------------------------------------------------------------------------- 1 | # Enable image previews. 2 | set preview_images true 3 | 4 | # Show version control information. 5 | set vcs_aware true 6 | set vcs_backend_git enabled 7 | -------------------------------------------------------------------------------- /config/firejail/transmission-gtk.profile: -------------------------------------------------------------------------------- 1 | include /etc/firejail/transmission-gtk.profile 2 | 3 | whitelist ${HOME}/projects/dotfiles/config/gtk-3.0 4 | whitelist ${HOME}/torrents 5 | -------------------------------------------------------------------------------- /i3/wnot_cli_config: -------------------------------------------------------------------------------- 1 | error_wnotso="" 2 | color_chan_msg="#b5bd68" 3 | color_chan_high="#cc6666" 4 | color_priv="#cc6666" 5 | buffer_filter="weechat*|server\\..*|bitlbee\\.&bitlbee" 6 | -------------------------------------------------------------------------------- /taskopenrc: -------------------------------------------------------------------------------- 1 | [General] 2 | path_ext = /usr/share/taskopen/scripts 3 | taskbin = task 4 | --active-tasks = "" 5 | 6 | [Actions] 7 | notes.command = "$EDITOR $HOME/.tasks/notes/$UUID.txt" 8 | -------------------------------------------------------------------------------- /config/firejail/zathura.profile: -------------------------------------------------------------------------------- 1 | quiet 2 | ignore private-tmp 3 | noblacklist ~/library 4 | whitelist ${RUNUSER}/firewarden 5 | whitelist ${RUNUSER}/mutt 6 | include /etc/firejail/zathura.profile 7 | -------------------------------------------------------------------------------- /config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | [general] 2 | import = ["/home/pigmonkey/.config/alacritty/colors.toml"] 3 | 4 | [font] 5 | size = 12.0 6 | 7 | [font.normal] 8 | family = "PragmataPro Mono Liga" 9 | -------------------------------------------------------------------------------- /config/systemd/user/borg.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Borg Backup Timer 3 | 4 | [Timer] 5 | Unit=borg.service 6 | OnCalendar=hourly 7 | Persistent=True 8 | 9 | [Install] 10 | WantedBy=timers.target 11 | -------------------------------------------------------------------------------- /config/firejail/calibre.profile: -------------------------------------------------------------------------------- 1 | noblacklist ~/library 2 | include /etc/firejail/calibre.profile 3 | 4 | whitelist ~/.config/calibre 5 | whitelist ~/library/books 6 | whitelist ~/tmp 7 | whitelist ~/www/downloads 8 | -------------------------------------------------------------------------------- /config/systemd/user/borg.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Borg Backup 3 | 4 | [Service] 5 | Type=oneshot 6 | ExecStart=/home/pigmonkey/bin/borgwrapper.sh 7 | 8 | [Install] 9 | WantedBy=multi-user.target 10 | -------------------------------------------------------------------------------- /config/khard/khard.conf: -------------------------------------------------------------------------------- 1 | [addressbooks] 2 | [[Default]] 3 | path = ~/library/contacts/Default 4 | 5 | [general] 6 | editor = vim 7 | merge_editor = vimdiff 8 | default_action = list 9 | show_nicknames = no 10 | -------------------------------------------------------------------------------- /config/systemd/user/pinboard-backup.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Dump Pinboard bookmarks timer 3 | 4 | [Timer] 5 | Unit=pinboard-backup.service 6 | OnCalendar=hourly 7 | 8 | [Install] 9 | WantedBy=timers.target 10 | -------------------------------------------------------------------------------- /config/firejail/mpd.profile: -------------------------------------------------------------------------------- 1 | noblacklist ~/library 2 | ignore seccomp 3 | ignore private-tmp 4 | include /etc/firejail/mpd.profile 5 | 6 | whitelist ~/projects/dotfiles 7 | whitelist ~/.config/mpd 8 | whitelist ~/library/audio 9 | -------------------------------------------------------------------------------- /config/systemd/user/library-repos.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Update library repositories timer 3 | 4 | [Timer] 5 | Unit=library-repos.service 6 | OnCalendar=hourly 7 | Persistent=True 8 | 9 | [Install] 10 | WantedBy=timers.target 11 | -------------------------------------------------------------------------------- /config/autorandr/portrait/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output HDMI-1 4 | off 5 | output DP-2 6 | off 7 | output HDMI-2 8 | off 9 | output eDP-1 10 | crtc 0 11 | mode 1920x1080 12 | pos 0x0 13 | primary 14 | rate 60.01 15 | rotate right 16 | -------------------------------------------------------------------------------- /config/autorandr/conf-271/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output HDMI-1 4 | off 5 | output DP-2 6 | off 7 | output eDP-1 8 | mode 1920x1080 9 | pos 0x0 10 | primary 11 | rate 60.05 12 | output HDMI-2 13 | mode 1280x800 14 | pos 1920x0 15 | rate 59.81 16 | -------------------------------------------------------------------------------- /config/systemd/user/library-repos.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Update library repositories 3 | 4 | [Service] 5 | Type=oneshot 6 | ExecStart=/usr/bin/mr --config %h/library/src/myrepos.conf -j5 update 7 | 8 | [Install] 9 | WantedBy=multi-user.target 10 | -------------------------------------------------------------------------------- /config/rofi-pass/config: -------------------------------------------------------------------------------- 1 | URL_field='url' 2 | USERNAME_field='login' 3 | clip=clipboard 4 | notify='true' 5 | default_do='autopass' 6 | help_header='false' 7 | help_color="#ff0000" 8 | 9 | _rofi () { 10 | rofi -i -no-auto-select -no-levenshtein-sort "$@" 11 | } 12 | -------------------------------------------------------------------------------- /config/systemd/user/znc-tunnel.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=ZNC tunnel 3 | After=network.target 4 | 5 | [Service] 6 | ExecStart=/usr/bin/ssh -v -N -L 11289:127.0.0.1:11289 znc-tunnel 7 | Restart=always 8 | RestartSec=60 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /config/systemd/user/pinboard-backup.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Dump Pinboard bookmarks 3 | 4 | [Service] 5 | Type=oneshot 6 | ExecStart=/usr/local/bin/backitup -p 28800 -l %h/.pinboard-backup -b %h/bin/pinboard-backup.sh 7 | 8 | [Install] 9 | WantedBy=multi-user.target 10 | -------------------------------------------------------------------------------- /config/autorandr/portrait/setup: -------------------------------------------------------------------------------- 1 | eDP-1 00ffffffffffff0006af6d220000000034190104a51c1078026ba796595795271d4e5300000001010101010101010101010101010101143780b87038244010103e00149b100000180000000f0000000000000000000000000020000000fe0041554f0a202020202020202020000000fe004231323548414e30322e32200a00a8 2 | -------------------------------------------------------------------------------- /config/autorandr/a7s/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output HDMI-1 4 | off 5 | output DP-2 6 | off 7 | output HDMI-2 8 | gamma 1.0:0.909:0.833 9 | mode 1920x1080 10 | pos 0x0 11 | rate 60.00 12 | output eDP-1 13 | gamma 1.0:0.909:0.833 14 | mode 1920x1080 15 | pos 1920x0 16 | primary 17 | rate 60.05 18 | -------------------------------------------------------------------------------- /config/systemd/user/gmail-tunnel.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=SSH tunnel for FastMail SMTP 3 | After=network.target 4 | 5 | [Service] 6 | ExecStart=/usr/bin/ssh -v -N -L 1091:smtp.gmail.com:587 mail-tunnel 7 | Restart=always 8 | RestartSec=60 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /config/systemd/user/fastmail-tunnel.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=SSH tunnel for FastMail SMTP 3 | After=network.target 4 | 5 | [Service] 6 | ExecStart=/usr/bin/ssh -v -N -L 1090:smtp.fastmail.com:587 mail-tunnel 7 | Restart=always 8 | RestartSec=60 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /config/firejail/mpv.profile: -------------------------------------------------------------------------------- 1 | noblacklist ~/library 2 | include /etc/firejail/mpv.profile 3 | 4 | whitelist ~/projects/dotfiles 5 | whitelist ~/.config/mpv 6 | whitelist ~/library/audio 7 | whitelist ~/library/video 8 | whitelist ~/www 9 | whitelist ~/tmp 10 | whitelist ~/torrents 11 | whitelist ~/.local/state/mpv/ 12 | -------------------------------------------------------------------------------- /gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | email = pm@pig-monkey.com 3 | name = Pig Monkey 4 | [core] 5 | excludesfile = /home/pigmonkey/.gitignore 6 | [push] 7 | default = simple 8 | [pull] 9 | rebase = false 10 | [alias] 11 | lg = !tig 12 | pushall = !git remote | xargs -L1 -P0 git push --all --follow-tags 13 | [init] 14 | defaultBranch = master 15 | -------------------------------------------------------------------------------- /config/feh/keys: -------------------------------------------------------------------------------- 1 | # unset default keys 2 | next_img 3 | prev_img 4 | zoom_in 5 | zoom_out 6 | scroll_right 7 | scroll_left 8 | scroll_up 9 | scroll_down 10 | # map custom keys 11 | zoom_in i 12 | zoom_out o 13 | scroll_up Up k 14 | scroll_down Down j 15 | scroll_left Left h 16 | scroll_right Right l 17 | next_img space 18 | prev_img BackSpace 19 | -------------------------------------------------------------------------------- /config/firewarden/qutebrowser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | BASEDIR="$FIREWARDEN_HOME/basedir" 4 | 5 | # Import config file. 6 | mkdir -p "$BASEDIR/config" 7 | cp "$HOME"/.config/qutebrowser/*.py "$BASEDIR/config" 8 | 9 | # Import spellcheck dictionary. 10 | mkdir -p "$BASEDIR/data" 11 | cp -a "$HOME/.local/share/qutebrowser/qtwebengine_dictionaries" "$BASEDIR/data" 12 | -------------------------------------------------------------------------------- /ncmpcpp/config: -------------------------------------------------------------------------------- 1 | media_library_primary_tag = album_artist 2 | progressbar_look = "─╼ " 3 | user_interface = "alternative" 4 | playlist_display_mode = "columns" 5 | 6 | # visualizations 7 | visualizer_data_source = "/tmp/mpd.fifo" 8 | visualizer_output_name = "my_fifo" 9 | visualizer_in_stereo = "yes" 10 | visualizer_type = "spectrum" 11 | visualizer_look = "●▉" 12 | -------------------------------------------------------------------------------- /offlineimap.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | from os.path import expanduser 3 | 4 | def imappasswd(account): 5 | path = expanduser("~/.keys/imap-%s.gpg" % account) 6 | args = ["gpg", "--use-agent", "--quiet", "--batch", "-d", path] 7 | try: 8 | return subprocess.check_output(args).strip() 9 | except subprocess.CalledProcessError: 10 | return "" 11 | -------------------------------------------------------------------------------- /config/ghostty/config: -------------------------------------------------------------------------------- 1 | window-decoration = none 2 | theme = GruvboxDark 3 | 4 | font-family = PragmataPro Liga 5 | font-feature = calt 6 | font-feature = ss13 7 | font-feature = ss15 8 | font-feature = ss18 9 | 10 | bold-is-bright = true 11 | link-url = true 12 | mouse-hide-while-typing = true 13 | clipboard-paste-protection = true 14 | 15 | keybind = super+shift+r=reload_config 16 | -------------------------------------------------------------------------------- /config/user-dirs.dirs: -------------------------------------------------------------------------------- 1 | XDG_DESKTOP_DIR="$HOME" 2 | XDG_DOCUMENTS_DIR="$HOME/documents" 3 | XDG_DOWNLOAD_DIR="$HOME/www/downloads" 4 | XDG_MUSIC_DIR="$HOME/library/audio/music" 5 | XDG_PICTURES_DIR="$HOME/library/pictures" 6 | XDG_PUBLICSHARE_DIR="$HOME" 7 | XDG_TEMPLATES_DIR="$HOME" 8 | XDG_VIDEOS_DIR="$HOME" 9 | XDG_CONFIG_HOME="$HOME/.config" 10 | XDG_CACHE_HOME="$HOME/.cache" 11 | -------------------------------------------------------------------------------- /config/Dharkael/flameshot.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | buttons=@Variant(\0\0\0\x7f\0\0\0\vQList\0\0\0\0\x10\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\x3\0\0\0\x4\0\0\0\x5\0\0\0\x6\0\0\0\x12\0\0\0\xf\0\0\0\a\0\0\0\b\0\0\0\t\0\0\0\x10\0\0\0\n\0\0\0\v\0\0\0\f) 3 | contrastOpacity=127 4 | disabledTrayIcon=true 5 | drawColor=#ffff00 6 | drawThickness=0 7 | filenamePattern=capture-%FT%H%M%S 8 | savePath=/home/pigmonkey/www 9 | -------------------------------------------------------------------------------- /config/mopidy/mopidy.conf: -------------------------------------------------------------------------------- 1 | [local] 2 | enabled = true 3 | library = sqlite 4 | media_dir = ~/library/audio/music 5 | scan_timeout = 1000 6 | scan_flush_threshold = 100 7 | scan_follow_symlinks = true 8 | excluded_file_extensions = 9 | .directory 10 | .html 11 | .jpeg 12 | .jpg 13 | .log 14 | .nfo 15 | .png 16 | .txt 17 | 18 | [somafm] 19 | encoding = aac 20 | quality = highest 21 | -------------------------------------------------------------------------------- /ncmpcpp/bindings: -------------------------------------------------------------------------------- 1 | def_key "h" 2 | previous_column 3 | def_key "j" 4 | scroll_down 5 | def_key "k" 6 | scroll_up 7 | def_key "l" 8 | next_column 9 | def_key "ctrl-d" 10 | page_down 11 | def_key "ctrl-u" 12 | page_up 13 | def_key "n" 14 | next_found_item 15 | def_key "N" 16 | previous_found_item 17 | def_key "t" 18 | show_lyrics 19 | def_key "d" 20 | delete_playlist_items 21 | -------------------------------------------------------------------------------- /weechat/charset.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- charset.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [default] 13 | decode = "iso-8859-1" 14 | encode = "" 15 | 16 | [decode] 17 | 18 | [encode] 19 | -------------------------------------------------------------------------------- /config/mutt/tad.muttrc: -------------------------------------------------------------------------------- 1 | ################ 2 | # TAD Settings # 3 | ################ 4 | 5 | # Mailbox 6 | set postponed = "+TAD/drafts" 7 | unset record 8 | 9 | # Personal 10 | set from='peter@tripleaughtdesign.com' 11 | set reverse_name=no 12 | alternates phogg@tripleaughtdesign.com 13 | set signature=~/.config/mutt/sigs/tad 14 | 15 | # Sending 16 | set hostname="mail.tripleaughtdesign.com" 17 | set sendmail='msmtpq -a tad-tunnel' 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | dotfiles 2 | ======== 3 | 4 | User preference and configuration files that I use to build my working environment. 5 | 6 | This repository includes [git](http://git-scm.com/) submodules. When cloning to a new machine, the submodules need to be initialized. 7 | 8 | $ git submodule update --init 9 | 10 | Every submodule can be updated to the latest available version at once: 11 | 12 | $ git submodule foreach git pull origin master 13 | -------------------------------------------------------------------------------- /weechat/exec.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- exec.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [command] 13 | default_options = "" 14 | purge_delay = 0 15 | shell = "sh" 16 | 17 | [color] 18 | flag_finished = lightred 19 | flag_running = lightgreen 20 | -------------------------------------------------------------------------------- /config/mutt/havenaut.muttrc: -------------------------------------------------------------------------------- 1 | ##################### 2 | # Havenaut Settings # 3 | ##################### 4 | 5 | # Mailbox 6 | set postponed = "+Havenaut/Drafts" 7 | set record = "+Havenaut/Sent Items" 8 | 9 | # Personal 10 | set from='peter@havenaut.net' 11 | set reverse_name=yes 12 | alternates pm@pig-monkey.com peterhogg@fastmail.fm 13 | set signature=~/.config/mutt/sigs/havenaut 14 | 15 | # Sending 16 | set hostname="mail.havenaut.net" 17 | set sendmail='msmtpq' 18 | -------------------------------------------------------------------------------- /config/beets/config.yaml: -------------------------------------------------------------------------------- 1 | directory: ~/library/audio/music 2 | library: ~/library/audio/.beet.blb 3 | import: 4 | move: yes 5 | ui: 6 | color: yes 7 | plugins: lyrics lastgenre mbsync fetchart scrub bpd chroma convert badfiles missing 8 | lastgenre: 9 | canonical: yes 10 | count: 3 11 | prefer_specific: yes 12 | chroma: 13 | auto: yes 14 | convert: 15 | dest: ~/sync/pixel/audio/music 16 | format: mp3 17 | copy_album_art: yes 18 | embed: yes 19 | -------------------------------------------------------------------------------- /config/imapnotify/tad.yaml: -------------------------------------------------------------------------------- 1 | configurations: 2 | - 3 | host: imap.gmail.com 4 | port: 993 5 | tls: true 6 | tlsOptions: 7 | rejectUnauthorized: true 8 | username: phogg@tripleaughtdesign.com 9 | password: '' 10 | passwordCMD: 'keyring get mail-tad imap' 11 | boxes: 12 | - 13 | mailbox: INBOX 14 | onNewMail: 'mbsync tad' 15 | onNewMailPost: SKIP 16 | -------------------------------------------------------------------------------- /config/imapnotify/havenaut.yaml: -------------------------------------------------------------------------------- 1 | configurations: 2 | - 3 | host: mail.messagingengine.com 4 | port: 992 5 | tls: true 6 | tlsOptions: 7 | rejectUnauthorized: true 8 | username: peterhogg@fastmail.fm 9 | password: '' 10 | passwordCMD: 'keyring get mail-havenaut imap' 11 | boxes: 12 | - 13 | mailbox: INBOX 14 | onNewMail: 'mbsync havenaut' 15 | onNewMailPost: SKIP 16 | -------------------------------------------------------------------------------- /config/autorandr/mobile/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output DP-2 4 | off 5 | output DP-3 6 | off 7 | output DP-4 8 | off 9 | output DP-5 10 | off 11 | output DP-6 12 | off 13 | output DP-7 14 | off 15 | output DP-8 16 | off 17 | output eDP-1 18 | crtc 0 19 | mode 2880x1920 20 | pos 0x0 21 | primary 22 | rate 120.00 23 | x-prop-colorspace Default 24 | x-prop-max_bpc 16 25 | x-prop-non_desktop 0 26 | x-prop-scaling_mode None 27 | x-prop-underscan off 28 | x-prop-underscan_hborder 0 29 | x-prop-underscan_vborder 0 30 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "weechat/urlview"] 2 | path = weechat/urlview 3 | url = https://github.com/keith/urlview-weechat 4 | [submodule "weechat/vimode"] 5 | path = weechat/vimode 6 | url = https://github.com/GermainZ/weechat-vimode 7 | [submodule "weechat/weemoji"] 8 | path = weechat/weemoji 9 | url = https://github.com/kattrali/weemoji 10 | [submodule "config/mpv/scripts/mpv-reload"] 11 | path = config/mpv/scripts/mpv-reload 12 | url = https://github.com/4e6/mpv-reload 13 | [submodule "tmux/plugins/tpm"] 14 | path = tmux/plugins/tpm 15 | url = https://github.com/tmux-plugins/tpm 16 | -------------------------------------------------------------------------------- /config/mutt/save.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Save piped email to a file. 3 | # https://unix.stackexchange.com/a/310990 4 | 5 | # Don't overwrite existing file 6 | set -o noclobber 7 | 8 | message=$(cat) 9 | 10 | # Get the first line of the subject, and change / to ∕ so it's not a subdirectory 11 | subject=$(<<<"$message" grep -oPm 1 '^Subject: ?\K.*' | sed 's,/,∕,g') 12 | 13 | if [[ $subject == '' ]]; then 14 | echo Warning: no subject found 15 | subject="$(mktemp -u mutt_XXXXXXXX)" 16 | fi 17 | 18 | echo "${message}" > "$HOME/$subject.eml" && echo Email saved to "$HOME/$subject.eml" 19 | -------------------------------------------------------------------------------- /config/sxiv/exec/image-info: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Example for $XDG_CONFIG_HOME/sxiv/exec/image-info 4 | # Called by sxiv(1) whenever an image gets loaded. 5 | # The output is displayed in sxiv's status bar. 6 | # Arguments: 7 | # $1: path to image file 8 | # $2: image width 9 | # $3: image height 10 | 11 | s=" | " # field separator 12 | 13 | exec 2>/dev/null 14 | 15 | filename=$(basename -- "$1") 16 | filesize=$(du -Hh -- "$1" | cut -f 1) 17 | 18 | geometry="${2}x${3}" 19 | tags=$(identify -format '%[IPTC:2:25]' "$1" | tr ';' ',') 20 | 21 | echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${filename}" 22 | 23 | -------------------------------------------------------------------------------- /config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | include colors.conf 2 | 3 | enable_audio_bell no 4 | font_size 12.0 5 | disable_ligatures cursor 6 | 7 | map super+shift+r load_config_file 8 | map ctrl+shift+o open_url_with_hints 9 | 10 | # BEGIN_KITTY_FONTS 11 | font_family family='PragmataPro Mono Liga' style=Regular features='+calt +ss13 +ss15 +ss18' 12 | bold_font auto 13 | italic_font auto 14 | bold_italic_font auto 15 | # END_KITTY_FONTS 16 | 17 | # Use non-mono font for larger unicode characters. 18 | # https://github.com/kovidgoyal/kitty/issues/1463#issuecomment-2324109497 19 | symbol_map U+E000-U+F1AF0 PragmataPro Liga 20 | -------------------------------------------------------------------------------- /config/mpv/config: -------------------------------------------------------------------------------- 1 | # Enable hardware decoding. 2 | hwdec=auto-safe 3 | # Stop screensaver (xautolock). 4 | stop-screensaver=yes 5 | # Do not display audio file images. 6 | audio-display=no 7 | # Set default languages. 8 | alang=eng 9 | slang=eng 10 | # Show progress bar for audio files. 11 | term-osd-bar=yes 12 | screenshot-directory=~/tmp/ 13 | # Limit streaming to 1080p. 14 | ytdl-format="bestvideo[height<=?1080]+bestaudio/best" 15 | # Fonts. 16 | sub-font="PragmataPro Regular" 17 | sub-font-size=42 18 | osd-font="PragmataPro Regular" 19 | osd-font-size=18 20 | # Use yt-dlp. 21 | script-opts=ytdl_hook-ytdl_path=/usr/bin/yt-dlp 22 | # Loop all the gifs. 23 | [extension.gif] 24 | loop-file=yes 25 | -------------------------------------------------------------------------------- /config/fontconfig/fonts.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | true 7 | 8 | 9 | true 10 | 11 | 12 | hintfull 13 | 14 | 15 | rgb 16 | 17 | 18 | lcddefault 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /visidatarc: -------------------------------------------------------------------------------- 1 | # Load plugins 2 | import vddedupe 3 | import vdnormcol 4 | import vdtabulate 5 | 6 | # Copy to clipboard via xclip 7 | options.clipboard_copy_cmd = 'xclip -selection clipboard' 8 | 9 | # Add current position to status bar 10 | options.disp_status_fmt = '({sheet.cursorRowIndex},{sheet.cursorColIndex}) ' + options.disp_status_fmt 11 | 12 | # Set column separator 13 | options.disp_column_sep = '│' 14 | 15 | # Display full datetime 16 | # options.disp_date_fmt = '%Y-%m-%d %H:%M:%S' 17 | 18 | # Adjust colors of current column and row. 19 | options.color_current_row = 'blue reverse' 20 | options.color_current_hdr = 'blue reverse' 21 | 22 | # Force column names to be useful in expressions. 23 | options.clean_names = True 24 | -------------------------------------------------------------------------------- /config/tmux/zenburn.conf: -------------------------------------------------------------------------------- 1 | # default statusbar colors 2 | set -g status-bg colour235 3 | set -g status-fg colour248 4 | set -g status-attr dim 5 | 6 | # default window title colors 7 | setw -g window-status-current-bg colour237 8 | setw -g window-status-current-fg colour223 9 | setw -g window-status-current-attr bold 10 | 11 | # default window mode colors 12 | setw -g mode-bg colour238 13 | setw -g mode-fg colour117 14 | setw -g mode-attr bold 15 | 16 | # message text 17 | set -g message-bg colour235 18 | set -g message-fg colour117 19 | set -g message-attr bold 20 | 21 | # pane number display 22 | set-option -g display-panes-active-colour blue #blue 23 | set-option -g display-panes-colour brightred #orange 24 | 25 | # clock 26 | setw -g clock-mode-colour colour117 27 | -------------------------------------------------------------------------------- /config/autorandr/mobile/setup: -------------------------------------------------------------------------------- 1 | eDP-1 00ffffffffffff0009e5b40c0000000034210104a51d1378070aa5a7554b9f250c505400000001010101010101010101010101010101119140a0b0807470302036001dbe1000001a000000fd001e78f4f44a010a202020202020000000fe00424f45204e4a0a202020202020000000fc004e4531333541314d2d4e59310a023170207902002000139a0e00b40c000000003417074e4531334e593121001d220b6c07400b8007886efa54b8749f56820c023554d05fd05f483512782200144c550b883f0b9f002f001f007f077300020005002500094c550b4c550b1e7880810013721a000003011e7800006a426a427800000000000000000000000000004f907020790000260009020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003690 2 | -------------------------------------------------------------------------------- /config/autorandr/a7s/setup: -------------------------------------------------------------------------------- 1 | HDMI-2 00ffffffffffff0031900700020000001b1b010380110b788a2895a7554ea3260f5054210800e1c090407140b300a940a9c081008140023a801871382d40582c4500aa6e0000001e7d4b80a072b02d4088c83600aa6e0000001e000000fc004d6f6e69746f720a2020202020000000fd00184c1e511e000000000000000001b6020330c24d010304050790121314169f2022260907070700008301000072030c001000b84420c08401020304014100008c0ad08a20e02d10103e9600c48e210000188c0ad090204031200c405500c48e21000018011d00bc52d01e20b8285540c48e2100001e011d80d0721c1620102c2580c48e2100009e0000000000000010 2 | eDP-1 00ffffffffffff0006af6d220000000034190104a51c1078026ba796595795271d4e5300000001010101010101010101010101010101143780b87038244010103e00149b100000180000000f0000000000000000000000000020000000fe0041554f0a202020202020202020000000fe004231323548414e30322e32200a00a8 3 | -------------------------------------------------------------------------------- /config/autorandr/conf-271/setup: -------------------------------------------------------------------------------- 1 | HDMI-2 00ffffffffffff005a632939010101012f170103800000780aace9a05b569225114f5dbfef80a94090408119810f810081fc617c457c9e20009051201f304880360000000000001c000000ff00534e323133343730313333300a000000fd0018780f6411000a202020202020000000fc00504a4435353333770a20202020013f020328f15084100503020706131f1420121116150123090707830100006a030c001000382d208000011d007251d01e206e28550000000000001e011d8018711c1620582c250000000000009e8c0ad08a20e02d10103e9600000000000018023a801871382d40582c450000000000001e011d00bc52d01e20b828554000000085 2 | eDP-1 00ffffffffffff0006af6d220000000034190104a51c1078026ba796595795271d4e5300000001010101010101010101010101010101143780b87038244010103e00149b100000180000000f0000000000000000000000000020000000fe0041554f0a202020202020202020000000fe004231323548414e30322e32200a00a8 3 | -------------------------------------------------------------------------------- /config/autorandr/home/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output DP-2 4 | off 5 | output DP-3 6 | off 7 | output DP-4 8 | off 9 | output DP-5 10 | off 11 | output DP-6 12 | off 13 | output DP-8 14 | off 15 | output eDP-1 16 | crtc 1 17 | mode 2880x1920 18 | pos 0x0 19 | rate 120.00 20 | x-prop-colorspace Default 21 | x-prop-max_bpc 16 22 | x-prop-non_desktop 0 23 | x-prop-scaling_mode None 24 | x-prop-underscan off 25 | x-prop-underscan_hborder 0 26 | x-prop-underscan_vborder 0 27 | output DP-7 28 | crtc 0 29 | mode 3840x2160 30 | pos 2880x0 31 | primary 32 | rate 60.00 33 | x-prop-broadcast_rgb Automatic 34 | x-prop-colorspace Default 35 | x-prop-max_bpc 16 36 | x-prop-non_desktop 0 37 | x-prop-scaling_mode None 38 | x-prop-underscan off 39 | x-prop-underscan_hborder 0 40 | x-prop-underscan_vborder 0 41 | -------------------------------------------------------------------------------- /config/autorandr/office/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output DP-2 4 | off 5 | output DP-4 6 | off 7 | output DP-5 8 | off 9 | output DP-6 10 | off 11 | output DP-7 12 | off 13 | output DP-8 14 | off 15 | output eDP-1 16 | crtc 0 17 | mode 2880x1920 18 | pos 0x0 19 | primary 20 | rate 120.00 21 | x-prop-colorspace Default 22 | x-prop-max_bpc 16 23 | x-prop-non_desktop 0 24 | x-prop-scaling_mode None 25 | x-prop-underscan off 26 | x-prop-underscan_hborder 0 27 | x-prop-underscan_vborder 0 28 | output DP-3 29 | crtc 1 30 | mode 3840x2160 31 | pos 2880x0 32 | rate 60.00 33 | x-prop-broadcast_rgb Automatic 34 | x-prop-colorspace Default 35 | x-prop-max_bpc 16 36 | x-prop-non_desktop 0 37 | x-prop-scaling_mode None 38 | x-prop-underscan off 39 | x-prop-underscan_hborder 0 40 | x-prop-underscan_vborder 0 41 | -------------------------------------------------------------------------------- /weechat/logger.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- logger.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | backlog = 20 14 | backlog_conditions = "" 15 | 16 | [color] 17 | backlog_end = default 18 | backlog_line = default 19 | 20 | [file] 21 | auto_log = on 22 | color_lines = off 23 | flush_delay = 120 24 | fsync = off 25 | info_lines = off 26 | mask = "weechat-$plugin.$name.log" 27 | name_lower_case = on 28 | nick_prefix = "" 29 | nick_suffix = "" 30 | path = "${env:HOME}/log/" 31 | replacement_char = "_" 32 | time_format = "%Y-%m-%d %H:%M:%S" 33 | 34 | [level] 35 | irc = 1 36 | 37 | [mask] 38 | -------------------------------------------------------------------------------- /weechat/spell.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- spell.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [color] 13 | misspelled = lightred 14 | suggestion = *green 15 | suggestion_delimiter_dict = cyan 16 | suggestion_delimiter_word = cyan 17 | 18 | [check] 19 | commands = "ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic" 20 | default_dict = "en" 21 | during_search = off 22 | enabled = on 23 | real_time = on 24 | suggestions = 3 25 | word_min_length = 2 26 | 27 | [dict] 28 | 29 | [look] 30 | suggestion_delimiter_dict = " / " 31 | suggestion_delimiter_word = "," 32 | 33 | [option] 34 | -------------------------------------------------------------------------------- /config/mpd/mpd.conf: -------------------------------------------------------------------------------- 1 | # define directories and files 2 | music_directory "~/library/audio/music" 3 | db_file "~/.config/mpd/database" 4 | log_file "~/.config/mpd/log" 5 | playlist_directory "~/.config/mpd/playlists" 6 | pid_file "~/.config/mpd/pid" 7 | state_file "~/.config/mpd/state" 8 | sticker_file "~/.config/mpd/sticker.sql" 9 | 10 | # bind to ipv4 localhost 11 | bind_to_address "127.0.0.1" 12 | 13 | # audio 14 | audio_output { 15 | type "pulse" 16 | name "MPD PulseAudio Output" 17 | } 18 | 19 | # visualizations 20 | audio_output { 21 | type "fifo" 22 | name "my_fifo" 23 | path "/tmp/mpd.fifo" 24 | format "44100:16:2" 25 | } 26 | 27 | # always start paused 28 | restore_paused "yes" 29 | -------------------------------------------------------------------------------- /weechat/iset.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- iset.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [color] 13 | bg_selected = red 14 | help_default_value = green 15 | help_option_name = white 16 | help_text = default 17 | option = default 18 | option_selected = white 19 | type = brown 20 | type_selected = yellow 21 | value = cyan 22 | value_diff = magenta 23 | value_diff_selected = lightmagenta 24 | value_selected = lightcyan 25 | value_undef = green 26 | value_undef_selected = lightgreen 27 | 28 | [help] 29 | show_help_bar = on 30 | show_help_extra_info = on 31 | show_plugin_description = off 32 | 33 | [look] 34 | scroll_horiz = 10 35 | show_current_line = on 36 | use_color = off 37 | use_mute = off 38 | value_search_char = "=" 39 | -------------------------------------------------------------------------------- /ipython/profile_default/ipython_config.py: -------------------------------------------------------------------------------- 1 | ## Set to confirm when you try to exit IPython with an EOF (Control-D in Unix, 2 | # Control-Z/Enter in Windows). By typing 'exit' or 'quit', you can force a 3 | # direct exit without any confirmation. 4 | c.TerminalInteractiveShell.confirm_exit = False 5 | 6 | ## Shortcut style to use at the prompt. 'vi' or 'emacs'. 7 | c.TerminalInteractiveShell.editing_mode = 'vi' 8 | 9 | ## Enable vi (v) or Emacs (C-X C-E) shortcuts to open an external editor. This is 10 | # in addition to the F2 binding, which is always enabled. 11 | c.TerminalInteractiveShell.extra_open_editor_shortcuts = True 12 | 13 | # Keep your stinking paws off my cursor. 14 | c.TerminalInteractiveShell.modal_cursor = False 15 | 16 | # I don't know what Jedi is supposed to do, but it is ridiculously slow. 17 | c.IPCompleter.use_jedi = False 18 | 19 | # Don't try to reformat my slop. 20 | c.TerminalInteractiveShell.autoformatter = None 21 | -------------------------------------------------------------------------------- /gnupg/gpg.conf: -------------------------------------------------------------------------------- 1 | # Disable the copyright notice 2 | no-greeting 3 | 4 | # Disable comment string in clear text signatures and ASCII armored messages 5 | no-comments 6 | 7 | # Set the default secret key 8 | default-key 0x70B220FF8D2ACF29 9 | 10 | # Use the default key as the default recipient 11 | default-recipient-self 12 | 13 | # Set preferred ciphers 14 | personal-cipher-preferences AES256 AES192 AES CAST5 15 | 16 | # Set preferred digests 17 | personal-digest-preferences SHA512 SHA384 SHA256 SHA224 18 | 19 | # Use a strong digest when signing a key 20 | cert-digest-algo SHA512 21 | 22 | # Set the default preferences for new keys 23 | default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed 24 | 25 | # Prevent collisions by using long IDs 26 | keyid-format 0xlong 27 | 28 | # Always display fingerprints 29 | with-fingerprint 30 | 31 | # Prompt for the certification level whenever signing 32 | ask-cert-level 33 | -------------------------------------------------------------------------------- /config/mutt/mailcap: -------------------------------------------------------------------------------- 1 | application/ics; mutt-ics; copiousoutput 2 | application/pdf; firewarden -q -c zathura %s 3 | application/epub+zip; firewarden -q -c zathura %s 4 | application/vnd.oasis.opendocument.text; firewarden -q pandoc --from odt --to markdown %s; copiousoutput 5 | application/vnd.openxmlformats-officedocument.wordprocessingml.document; firewarden -q pandoc --from docx --to markdown %s; copiousoutput 6 | image/*; firewarden -q -c feh %s 7 | text/calendar; mutt-ics; copiousoutput 8 | text/html; firewarden -q -c qutebrowser %s; needsterminal; nametemplate=%s.html 9 | #text/html; html2text --pad-tables --reference-links %s %{charset}; copiousoutput 10 | text/html; w3m -I %{charset} -T text/html; copiousoutput; 11 | #text/html; iconv -c -f %{charset} -t LATIN1//TRANSLIT | html2text --ignore-tables; copiousoutput 12 | #text/html; lynx -force_html -dump -assume_charset %{charset} %s; copiousoutput 13 | text/plain; vim %s ; needsterminal 14 | message/rfc822; formail -b < %s > %s.mbox && mutt -f '%s.mbox'; needsterminal 15 | -------------------------------------------------------------------------------- /vim/ftplugin/ledger.vim: -------------------------------------------------------------------------------- 1 | " Separate date components with -. 2 | let g:ledger_date_format = '%Y-%m-%d' 3 | 4 | " Use 80 columns to display fold text. 5 | let g:ledger_maxwidth = 80 6 | 7 | " Use a · to connect the account name to the amount in fold text. 8 | let g:ledger_fillstring = '·' 9 | 10 | " Set default commodity 11 | let g:ledger_default_commodity = '$' 12 | 13 | " Align decimal separators at column 50 14 | let g:ledger_align_at = 50 15 | 16 | " Mark a transaction as cleared 17 | nnoremap c :call ledger#transaction_state_toggle(line('.')) 18 | 19 | " Set a transaction's primary date to today 20 | nnoremap t :call ledger#transaction_date_set(line('.'), 'unshift') 21 | 22 | " Autocomplete and align accounts and commodities with Tab. 23 | inoremap =ledger#autocomplete_and_align() 24 | vnoremap :LedgerAlign 25 | 26 | 27 | " Add sorting function. 28 | function LedgerSort() 29 | :%! ledger -f - print --sort d 30 | :%LedgerAlign 31 | endfunction 32 | command LedgerSort call LedgerSort() 33 | -------------------------------------------------------------------------------- /xprofile: -------------------------------------------------------------------------------- 1 | # Read the Xresources file if it exists. 2 | [[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources 3 | 4 | # Bind keys with sxhkd. 5 | sxhkd & 6 | 7 | # Launch the screen locker. 8 | xautolock -time 09 -locker "/usr/local/bin/lock" -detectsleep -secure -corners 0-00 -cornerdelay 3 -cornerredelay 20 & 9 | 10 | # Restore the desktop background. 11 | if [ -f ~/.fehbg ]; then 12 | sh ~/.fehbg & 13 | fi 14 | 15 | # Control volume with pasystray. 16 | pasystray & 17 | 18 | # NetworkManager for managing networks. 19 | nm-applet & 20 | 21 | # Hide the cursor when idle. 22 | unclutter & 23 | 24 | # Notifications with dunst 25 | dunst & 26 | 27 | # Load ICC color profile for Framework 13 2.8k display. 28 | xcalib -d :0 /usr/share/color/icc/BOE0CB4.icm 29 | 30 | # Adjust color temperature with Redshift. 31 | redswitch -g 32 | 33 | # Load the best monitor profile available 34 | autorandr --change --default default 35 | 36 | # Udiskie for mounting. 37 | udiskie & 38 | 39 | # Blueman for bluetooth 40 | blueman-applet & 41 | 42 | # KDE Connect tray incon 43 | kdeconnect-indicator & 44 | -------------------------------------------------------------------------------- /weechat/alias.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- alias.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [cmd] 13 | AAWAY = "allserv /away" 14 | AME = "allchan /me" 15 | AMSG = "allchan /msg *" 16 | ANICK = "allserv /nick" 17 | BEEP = "print -beep" 18 | BYE = "quit" 19 | C = "buffer clear" 20 | CHAT = "dcc chat" 21 | CL = "buffer clear" 22 | CLOSE = "buffer close" 23 | EXIT = "quit" 24 | IG = "ignore" 25 | J = "join" 26 | K = "kick" 27 | KB = "kickban" 28 | LEAVE = "part" 29 | M = "msg" 30 | MSGBUF = "command -buffer $1 * /input send $2-" 31 | MUB = "unban *" 32 | N = "names" 33 | Q = "query" 34 | REDRAW = "window refresh" 35 | SAY = "msg *" 36 | SIGNOFF = "quit" 37 | T = "topic" 38 | UB = "unban" 39 | UMODE = "mode $nick" 40 | V = "command core version" 41 | W = "who" 42 | WC = "window merge" 43 | WI = "whois" 44 | WII = "whois $1 $1" 45 | WW = "whowas" 46 | 47 | [completion] 48 | MSGBUF = "%(buffers_plugins_names)" 49 | -------------------------------------------------------------------------------- /weechat/xfer.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- xfer.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | auto_open_buffer = on 14 | progress_bar_size = 20 15 | pv_tags = "notify_private" 16 | 17 | [color] 18 | status_aborted = lightred 19 | status_active = lightblue 20 | status_connecting = yellow 21 | status_done = lightgreen 22 | status_failed = lightred 23 | status_waiting = lightcyan 24 | text = default 25 | text_bg = default 26 | text_selected = white 27 | 28 | [network] 29 | blocksize = 65536 30 | fast_send = on 31 | own_ip = "" 32 | port_range = "" 33 | send_ack = on 34 | speed_limit_recv = 0 35 | speed_limit_send = 0 36 | timeout = 300 37 | 38 | [file] 39 | auto_accept_chats = off 40 | auto_accept_files = off 41 | auto_accept_nicks = "" 42 | auto_check_crc32 = off 43 | auto_rename = on 44 | auto_resume = on 45 | convert_spaces = on 46 | download_path = "%h/xfer" 47 | download_temporary_suffix = ".part" 48 | upload_path = "~" 49 | use_nick_in_filename = on 50 | -------------------------------------------------------------------------------- /i3/py3status/msmtpq.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Display the number of messages in the msmtp queue. 4 | 5 | Configuration parameters: 6 | queue: The location of the msmtp queue (default ~/.msmtp.queue) 7 | hide_empty: Should a message be displayed when the queue is empty (default False) 8 | """ 9 | import os 10 | 11 | 12 | class Py3status: 13 | 14 | queue = "~/.msmtp.queue" 15 | hide_empty = True 16 | 17 | def queue_count(self, i3s_output_list, i3s_config): 18 | directory = os.path.expanduser(self.queue) 19 | num = len([name for name in os.listdir(directory) 20 | if os.path.isfile(os.path.join(directory, name)) 21 | and os.path.splitext(name)[-1] == '.mail']) 22 | 23 | full_text = 'msmtpq: %s' % (num) 24 | color = self.py3.COLOR_BAD 25 | 26 | if num == 0: 27 | color = self.py3.COLOR_GOOD 28 | if self.hide_empty: 29 | full_text = '' 30 | 31 | return { 32 | 'full_text': full_text, 33 | 'cached_until': self.py3.time_in(i3s_config['interval']), 34 | 'color': color, 35 | } 36 | -------------------------------------------------------------------------------- /vim/ftplugin/mail.vim: -------------------------------------------------------------------------------- 1 | " Vim filetype plugin file 2 | " Language: Mail 3 | " Maintainer: Bram Moolenaar 4 | " Last Change: 2009 Jun 03 5 | 6 | " Only do this when not done yet for this buffer 7 | if exists("b:did_ftplugin") 8 | finish 9 | endif 10 | let b:did_ftplugin = 1 11 | 12 | let b:undo_ftplugin = "setl modeline< tw< fo<" 13 | 14 | " Don't use modelines in e-mail messages, avoid trojan horses and nasty 15 | " "jokes" (e.g., setting 'textwidth' to 5). 16 | setlocal nomodeline 17 | 18 | " many people recommend keeping e-mail messages 72 chars wide 19 | " set color column at 72 20 | if &tw == 0 21 | setlocal tw=72 22 | endif 23 | setlocal colorcolumn=+1 24 | 25 | " Set 'formatoptions' so that Mutt can send format=flowed messages 26 | setlocal fo+=aw 27 | 28 | " Add mappings, unless the user doesn't want this. 29 | if !exists("no_plugin_maps") && !exists("no_mail_maps") 30 | " Quote text by inserting "> " 31 | if !hasmapto('MailQuote') 32 | vmap q MailQuote 33 | nmap q MailQuote 34 | endif 35 | vnoremap MailQuote :s/^/> /:noh`` 36 | nnoremap MailQuote :.,$s/^/> /:noh`` 37 | endif 38 | -------------------------------------------------------------------------------- /config/starship.toml: -------------------------------------------------------------------------------- 1 | format = """ 2 | $battery\ 3 | $username\ 4 | $hostname\ 5 | $directory\ 6 | $git_branch\ 7 | $git_state\ 8 | $git_status\ 9 | $cmd_duration\ 10 | $line_break\ 11 | $python\ 12 | $character""" 13 | 14 | [directory] 15 | style = "blue" 16 | truncate_to_repo = false 17 | 18 | [character] 19 | success_symbol = "[❯](purple)" 20 | error_symbol = "[❯](red)" 21 | vimcmd_symbol = "[❮](green)" 22 | 23 | [git_branch] 24 | format = "[$branch]($style)" 25 | style = "bright-black" 26 | ignore_branches = ['master', 'main'] 27 | 28 | [git_status] 29 | format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style) " 30 | style = "cyan" 31 | conflicted = "​" 32 | untracked = "​" 33 | modified = "​" 34 | staged = "​" 35 | renamed = "​" 36 | deleted = "​" 37 | stashed = "≡" 38 | 39 | [git_state] 40 | format = '\([$state( $progress_current/$progress_total)]($style)\) ' 41 | style = "bright-black" 42 | 43 | [cmd_duration] 44 | format = "[$duration]($style) " 45 | style = "yellow" 46 | 47 | [python] 48 | format = "[$virtualenv]($style) " 49 | style = "bright-black" 50 | 51 | [[battery.display]] 52 | threshold = 20 53 | 54 | [[battery.display]] 55 | threshold = 50 56 | style = 'bold yellow' 57 | -------------------------------------------------------------------------------- /config/mutt/print.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # http://terminalmage.net/2011/10/12/printing-to-pdf-in-mutt/ 3 | 4 | build_dir() { 5 | # Create the output directory. 6 | if [ -n "$XDG_RUNTIME_DIR" ]; then 7 | dir=$XDG_RUNTIME_DIR/mutt 8 | else 9 | dir=/tmp/$USER/mutt 10 | fi 11 | mkdir -p "$dir" 12 | } 13 | 14 | check() { 15 | # Check that dependencies are installed. 16 | if ! command -v enscript >/dev/null || ! command -v ps2pdf >/dev/null; then 17 | echo "ERROR: both enscript and ps2pdf must be installed" 1>&2 18 | exit 1 19 | fi 20 | } 21 | 22 | while getopts "s" opt; do 23 | case $opt in 24 | s) 25 | SAVEFILE=1 26 | ;; 27 | esac 28 | done 29 | 30 | # Remove the processed options from the arguments. 31 | shift "$((OPTIND - 1))" 32 | 33 | # Get the input file. 34 | INPUT="$1" 35 | 36 | check 37 | build_dir 38 | 39 | tmpfile="$(mktemp -p "$dir" mutt_XXXXXXXX.pdf)" 40 | iconv -c -f utf-8 -t ISO-8859-1 $INPUT | enscript --font=Courier8 -G2r -p - 2>/dev/null | ps2pdf - "$tmpfile" 41 | if [ -n "$SAVEFILE" ]; then 42 | mv "$tmpfile" "$HOME" 43 | else 44 | xdg-open "$tmpfile" >/dev/null 2>&1 & 45 | sleep 1 46 | rm "$tmpfile" 47 | fi 48 | -------------------------------------------------------------------------------- /config/autorandr/office/setup: -------------------------------------------------------------------------------- 1 | DP-3 00ffffffffffff0010ac794255354e4214220104b53c22783adf15ad5044ad250f5054a54b00d100d1c0b300a94081808100714fe1c04dd000a0f0703e803020350055502100001a000000ff00394d32374e30340a2020202020000000fc0044454c4c20553237323351450a000000fd0017560f8c36010a2020202020200159020317f14a101f20041312110302012309070783010000a36600a0f0701f803020350055502100001a565e00a0a0a029503020350055502100001a114400a080001f503020360055502100001abf1600a08038134030203a0055502100001a0000000000000000000000000000000000000000000000000000000000000000a9 2 | eDP-1 00ffffffffffff0009e5b40c0000000034210104a51d1378070aa5a7554b9f250c505400000001010101010101010101010101010101119140a0b0807470302036001dbe1000001a000000fd001e78f4f44a010a202020202020000000fe00424f45204e4a0a202020202020000000fc004e4531333541314d2d4e59310a023170207902002000139a0e00b40c000000003417074e4531334e593121001d220b6c07400b8007886efa54b8749f56820c023554d05fd05f483512782200144c550b883f0b9f002f001f007f077300020005002500094c550b4c550b1e7880810013721a000003011e7800006a426a427800000000000000000000000000004f907020790000260009020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003690 3 | -------------------------------------------------------------------------------- /config/vdirsyncer/config: -------------------------------------------------------------------------------- 1 | [general] 2 | status_path = "~/.vdirsyncer/status/" 3 | 4 | [pair contacts] 5 | a = "contacts_local" 6 | b = "contacts_remote" 7 | collections = ["from b"] 8 | 9 | [storage contacts_local] 10 | type = "filesystem" 11 | path = "~/library/contacts/" 12 | fileext = ".vcf" 13 | 14 | [storage contacts_remote] 15 | type = "carddav" 16 | url = "https://carddav.fastmail.com" 17 | username = "peterhogg@fastmail.fm" 18 | password.fetch = ["command", "keyring", "get", "mail-havenaut", "carddav"] 19 | verify_fingerprint = "92:08:76:83:DD:FC:6B:93:74:31:F0:39:45:01:A6:46:8A:64:27:17:0A:A2:26:33:CA:54:BC:52:64:0D:EB:7D" 20 | 21 | [pair calendar] 22 | a = "calendar_local" 23 | b = "calendar_remote" 24 | collections = ["from b"] 25 | 26 | [storage calendar_local] 27 | type = "filesystem" 28 | path = "~/library/calendars/" 29 | fileext = ".ics" 30 | 31 | [storage calendar_remote] 32 | type = "caldav" 33 | url = "https://caldav.fastmail.com" 34 | username = "peterhogg@fastmail.fm" 35 | password.fetch = ["command", "keyring", "get", "mail-havenaut", "caldav"] 36 | verify_fingerprint = "92:08:76:83:DD:FC:6B:93:74:31:F0:39:45:01:A6:46:8A:64:27:17:0A:A2:26:33:CA:54:BC:52:64:0D:EB:7D" 37 | start_date = "datetime.now() - timedelta(days=365)" 38 | end_date = "datetime.now() + timedelta(days=365)" 39 | -------------------------------------------------------------------------------- /weechat/buflist.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- buflist.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | add_newline = on 14 | auto_scroll = 50 15 | display_conditions = "${buffer.hidden}==0" 16 | enabled = on 17 | mouse_jump_visited_buffer = off 18 | mouse_move_buffer = on 19 | mouse_wheel = on 20 | nick_prefix = off 21 | nick_prefix_empty = on 22 | signals_refresh = "" 23 | sort = "number,-active" 24 | 25 | [format] 26 | buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${name}" 27 | buffer_current = "${color:brown,blue}${format_buffer}" 28 | hotlist = " ${color:green}(${hotlist}${color:green})" 29 | hotlist_highlight = "${color:163}" 30 | hotlist_low = "${color:white}" 31 | hotlist_message = "${color:229}" 32 | hotlist_none = "${color:default}" 33 | hotlist_private = "${color:121}" 34 | hotlist_separator = "${color:default}," 35 | indent = " " 36 | lag = " ${color:green}[${color:brown}${lag}${color:green}]" 37 | name = "${name}" 38 | nick_prefix = "${color_nick_prefix}${nick_prefix}" 39 | number = "${color:green}${number}${if:${number_displayed}?.: }" 40 | -------------------------------------------------------------------------------- /weechat/relay.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- relay.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | auto_open_buffer = on 14 | raw_messages = 256 15 | 16 | [color] 17 | client = cyan 18 | status_active = lightblue 19 | status_auth_failed = lightred 20 | status_connecting = yellow 21 | status_disconnected = lightred 22 | status_waiting_auth = brown 23 | text = default 24 | text_bg = default 25 | text_selected = white 26 | 27 | [network] 28 | allow_empty_password = off 29 | allowed_ips = "" 30 | bind_address = "" 31 | clients_purge_delay = 0 32 | compression_level = 6 33 | ipv6 = on 34 | max_clients = 5 35 | password = "" 36 | ssl_cert_key = "%h/ssl/relay.pem" 37 | ssl_priorities = "NORMAL:-VERS-SSL3.0" 38 | totp_secret = "" 39 | totp_window = 0 40 | websocket_allowed_origins = "" 41 | 42 | [irc] 43 | backlog_max_minutes = 1440 44 | backlog_max_number = 256 45 | backlog_since_last_disconnect = on 46 | backlog_since_last_message = off 47 | backlog_tags = "irc_privmsg" 48 | backlog_time_format = "[%H:%M] " 49 | 50 | [weechat] 51 | commands = "" 52 | 53 | [port] 54 | 55 | [path] 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore vim's netrw history 2 | .netrwhist 3 | 4 | # Ignore vimperator's info directory 5 | vimperator/info 6 | 7 | # Ignore vim's spelling word lists 8 | vim/spell 9 | 10 | # Ignore vim bundles, except Vundle 11 | vim/bundle/* 12 | !vim/bundle/vundle 13 | 14 | # Ignore tmux plugins, except Tmux Plugin Manager 15 | tmux/plugins/* 16 | !tmux/plugins/tpm 17 | !tmux/plugins/tmux-urlview 18 | 19 | # Ignore tmux resurrection 20 | tmux/resurrect/* 21 | 22 | # Ignore all xmonad files, except the config 23 | xmonad/* 24 | !xmonad/xmonad.hs 25 | 26 | # Ignore mutt mailboxes 27 | mutt/mailboxes 28 | 29 | # Ignore mutt work-specific settings 30 | mutt/workrc 31 | 32 | # Ignore the beets runtime state 33 | config/beets/state.pickle 34 | 35 | # Ignore rofi-pass last password used 36 | config/rofi-pass/last_used 37 | 38 | # Ignore ncmpcpp error log 39 | ncmpcpp/error.log 40 | 41 | # Ignore weechat stuff 42 | weechat/gs/ 43 | weechat/xfer/ 44 | weechat/logs/ 45 | weechat/script/*gz 46 | weechat/plugins/wnot.so 47 | weechat/*.log 48 | weechat/urlserver_list.txt 49 | weechat/sec.conf 50 | weechat/slack.cache 51 | 52 | # Ignore ranger stuff 53 | config/ranger/bookmarks 54 | config/ranger/history 55 | config/ranger/tagged 56 | 57 | # Ignore mpd stuff 58 | config/mpd/playlists 59 | config/mpd/database 60 | config/mpd/log 61 | config/mpd/pid 62 | config/mpd/state 63 | sticker.sql 64 | -------------------------------------------------------------------------------- /config/khal/config: -------------------------------------------------------------------------------- 1 | [calendars] 2 | [[Work]] 3 | path = ~/library/calendars/91572a29-41df-4c94-b296-38e9c5494116 4 | color = light blue 5 | 6 | [[Work: IT]] 7 | path = ~/library/calendars/832472f1-cc4a-4b47-8810-0b8c1f04f6e6 8 | color = dark blue 9 | readonly = True 10 | 11 | [[Work: Staff]] 12 | path = ~/library/calendars/de342c24-2a78-43a2-b6d5-7dfb66f21afc 13 | color = dark blue 14 | readonly = True 15 | 16 | [[Personal]] 17 | path = ~/library/calendars/9b403768-1a13-4c2c-a4b9-798cddf7aba7 18 | color = dark red 19 | 20 | [[SF Radio]] 21 | path = ~/library/calendars/30b85b78-2473-406a-a736-1095623753df 22 | color = dark green 23 | 24 | [[Holidays]] 25 | path = ~/library/calendars/8a84af85-04f8-4cf6-a1f4-9c31765037ae 26 | color = dark green 27 | readonly = True 28 | 29 | [[Birthdays]] 30 | path = ~/library/contacts/Default 31 | type = birthdays 32 | color = dark green 33 | 34 | [locale] 35 | longdateformat = %Y-%m-%d 36 | longdatetimeformat = %Y-%m-%d %H:%M 37 | dateformat = %m-%d 38 | datetimeformat = %m-%d %H:%M 39 | 40 | [default] 41 | default_calendar = Personal 42 | print_new = event 43 | highlight_event_days = True 44 | timedelta = 3d 45 | 46 | [highlight_days] 47 | color = light blue 48 | multiple = dark red 49 | 50 | 51 | [keybindings] 52 | external_edit = E 53 | save = w 54 | -------------------------------------------------------------------------------- /config/termite/config: -------------------------------------------------------------------------------- 1 | [options] 2 | resize_grip = false 3 | scroll_on_output = false 4 | scroll_on_keystroke = true 5 | audible_bell = false 6 | visible_bell = true 7 | mouse_autohide = false 8 | allow_bold = true 9 | dynamic_title = true 10 | urgent_on_bell = true 11 | clickable_url = true 12 | font = Inconsolata Regular 14 13 | scrollback_lines = 1000 14 | search_wrap = true 15 | 16 | cursor_blink = off 17 | 18 | # "block", "underline" or "ibeam" 19 | cursor_shape = block 20 | 21 | browser = xdg-open 22 | 23 | # Gruvbox 24 | # https://github.com/morhetz/gruvbox-contrib/blob/master/termite/gruvbox-dark 25 | 26 | [colors] 27 | # hard contrast: background = #1d2021 28 | background = #282828 29 | # soft contrast: background = #32302f 30 | foreground = #ebdbb2 31 | foreground_bold = #ebdbb2 32 | 33 | # dark0 + gray 34 | color0 = #282828 35 | color8 = #928374 36 | 37 | # neutral_red + bright_red 38 | color1 = #cc241d 39 | color9 = #fb4934 40 | 41 | # neutral_green + bright_green 42 | color2 = #98971a 43 | color10 = #b8bb26 44 | 45 | # neutral_yellow + bright_yellow 46 | color3 = #d79921 47 | color11 = #fabd2f 48 | 49 | # neutral_blue + bright_blue 50 | color4 = #458588 51 | color12 = #83a598 52 | 53 | # neutral_purple + bright_purple 54 | color5 = #b16286 55 | color13 = #d3869b 56 | 57 | # neutral_aqua + faded_aqua 58 | color6 = #689d6a 59 | color14 = #8ec07c 60 | 61 | # light4 + light1 62 | color7 = #a89984 63 | color15 = #ebdbb2 64 | -------------------------------------------------------------------------------- /weechat/script.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- script.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | columns = "%s %n %V %v %u | %d | %t" 14 | diff_color = on 15 | diff_command = "auto" 16 | display_source = on 17 | quiet_actions = on 18 | sort = "p,n" 19 | translate_description = on 20 | use_keys = on 21 | 22 | [color] 23 | status_autoloaded = cyan 24 | status_held = white 25 | status_installed = lightcyan 26 | status_obsolete = lightmagenta 27 | status_popular = yellow 28 | status_running = lightgreen 29 | status_unknown = lightred 30 | text = default 31 | text_bg = default 32 | text_bg_selected = red 33 | text_date = default 34 | text_date_selected = white 35 | text_delimiters = default 36 | text_description = default 37 | text_description_selected = white 38 | text_extension = default 39 | text_extension_selected = white 40 | text_name = cyan 41 | text_name_selected = lightcyan 42 | text_selected = white 43 | text_tags = brown 44 | text_tags_selected = yellow 45 | text_version = magenta 46 | text_version_loaded = default 47 | text_version_loaded_selected = white 48 | text_version_selected = lightmagenta 49 | 50 | [scripts] 51 | autoload = on 52 | cache_expire = 1440 53 | download_timeout = 30 54 | hold = "" 55 | path = "%h/script" 56 | url = "https://weechat.org/files/plugins.xml.gz" 57 | -------------------------------------------------------------------------------- /config/autorandr/home/setup: -------------------------------------------------------------------------------- 1 | DP-7 00ffffffffffff0004728b0a3322503219210104c53c2278f90125ab4e37ba230c5054a74b8081408180714fa9c0b300b33cd1fc950008e80030f2705a80b0584a0055502100001a000000fd003090ffff95010a202020202020000000fc0058563237354b2050330a202020000000ff00313332353032323333344841310210020334f123090707830100004b9004030112131f3f61765fe2007fe305c000e60607018b771f6d1a00000209309000048b218b2198e200a0a0a029503020350055502100001e386100a0a0a055503020340055502100001a000000000000000000000000000000000000000000000000000000000000000000000000000000f270127903000301144a0b0204ff0e67012f801f006f0836000200040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000990 2 | eDP-1 00ffffffffffff0009e5b40c0000000034210104a51d1378070aa5a7554b9f250c505400000001010101010101010101010101010101119140a0b0807470302036001dbe1000001a000000fd001e78f4f44a010a202020202020000000fe00424f45204e4a0a202020202020000000fc004e4531333541314d2d4e59310a023170207902002000139a0e00b40c000000003417074e4531334e593121001d220b6c07400b8007886efa54b8749f56820c023554d05fd05f483512782200144c550b883f0b9f002f001f007f077300020005002500094c550b4c550b1e7880810013721a000003011e7800006a426a427800000000000000000000000000004f907020790000260009020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003690 3 | -------------------------------------------------------------------------------- /config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set database sqlite 2 | 3 | set statusbar-h-padding 10 4 | set statusbar-v-padding 10 5 | 6 | set window-title-home-tilde true 7 | set statusbar-home-tilde true 8 | 9 | set selection-clipboard clipboard 10 | 11 | set font "PragmataPro Liga 12" 12 | 13 | map zoom in 14 | map zoom out 15 | 16 | map \c set recolor 17 | 18 | ## Colors 19 | # Base16 Gruvbox dark, medium 20 | # Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) 21 | 22 | set default-bg "#282828" 23 | set default-fg "#3c3836" 24 | 25 | set statusbar-fg "#bdae93" 26 | set statusbar-bg "#504945" 27 | 28 | set inputbar-bg "#282828" 29 | set inputbar-fg "#fbf1c7" 30 | 31 | set notification-bg "#282828" 32 | set notification-fg "#fbf1c7" 33 | 34 | set notification-error-bg "#282828" 35 | set notification-error-fg "#fb4934" 36 | 37 | set notification-warning-bg "#282828" 38 | set notification-warning-fg "#fb4934" 39 | 40 | set highlight-color "#fabd2f" 41 | set highlight-active-color "#83a598" 42 | 43 | set completion-bg "#3c3836" 44 | set completion-fg "#83a598" 45 | 46 | set completion-highlight-fg "#fbf1c7" 47 | set completion-highlight-bg "#83a598" 48 | 49 | set recolor-lightcolor "#282828" 50 | set recolor-darkcolor "#ebdbb2" 51 | 52 | set recolor "false" 53 | set recolor-keephue "false" 54 | -------------------------------------------------------------------------------- /config/i3status/config: -------------------------------------------------------------------------------- 1 | # i3status configuration file. 2 | # see "man i3status" for documentation. 3 | 4 | # It is important that this file is edited as UTF-8. 5 | # The following line should contain a sharp s: 6 | # ß 7 | # If the above line is not correctly displayed, fix your editor first! 8 | 9 | general { 10 | colors = true 11 | color_good = "#a3be8c" 12 | color_bad = "#bf616a" 13 | interval = 5 14 | } 15 | 16 | order += "msmtpq" 17 | order += "backlight" 18 | order += "volume master" 19 | order += "wireless wlp1s0" 20 | order += "ethernet eth0" 21 | order += "battery 1" 22 | order += "load" 23 | order += "tztime local" 24 | 25 | backlight { 26 | cache_timeout = 5 27 | } 28 | 29 | wireless wlp1s0 { 30 | format_up = "W: (%quality at %essid) %ip" 31 | format_down = "W: down" 32 | } 33 | 34 | ethernet enp195s0f4u1u3 { 35 | # if you use %speed, i3status requires root privileges 36 | format_up = "E: %ip (%speed)" 37 | format_down = "E: down" 38 | } 39 | 40 | battery 1 { 41 | format = "%status %percentage %remaining" 42 | format_down = "No battery" 43 | integer_battery_capacity = true 44 | status_chr = "⚇ CHR" 45 | status_bat = "⚡ BAT" 46 | status_full = "☻ FULL" 47 | low_threshold = 10 48 | path = "/sys/class/power_supply/BAT%d/uevent" 49 | } 50 | 51 | tztime local { 52 | format = "%Y-%m-%d %a %H:%M:%S" 53 | } 54 | 55 | load { 56 | format = "%5min" 57 | } 58 | 59 | volume master { 60 | format = "♪: %volume" 61 | device = "default" 62 | mixer = "Master" 63 | mixer_idx = 0 64 | } 65 | -------------------------------------------------------------------------------- /config/mutt/vim-keybindings.rc: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------ 2 | # Vi Key Bindings 3 | #------------------------------------------------------------ 4 | 5 | # Moving around 6 | bind attach,browser,index g noop 7 | bind attach,browser,index gg first-entry 8 | bind attach,browser,index G last-entry 9 | bind pager g noop 10 | bind pager gg top 11 | bind pager G bottom 12 | bind pager k previous-line 13 | bind pager j next-line 14 | 15 | # Scrolling 16 | bind attach,browser,pager,index \CF next-page 17 | bind attach,browser,pager,index \CB previous-page 18 | bind attach,browser,pager,index \Cu half-up 19 | bind attach,browser,pager,index \Cd half-down 20 | bind browser,pager \Ce next-line 21 | bind browser,pager \Cy previous-line 22 | bind index \Ce next-line 23 | bind index \Cy previous-line 24 | 25 | bind pager,index d noop 26 | bind pager,index dd delete-message 27 | 28 | # Mail & Reply 29 | #bind index \Cm list-reply # Doesn't work currently 30 | 31 | # Threads 32 | bind browser,pager,index N search-opposite 33 | bind pager,index dT delete-thread 34 | bind pager,index dt delete-subthread 35 | bind pager,index gt next-thread 36 | bind pager,index gT previous-thread 37 | bind index za collapse-thread 38 | bind index zA collapse-all # Missing :folddisable/foldenable 39 | -------------------------------------------------------------------------------- /mbsyncrc: -------------------------------------------------------------------------------- 1 | ############ 2 | # Havenaut # 3 | ############ 4 | 5 | IMAPAccount havenaut 6 | Host mail.messagingengine.com 7 | Port 993 8 | User peterhogg@fastmail.fm 9 | TLSType IMAPS 10 | CertificateFile /etc/ssl/certs/ca-certificates.crt 11 | PassCmd "keyring get mail-havenaut imap" 12 | 13 | IMAPStore havenaut-remote 14 | Account havenaut 15 | 16 | MaildirStore havenaut-local 17 | Path ~/mail/Havenaut/ 18 | Inbox ~/mail/Havenaut/INBOX 19 | SubFolders Verbatim 20 | 21 | Channel havenaut 22 | Far :havenaut-remote: 23 | Near :havenaut-local: 24 | Create Both 25 | SyncState * 26 | Patterns * 27 | 28 | 29 | ####### 30 | # TAD # 31 | ####### 32 | 33 | IMAPAccount tad 34 | Host imap.gmail.com 35 | User phogg@tripleaughtdesign.com 36 | TLSType IMAPS 37 | CertificateFile /etc/ssl/certs/ca-certificates.crt 38 | PassCmd "keyring get mail-tad imap" 39 | 40 | IMAPStore tad-remote 41 | Account tad 42 | 43 | MaildirStore tad-local 44 | Path ~/mail/TAD/ 45 | Inbox ~/mail/TAD/INBOX 46 | 47 | Channel tad-inbox 48 | Far ":tad-remote:INBOX" 49 | Near ":tad-local:INBOX" 50 | Create Both 51 | SyncState * 52 | 53 | Channel tad-drafts 54 | Far ":tad-remote:[Gmail]/Drafts" 55 | Near ":tad-local:drafts" 56 | Create Both 57 | SyncState * 58 | 59 | Channel tad-sent 60 | Far ":tad-remote:[Gmail]/Sent Mail" 61 | Near ":tad-local:sent" 62 | Create Both 63 | SyncState * 64 | 65 | Channel tad-flagged 66 | Far ":tad-remote:[Gmail]/Starred" 67 | Near ":tad-local:flagged" 68 | Create Both 69 | SyncState * 70 | 71 | 72 | Group tad 73 | Channel tad-inbox 74 | Channel tad-drafts 75 | Channel tad-sent 76 | Channel tad-flagged 77 | -------------------------------------------------------------------------------- /msmtprc: -------------------------------------------------------------------------------- 1 | defaults 2 | auth on 3 | tls on 4 | logfile ~/log/msmtp.log 5 | 6 | # Havenaut (Tor) 7 | account havenaut-tor 8 | host smtp.fastmail.com 9 | port 587 10 | user peterhogg@fastmail.fm 11 | passwordeval keyring get mail-havenaut smtp 12 | tls_fingerprint 92:08:76:83:DD:FC:6B:93:74:31:F0:39:45:01:A6:46:8A:64:27:17:0A:A2:26:33:CA:54:BC:52:64:0D:EB:7D 13 | from peter@havenaut.net 14 | proxy_host 127.0.0.1 15 | proxy_port 9050 16 | 17 | # Havenaut (Tunnel) 18 | account havenaut-tunnel 19 | host localhost 20 | port 1090 21 | user peterhogg@fastmail.fm 22 | passwordeval keyring get mail-havenaut smtp 23 | tls_fingerprint 92:08:76:83:DD:FC:6B:93:74:31:F0:39:45:01:A6:46:8A:64:27:17:0A:A2:26:33:CA:54:BC:52:64:0D:EB:7D 24 | from peter@havenaut.net 25 | 26 | # Havenaut 27 | account havenaut 28 | host smtp.fastmail.com 29 | port 587 30 | user peterhogg@fastmail.fm 31 | passwordeval keyring get mail-havenaut smtp 32 | tls_trust_file /etc/ssl/certs/ca-certificates.crt 33 | from peter@havenaut.net 34 | 35 | # SSH Tunnel (TAD) 36 | account tad-tunnel 37 | host localhost 38 | port 1091 39 | user phogg@tripleaughtdesign.com 40 | passwordeval keyring get mail-tad smtp 41 | from peter@tripleaughtdesign.com 42 | tls_host_override smtp.gmail.com 43 | 44 | # TAD 45 | account tad 46 | host smtp.gmail.com 47 | port 587 48 | user phogg@tripleaughtdesign.com 49 | passwordeval keyring get mail-tad smtp 50 | from peter@tripleaughtdesign.com 51 | tls_trust_file /etc/ssl/certs/ca-certificates.crt 52 | 53 | # Set a default account 54 | account default : havenaut-tor 55 | -------------------------------------------------------------------------------- /tmux.conf: -------------------------------------------------------------------------------- 1 | ######## 2 | # Base # 3 | ######## 4 | 5 | # Set the prefix key to Ctrl-a. 6 | unbind C-b 7 | set -g prefix C-a 8 | 9 | ######## 10 | # Misc # 11 | ######## 12 | 13 | # Choose the session. 14 | bind S choose-session 15 | 16 | # Set window notifications. 17 | setw -g monitor-activity on 18 | set -g visual-activity off 19 | 20 | # Less stretching to get to the first item. 21 | set -g base-index 1 22 | setw -g pane-base-index 1 23 | 24 | # Enable mouse mode. 25 | set -g mouse on 26 | 27 | # Enable mouse scrollback. 28 | bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'" 29 | bind -n WheelDownPane select-pane -t= \; send-keys -M 30 | 31 | # Vi mode keys. 32 | setw -g mode-keys vi 33 | 34 | # Vim-like copy mode. 35 | bind-key ESCAPE copy-mode 36 | bind-key -T copy-mode-vi 'v' send -X begin-selection 37 | bind-key -T copy-mode-vi 'y' send -X copy-selection 38 | 39 | # Copy to system clipboard 40 | bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel "xclip -selection clipboard" 41 | 42 | # Set titles 43 | set -g set-titles on 44 | setw -g automatic-rename on 45 | 46 | # Move window left. 47 | bind-key -r < swap-window -t -1\; select-window -t -1 48 | 49 | # Move window right. 50 | bind-key -r > swap-window -t +1\; select-window -t +1 51 | 52 | # Rebind fingers jump key 53 | set -g @fingers-jump-key X 54 | 55 | # Match decimal numbers. 56 | set -g @fingers-pattern-0 '-?(?:\d+\.\d+|\.\d+)(?![a-zA-Z])' 57 | 58 | ########## 59 | # Plugin # 60 | ########## 61 | 62 | # Install plugins 63 | set -g @plugin 'tmux-plugins/tmux-pain-control' 64 | set -g @plugin 'tmux-plugins/tmux-sensible' 65 | set -g @plugin 'Morantron/tmux-fingers' 66 | 67 | # Initialize TPM 68 | run '~/.tmux/plugins/tpm/tpm' 69 | 70 | # Colors 71 | source-file $HOME/library/src/base16-tmux/colors/base16-gruvbox-dark-medium.conf 72 | -------------------------------------------------------------------------------- /config/tig/vim.tigrc: -------------------------------------------------------------------------------- 1 | # Vim-style keybindings for Tig 2 | 3 | bind generic h scroll-left 4 | bind generic j move-down 5 | bind generic k move-up 6 | bind generic l scroll-right 7 | 8 | bind generic g none 9 | bind generic gg move-first-line 10 | bind generic gj next 11 | bind generic gk previous 12 | bind generic gp parent 13 | bind generic gP back 14 | bind generic gn view-next 15 | 16 | bind main G move-last-line 17 | bind generic G move-last-line 18 | 19 | bind generic move-page-down 20 | bind generic move-page-up 21 | 22 | bind generic v none 23 | bind generic vm view-main 24 | bind generic vd view-diff 25 | bind generic vl view-log 26 | bind generic vt view-tree 27 | bind generic vb view-blob 28 | bind generic vx view-blame 29 | bind generic vr view-refs 30 | bind generic vs view-status 31 | bind generic vu view-stage 32 | bind generic vy view-stash 33 | bind generic vg view-grep 34 | bind generic vp view-pager 35 | bind generic vh view-help 36 | 37 | bind generic o none 38 | bind generic oo :toggle sort-order 39 | bind generic os :toggle sort-field 40 | bind generic on :toggle line-number 41 | bind generic od :toggle date 42 | bind generic oa :toggle author 43 | bind generic og :toggle line-graphics 44 | bind generic of :toggle file-name 45 | bind generic op :toggle ignore-space 46 | bind generic oi :toggle id 47 | bind generic ot :toggle commit-title-overflow 48 | bind generic oF :toggle file-filter 49 | bind generic or :toggle commit-title-refs 50 | 51 | bind generic @ none 52 | bind generic @j :/^@@ 53 | bind generic @k :?^@@ 54 | bind generic @- :toggle diff-context -1 55 | bind generic @+ :toggle diff-context +1 56 | 57 | bind status u none 58 | bind stage u none 59 | bind generic uu status-update 60 | bind generic ur status-revert 61 | bind generic um status-merge 62 | bind generic ul stage-update-line 63 | bind generic us stage-split-chunk 64 | 65 | bind generic c none 66 | bind generic cc !git commit 67 | bind generic ca !?@git commit --amend --no-edit 68 | 69 | bind generic K view-help 70 | bind generic view-next 71 | -------------------------------------------------------------------------------- /Xresources: -------------------------------------------------------------------------------- 1 | ! font settings 2 | Xft.dpi: 144 3 | Xft.antialias: true 4 | Xft.hinting: true 5 | Xft.rgba: rgb 6 | Xft.hintstyle: hintslight 7 | 8 | ! reclaim ctrl+shift 9 | URxvt.iso14755: false 10 | 11 | ! disable the scrollbar 12 | URxvt.scrollBar: none 13 | 14 | ! font 15 | URxvt.font: xft:PragmataProMonoLiga:size=12 16 | 17 | ! enabled clipboard and selectable URLs 18 | URxvt.perl-ext-common: default,clipboard,url-select 19 | 20 | ! set copy/paste shortcuts 21 | URxvt.keysym.Control-Shift-C: perl:clipboard:copy 22 | URxvt.keysym.Control-Shift-V: perl:clipboard:paste 23 | 24 | ! set a taskbar icon 25 | URxvt.iconFile: /usr/share/icons/oxygen/16x16/apps/utilities-terminal.png 26 | 27 | ! configure selectable URLs 28 | URxvt.keysym.M-u: perl:url-select:select_next 29 | URxvt.url-select.launcher: xdg-open 30 | URxvt.url-select.underline: true 31 | 32 | ! colors 33 | ! Base16 Gruvbox dark, medium 34 | ! Scheme: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) 35 | 36 | #define base00 #282828 37 | #define base01 #3c3836 38 | #define base02 #504945 39 | #define base03 #665c54 40 | #define base04 #bdae93 41 | #define base05 #d5c4a1 42 | #define base06 #ebdbb2 43 | #define base07 #fbf1c7 44 | #define base08 #fb4934 45 | #define base09 #fe8019 46 | #define base0A #fabd2f 47 | #define base0B #b8bb26 48 | #define base0C #8ec07c 49 | #define base0D #83a598 50 | #define base0E #d3869b 51 | #define base0F #d65d0e 52 | 53 | *foreground: base05 54 | #ifdef background_opacity 55 | *background: [background_opacity]base00 56 | #else 57 | *background: base00 58 | #endif 59 | *cursorColor: base05 60 | 61 | *color0: base00 62 | *color1: base08 63 | *color2: base0B 64 | *color3: base0A 65 | *color4: base0D 66 | *color5: base0E 67 | *color6: base0C 68 | *color7: base05 69 | 70 | *color8: base03 71 | *color9: base09 72 | *color10: base01 73 | *color11: base02 74 | *color12: base04 75 | *color13: base06 76 | *color14: base0F 77 | *color15: base07 78 | -------------------------------------------------------------------------------- /gnupg/sks-keyservers.netCA.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIFizCCA3OgAwIBAgIJAK9zyLTPn4CPMA0GCSqGSIb3DQEBBQUAMFwxCzAJBgNV 3 | BAYTAk5PMQ0wCwYDVQQIDARPc2xvMR4wHAYDVQQKDBVza3Mta2V5c2VydmVycy5u 4 | ZXQgQ0ExHjAcBgNVBAMMFXNrcy1rZXlzZXJ2ZXJzLm5ldCBDQTAeFw0xMjEwMDkw 5 | MDMzMzdaFw0yMjEwMDcwMDMzMzdaMFwxCzAJBgNVBAYTAk5PMQ0wCwYDVQQIDARP 6 | c2xvMR4wHAYDVQQKDBVza3Mta2V5c2VydmVycy5uZXQgQ0ExHjAcBgNVBAMMFXNr 7 | cy1rZXlzZXJ2ZXJzLm5ldCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC 8 | ggIBANdsWy4PXWNUCkS3L//nrd0GqN3dVwoBGZ6w94Tw2jPDPifegwxQozFXkG6I 9 | 6A4TK1CJLXPvfz0UP0aBYyPmTNadDinaB9T4jIwd4rnxl+59GiEmqkN3IfPsv5Jj 10 | MkKUmJnvOT0DEVlEaO1UZIwx5WpfprB3mR81/qm4XkAgmYrmgnLXd/pJDAMk7y1F 11 | 45b5zWofiD5l677lplcIPRbFhpJ6kDTODXh/XEdtF71EAeaOdEGOvyGDmCO0GWqS 12 | FDkMMPTlieLA/0rgFTcz4xwUYj/cD5e0ZBuSkYsYFAU3hd1cGfBue0cPZaQH2HYx 13 | Qk4zXD8S3F4690fRhr+tki5gyG6JDR67aKp3BIGLqm7f45WkX1hYp+YXywmEziM4 14 | aSbGYhx8hoFGfq9UcfPEvp2aoc8u5sdqjDslhyUzM1v3m3ZGbhwEOnVjljY6JJLx 15 | MxagxnZZSAY424ZZ3t71E/Mn27dm2w+xFRuoy8JEjv1d+BT3eChM5KaNwrj0IO/y 16 | u8kFIgWYA1vZ/15qMT+tyJTfyrNVV/7Df7TNeWyNqjJ5rBmt0M6NpHG7CrUSkBy9 17 | p8JhimgjP5r0FlEkgg+lyD+V79H98gQfVgP3pbJICz0SpBQf2F/2tyS4rLm+49rP 18 | fcOajiXEuyhpcmzgusAj/1FjrtlynH1r9mnNaX4e+rLWzvU5AgMBAAGjUDBOMB0G 19 | A1UdDgQWBBTkwyoJFGfYTVISTpM8E+igjdq28zAfBgNVHSMEGDAWgBTkwyoJFGfY 20 | TVISTpM8E+igjdq28zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAR 21 | OXnYwu3g1ZjHyley3fZI5aLPsaE17cOImVTehC8DcIphm2HOMR/hYTTL+V0G4P+u 22 | gH+6xeRLKSHMHZTtSBIa6GDL03434y9CBuwGvAFCMU2GV8w92/Z7apkAhdLToZA/ 23 | X/iWP2jeaVJhxgEcH8uPrnSlqoPBcKC9PrgUzQYfSZJkLmB+3jEa3HKruy1abJP5 24 | gAdQvwvcPpvYRnIzUc9fZODsVmlHVFBCl2dlu/iHh2h4GmL4Da2rRkUMlbVTdioB 25 | UYIvMycdOkpH5wJftzw7cpjsudGas0PARDXCFfGyKhwBRFY7Xp7lbjtU5Rz0Gc04 26 | lPrhDf0pFE98Aw4jJRpFeWMjpXUEaG1cq7D641RpgcMfPFvOHY47rvDTS7XJOaUT 27 | BwRjmDt896s6vMDcaG/uXJbQjuzmmx3W2Idyh3s5SI0GTHb0IwMKYb4eBUIpQOnB 28 | cE77VnCYqKvN1NVYAqhWjXbY7XasZvszCRcOG+W3FqNaHOK/n/0ueb0uijdLan+U 29 | f4p1bjbAox8eAOQS/8a3bzkJzdyBNUKGx1BIK2IBL9bn/HravSDOiNRSnZ/R3l9G 30 | ZauX0tu7IIDlRCILXSyeazu0aj/vdT3YFQXPcvt5Fkf5wiNTo53f72/jYEJd6qph 31 | WrpoKqrwGwTpRUCMhYIUt65hsTxCiJJ5nKe39h46sg== 32 | -----END CERTIFICATE----- 33 | -------------------------------------------------------------------------------- /weechat/trigger.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- trigger.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | enabled = on 14 | monitor_strip_colors = off 15 | 16 | [color] 17 | flag_command = lightgreen 18 | flag_conditions = yellow 19 | flag_post_action = lightblue 20 | flag_regex = lightcyan 21 | flag_return_code = lightmagenta 22 | regex = white 23 | replace = cyan 24 | trigger = green 25 | trigger_disabled = red 26 | 27 | [trigger] 28 | beep.arguments = "" 29 | beep.command = "/print -beep" 30 | beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})" 31 | beep.enabled = on 32 | beep.hook = print 33 | beep.post_action = none 34 | beep.regex = "" 35 | beep.return_code = ok 36 | cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" 37 | cmd_pass.command = "" 38 | cmd_pass.conditions = "" 39 | cmd_pass.enabled = on 40 | cmd_pass.hook = modifier 41 | cmd_pass.post_action = none 42 | cmd_pass.regex = "==^((/(msg|m|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" 43 | cmd_pass.return_code = ok 44 | msg_auth.arguments = "5000|irc_message_auth" 45 | msg_auth.command = "" 46 | msg_auth.conditions = "" 47 | msg_auth.enabled = on 48 | msg_auth.hook = modifier 49 | msg_auth.post_action = none 50 | msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" 51 | msg_auth.return_code = ok 52 | server_pass.arguments = "5000|input_text_display;5000|history_add" 53 | server_pass.command = "" 54 | server_pass.conditions = "" 55 | server_pass.enabled = on 56 | server_pass.hook = modifier 57 | server_pass.post_action = none 58 | server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" 59 | server_pass.return_code = ok 60 | -------------------------------------------------------------------------------- /config/qutebrowser/config.py: -------------------------------------------------------------------------------- 1 | import qutebrowser.api.interceptor 2 | 3 | 4 | config.load_autoconfig(False) 5 | 6 | # Enable spellcheck. 7 | c.spellcheck.languages = ["en-US"] 8 | 9 | # Use DuckDuckGo with custom params as home and search. 10 | DDG = "https://duckduckgo.com/?kae=d&k1=-1&kk=-1&kak=-1&kax=-1&kaq=-1&kap=-1&kao=-1&kau=-1&kba=-1" 11 | c.url.start_pages = [DDG] 12 | c.url.searchengines = { 13 | "DEFAULT": "%s&q={}" % DDG, 14 | "ddg": "%s&q={}" % DDG, 15 | } 16 | 17 | # Launch vim in the terminal for editor. 18 | c.editor.command = ['alacritty', '-t', 'edit_text', '-e', 'vim {}'] 19 | 20 | # Load new tabs in the background. 21 | c.tabs.background = True 22 | 23 | # Disable autoplay. 24 | c.content.autoplay = False 25 | 26 | # Do not store cookies after the sesion is closed. 27 | c.content.cookies.store = False 28 | 29 | # Vim-like tab navigation. 30 | config.bind("gT", "tab-prev") 31 | config.bind("gt", "tab-next") 32 | 33 | # Zoom 34 | config.bind("zi", "zoom-in") 35 | config.bind("zo", "zoom-out") 36 | config.bind("z0", "zoom 100") 37 | 38 | # Set default font. 39 | c.fonts.default_family = "PragmataPro Liga" 40 | 41 | # Launch inspector. 42 | config.bind("x", "devtools bottom") 43 | 44 | # Enable/disabled javascript. 45 | config.bind("xjn", "set content.javascript.enabled true") 46 | config.bind("xjf", "set content.javascript.enabled false") 47 | 48 | # Toggle tab pinning. 49 | config.bind("!", "tab-pin") 50 | 51 | # Use ctrl-p to print. 52 | config.bind("", "print") 53 | 54 | # Theme 55 | config.source('theme.config.py') 56 | 57 | # Regardless of the current theme, always use white as the default web page 58 | # background color. 59 | c.colors.webpage.bg = "#ffffff" 60 | 61 | 62 | def rewrite(request: qutebrowser.api.interceptor.Request): 63 | """ 64 | Rewrite domains in URLs. 65 | 66 | Source: http://p.cmpl.cc/10093c50 67 | """ 68 | if request.request_url.host() == 'www.reddit.com': 69 | request.request_url.setHost('old.reddit.com') 70 | 71 | try: 72 | request.redirect(request.request_url) 73 | except: 74 | pass 75 | 76 | qutebrowser.api.interceptor.register(rewrite) 77 | -------------------------------------------------------------------------------- /config/rofi/nord.rasi: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Minimal Nord theme 3 | * Based on https://github.com/devdevdevdevdeo/dotfiles/blob/master/custom-nord.rasi 4 | ******************************************************************************/ 5 | 6 | * { 7 | nord0: #2e3440; 8 | nord1: #3b4252; 9 | nord2: #434c5e; 10 | nord4: #d8dee9; 11 | nord6: #eceff4; 12 | 13 | paddingWidth: 10px; 14 | 15 | font-size: 1px; 16 | border-color: @nord1; 17 | background-color: @nord0; 18 | text-color: @nord4; 19 | margin: 0; 20 | margin-bottom: 0; 21 | margin-top: 0; 22 | spacing: 0; 23 | } 24 | 25 | #listview { 26 | spacing: 0; 27 | scrollbar: true; 28 | margin: 0; 29 | dynamic: true; 30 | 31 | } 32 | 33 | #window { 34 | border: 1; 35 | } 36 | 37 | #mainbox { 38 | border: 0; 39 | padding: 0; 40 | } 41 | 42 | #element { 43 | padding: @paddingWidth; 44 | border: 0 0 1 0; 45 | } 46 | 47 | #element.selected.normal { 48 | background-color: @nord1; 49 | text-color: @nord6; 50 | 51 | border: 0 0 1 0; 52 | } 53 | 54 | #element.alternate.normal { 55 | } 56 | 57 | #element.normal.active { 58 | background-color: @nord2; 59 | } 60 | 61 | #element.alternate.active { 62 | background-color: @nord2; 63 | } 64 | 65 | #element.selected.active { 66 | background-color: @nord1; 67 | text-color: @nord6; 68 | 69 | border: 0 0 1 0; 70 | } 71 | 72 | #inputbar { 73 | border: 0 solid 0 solid 1 solid 0 solid; 74 | margin: 0; 75 | spacing: 0; 76 | } 77 | 78 | #prompt { 79 | padding: @paddingWidth; 80 | border: 0 1 0 0; 81 | } 82 | 83 | #entry { 84 | padding: @paddingWidth; 85 | } 86 | 87 | #scrollbar { 88 | border: 0; 89 | width: 8px; 90 | handle-color: @nord1; 91 | handle-width: 8px; 92 | } 93 | 94 | #scrollbar handle { 95 | border: 1px; 96 | border-color: #ff0000; 97 | } 98 | 99 | #message { 100 | padding: @paddingWidth; 101 | } 102 | 103 | #textbox { 104 | text-color: @nord2; 105 | } 106 | -------------------------------------------------------------------------------- /weechat/buffers.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- buffers.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [color] 13 | current_bg = 0 14 | current_fg = lightcyan 15 | default_bg = default 16 | default_fg = default 17 | hotlist_highlight_bg = default 18 | hotlist_highlight_fg = magenta 19 | hotlist_low_bg = default 20 | hotlist_low_fg = white 21 | hotlist_message_bg = default 22 | hotlist_message_fg = 7 23 | hotlist_private_bg = default 24 | hotlist_private_fg = lightgreen 25 | none_channel_bg = default 26 | none_channel_fg = default 27 | number = white 28 | number_char = lightgreen 29 | prefix_bufname = default 30 | queries_default_bg = default 31 | queries_default_fg = default 32 | queries_highlight_bg = default 33 | queries_highlight_fg = default 34 | queries_message_bg = default 35 | queries_message_fg = default 36 | suffix_bufname = default 37 | whitelist_default_bg = default 38 | whitelist_default_fg = default 39 | whitelist_highlight_bg = default 40 | whitelist_highlight_fg = default 41 | whitelist_low_bg = default 42 | whitelist_low_fg = default 43 | whitelist_message_bg = default 44 | whitelist_message_fg = default 45 | whitelist_private_bg = default 46 | whitelist_private_fg = default 47 | 48 | [look] 49 | core_to_front = off 50 | detach = 600 51 | detach_buffer_immediately = "" 52 | detach_display_window_number = off 53 | detach_displayed_buffers = on 54 | detach_free_content = off 55 | detach_query = off 56 | hide_merged_buffers = server 57 | hotlist_counter = on 58 | immune_detach_buffers = "" 59 | indenting = on 60 | indenting_number = on 61 | jump_prev_next_visited_buffer = off 62 | mark_inactive = off 63 | mouse_move_buffer = on 64 | mouse_wheel = on 65 | name_crop_suffix = "+" 66 | name_size_max = 0 67 | number_char = "." 68 | prefix = off 69 | prefix_bufname = "" 70 | prefix_empty = on 71 | prefix_for_query = "" 72 | short_names = on 73 | show_lag = off 74 | show_number = on 75 | sort = number 76 | suffix_bufname = " " 77 | toggle_bar = on 78 | whitelist_buffers = "" 79 | -------------------------------------------------------------------------------- /offlineimaprc: -------------------------------------------------------------------------------- 1 | [general] 2 | pythonfile = ~/.offlineimap.py 3 | ui = ttyui 4 | accounts = Havenaut, TAD 5 | maxsyncaccounts = 3 6 | 7 | [Account Havenaut] 8 | localrepository = Havenaut-Local 9 | remoterepository = Havenaut-Remote 10 | autorefresh = 5 11 | status_backend = sqlite 12 | 13 | [Account TAD] 14 | localrepository = TAD-Local 15 | remoterepository = TAD-Remote 16 | autorefresh = 5 17 | status_backend = sqlite 18 | 19 | [Repository Havenaut-Local] 20 | type = Maildir 21 | localfolders = ~/mail/Havenaut 22 | nametrans = lambda f: ["INBOX."+f, f][f == "INBOX"] 23 | 24 | [Repository Havenaut-Remote] 25 | type = IMAP 26 | ssl = yes 27 | cert_fingerprint = 958b1601563aef92607a41eb5bad22e3cace8431 28 | remotehost = mail.messagingengine.com 29 | remoteuser = peterhogg@fastmail.fm 30 | remotepasseval = imappasswd('havenaut') 31 | nametrans = lambda foldername: re.sub('^INBOX.', '', foldername) 32 | 33 | [Repository TAD-Local] 34 | type = Maildir 35 | localfolders = ~/mail/TAD 36 | nametrans = lambda folder: {'drafts': '[Gmail]/Drafts', 37 | 'sent': '[Gmail]/Sent Mail', 38 | 'trash': '[Gmail]/Trash', 39 | 'archive': '[Gmail]/All Mail', 40 | }.get(folder, folder) 41 | 42 | [Repository TAD-Remote] 43 | type = Gmail 44 | sslcacertfile = /etc/ssl/certs/ca-certificates.crt 45 | remoteuser = phogg@tripleaughtdesign.com 46 | remotepasseval = imappasswd('tad') 47 | nametrans = lambda folder: {'[Gmail]/Drafts': 'drafts', 48 | '[Gmail]/Sent Mail': 'sent', 49 | '[Gmail]/Trash': 'trash', 50 | '[Gmail]/All Mail': 'archive', 51 | }.get(folder, folder) 52 | folderfilter = lambda folder: folder not in ['[Gmail]/Trash', 53 | '[Gmail]/Important', 54 | '[Gmail]/Spam', 55 | '[Gmail]/Starred', 56 | ] 57 | 58 | [mbnames] 59 | enabled = yes 60 | filename = ~/.mutt/mailboxes 61 | header = "mailboxes " 62 | peritem = "+%(accountname)s/%(foldername)s" 63 | sep = " " 64 | footer = "\n" 65 | -------------------------------------------------------------------------------- /config/teiler/config: -------------------------------------------------------------------------------- 1 | ##### teiler configuration file ###### 2 | 3 | # general variables 4 | 5 | # the path where images, videos and pastes should be saved 6 | img_path=$HOME/tmp 7 | vid_path=$HOME/tmp 8 | paste_path=$HOME/tmp 9 | 10 | # set viewer for images and videos plus editor for images 11 | viewer=imv 12 | editor=gimp 13 | player=mpv 14 | 15 | # Hitting Enter will upload 16 | always_ul=0 17 | 18 | # Uploading options 19 | # Possible Choices for img_ul: fb, scp, s3, imgur 20 | # Possible Choices for vid_ul: fb, scp, s3 21 | # Possible Choices for paste_ul: fb, scp, ix 22 | img_ul=imgur 23 | vid_ul=fb 24 | paste_ul=ix 25 | 26 | # Screencast options 27 | # Resolution to change to when recording in fullscreen 28 | res=1920x1080 29 | 30 | # If you use a custom rate for X, set it here. 31 | # rate=120 32 | 33 | 34 | # Ffmpeg settings 35 | 36 | # set this to 1, if ffmpeg version is < 1.7.1 37 | ffmpeg_compat=0 38 | encoder=ffmpeg 39 | 40 | # Profile to use for screencasts 41 | # profiles are stored in $HOME/.config/teiler/profiles 42 | # teiler ships with 3 profiles atm. mp4-pulse, mp4-noaudio 43 | # and webm-noaudio 44 | # You can create your own profiles, but changes to existing profiles 45 | # will be overwritten on startup 46 | profile="mp4-noaudio" 47 | 48 | # hotkeys 49 | upload="Alt+1" 50 | noupload="Alt+2" 51 | delayup="Alt+3" 52 | delaysave="Alt+4" 53 | 54 | view="Alt+1" 55 | historyupload="Alt+2" 56 | edit="Alt+3" 57 | clip="Alt+4" 58 | 59 | 60 | # Normally you don't want to change anything here! 61 | SCREENCAST_PIDFILE=/tmp/$USER-teiler-screencast.pid 62 | namekey=teiler 63 | random_string=$(date +'%Y-%m-%d-%H%M%S') 64 | img_filemask=img-$random_string.png 65 | paste_filemask=txt-$random_string.txt 66 | 67 | # video filemask is without extension, since it gets the extension 68 | # from set profile 69 | vid_filemask=vid-$random_string 70 | 71 | help_color="#0C73C2" 72 | slop_color="255,0,0" 73 | slop_border=2 74 | hidecursor=yes 75 | # slop options 76 | slop_border=1 77 | slop_color="255,0,0" 78 | hidecursor=yes 79 | 80 | # rofi options ###### 81 | # here you can override options for rofi. normally rofi options 82 | # are read from ~/.Xresources, so setting options there is recommended. 83 | # you can dump options for ~/.Xresources with "rofi -dump-xresources" 84 | # rofiopts="-border 2 -width 35 -lines 40 -padding 12" 85 | -------------------------------------------------------------------------------- /taskwarrior/zenburn-256.theme: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Zenburn theme for TaskWarrior 3 | # Based on the sample taskwarrior 1.9 (or later) dark 256-color theme 4 | # 5 | # taskwarrior - a command line task list manager. 6 | # 7 | # Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez. 8 | # Copyright 2012 - 2016 mutantmonkey. 9 | # All rights reserved. 10 | # 11 | # This program is free software; you can redistribute it and/or modify it under 12 | # the terms of the GNU General Public License as published by the Free Software 13 | # Foundation; either version 2 of the License, or (at your option) any later # version. 14 | # 15 | # This program is distributed in the hope that it will be useful, but WITHOUT 16 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 17 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | # details. 19 | # 20 | # You should have received a copy of the GNU General Public License along with 21 | # this program; if not, write to the 22 | # 23 | # Free Software Foundation, Inc., 24 | # 51 Franklin Street, Fifth Floor, 25 | # Boston, MA 26 | # 02110-1301 27 | # USA 28 | # 29 | ################################################################################ 30 | 31 | color=on 32 | color.header=color3 33 | color.footnote=color3 34 | color.debug=color3 35 | 36 | color.summary.bar=color233 on color108 37 | color.summary.background=color236 on color237 38 | 39 | color.history.add=color0 on color8 40 | color.history.done=color0 on color4 41 | color.history.delete=color0 on color1 42 | 43 | color.burndown.pending=on color9 44 | color.burndown.started=on color3 45 | color.burndown.done=on color2 46 | 47 | color.sync.added=color12 48 | color.sync.changed=color11 49 | color.sync.rejected=color13 50 | 51 | color.undo.before=underline color3 52 | color.undo.after=underline color108 53 | 54 | color.calendar.today=on color233 55 | color.calendar.due=color174 56 | color.calendar.due.today=color0 on color249 57 | color.calendar.overdue=color0 on color9 58 | color.calendar.weekend=color116 59 | color.calendar.holiday=color223 60 | color.calendar.weeknumber=color248 61 | 62 | color.recurring=color223 63 | color.scheduled=color223 64 | color.overdue=color0 on color9 65 | color.due.today=color0 on color9 66 | color.due=color7 67 | color.active=color0 on color3 68 | color.pri.none= 69 | color.pri.H=color255 70 | color.pri.M=color250 71 | color.pri.L=color245 72 | color.tagged=color108 73 | color.blocking=on color4 74 | color.blocked=color236 on color8 75 | color.project.none= 76 | color.tag.none= 77 | color.alternate=on color237 78 | -------------------------------------------------------------------------------- /config/sxiv/exec/key-handler: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Example for $XDG_CONFIG_HOME/sxiv/exec/key-handler 4 | # Called by sxiv(1) after the external prefix key (C-x by default) is pressed. 5 | # The next key combo is passed as its first argument. Passed via stdin are the 6 | # images to act upon, one path per line: all marked images, if in thumbnail 7 | # mode and at least one image has been marked, otherwise the current image. 8 | # sxiv(1) blocks until this script terminates. It then checks which images 9 | # have been modified and reloads them. 10 | 11 | # The key combo argument has the following form: "[C-][M-][S-]KEY", 12 | # where C/M/S indicate Ctrl/Meta(Alt)/Shift modifier states and KEY is the X 13 | # keysym as listed in /usr/include/X11/keysymdef.h without the "XK_" prefix. 14 | 15 | readonly KEY="$1"; 16 | readonly TAGFILE="$HOME/.config/sxiv/tags" 17 | readonly TMPFILE="/tmp/sxiv.$$" 18 | readonly ANNEX="$HOME/library/pictures" 19 | 20 | rotate() { 21 | degree="$1" 22 | tr '\n' '\0' | xargs -0 realpath | sort | uniq | while read file; do 23 | case "$(file -b -i "$file")" in 24 | image/jpeg*) jpegtran -rotate "$degree" -copy all -outfile "$file" "$file" ;; 25 | *) mogrify -rotate "$degree" "$file" ;; 26 | esac 27 | done 28 | } 29 | 30 | tag_add() { 31 | >>"$TAGFILE" 32 | tags=$(dmenu <"$TAGFILE" | tr '\n' ',') 33 | [ -z "$tags" ] && return 34 | iptckwed -i -a "$tags" 35 | echo -n "$tags" | tr ',' '\n' | sort - "$TAGFILE" | uniq >"$TAGFILE.new" 36 | mv -f "$TAGFILE"{.new,} 37 | } 38 | 39 | tag_del() { 40 | cat >"$TMPFILE" 41 | tags=$(iptckwed -iql <"$TMPFILE" | cut -f 2 | tr ',' '\n' | sort | uniq | dmenu | tr '\n' ',') 42 | [ -z "$tags" ] && return 43 | iptckwed -i -r "$tags" <"$TMPFILE" 44 | rm -f "$TMPFILE" 45 | } 46 | 47 | import() { 48 | while read file; do 49 | filename=$(basename $file) 50 | # Move file into year-based directory 51 | IFS=': ' 52 | set $(exiv2 -g Exif.Image.DateTime -Pv $file) 53 | unset IFS 54 | year=$1 55 | mkdir -p $ANNEX/$year 56 | mv -v $file $ANNEX/$year 57 | # Rename file based on timestamp 58 | exiv2 -Ftv rename $ANNEX/$year/$filename 59 | done 60 | } 61 | 62 | case "$KEY" in 63 | "y") tr '\n' ' ' | xclip -i ;; 64 | "C-c") while read file; do xclip -selection clipboard -target image/png "$file"; done ;; 65 | "C-e") while read file; do alacritty -e "exiv2 pr -q -pa $file" & done ;; 66 | "C-g") tr '\n' '\0' | xargs -0 gimp & ;; 67 | "C-comma") rotate 270 ;; 68 | "C-period") rotate 90 ;; 69 | "C-slash") rotate 180 ;; 70 | "C-t") tag_add ;; 71 | "M-T") tag_del ;; 72 | "C-d") mkdir -p $XDG_RUNTIME_DIR/sxiv && while read file; do mv -vf $file $XDG_RUNTIME_DIR/sxiv/; done ;; 73 | "C-i") import ;; 74 | esac 75 | 76 | -------------------------------------------------------------------------------- /config/mutt/colors/zenburn.muttrc: -------------------------------------------------------------------------------- 1 | # Screenshot http://trovao.droplinegnome.org/stuff/mutt-zenburnt.png 2 | # 3 | # This is a zenburn-based muttrc color scheme that is not (even by far) 4 | # complete. There's no copyright involved. Do whatever you want with it. 5 | # Just be aware that I won't be held responsible if the current color-scheme 6 | # explodes your mutt. 7 | # 8 | # Please remember that this color scheme requires a 256 color 9 | # terminal-emulator. Any modern X terminal emulator should have support for 10 | # that and you can enable it by calling mutt as "TERM=xterm-256color mutt", or 11 | # by adding "term screen-256color" to your .screenrc. 12 | # 13 | 14 | # general-doesn't-fit stuff 15 | color normal color188 color234 16 | color error color115 color236 17 | color markers color142 color238 18 | color tilde color108 color234 19 | color status color144 color237 20 | 21 | # index stuff 22 | color indicator color108 color236 23 | color tree color109 color234 24 | color index color188 color234 ~A 25 | color index color116 color234 ~N 26 | color index color116 color234 ~O 27 | color index color174 color234 ~F 28 | color index color239 color234 ~D 29 | 30 | # header stuff 31 | color hdrdefault color223 color237 32 | color header color223 color237 "^Subject" 33 | 34 | # gpg stuff 35 | color body color188 color237 "^gpg: Good signature.*" 36 | color body color115 color236 "^gpg: BAD signature.*" 37 | color body color174 color237 "^gpg: Can't check signature.*" 38 | color body color174 color237 "^-----BEGIN PGP SIGNED MESSAGE-----" 39 | color body color174 color237 "^-----BEGIN PGP SIGNATURE-----" 40 | color body color174 color237 "^-----END PGP SIGNED MESSAGE-----" 41 | color body color174 color237 "^-----END PGP SIGNATURE-----" 42 | color body color174 color237 "^Version: GnuPG.*" 43 | color body color174 color237 "^Comment: .*" 44 | 45 | # url, email and web stuff 46 | color body color174 color237 "(finger|ftp|http|https|news|telnet)://[^ >]*" 47 | color body color174 color237 "" 48 | color body color174 color237 "www\\.[-.a-z0-9]+\\.[a-z][a-z][a-z]?([-_./~a-z0-9]+)?" 49 | color body color174 color237 "mailto: *[^ ]+\(\\i?subject=[^ ]+\)?" 50 | color body color174 color237 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" 51 | 52 | # misc body stuff 53 | color attachment color174 color237 #Add-ons to the message 54 | color signature color223 color237 55 | 56 | # quote levels 57 | color quoted color108 color237 58 | color quoted1 color116 color237 59 | color quoted2 color247 color237 60 | color quoted3 color108 color237 61 | color quoted4 color116 color237 62 | color quoted5 color247 color237 63 | color quoted6 color108 color237 64 | color quoted7 color116 color237 65 | color quoted8 color247 color237 66 | color quoted9 color108 color237 67 | 68 | # vim: set syntax=muttrc: 69 | -------------------------------------------------------------------------------- /profile: -------------------------------------------------------------------------------- 1 | # 2 | # Terminal 3 | # 4 | 5 | export TERMINAL='kitty' 6 | 7 | # 8 | # Editors 9 | # 10 | 11 | export EDITOR='vim' 12 | export VISUAL='vim' 13 | export PAGER='less' 14 | 15 | # 16 | # Path 17 | # 18 | 19 | export PATH=~/bin:~/.local/bin/:~/.cargo/bin:$PATH 20 | 21 | # 22 | # Less 23 | # 24 | 25 | # Set the default Less options. 26 | export LESS='-F -g -i -M -R -w -z-4 -#3' 27 | 28 | # Make all Private Use Area characters be treated as printable. 29 | export LESSUTFCHARDEF=E000-F8FF:p,F0000-FFFFD:p,100000-10FFFD:p 30 | 31 | # Find lesspipe 32 | if command -v lesspipe.sh >/dev/null 2>&1; then 33 | lesspipe="lesspipe.sh" 34 | elif command -v lesspipe >/dev/null 2>&1; then 35 | lesspipe="lesspipe" 36 | fi 37 | 38 | # Set the less input preprocessor. 39 | if [[ -z "$lesspipe" ]]; then 40 | export LESSOPEN="| $lesspipe %s 2>&-" 41 | fi 42 | 43 | # 44 | # Temporary Files 45 | # 46 | 47 | if [[ ! -d "$TMPDIR" ]]; then 48 | export TMPDIR="/tmp/$LOGNAME" 49 | mkdir -p -m 700 "$TMPDIR" 50 | fi 51 | 52 | TMPPREFIX="${TMPDIR%/}/zsh" 53 | 54 | # 55 | # Python 56 | # 57 | 58 | # Set the default environment directory for virtualenvwrapper. 59 | export WORKON_HOME="$HOME/.virtualenvs" 60 | 61 | # Set the default project directory for virtualenvwrapper. 62 | export PROJECT_HOME="$HOME/projects" 63 | 64 | # Load virtualenvwrapper (lazy). 65 | source /usr/bin/virtualenvwrapper_lazy.sh 66 | 67 | # Pyenv 68 | if command -v pyenv 1>/dev/null 2>&1; then 69 | export PYENV_ROOT="$HOME/.pyenv" 70 | export PATH="$PYENV_ROOT/bin:$PATH" 71 | eval "$(pyenv init -)" 72 | fi 73 | 74 | # 75 | # Notes 76 | # 77 | 78 | # Set the default note directory. 79 | export NOTEDIR=~/library/notes 80 | 81 | # Open spreadsheet notes in visidata 82 | export NOTEXDGEXT="csv tsv" 83 | 84 | # 85 | # Journal 86 | # 87 | 88 | # Set the default journal directory. 89 | export JOURNALDIR=~/library/journal 90 | 91 | # 92 | # Passwords 93 | # 94 | 95 | # Set the alternative pass directory. 96 | export ALTPASSDIR=~/projects/tad/pass 97 | 98 | # Set the access pass directory. 99 | export ACCESSPASSDIR=~/projects/tad/access 100 | 101 | # Set the finance pass directory. 102 | export FINPASSDIR=~/library/finance 103 | 104 | # 105 | # Misc 106 | # 107 | 108 | # Set the dmenu font. 109 | export DMENU_OPTIONS="-fn -inconsolata-medium-r-*-*-14-*" 110 | 111 | # Source credentials. 112 | if [ -f ~/.keys/creds.sh ]; then 113 | source ~/.keys/creds.sh 114 | fi 115 | 116 | # Disable QT5 DPI scaling 117 | export QT_AUTO_SCREEN_SCALE_FACTOR=0 118 | 119 | # Set GPG TTY 120 | export GPG_TTY=$(tty) 121 | 122 | # Use GPG for SSH Agent 123 | unset SSH_AGENT_PID 124 | if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then 125 | export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" 126 | fi 127 | 128 | # Contain the toxic JavaScript ecosystem. 129 | export npm_config_prefix=~/.node_modules 130 | -------------------------------------------------------------------------------- /weechat/menu.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- menu.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [var] 13 | 1.1.command = "/close" 14 | 1.1.name = "&Close buffer" 15 | 1.2.command = "/quit" 16 | 1.2.name = "&Quit WeeChat" 17 | 1.name = "&File" 18 | 2.1.command = "/window splith" 19 | 2.1.name = "Split &horizontally" 20 | 2.2.command = "/window splitv" 21 | 2.2.name = "Split &vertically" 22 | 2.3.command = "/window zoom" 23 | 2.3.name = "&Maximize / Restore" 24 | 2.4.command = "/window merge" 25 | 2.4.name = "&Close the other window" 26 | 2.5.command = "/window merge all" 27 | 2.5.name = "Close &all other windows" 28 | 2.name = "&Window" 29 | 3.1.command = "/xfer" 30 | 3.1.name = "Transfer &list" 31 | 3.name = "&DCC" 32 | 4.1.command = "/copywin" 33 | 4.1.name = "&Copy window" 34 | 4.2.command = "/copywin /" 35 | 4.2.name = "&URL highlight window" 36 | 4.3.command = "/coords_shell" 37 | 4.3.name = "&Perl debug shell" 38 | 4.4.command = "/iset" 39 | 4.4.name = "&Settings editor" 40 | 4.name = "&Tools" 41 | 5.1.command = "%irc_servers.irc_server% ${irc_server.name} % /connect ${irc_server.name}" 42 | 5.name = "&Connect" 43 | 6.1.command = "%gui_buffers.buffer% ${i} ${buffer.name} % /buffer ${buffer.full_name}" 44 | 6.name = "&Buffers" 45 | 7.1.command = "%gui_windows.window% ${window.number} ${window.buffer.name} % /window ${window.number}" 46 | 7.name = "Win&list" 47 | 9.1.name = "Menu system by Nei" 48 | 9.2.command = "/menu help" 49 | 9.2.name = "&Help" 50 | 9.name = "&About" 51 | buffer1.1.command = "/buffer close" 52 | buffer1.1.name = "&Close" 53 | buffer1.2.command = "/buffer clear" 54 | buffer1.2.name = "Clea&r" 55 | buffer1.3.command = "/buffer unmerge" 56 | buffer1.3.name = "&Unmerge" 57 | buffer1.4.command = "/buffer notify none" 58 | buffer1.4.name = "&Ignore" 59 | buffer1.5.command = "/buffer notify reset" 60 | buffer1.5.name = "U&nignore" 61 | buffer2.1.command = "/buffer close $1-$2" 62 | buffer2.1.name = "&Close range" 63 | buffer2.2.command = "/buffer swap $1 $2" 64 | buffer2.2.name = "&Swap" 65 | buffer2.3.command = "/buffer merge $2" 66 | buffer2.3.name = "&Merge" 67 | nick.1.command = "/query $0" 68 | nick.1.name = "&Query" 69 | nick.2.command = "/wii $0" 70 | nick.2.name = "&Whois" 71 | nick.3.command = "/op $0" 72 | nick.3.name = "&Op" 73 | nick.4.command = "/voice $0" 74 | nick.4.name = "&Voice" 75 | nick.5.command = "/kick $0" 76 | nick.5.name = "&Kick" 77 | nick.6.command = "/ban $0" 78 | nick.6.name = "&Ban" 79 | spell.0.command = "%#spell_menu% %" 80 | spell.009001.command = "/spell_menu fix 1" 81 | spell.009001.name = "&1 mi spelling" 82 | spell.009002.command = "/spell_menu fix 2" 83 | spell.009002.name = "&2 mi-spelling" 84 | spell.009003.command = "/spell_menu fix 3" 85 | spell.009003.name = "&3 misspelling" 86 | spell.00909.command = "/spell addword $0" 87 | spell.00909.name = "ADD mispelling" 88 | -------------------------------------------------------------------------------- /abcde.conf: -------------------------------------------------------------------------------- 1 | # http://andrews-corner.org/linux/abcde/index.html 2 | 3 | # Encode tracks immediately after reading. Saves disk space, gives 4 | # better reading of 'scratchy' disks and better troubleshooting of 5 | # encoding process but slows the operation of abcde quite a bit: 6 | LOWDISK=y 7 | 8 | # Specify the method to use to retrieve the track information, 9 | # the alternative is to specify 'musicbrainz': 10 | CDDBMETHOD=cddb 11 | 12 | # Make a local cache of cddb entries and then volunteer to use 13 | # these entries when and if they match the cd: 14 | CDDBCOPYLOCAL="y" 15 | CDDBLOCALDIR="$HOME/.cddb" 16 | CDDBLOCALRECURSIVE="y" 17 | CDDBUSELOCAL="y" 18 | 19 | # Specify the encoder to use for FLAC. In this case 20 | # flac is the only choice. 21 | FLACENCODERSYNTAX=flac 22 | 23 | # Specify the path to the selected encoder. In most cases the encoder 24 | # should be in your $PATH as I illustrate below, otherwise you will 25 | # need to specify the full path. For example: /usr/bin/flac 26 | FLAC=flac 27 | 28 | # Specify your required encoding options here. Multiple options can 29 | # be selected as '--best --another-option' etc. 30 | # Overall bitrate is about 880 kbs/s with level 8. 31 | FLACOPTS='-s -e -V -8' 32 | 33 | # Output type for FLAC. 34 | OUTPUTTYPE="flac" 35 | 36 | # The cd ripping program to use. There are a few choices here: cdda2wav, 37 | # dagrab, cddafs (Mac OS X only) and flac. New to abcde 2.7 is 'libcdio'. 38 | CDROMREADERSYNTAX=cdparanoia 39 | 40 | # Give the location of the ripping program and pass any extra options, 41 | # if using libcdio set 'CD_PARANOIA=cd-paranoia'. 42 | CDPARANOIA=cdparanoia 43 | CDPARANOIAOPTS="--never-skip=40" 44 | 45 | # Give the location of the CD identification program: 46 | CDDISCID=cd-discid 47 | 48 | # Give the base location here for the encoded music files. 49 | OUTPUTDIR="$HOME/tmp/" 50 | 51 | # The default actions that abcde will take. 52 | ACTIONS=cddb,read,encode,tag,move,clean 53 | 54 | # Decide here how you want the tracks labelled for a standard 'single-artist', 55 | # multi-track encode and also for a multi-track, 'various-artist' encode: 56 | OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM} ${TRACKFILE}' 57 | VAOUTPUTFORMAT='Various/${ALBUMFILE}/${TRACKNUM} ${ARTISTFILE}-${TRACKFILE}' 58 | 59 | # Decide here how you want the tracks labelled for a standard 'single-artist', 60 | # single-track encode and also for a single-track 'various-artist' encode. 61 | # (Create a single-track encode with 'abcde -1' from the commandline.) 62 | ONETRACKOUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${ALBUMFILE}' 63 | VAONETRACKOUTPUTFORMAT='Various/${ALBUMFILE}/${ALBUMFILE}' 64 | 65 | # Put spaces in the filenames instead of the more correct underscores: 66 | mungefilename () 67 | { 68 | echo "$@" | sed s,:,-,g | tr / _ | tr -d \'\"\?\[:cntrl:\] 69 | } 70 | 71 | # What extra options? 72 | MAXPROCS=2 # Run a few encoders simultaneously 73 | PADTRACKS=y # Makes tracks 01 02 not 1 2 74 | EJECTCD=y # Please eject cd when finished :-) 75 | -------------------------------------------------------------------------------- /config/mutt/colors/gruvbox-dark.muttrc: -------------------------------------------------------------------------------- 1 | # gruvbox dark (contrast dark): 2 | # source: https://www.sthu.org/code/codesnippets/mutt-gruvbox.html 3 | 4 | # bg = 235 5 | # bg0_h = 234 6 | # bg1 = 237 7 | # bg2 = 239 8 | # bg3 = 241 9 | # bg4 = 243 10 | # 11 | # gray = 245 12 | # 13 | # fg0 = 229 14 | # fg1 = 223 15 | # fg2 = 250 16 | # fg3 = 248 17 | # fg4 = 246 18 | # 19 | # red = 167 20 | # green = 142 21 | # yellow = 214 22 | # blue = 109 23 | # purple = 175 24 | # aqua = 108 25 | # orange = 208 26 | 27 | 28 | # See http://www.mutt.org/doc/manual/#color 29 | 30 | color attachment color109 color235 31 | color bold color229 color235 32 | color error color167 color235 33 | color hdrdefault color246 color235 34 | color indicator color223 color237 35 | color markers color243 color235 36 | color normal color223 color235 37 | color quoted color250 color235 38 | color quoted1 color108 color235 39 | color quoted2 color250 color235 40 | color quoted3 color108 color235 41 | color quoted4 color250 color235 42 | color quoted5 color108 color235 43 | color search color235 color208 44 | color signature color108 color235 45 | color status color246 color239 46 | color tilde color243 color235 47 | color tree color142 color235 48 | color underline color223 color239 49 | 50 | color sidebar_divider color250 color235 51 | color sidebar_new color142 color235 52 | 53 | color index color142 color235 ~N # new 54 | color index color108 color235 ~O # old 55 | color index color167 color235 ~F # flagged 56 | color index color167 color235 ~= # dupe 57 | color index color235 color223 ~T # tagged 58 | color index color235 color167 ~D # deleted 59 | color index color109 color235 ~v # collapsed thread 60 | 61 | color header color214 color235 "^(To:|From:)" 62 | color header color142 color235 "^Subject:" 63 | color header color108 color235 "^X-Spam-Status:" 64 | color header color108 color235 "^Received:" 65 | 66 | color body color142 color235 "[a-z]{3,256}://[-a-zA-Z0-9@:%._\\+~#=/?&,]+" 67 | #color body color142 color235 "[a-zA-Z]([-a-zA-Z0-9_]+\\.){2,256}[-a-zA-Z0-9_]{2,256}" 68 | color body color208 color235 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+" 69 | color body color208 color235 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+" 70 | color body color235 color214 "[;:]-*[)>( 0 else "" 82 | 83 | vd.status("selected {}{} {}".format( 84 | sel_count, 85 | more_str, 86 | sheet.rowtype 87 | )) 88 | 89 | @asyncthread 90 | def dedupe_rows(sheet): 91 | """ 92 | Given a sheet, pushes a new sheet in which only non-duplicate rows are 93 | included. 94 | """ 95 | vs = copy(sheet) 96 | vs.name += "_deduped" 97 | vd.push(vs) 98 | 99 | for row, is_dupe in gen_identify_duplicates(sheet): 100 | if is_dupe == False: 101 | vs.addRow(row) 102 | 103 | # Set the two main functions above as methods on the Sheet class 104 | Sheet.select_duplicate_rows = select_duplicate_rows 105 | Sheet.dedupe_rows = dedupe_rows 106 | 107 | # Add longname-commands to VisiData to execute these methods 108 | Sheet.addCommand(None, "select-duplicate-rows", "vd.sheet.select_duplicate_rows()") 109 | Sheet.addCommand(None, "dedupe-rows", "vd.sheet.dedupe_rows()") 110 | 111 | """ 112 | # Changelog 113 | 114 | ## 0.0.1 - 2019-01-01 115 | 116 | Internal change, no external effects: Migrates from ._selectedRows to .selectedRows. 117 | 118 | ## 0.0.0 - 2018-12-30 119 | 120 | Initial release. 121 | """ 122 | -------------------------------------------------------------------------------- /aliases: -------------------------------------------------------------------------------- 1 | ######## 2 | # Core # 3 | ######## 4 | 5 | alias mkdir='mkdir -p' 6 | alias grep='grep --color=always' 7 | alias ls='ls --color=always' 8 | alias l='ls -lh' # Lists human readable sizes. 9 | alias ll='l -A' # Lists human readable sizes, hidden files. 10 | alias lr='l -R' # Lists human readable sizes, recursively. 11 | alias lt='l -tr' # Lists sorted by date, most recent last. 12 | 13 | 14 | ########### 15 | # Udiskie # 16 | ########### 17 | 18 | alias um='udiskie-mount --recursive --options noatime' 19 | alias uu='udiskie-umount' 20 | alias up='um --password-prompt "builtin:tty"' 21 | 22 | 23 | ####### 24 | # Git # 25 | ####### 26 | 27 | # Ripped from Prezto 28 | # https://github.com/sorin-ionescu/prezto/tree/master/modules/git 29 | 30 | function git-branch-current { 31 | if ! command git rev-parse 2> /dev/null; then 32 | print "$0: not a repository: $PWD" >&2 33 | return 1 34 | fi 35 | 36 | local ref="$(command git symbolic-ref HEAD 2> /dev/null)" 37 | 38 | if [[ -n "$ref" ]]; then 39 | print "${ref#refs/heads/}" 40 | return 0 41 | else 42 | return 1 43 | fi 44 | } 45 | 46 | alias g='git' 47 | alias gb='git branch' 48 | alias gc='git commit --verbose' 49 | alias gco='git checkout' 50 | alias gia='git add' 51 | alias gm='git merge' 52 | alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"' 53 | alias gwR='git reset --hard' 54 | alias gwd='git diff --no-ext-diff' 55 | alias gwr='git reset --soft' 56 | alias gws='git status --short' 57 | 58 | 59 | ############# 60 | # Git Annex # 61 | ############# 62 | 63 | alias gx='git annex' 64 | alias gxa='git annex add' 65 | alias gxs='git annex sync' 66 | alias gxg='git annex get' 67 | alias gxd='git annex drop' 68 | alias gxc='git annex copy' 69 | alias gxe='git annex edit' 70 | 71 | gxurl() { 72 | REPO="${1:-$HOME/documents}" 73 | less "$REPO"/.git/annex/url 74 | } 75 | 76 | 77 | ############### 78 | # Taskwarrior # 79 | ############### 80 | 81 | alias t='task' 82 | alias ta='task add' 83 | alias tm='task modify' 84 | alias to='taskopen' 85 | alias ti='task add due:tomorrow tag:inbox' 86 | alias tn='taskopen -a' 87 | 88 | 89 | ########## 90 | # Pacman # 91 | ########## 92 | 93 | alias pacx="sudo pacman --remove" 94 | alias pacX="sudo pacman --remove --nosave --recursive" 95 | 96 | 97 | ############ 98 | # My Repos # 99 | ############ 100 | 101 | alias lmr='mr --config $HOME/library/src/myrepos.conf --directory=$HOME/library/src' 102 | alias wmr='mr --config $HOME/projects/tad/docs/config/myrepos.conf --directory=$HOME/projects/tad' 103 | alias pmr='mr --config $HOME/projects/.mrconfig --directory=$HOME/projects' 104 | 105 | 106 | ######## 107 | # Pass # 108 | ######## 109 | 110 | alias cplogin='sed -n "/^login/Is/login:\s\+//p" | xsel -ib' 111 | alias cpurl='sed -n "/^url/Is/url:\s\+//p" | xsel -ib' 112 | 113 | _pw() { 114 | local characters="${1}" length="${2:-25}" 115 | bash -c 'read -r -n "$0" pass < <(LC_ALL=C tr -dc "$1" < /dev/urandom) && echo $pass' $length $characters 116 | } 117 | alias pw='_pw "[:graph:]"' 118 | alias pw:a='_pw "[:alnum:]"' 119 | alias pw:d='_pw "[:digit:]"' 120 | 121 | 122 | ######## 123 | # Misc # 124 | ######## 125 | 126 | alias mtr-report='mtr --report --report-cycles 10 --no-dns' 127 | alias e='aunpack' 128 | alias http-serve='python -m http.server' 129 | alias bc='bc -lq' 130 | alias utc='env TZ="UTC" date' 131 | alias zt='zulip-term -c ~/.config/zuliprc' 132 | alias ledger-balance='ledger balance assets and not assets:invest liabilities' 133 | 134 | iowaiting() { 135 | watch -n 1 "(ps aux | awk '\$8 ~ /D/ { print \$0 }')" 136 | } 137 | 138 | def() { 139 | dict $1 | less 140 | } 141 | 142 | recordmywindow () { 143 | recordmydesktop --no-sound --windowid $(xwininfo | grep "Window id" | awk '{print $4;}') 144 | } 145 | 146 | cheat() { 147 | curl --location --silent "cheat.sh/$1?style=default" | ${PAGER:-less}; 148 | } 149 | -------------------------------------------------------------------------------- /config/mutt/muttrc: -------------------------------------------------------------------------------- 1 | #################### 2 | # Account Settings # 3 | #################### 4 | 5 | # Mailbox 6 | set mbox_type=Maildir 7 | set folder=$HOME/mail 8 | set spoolfile=+Havenaut/INBOX 9 | set header_cache=~/.hcache 10 | source ~/.config/mutt/mailboxes 11 | 12 | # Personal 13 | set realname='Peter Hogg' 14 | 15 | # Sending 16 | set envelope_from=yes 17 | set sendmail_wait = -1 18 | 19 | 20 | #################### 21 | # General Settings # 22 | #################### 23 | 24 | # Basic 25 | set timeout=3 26 | set mail_check=0 27 | set wait_key=no 28 | set delete 29 | set pipe_decode 30 | set mailcap_path=~/.config/mutt/mailcap 31 | set query_command="khard email --parsable '%s'" 32 | set use_domain=no 33 | set user_agent=no 34 | set sleep_time=0 35 | 36 | # Forwarding 37 | set forward_format="Fwd: %s" 38 | set forward_attachments=yes 39 | set mime_forward=ask-yes 40 | 41 | # Composing 42 | set edit_headers=yes 43 | set fast_reply 44 | set askcc 45 | set text_flowed=yes 46 | 47 | # HTML Messages 48 | bind attach view-mailcap 49 | auto_view text/html text/calendar application/ics application/vnd.openxmlformats-officedocument.wordprocessingml.document 50 | alternative_order text/plain text/enriched text/html 51 | 52 | # Saving 53 | set print_command="$HOME/.config/mutt/print.sh" 54 | macro index,pager P "$HOME/.config/mutt/print.sh -s" 55 | macro index,pager S "set pipe_decode_weed=no| $HOME/.config/mutt/save.sh /tmpset pipe_decode_weed=yes" 56 | 57 | # PGP 58 | set crypt_use_gpgme = yes 59 | set crypt_replyencrypt = yes 60 | set crypt_replysign = yes 61 | set crypt_replysignencrypted = yes 62 | set crypt_verify_sig = yes 63 | set pgp_auto_decode = yes 64 | set pgp_default_key = 52492412A1190FC087EA0F1D70B220FF8D2ACF29 65 | 66 | # Status Bar 67 | set status_chars=" *%A" 68 | set status_format="───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───" 69 | 70 | # Index View 71 | set date_format="%Y-%m-%d %H:%M" 72 | set index_format="%2C ┆ (%Z) %D %-20.20F %s" 73 | set sort=threads 74 | set sort_aux=reverse-last-date-received 75 | set uncollapse_jump 76 | 77 | # Pager View 78 | set pager_index_lines = 10 79 | set pager_context = 3 80 | set pager_stop 81 | 82 | # Sidebar 83 | set mail_check_stats = yes 84 | set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S" 85 | set sidebar_visible=yes 86 | set sidebar_width=32 87 | set sidebar_divider_char=' │ ' 88 | set sidebar_short_path 89 | 90 | 91 | ################ 92 | # Key Bindings # 93 | ################ 94 | 95 | source ~/.config/mutt/vim-keybindings.rc 96 | 97 | # Index 98 | bind index R group-reply 99 | bind index sync-mailbox 100 | bind index collapse-thread 101 | bind index \\ collapse-all 102 | 103 | # Pager 104 | bind pager R group-reply 105 | 106 | # Sidebar 107 | bind index,pager sidebar-next 108 | bind index,pager sidebar-prev 109 | bind index,pager sidebar-open 110 | 111 | # Sync mail 112 | macro index o "mailsync" 113 | 114 | # Archive mail 115 | macro index,pager A "s+Archive" 116 | 117 | # Add sender to address book 118 | macro index,pager a "khard add-email" "add the sender email address to khard" 119 | 120 | # Bind ; to ctrl-t in editor mode 121 | macro editor ";" \Ct 122 | 123 | # Save message to another mailbox 124 | macro index s "?" 125 | 126 | # Extract URLs 127 | macro index,pager \cl " urlscan" 128 | macro attach,compose \cl " urlscan" 129 | 130 | 131 | ########## 132 | # Colors # 133 | ########## 134 | 135 | source ~/.config/mutt/colors/base16.muttrc 136 | 137 | 138 | ############ 139 | # Accounts # 140 | ############ 141 | 142 | # Default to havenaut. 143 | source ~/.config/mutt/havenaut.muttrc 144 | 145 | # Folder Hooks 146 | folder-hook Havenaut/* source ~/.config/mutt/havenaut.muttrc 147 | folder-hook TAD/* source ~/.config/mutt/tad.muttrc 148 | -------------------------------------------------------------------------------- /dir_colors: -------------------------------------------------------------------------------- 1 | # Configuration file for the color ls utility 2 | # Synchronized with coreutils 8.5 dircolors 3 | # This file goes in the /etc directory, and must be world readable. 4 | # You can copy this file to .dir_colors in your $HOME directory to override 5 | # the system defaults. 6 | 7 | # COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not 8 | # pipes. 'all' adds color characters to all output. 'none' shuts colorization 9 | # off. 10 | COLOR tty 11 | 12 | # Extra command line options for ls go here. 13 | # Basically these ones are: 14 | # -F = show '/' for dirs, '*' for executables, etc. 15 | # -T 0 = don't trust tab spacing when formatting ls output. 16 | OPTIONS -F -T 0 17 | 18 | # Below, there should be one TERM entry for each termtype that is colorizable 19 | TERM Eterm 20 | TERM ansi 21 | TERM color-xterm 22 | TERM con132x25 23 | TERM con132x30 24 | TERM con132x43 25 | TERM con132x60 26 | TERM con80x25 27 | TERM con80x28 28 | TERM con80x30 29 | TERM con80x43 30 | TERM con80x50 31 | TERM con80x60 32 | TERM cons25 33 | TERM console 34 | TERM cygwin 35 | TERM dtterm 36 | TERM eterm-color 37 | TERM gnome 38 | TERM gnome-256color 39 | TERM jfbterm 40 | TERM konsole 41 | TERM kterm 42 | TERM linux 43 | TERM linux-c 44 | TERM mach-color 45 | TERM mlterm 46 | TERM putty 47 | TERM rxvt 48 | TERM rxvt-256color 49 | TERM rxvt-cygwin 50 | TERM rxvt-cygwin-native 51 | TERM rxvt-unicode 52 | TERM rxvt-unicode256 53 | TERM screen 54 | TERM screen-256color 55 | TERM screen-256color-bce 56 | TERM screen-bce 57 | TERM screen-w 58 | TERM screen.linux 59 | TERM vt100 60 | TERM xterm 61 | TERM xterm-16color 62 | TERM xterm-256color 63 | TERM xterm-88color 64 | TERM xterm-color 65 | TERM xterm-debian 66 | 67 | # EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output) 68 | EIGHTBIT 1 69 | 70 | # Below are the color init strings for the basic file types. A color init 71 | # string consists of one or more of the following numeric codes: 72 | 73 | # Attribute codes: 74 | # 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed 75 | # Text color codes: 76 | # 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white 77 | # Background color codes: 78 | # 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white 79 | 80 | #NORMAL 00 # no color code at all 81 | #FILE 00 # normal file, use no color at all 82 | RESET 0 # reset to "normal" color 83 | DIR 00;34 # directory 84 | LINK 00;36 # symbolic link (If you set this to 'target' instead of a 85 | # numerical value, the color is as for the file pointed to.) 86 | MULTIHARDLINK 00 # regular file with more than one link 87 | FIFO 40;33 # pipe 88 | SOCK 00;35 # socket 89 | DOOR 00;35 # door 90 | BLK 40;33;01 # block device driver 91 | CHR 40;33;01 # character device driver 92 | ORPHAN 40;31 # symlink to nonexistent file, or non-stat'able file 93 | MISSING 00;05;37;41 # ... and the files they point to 94 | SETUID 37;41 # file that is setuid (u+s) 95 | SETGID 33 # file that is setgid (g+s) 96 | CAPABILITY 30;41 # file with capability 97 | STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) 98 | OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky 99 | STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable 100 | 101 | # This is for files with execute permission: 102 | EXEC 32 103 | 104 | # List any file extensions like '.gz' or '.tar' that you would like ls 105 | # to colorize below. Put the extension, a space, and the color init string. 106 | # (and any comments you want to add after a '#') 107 | # executables (bright green) 108 | 109 | # Source Code Magenta 110 | .java 35 111 | .c++ 35 112 | .h 35 113 | .py 35 114 | .sh 35 115 | .csh 35 116 | .zsh 35 117 | .xml 35 118 | 119 | # archives or compressed (bright red) 120 | .tar 37 121 | .tgz 37 122 | .arj 37 123 | .taz 37 124 | .lzh 37 125 | .lzma 37 126 | .tlz 37 127 | .txz 37 128 | .zip 37 129 | .z 37 130 | .Z 37 131 | .dz 37 132 | .gz 37 133 | .lz 37 134 | .xz 37 135 | .bz2 37 136 | .tbz 37 137 | .tbz2 37 138 | .bz 37 139 | .tz 37 140 | .deb 37 141 | .rpm 37 142 | .jar 37 143 | .rar 37 144 | .ace 37 145 | .zoo 37 146 | .cpio 37 147 | .7z 37 148 | .rz 37 149 | 150 | # Media (cyan) 151 | .jpg 36 152 | .jpeg 36 153 | .gif 36 154 | .bmp 36 155 | .pbm 36 156 | .pgm 36 157 | .ppm 36 158 | .tga 36 159 | .xbm 36 160 | .xpm 36 161 | .tif 36 162 | .tiff 36 163 | .png 36 164 | .svg 36 165 | .mng 36 166 | .pcx 36 167 | .mov 36 168 | .mpg 36 169 | .mpeg 36 170 | .mkv 36 171 | .mp3 36 172 | .wmv 36 173 | .avi 36 174 | .flv 36 175 | .xcf 36 176 | 177 | .aac 36 178 | .mp3 36 179 | .ogg 36 180 | .wav 36 181 | -------------------------------------------------------------------------------- /weechat/irc.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- irc.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | buffer_open_before_autojoin = on 14 | buffer_open_before_join = off 15 | buffer_switch_autojoin = on 16 | buffer_switch_join = on 17 | color_nicks_in_names = off 18 | color_nicks_in_nicklist = on 19 | color_nicks_in_server_messages = on 20 | color_pv_nick_like_channel = on 21 | ctcp_time_format = "%a, %d %b %Y %T %z" 22 | display_away = local 23 | display_ctcp_blocked = on 24 | display_ctcp_reply = on 25 | display_ctcp_unknown = on 26 | display_host_join = on 27 | display_host_join_local = on 28 | display_host_quit = on 29 | display_join_message = "329,332,333,366" 30 | display_old_topic = on 31 | display_pv_away_once = on 32 | display_pv_back = on 33 | display_pv_warning_address = off 34 | highlight_channel = "$nick" 35 | highlight_pv = "$nick" 36 | highlight_server = "$nick" 37 | highlight_tags_restrict = "irc_privmsg,irc_notice" 38 | item_channel_modes_hide_args = "k" 39 | item_display_server = buffer_plugin 40 | item_nick_modes = on 41 | item_nick_prefix = on 42 | join_auto_add_chantype = off 43 | msgbuffer_fallback = current 44 | new_channel_position = none 45 | new_pv_position = none 46 | nick_completion_smart = speakers 47 | nick_mode = prefix 48 | nick_mode_empty = off 49 | nicks_hide_password = "nickserv" 50 | notice_as_pv = auto 51 | notice_welcome_redirect = on 52 | notice_welcome_tags = "" 53 | notify_tags_ison = "notify_message" 54 | notify_tags_whois = "notify_message" 55 | part_closes_buffer = off 56 | pv_buffer = independent 57 | pv_tags = "notify_private" 58 | raw_messages = 256 59 | server_buffer = merge_with_core 60 | smart_filter = on 61 | smart_filter_chghost = on 62 | smart_filter_delay = 5 63 | smart_filter_join = on 64 | smart_filter_join_unmask = 30 65 | smart_filter_mode = "+" 66 | smart_filter_nick = on 67 | smart_filter_quit = on 68 | temporary_servers = off 69 | topic_strip_colors = off 70 | 71 | [color] 72 | input_nick = lightcyan 73 | item_channel_modes = default 74 | item_lag_counting = default 75 | item_lag_finished = yellow 76 | item_nick_modes = default 77 | message_chghost = brown 78 | message_join = green 79 | message_kick = red 80 | message_quit = red 81 | mirc_remap = "1,-1:darkgray" 82 | nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue" 83 | notice = green 84 | reason_kick = default 85 | reason_quit = 244 86 | topic_current = default 87 | topic_new = white 88 | topic_old = default 89 | 90 | [network] 91 | autoreconnect_delay_growing = 2 92 | autoreconnect_delay_max = 600 93 | ban_mask_default = "*!$ident@$host" 94 | colors_receive = on 95 | colors_send = on 96 | lag_check = 60 97 | lag_max = 1800 98 | lag_min_show = 500 99 | lag_reconnect = 0 100 | lag_refresh_interval = 1 101 | notify_check_ison = 1 102 | notify_check_whois = 5 103 | sasl_fail_unavailable = on 104 | send_unknown_commands = off 105 | whois_double_nick = off 106 | 107 | [msgbuffer] 108 | 109 | [ctcp] 110 | 111 | [ignore] 112 | 113 | [server_default] 114 | addresses = "" 115 | anti_flood_prio_high = 2 116 | anti_flood_prio_low = 2 117 | autoconnect = off 118 | autojoin = "" 119 | autoreconnect = on 120 | autoreconnect_delay = 10 121 | autorejoin = off 122 | autorejoin_delay = 30 123 | away_check = 0 124 | away_check_max_nicks = 25 125 | capabilities = "" 126 | charset_message = message 127 | command = "" 128 | command_delay = 0 129 | connection_timeout = 60 130 | ipv6 = on 131 | local_hostname = "" 132 | msg_kick = "" 133 | msg_part = "WeeChat ${info:version}" 134 | msg_quit = "WeeChat ${info:version}" 135 | nicks = "pigmonkey,pigmonkey1,pigmonkey2,pigmonkey3,pigmonkey4" 136 | nicks_alternate = on 137 | notify = "" 138 | password = "" 139 | proxy = "" 140 | realname = "" 141 | sasl_fail = continue 142 | sasl_key = "" 143 | sasl_mechanism = plain 144 | sasl_password = "" 145 | sasl_timeout = 15 146 | sasl_username = "" 147 | split_msg_max_length = 512 148 | ssl = off 149 | ssl_cert = "" 150 | ssl_dhkey_size = 2048 151 | ssl_fingerprint = "" 152 | ssl_password = "" 153 | ssl_priorities = "NORMAL:-VERS-SSL3.0" 154 | ssl_verify = on 155 | usermode = "" 156 | username = "pigmonkey" 157 | 158 | [server] 159 | bitlbee.addresses = "localhost/6667" 160 | bitlbee.proxy 161 | bitlbee.ipv6 162 | bitlbee.ssl 163 | bitlbee.ssl_cert 164 | bitlbee.ssl_password 165 | bitlbee.ssl_priorities 166 | bitlbee.ssl_dhkey_size 167 | bitlbee.ssl_fingerprint 168 | bitlbee.ssl_verify 169 | bitlbee.password 170 | bitlbee.capabilities 171 | bitlbee.sasl_mechanism 172 | bitlbee.sasl_username 173 | bitlbee.sasl_password 174 | bitlbee.sasl_key 175 | bitlbee.sasl_timeout 176 | bitlbee.sasl_fail 177 | bitlbee.autoconnect = on 178 | bitlbee.autoreconnect 179 | bitlbee.autoreconnect_delay 180 | bitlbee.nicks 181 | bitlbee.nicks_alternate 182 | bitlbee.username 183 | bitlbee.realname 184 | bitlbee.local_hostname 185 | bitlbee.usermode 186 | bitlbee.command = "/msg &bitlbee identify ${sec.data.bitlbee}" 187 | bitlbee.command_delay 188 | bitlbee.autojoin 189 | bitlbee.autorejoin 190 | bitlbee.autorejoin_delay 191 | bitlbee.connection_timeout 192 | bitlbee.anti_flood_prio_high 193 | bitlbee.anti_flood_prio_low 194 | bitlbee.away_check 195 | bitlbee.away_check_max_nicks 196 | bitlbee.msg_kick 197 | bitlbee.msg_part 198 | bitlbee.msg_quit 199 | bitlbee.notify 200 | bitlbee.split_msg_max_length 201 | bitlbee.charset_message 202 | -------------------------------------------------------------------------------- /zshrc: -------------------------------------------------------------------------------- 1 | ########### 2 | # plugins # 3 | ########### 4 | 5 | autoload -Uz compinit 6 | compinit 7 | 8 | source '/usr/share/zsh-antidote/antidote.zsh' 9 | antidote load 10 | 11 | eval "$(starship init zsh)" 12 | 13 | ########### 14 | # History # 15 | ########### 16 | 17 | setopt inc_append_history 18 | setopt extended_history 19 | setopt hist_expire_dups_first 20 | setopt hist_ignore_all_dups 21 | setopt hist_ignore_dups 22 | setopt hist_ignore_space 23 | setopt hist_reduce_blanks 24 | setopt hist_save_no_dups 25 | setopt hist_verify 26 | setopt pushd_ignore_dups 27 | setopt hist_no_store 28 | 29 | # History Substring Search 30 | bindkey '^[[A' history-substring-search-up 31 | bindkey '^[[B' history-substring-search-down 32 | 33 | # Share history across all terminals. 34 | setopt share_history 35 | 36 | # Keep a ton of history. 37 | HISTSIZE=100000 38 | SAVEHIST=100000 39 | HISTFILE=~/.zhistory 40 | export HISTORY_IGNORE="(ls|l|ll|lt|[bf]g|exit|reset|clear|cd|cd ..|cd ../|pwd|date|* --help)" 41 | 42 | 43 | ######## 44 | # Misc # 45 | ######## 46 | 47 | source ~/.aliases 48 | 49 | # Add ruby gems to the path. 50 | if which ruby >/dev/null && which gem >/dev/null; then 51 | path=($(ruby -e 'puts Gem.user_dir')/bin $path) 52 | fi 53 | 54 | # Add node packages to the path. 55 | test -r "$HOME/.node_modules/bin" && path=("$HOME/.node_modules/bin" $path) 56 | 57 | # Use SSH completion for Mosh. 58 | compdef mosh=ssh 59 | 60 | # Menu completion 61 | zstyle ':completion:*' menu select 62 | 63 | # Prevent Pure from auto-pulling git repos. 64 | PURE_GIT_PULL=0 65 | 66 | # Set LS_COLORS 67 | export LS_COLORS="$(vivid generate gruvbox-dark)" 68 | 69 | # Reverse menu with shift-tab. 70 | bindkey '^[[Z' reverse-menu-complete 71 | 72 | 73 | ###### 74 | # Vi # 75 | ###### 76 | 77 | bindkey -v 78 | bindkey -M viins 'kj' vi-cmd-mode 79 | bindkey -M vicmd "?" history-incremental-search-backward 80 | bindkey -M vicmd "/" history-incremental-search-forward 81 | bindkey -M vicmd 'k' history-substring-search-up 82 | bindkey -M vicmd 'j' history-substring-search-down 83 | 84 | 85 | ####### 86 | # FZF # 87 | ####### 88 | 89 | if [ -r /usr/share/fzf/key-bindings.zsh ]; then 90 | source /usr/share/fzf/key-bindings.zsh 91 | fi 92 | if [ -r /usr/share/fzf/completion.zsh ]; then 93 | source /usr/share/fzf/completion.zsh 94 | fi 95 | 96 | rga-fzf() { 97 | RG_PREFIX="rga --files-with-matches" 98 | local file 99 | file="$( 100 | FZF_DEFAULT_COMMAND="$RG_PREFIX $@" \ 101 | fzf --sort --preview="[[ ! -z {} ]] && rga --pretty --context 5 {q} {}" \ 102 | --bind=tab:down,btab:up \ 103 | --phony -q "$1" \ 104 | --bind "change:reload:$RG_PREFIX {q}" \ 105 | --preview-window="70%:wrap" 106 | )" && 107 | echo "opening $file" && 108 | xdg-open "$file" 109 | } 110 | 111 | 112 | ######## 113 | # Pass # 114 | ######## 115 | 116 | # Setup alternative pass. 117 | wpass() { 118 | PASSWORD_STORE_DIR="$ALTPASSDIR" pass "$@" 119 | } 120 | compdef -e 'PASSWORD_STORE_DIR=$ALTPASSDIR _pass' wpass 121 | 122 | # Access pass 123 | access() { 124 | PASSWORD_STORE_DIR="$ACCESSPASSDIR" pass "$@" 125 | } 126 | compdef -e 'PASSWORD_STORE_DIR=$ACCESSPASSDIR _pass' access 127 | 128 | # Finance pass 129 | fin() { 130 | PASSWORD_STORE_DIR="$FINPASSDIR" pass "$@" 131 | } 132 | compdef -e 'PASSWORD_STORE_DIR=$FINPASSDIR _pass' fin 133 | 134 | 135 | ######### 136 | # Color # 137 | ######### 138 | 139 | BASE16_SHELL="$HOME/library/src/base16-shell" 140 | BASE16_ALACRITTY="$HOME/library/src/base16-alacritty" 141 | BASE16_KITTY="$HOME/library/src/base16-kitty" 142 | BASE16_I3="$HOME/library/src/base16-i3" 143 | BASE16_XRESOURCES="$HOME/library/src/base16-xresources" 144 | BASE16_QUTEBROWSER="$HOME/library/src/base16-qutebrowser" 145 | BASE16_ZATHURA="$HOME/library/src/base16-zathura" 146 | BASE16_ROFI="$HOME/library/src/base16-rofi.pschyska" 147 | 148 | [ -n "$PS1" ] && [ -s "$BASE16_SHELL/profile_helper.sh" ] && source "$BASE16_SHELL/profile_helper.sh" 149 | 150 | theme() { 151 | if [ -z "$1" ]; then 152 | theme="gruvbox-dark-medium" 153 | theme_simple="gruvbox-dark" 154 | elif [[ "$1" == "day" ]]; then 155 | theme="gruvbox-light-soft" 156 | theme_simple="gruvbox-light" 157 | else 158 | theme="$1" 159 | theme_simple="$1" 160 | fi 161 | echo "$theme" 162 | # set shell 163 | _base16 "$BASE16_SHELL"/scripts/base16-"$theme".sh "$theme" 164 | # set alacritty 165 | cp "$BASE16_ALACRITTY/colors/base16-$theme.toml" ~/.config/alacritty/colors.toml 166 | # set kitty 167 | cp "$BASE16_KITTY/colors/base16-$theme.conf" ~/.config/kitty/colors.conf 168 | pkill -USR1 -f /usr/bin/kitty 169 | # set i3 170 | i3config="$HOME/projects/dotfiles/config/i3/config" 171 | sed -i '1,/## Colors/!d' "$i3config" 172 | cat "$BASE16_I3"/colors/base16-"$theme".config >> "$i3config" 173 | i3-msg -q reload 174 | # set qutebrowser 175 | cp "$BASE16_QUTEBROWSER/themes/minimal/base16-$theme.config.py" ~/.config/qutebrowser/theme.config.py 176 | # set rofi 177 | cp "$BASE16_ROFI/themes/base16-$theme.rasi" ~/.config/rofi/theme.rasi 178 | # set xresources 179 | xresources="$HOME/projects/dotfiles/Xresources" 180 | sed -i '1,/! colors/!d' "$xresources" 181 | cat "$BASE16_XRESOURCES"/xresources/base16-"$theme".Xresources >> "$xresources" 182 | xrdb -load ~/.Xresources 183 | # set zathura 184 | zathurarc="$HOME/projects/dotfiles/config/zathura/zathurarc" 185 | sed -i '1,/## Colors/!d' "$zathurarc" 186 | cat "$BASE16_ZATHURA"/build_schemes/colors/base16-"$theme".config >> "$zathurarc" 187 | # set LS_COLORS 188 | export LS_COLORS="$(vivid generate $theme_simple)" 189 | # set bat 190 | sed -i '/--theme/ s/="[^"][^"]*"/="'"$theme_simple"'"/' $HOME/projects/dotfiles/config/bat/config 191 | # set zulip-term 192 | sed -i "s/theme=.*/theme=$(echo $theme_simple | tr '-' '_')/" ~/.config/zuliprc 193 | } 194 | -------------------------------------------------------------------------------- /config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | font = PragmataPro Liga 12 3 | 4 | # Allow a small subset of html markup: 5 | # bold 6 | # italic 7 | # strikethrough 8 | # underline 9 | # 10 | # For a complete reference see 11 | # . 12 | # If markup is not allowed, those tags will be stripped out of the 13 | # message. 14 | markup = yes 15 | 16 | # The format of the message. Possible variables are: 17 | # %a appname 18 | # %s summary 19 | # %b body 20 | # %i iconname (including its path) 21 | # %I iconname (without its path) 22 | # %p progress value if set ([ 0%] to [100%]) or nothing 23 | # Markup is allowed 24 | format = "%s\n%b" 25 | 26 | # Sort messages by urgency. 27 | sort = yes 28 | 29 | # Show how many messages are currently hidden (because of geometry). 30 | indicate_hidden = yes 31 | 32 | # Alignment of message text. 33 | # Possible values are "left", "center" and "right". 34 | alignment = left 35 | 36 | # The frequency with wich text that is longer than the notification 37 | # window allows bounces back and forth. 38 | # This option conflicts with "word_wrap". 39 | # Set to 0 to disable. 40 | bounce_freq = 0 41 | 42 | # Show age of message if message is older than show_age_threshold 43 | # seconds. 44 | # Set to -1 to disable. 45 | show_age_threshold = 60 46 | 47 | # Split notifications into multiple lines if they don't fit into 48 | # geometry. 49 | word_wrap = yes 50 | 51 | # Ignore newlines '\n' in notifications. 52 | ignore_newline = no 53 | 54 | 55 | # The geometry of the window: 56 | # [{width}]x{height}[+/-{x}+/-{y}] 57 | # The geometry of the message window. 58 | # The height is measured in number of notifications everything else 59 | # in pixels. If the width is omitted but the height is given 60 | # ("-geometry x2"), the message window expands over the whole screen 61 | # (dmenu-like). If width is 0, the window expands to the longest 62 | # message displayed. A positive x is measured from the left, a 63 | # negative from the right side of the screen. Y is measured from 64 | # the top and down respectevly. 65 | # The width can be negative. In this case the actual width is the 66 | # screen width minus the width defined in within the geometry option. 67 | geometry = "300x5-30+20" 68 | 69 | # Shrink window if it's smaller than the width. Will be ignored if 70 | # width is 0. 71 | shrink = no 72 | 73 | # The transparency of the window. Range: [0; 100]. 74 | # This option will only work if a compositing windowmanager is 75 | # present (e.g. xcompmgr, compiz, etc.). 76 | transparency = 0 77 | 78 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 79 | # for longer than idle_threshold seconds. 80 | # Set to 0 to disable. 81 | idle_threshold = 120 82 | 83 | # Which monitor should the notifications be displayed on. 84 | monitor = 0 85 | 86 | # Display notification on focused monitor. Possible modes are: 87 | # mouse: follow mouse pointer 88 | # keyboard: follow window with keyboard focus 89 | # none: don't follow anything 90 | # 91 | # "keyboard" needs a windowmanager that exports the 92 | # _NET_ACTIVE_WINDOW property. 93 | # This should be the case for almost all modern windowmanagers. 94 | # 95 | # If this option is set to mouse or keyboard, the monitor option 96 | # will be ignored. 97 | follow = keyboard 98 | 99 | # Should a notification popped up from history be sticky or timeout 100 | # as if it would normally do. 101 | sticky_history = yes 102 | 103 | # Maximum amount of notifications kept in history 104 | history_length = 20 105 | 106 | # Display indicators for URLs (U) and actions (A). 107 | show_indicators = yes 108 | 109 | # The height of a single line. If the height is smaller than the 110 | # font height, it will get raised to the font height. 111 | # This adds empty space above and under the text. 112 | line_height = 0 113 | 114 | # Draw a line of "separatpr_height" pixel height between two 115 | # notifications. 116 | # Set to 0 to disable. 117 | separator_height = 2 118 | 119 | # Padding between text and separator. 120 | padding = 8 121 | 122 | # Horizontal padding. 123 | horizontal_padding = 8 124 | 125 | # Define a color for the separator. 126 | # possible values are: 127 | # * auto: dunst tries to find a color fitting to the background; 128 | # * foreground: use the same color as the foreground; 129 | # * frame: use the same color as the frame; 130 | # * anything else will be interpreted as a X color. 131 | separator_color = frame 132 | 133 | # Print a notification on startup. 134 | # This is mainly for error detection, since dbus (re-)starts dunst 135 | # automatically after a crash. 136 | startup_notification = false 137 | 138 | # dmenu path. 139 | dmenu = /usr/bin/dmenu -p dunst: 140 | 141 | # Browser for opening urls in context menu. 142 | browser = xdg-open 143 | 144 | # Align icons left/right/off 145 | icon_position = off 146 | 147 | # Paths to default icons. 148 | icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 149 | 150 | # Frame 151 | frame_width = 1 152 | frame_color = "#a89984" 153 | 154 | [urgency_low] 155 | background = "#282828" 156 | foreground = "#a89984" 157 | timeout = 10 158 | 159 | [urgency_normal] 160 | background = "#282828" 161 | foreground = "#ebdbb2" 162 | timeout = 10 163 | 164 | [urgency_critical] 165 | background = "#282828" 166 | foreground = "#fb4934" 167 | timeout = 0 168 | 169 | # vim: ft=cfg 170 | -------------------------------------------------------------------------------- /config/mutt/colors/base16.muttrc: -------------------------------------------------------------------------------- 1 | # base16-mutt: base16-shell support for mutt 2 | # 3 | # These depend on mutt compiled with s-lang, not ncurses. Check by running `mutt -v` 4 | # Details this configuration may be found in the mutt manual: 5 | # §3 Patterns 6 | # §9 Using color and mono video attributes 7 | 8 | # https://www.neomutt.org/guide/configuration.html#color 9 | # base00 : color00 - Default Background 10 | # base01 : color18 - Lighter Background (Used for status bars) 11 | # base02 : color19 - Selection Background 12 | # base03 : color08 - Comments, Invisibles, Line Highlighting 13 | 14 | # base04 : color20 - Dark Foreground (Used for status bars) 15 | # base05 : color07 - Default Foreground, Caret, Delimiters, Operators 16 | # base06 : color21 - Light Foreground (Not often used) 17 | # base07 : color15 - Light Background (Not often used) 18 | 19 | # base08 : color01 - Index Item: Deleted. 20 | # base09 : color16 - Message: URL. 21 | # base0A : color03 - Search Text Background. Message: Bold. 22 | # base0B : color02 - Message: Code. Index Item: Tagged. 23 | # base0C : color06 - Message: Subject, Quotes. Index Item: Trusted. 24 | # base0D : color04 - Message: Headings. 25 | # base0E : color05 - Message: Italic, Underline. Index Item: Flagged. 26 | # base0F : color17 - Deprecated, Opening/Closing Embedded Language Tags e.g. 27 | 28 | ## Base 29 | color normal color07 color00 # softer, bold 30 | 31 | ## Weak 32 | color tilde color08 color00 # `~` padding at the end of pager 33 | color attachment color08 color00 34 | color tree color08 color00 # arrow in threads 35 | color signature color08 color00 36 | color markers color08 color00 # `+` wrap indicator in pager 37 | 38 | ## Strong 39 | color bold color21 color00 40 | color underline color21 color00 41 | 42 | ## Highlight 43 | color error color01 color00 44 | color message color04 color00 # informational messages 45 | color search color08 color03 46 | color status color20 color19 47 | color indicator color21 color19 # inverse, brighter 48 | 49 | 50 | # Message Index ---------------------------------------------------------------- 51 | 52 | ## Weak 53 | color index color07 color00 "~R" # read messages 54 | color index color07 color00 "~d >45d" # older than 45 days 55 | color index color08 color00 "~v~(!~N)" # collapsed thread with no unread 56 | color index color08 color00 "~Q" # messages that have been replied to 57 | 58 | ## Strong 59 | color index color04 color00 "(~U|~N|~O)" # unread, new, old messages 60 | color index color21 color00 "~v~(~U|~N|~O)" # collapsed thread with unread 61 | color sidebar_new color04 color00 62 | 63 | ## Highlight 64 | ### Trusted 65 | #color index color06 color00 "~g" # PGP signed messages 66 | #color index color06 color00 "~G" # PGP encrypted messages 67 | ### Odd 68 | color index color01 color00 "~E" # past Expires: header date 69 | color index color01 color00 "~=" # duplicated 70 | color index color01 color00 "~S" # marked by Supersedes: header 71 | ### Flagged 72 | color index color06 color00 "~F" # flagged messages 73 | color index color02 color00 "~v~(~F)" # collapsed thread with flagged inside 74 | 75 | # Selection 76 | color index color02 color18 "~T" # tagged messages 77 | color index color01 color18 "~D" # deleted messages 78 | 79 | ### Message Headers ---------------------------------------------------- 80 | 81 | # Base 82 | color hdrdefault color07 color00 83 | color header color07 color00 "^" 84 | # Strong 85 | color header color21 color00 "^(From)" 86 | # Highlight 87 | color header color04 color00 "^(Subject)" 88 | 89 | ### Message Body ------------------------------------------------------- 90 | # When possible, these regular expressions attempt to match http://spec.commonmark.org/ 91 | ## Weak 92 | # ~~~ Horizontal rules ~~~ 93 | color body color08 color00 "([[:space:]]*[-+=#*~_]){3,}[[:space:]]*" 94 | ## Strong 95 | # *Bold* span 96 | color body color03 color00 "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" 97 | # _Underline_ span 98 | color body color05 color00 "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" 99 | # /Italic/ span (Sometimes gets directory names) 100 | color body color05 color00 "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" 101 | # ATX headers 102 | color body color04 color00 "^[[:space:]]{0,3}#+[[:space:]].*$" 103 | ## Highlight 104 | # `Code` span 105 | color body color02 color00 "(^|[[:space:][:punct:]])\`[^\`]+\`([[:space:][:punct:]]|$)" 106 | # Indented code block 107 | #color body color02 color00 "^[[:space:]]{4,}.*$" 108 | # URLs 109 | color body color16 color00 "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" 110 | # Email addresses 111 | color body color16 color00 "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])" 112 | # Emoticons ;-P 113 | color body black yellow "[;:][-o]?[})>{(<|P]" 114 | 115 | # PGP 116 | color body color21 color01 "(BAD signature)" 117 | color body color21 color01 "^gpg: BAD signature from.*" 118 | color body color21 color04 "(Good signature)" 119 | color body color21 color04 "^gpg: Good signature .*" 120 | color body color04 color00 "^gpg: " 121 | 122 | 123 | ## Quotation blocks 124 | color quoted color06 color00 125 | color quoted1 color02 color00 126 | color quoted2 color03 color00 127 | color quoted3 color16 color00 128 | color quoted4 color01 color00 129 | color quoted5 color17 color00 130 | color quoted6 color05 color00 131 | color quoted7 color04 color00 132 | 133 | # vi: ft=muttrc 134 | -------------------------------------------------------------------------------- /config/mutt/colors/base16-tomorrow.dark.256.muttrc: -------------------------------------------------------------------------------- 1 | # Mutt template by Robert Timm (https://github.com/rti) 2 | # Base16 scheme and Base16 Builder by Chris Kempson (https://github.com/chriskempson) 3 | 4 | # ----------------------------------------------------------------------------- 5 | # MESSAGE STATUS FLAGS 6 | # ----------------------------------------------------------------------------- 7 | # D message is deleted (is marked for deletion) 8 | # d message have attachments marked for deletion 9 | # K contains a PGP public key 10 | # N message is new 11 | # O message is old 12 | # P message is PGP encrypted 13 | # r message has been replied to 14 | # S message is PGP signed, and the signature is succesfully verified 15 | # s message is PGP signed 16 | # ! message is flagged 17 | # * message is tagged 18 | 19 | # ----------------------------------------------------------------------------- 20 | # MESSAGE MATCH PATTERNS 21 | # ----------------------------------------------------------------------------- 22 | # ~A all messages 23 | # ~b EXPR messages which contain EXPR in the message body 24 | # ~B EXPR messages which contain EXPR in the whole message 25 | # ~c USER messages carbon-copied to USER 26 | # ~C EXPR message is either to: or cc: EXPR 27 | # ~D deleted messages 28 | # ~d [MIN]-[MAX] messages with ``date-sent'' in a Date range 29 | # ~E expired messages 30 | # ~e EXPR message which contains EXPR in the ``Sender'' field 31 | # ~F flagged messages 32 | # ~f USER messages originating from USER 33 | # ~g PGP signed messages 34 | # ~G PGP encrypted messages 35 | # ~h EXPR messages which contain EXPR in the message header 36 | # ~k message contains PGP key material 37 | # ~i ID message which match ID in the ``Message-ID'' field 38 | # ~L EXPR message is either originated or received by EXPR 39 | # ~l message is addressed to a known mailing list 40 | # ~m [MIN]-[MAX] message in the range MIN to MAX *) 41 | # ~n [MIN]-[MAX] messages with a score in the range MIN to MAX *) 42 | # ~N new messages 43 | # ~O old messages 44 | # ~p message is addressed to you (consults $alternates) 45 | # ~P message is from you (consults $alternates) 46 | # ~Q messages which have been replied to 47 | # ~R read messages 48 | # ~r [MIN]-[MAX] messages with ``date-received'' in a Date range 49 | # ~S superseded messages 50 | # ~s SUBJECT messages having SUBJECT in the ``Subject'' field. 51 | # ~T tagged messages 52 | # ~t USER messages addressed to USER 53 | # ~U unread messages 54 | # ~v message is part of a collapsed thread. 55 | # ~x EXPR messages which contain EXPR in the `References' field 56 | # ~y EXPR messages which contain EXPR in the `X-Label' field 57 | # ~z [MIN]-[MAX] messages with a size in the range MIN to MAX *) 58 | # ~= duplicated messages (see $duplicate_threads) 59 | 60 | # ----------------------------------------------------------------------------- 61 | # MESSAGE to_chars flags 62 | # ----------------------------------------------------------------------------- 63 | # + message is to you and you only 64 | # T message is to you, but also to or cc'ed to others 65 | # C message is cc'ed to you 66 | # F message is from you 67 | # L message is sent to a subscribed mailing list 68 | 69 | 70 | # basic colors --------------------------------------------------------- 71 | # name foreground background pattern 72 | color normal color20 color0 73 | color error color1 color0 74 | color tilde color20 color0 75 | color message color20 color0 76 | color markers color1 color0 77 | color attachment color8 color0 78 | color search color2 color0 79 | color status color8 color18 80 | color indicator color7 color19 81 | color tree color19 color0 # arrow in threads 82 | 83 | color index color20 color0 "~A" # all messages 84 | color index color1 color0 "~F" # flagged messages 85 | color index color20 color0 "~v~(!~N)" # collapsed thread with no unread 86 | color index color4 color0 "~U" # unread messages 87 | color index color4 color0 "~v~(~N)" # collapsed thread with some unread 88 | color index color1 color0 "~v~(~F)" # collapsed thread with some flagged 89 | color index color0 color1 "~D" # deleted messages 90 | 91 | # header 92 | color hdrdefault color20 color18 93 | color header color20 color18 "^" 94 | color header color7 color18 "^(From)" 95 | color header color7 color18 "^(Subject)" 96 | 97 | # body 98 | color normal color7 color0 99 | color underline color7 color0 100 | color bold color7 color0 101 | color signature color20 color0 102 | 103 | color quoted color3 color0 104 | color quoted1 color2 color0 105 | color quoted2 color5 color0 106 | color quoted3 color6 color0 107 | color quoted4 color4 color0 108 | 109 | # pgp 110 | color body color2 color0 "(Good signature)" 111 | color body color2 color0 "^gpg: Good signature .*" 112 | color body color20 color0 "^gpg: " 113 | color body color1 color0 "(BAD signature)" 114 | color body color1 color1 "^gpg: BAD signature from.*" 115 | 116 | # body url 117 | color body color4 color0 "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" 118 | # body email 119 | color body color4 color0 "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])" 120 | 121 | 122 | # vim: filetype=muttrc 123 | 124 | -------------------------------------------------------------------------------- /config/qutebrowser/solarized.py: -------------------------------------------------------------------------------- 1 | ################################################################### 2 | # base16-qutebrowser (https://github.com/theova/base16-qutebrowser) 3 | # Base16 qutebrowser template by theova 4 | # Solarized Dark scheme by Ethan Schoonover (modified by aramisgithub) 5 | ################################################################### 6 | 7 | base00 = "#002b36" 8 | base01 = "#073642" 9 | base02 = "#586e75" 10 | base03 = "#657b83" 11 | base04 = "#839496" 12 | base05 = "#93a1a1" 13 | base06 = "#eee8d5" 14 | base07 = "#fdf6e3" 15 | base08 = "#dc322f" 16 | base09 = "#cb4b16" 17 | base0A = "#b58900" 18 | base0B = "#859900" 19 | base0C = "#2aa198" 20 | base0D = "#268bd2" 21 | base0E = "#6c71c4" 22 | base0F = "#d33682" 23 | 24 | # set qutebrowser colors 25 | 26 | # Text color of the completion widget. May be a single color to use for 27 | # all columns or a list of three colors, one for each column. 28 | c.colors.completion.fg = base05 29 | 30 | # Background color of the completion widget for odd rows. 31 | c.colors.completion.odd.bg = base03 32 | 33 | # Background color of the completion widget for even rows. 34 | c.colors.completion.even.bg = base00 35 | 36 | # Foreground color of completion widget category headers. 37 | c.colors.completion.category.fg = base0A 38 | 39 | # Background color of the completion widget category headers. 40 | c.colors.completion.category.bg = base00 41 | 42 | # Top border color of the completion widget category headers. 43 | c.colors.completion.category.border.top = base00 44 | 45 | # Bottom border color of the completion widget category headers. 46 | c.colors.completion.category.border.bottom = base00 47 | 48 | # Foreground color of the selected completion item. 49 | c.colors.completion.item.selected.fg = base01 50 | 51 | # Background color of the selected completion item. 52 | c.colors.completion.item.selected.bg = base0A 53 | 54 | # Top border color of the completion widget category headers. 55 | c.colors.completion.item.selected.border.top = base0A 56 | 57 | # Bottom border color of the selected completion item. 58 | c.colors.completion.item.selected.border.bottom = base0A 59 | 60 | # Foreground color of the matched text in the completion. 61 | c.colors.completion.match.fg = base0B 62 | 63 | # Color of the scrollbar handle in the completion view. 64 | c.colors.completion.scrollbar.fg = base05 65 | 66 | # Color of the scrollbar in the completion view. 67 | c.colors.completion.scrollbar.bg = base00 68 | 69 | # Background color for the download bar. 70 | c.colors.downloads.bar.bg = base00 71 | 72 | # Color gradient start for download text. 73 | c.colors.downloads.start.fg = base00 74 | 75 | # Color gradient start for download backgrounds. 76 | c.colors.downloads.start.bg = base0D 77 | 78 | # Color gradient end for download text. 79 | c.colors.downloads.stop.fg = base00 80 | 81 | # Color gradient stop for download backgrounds. 82 | c.colors.downloads.stop.bg = base0C 83 | 84 | # Foreground color for downloads with errors. 85 | c.colors.downloads.error.fg = base08 86 | 87 | # Font color for hints. 88 | c.colors.hints.fg = base00 89 | 90 | # Background color for hints. Note that you can use a `rgba(...)` value 91 | # for transparency. 92 | c.colors.hints.bg = base0A 93 | 94 | # Font color for the matched part of hints. 95 | c.colors.hints.match.fg = base05 96 | 97 | # Text color for the keyhint widget. 98 | c.colors.keyhint.fg = base05 99 | 100 | # Highlight color for keys to complete the current keychain. 101 | c.colors.keyhint.suffix.fg = base05 102 | 103 | # Background color of the keyhint widget. 104 | c.colors.keyhint.bg = base00 105 | 106 | # Foreground color of an error message. 107 | c.colors.messages.error.fg = base00 108 | 109 | # Background color of an error message. 110 | c.colors.messages.error.bg = base08 111 | 112 | # Border color of an error message. 113 | c.colors.messages.error.border = base08 114 | 115 | # Foreground color of a warning message. 116 | c.colors.messages.warning.fg = base00 117 | 118 | # Background color of a warning message. 119 | c.colors.messages.warning.bg = base0E 120 | 121 | # Border color of a warning message. 122 | c.colors.messages.warning.border = base0E 123 | 124 | # Foreground color of an info message. 125 | c.colors.messages.info.fg = base05 126 | 127 | # Background color of an info message. 128 | c.colors.messages.info.bg = base00 129 | 130 | # Border color of an info message. 131 | c.colors.messages.info.border = base00 132 | 133 | # Foreground color for prompts. 134 | c.colors.prompts.fg = base05 135 | 136 | # Border used around UI elements in prompts. 137 | c.colors.prompts.border = base00 138 | 139 | # Background color for prompts. 140 | c.colors.prompts.bg = base00 141 | 142 | # Background color for the selected item in filename prompts. 143 | c.colors.prompts.selected.bg = base0A 144 | 145 | # Foreground color of the statusbar. 146 | c.colors.statusbar.normal.fg = base0B 147 | 148 | # Background color of the statusbar. 149 | c.colors.statusbar.normal.bg = base00 150 | 151 | # Foreground color of the statusbar in insert mode. 152 | c.colors.statusbar.insert.fg = base00 153 | 154 | # Background color of the statusbar in insert mode. 155 | c.colors.statusbar.insert.bg = base0D 156 | 157 | # Foreground color of the statusbar in passthrough mode. 158 | c.colors.statusbar.passthrough.fg = base00 159 | 160 | # Background color of the statusbar in passthrough mode. 161 | c.colors.statusbar.passthrough.bg = base0C 162 | 163 | # Foreground color of the statusbar in private browsing mode. 164 | c.colors.statusbar.private.fg = base00 165 | 166 | # Background color of the statusbar in private browsing mode. 167 | c.colors.statusbar.private.bg = base03 168 | 169 | # Foreground color of the statusbar in command mode. 170 | c.colors.statusbar.command.fg = base05 171 | 172 | # Background color of the statusbar in command mode. 173 | c.colors.statusbar.command.bg = base00 174 | 175 | # Foreground color of the statusbar in private browsing + command mode. 176 | c.colors.statusbar.command.private.fg = base05 177 | 178 | # Background color of the statusbar in private browsing + command mode. 179 | c.colors.statusbar.command.private.bg = base00 180 | 181 | # Foreground color of the statusbar in caret mode. 182 | c.colors.statusbar.caret.fg = base00 183 | 184 | # Background color of the statusbar in caret mode. 185 | c.colors.statusbar.caret.bg = base0E 186 | 187 | # Foreground color of the statusbar in caret mode with a selection. 188 | c.colors.statusbar.caret.selection.fg = base00 189 | 190 | # Background color of the statusbar in caret mode with a selection. 191 | c.colors.statusbar.caret.selection.bg = base0D 192 | 193 | # Background color of the progress bar. 194 | c.colors.statusbar.progress.bg = base0D 195 | 196 | # Default foreground color of the URL in the statusbar. 197 | c.colors.statusbar.url.fg = base05 198 | 199 | # Foreground color of the URL in the statusbar on error. 200 | c.colors.statusbar.url.error.fg = base08 201 | 202 | # Foreground color of the URL in the statusbar for hovered links. 203 | c.colors.statusbar.url.hover.fg = base05 204 | 205 | # Foreground color of the URL in the statusbar on successful load 206 | # (http). 207 | c.colors.statusbar.url.success.http.fg = base0C 208 | 209 | # Foreground color of the URL in the statusbar on successful load 210 | # (https). 211 | c.colors.statusbar.url.success.https.fg = base0B 212 | 213 | # Foreground color of the URL in the statusbar when there's a warning. 214 | c.colors.statusbar.url.warn.fg = base0E 215 | 216 | # Background color of the tab bar. 217 | c.colors.tabs.bar.bg = base00 218 | 219 | # Color gradient start for the tab indicator. 220 | c.colors.tabs.indicator.start = base0D 221 | 222 | # Color gradient end for the tab indicator. 223 | c.colors.tabs.indicator.stop = base0C 224 | 225 | # Color for the tab indicator on errors. 226 | c.colors.tabs.indicator.error = base08 227 | 228 | # Foreground color of unselected odd tabs. 229 | c.colors.tabs.odd.fg = base05 230 | 231 | # Background color of unselected odd tabs. 232 | c.colors.tabs.odd.bg = base00 233 | 234 | # Foreground color of unselected even tabs. 235 | c.colors.tabs.even.fg = base05 236 | 237 | # Background color of unselected even tabs. 238 | c.colors.tabs.even.bg = base00 239 | 240 | # Foreground color of selected odd tabs. 241 | c.colors.tabs.selected.odd.fg = base00 242 | 243 | # Background color of selected odd tabs. 244 | c.colors.tabs.selected.odd.bg = base05 245 | 246 | # Foreground color of selected even tabs. 247 | c.colors.tabs.selected.even.fg = base00 248 | 249 | # Background color of selected even tabs. 250 | c.colors.tabs.selected.even.bg = base05 251 | 252 | # Background color for webpages if unset (or empty to use the theme's 253 | # color). 254 | # c.colors.webpage.bg = base00 255 | -------------------------------------------------------------------------------- /config/i3/config: -------------------------------------------------------------------------------- 1 | # i3 config file (v4) 2 | # 3 | # Please see http://i3wm.org/docs/userguide.html for a complete reference! 4 | # 5 | set $mod Mod1 6 | 7 | # Font for window titles. Will also be used by the bar unless a different font 8 | # is used in the bar {} block below. ISO 10646 = Unicode 9 | font pango:PragmataPro Liga 12 10 | 11 | # Use Mouse+$mod to drag floating windows to their wanted position 12 | floating_modifier $mod 13 | 14 | # start a terminal 15 | bindsym $mod+Return exec i3-sensible-terminal 16 | 17 | # kill focused window 18 | bindsym $mod+Shift+q kill 19 | 20 | # change focus 21 | bindsym $mod+h focus left 22 | bindsym $mod+j focus down 23 | bindsym $mod+k focus up 24 | bindsym $mod+l focus right 25 | 26 | # alternatively, you can use the cursor keys: 27 | bindsym $mod+Left focus left 28 | bindsym $mod+Down focus down 29 | bindsym $mod+Up focus up 30 | bindsym $mod+Right focus right 31 | 32 | # move focused window 33 | bindsym $mod+Shift+h move left 34 | bindsym $mod+Shift+j move down 35 | bindsym $mod+Shift+k move up 36 | bindsym $mod+Shift+l move right 37 | 38 | # alternatively, you can use the cursor keys: 39 | bindsym $mod+Shift+Left move left 40 | bindsym $mod+Shift+Down move down 41 | bindsym $mod+Shift+Up move up 42 | bindsym $mod+Shift+Right move right 43 | 44 | # split in horizontal orientation 45 | bindsym $mod+n split h 46 | 47 | # split in vertical orientation 48 | bindsym $mod+v split v 49 | 50 | # enter fullscreen mode for the focused container 51 | bindsym $mod+f fullscreen 52 | 53 | # change container layout (stacked, tabbed, toggle split) 54 | bindsym $mod+s layout stacking 55 | bindsym $mod+w layout tabbed 56 | bindsym $mod+e layout toggle split 57 | 58 | # toggle tiling / floating 59 | bindsym $mod+Shift+space floating toggle 60 | 61 | # change focus between tiling / floating windows 62 | bindsym $mod+space focus mode_toggle 63 | 64 | # focus the parent container 65 | bindsym $mod+a focus parent 66 | 67 | # focus the child container 68 | #bindsym $mod+d focus child 69 | 70 | # switch to workspace 71 | bindsym $mod+1 workspace 1 72 | bindsym $mod+2 workspace 2 73 | bindsym $mod+3 workspace 3 74 | bindsym $mod+4 workspace 4 75 | bindsym $mod+5 workspace 5 76 | bindsym $mod+6 workspace 6 77 | bindsym $mod+7 workspace 7 78 | bindsym $mod+8 workspace 8 79 | bindsym $mod+9 workspace 9 80 | bindsym $mod+0 workspace 10 81 | 82 | # move focused container to workspace 83 | bindsym $mod+Shift+1 move container to workspace 1 84 | bindsym $mod+Shift+2 move container to workspace 2 85 | bindsym $mod+Shift+3 move container to workspace 3 86 | bindsym $mod+Shift+4 move container to workspace 4 87 | bindsym $mod+Shift+5 move container to workspace 5 88 | bindsym $mod+Shift+6 move container to workspace 6 89 | bindsym $mod+Shift+7 move container to workspace 7 90 | bindsym $mod+Shift+8 move container to workspace 8 91 | bindsym $mod+Shift+9 move container to workspace 9 92 | bindsym $mod+Shift+0 move container to workspace 10 93 | 94 | # move current workspace to different output 95 | bindsym $mod+x move workspace to output right 96 | 97 | # mark windows 98 | # https://gist.github.com/kLabz/23d793d517f18b15c8d77b51b232e6ce 99 | set $mode_focus Focus: (Shift+1~0) Mark ⋅ (1~0) Focus ⋅ (Ctrl+1~0) Clear ⋅ (a) Create custom ⋅ (g) Focus custom ⋅ (c) Clear custom 100 | mode "$mode_focus" { 101 | # Keybindings for custom marks 102 | bindsym a exec i3-input -F 'mark %s' -P 'Mark name: ' 103 | bindsym g exec i3-input -F '[con_mark=%s] focus' -P 'Go to mark: ' 104 | bindsym c exec i3-input -F 'unmark %s' -P 'Clear mark: ' 105 | 106 | # Assign marks to keys 1-10 107 | bindsym Shift+1 mark mark1 108 | bindsym Shift+2 mark mark2 109 | bindsym Shift+3 mark mark3 110 | bindsym Shift+4 mark mark4 111 | bindsym Shift+5 mark mark5 112 | bindsym Shift+6 mark mark6 113 | bindsym Shift+7 mark mark7 114 | bindsym Shift+8 mark mark8 115 | bindsym Shift+9 mark mark9 116 | bindsym Shift+0 mark mark10 117 | 118 | # Jump to clients marked 1-10 119 | bindsym 1 [con_mark="mark1"] focus 120 | bindsym 2 [con_mark="mark2"] focus 121 | bindsym 3 [con_mark="mark3"] focus 122 | bindsym 4 [con_mark="mark4"] focus 123 | bindsym 5 [con_mark="mark5"] focus 124 | bindsym 6 [con_mark="mark6"] focus 125 | bindsym 7 [con_mark="mark7"] focus 126 | bindsym 8 [con_mark="mark8"] focus 127 | bindsym 9 [con_mark="mark9"] focus 128 | bindsym 0 [con_mark="mark0"] focus 129 | 130 | # Clear marks 1-10 131 | bindsym Control+1 unmark mark1 132 | bindsym Control+2 unmark mark2 133 | bindsym Control+3 unmark mark3 134 | bindsym Control+4 unmark mark4 135 | bindsym Control+5 unmark mark5 136 | bindsym Control+6 unmark mark6 137 | bindsym Control+7 unmark mark7 138 | bindsym Control+8 unmark mark8 139 | bindsym Control+9 unmark mark9 140 | bindsym Control+0 unmark mark0 141 | 142 | # Exit to the default mode 143 | bindsym Return mode "default" 144 | bindsym Escape mode "default" 145 | bindsym $mod+m mode "default" 146 | } 147 | bindsym $mod+m mode "$mode_focus" 148 | 149 | # reload the configuration file 150 | bindsym $mod+Shift+c reload 151 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) 152 | bindsym $mod+Shift+r restart 153 | # exit i3 (logs you out of your X session) 154 | bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" 155 | 156 | # resize window (you can also use the mouse for that) 157 | mode "resize" { 158 | # These bindings trigger as soon as you enter the resize mode 159 | 160 | # Pressing left will shrink the window’s width. 161 | # Pressing right will grow the window’s width. 162 | # Pressing up will shrink the window’s height. 163 | # Pressing down will grow the window’s height. 164 | bindsym l resize shrink width 5 px or 5 ppt 165 | bindsym k resize grow height 5 px or 5 ppt 166 | bindsym j resize shrink height 5 px or 5 ppt 167 | bindsym h resize grow width 5 px or 5 ppt 168 | 169 | # same bindings, but for the arrow keys 170 | bindsym Left resize shrink width 5 px or 5 ppt 171 | bindsym Down resize grow height 5 px or 5 ppt 172 | bindsym Up resize shrink height 5 px or 5 ppt 173 | bindsym Right resize grow width 5 px or 5 ppt 174 | 175 | # back to normal: Enter or Escape 176 | bindsym Return mode "default" 177 | bindsym Escape mode "default" 178 | } 179 | 180 | bindsym $mod+r mode "resize" 181 | 182 | # Start i3bar to display a workspace bar (plus the system information i3status 183 | # finds out, if available) 184 | bar { 185 | status_command py3status 186 | position top 187 | padding 0 12px 188 | colors { 189 | background $base00 190 | separator $base01 191 | statusline $base04 192 | 193 | # State Border BG Text 194 | focused_workspace $base05 $base0D $base00 195 | active_workspace $base05 $base03 $base00 196 | inactive_workspace $base03 $base01 $base05 197 | urgent_workspace $base08 $base08 $base00 198 | binding_mode $base00 $base0A $base00 199 | } 200 | } 201 | 202 | # Automatic workspace switching back-and-forth. 203 | workspace_auto_back_and_forth yes 204 | 205 | # Make the currently focused window a scratchpad 206 | bindsym $mod+Shift+minus move scratchpad 207 | 208 | # Show the first scratchpad window 209 | bindsym $mod+minus scratchpad show 210 | 211 | # Window focus should not follow mouse 212 | focus_follows_mouse no 213 | 214 | # Cycle through workspaces with mouse. 215 | bindsym --whole-window button10 workspace next 216 | bindsym --whole-window button11 workspace prev 217 | 218 | # Show taskwarrior tasks. 219 | for_window [title="^taskwin$"] floating enable 220 | bindsym $mod+t exec i3-sensible-terminal --title=taskwin -e ~/bin/display_tasks.sh 221 | 222 | # Float pinit windows 223 | for_window [title="^pinit$"] floating enable 224 | 225 | # Float pinentry windows 226 | for_window [title="^pinentry$"] floating enable 227 | 228 | # Float asoundconf-gtk windows 229 | for_window [title="^Default Sound Card$"] floating enable 230 | 231 | # Float pavucontrol windows 232 | for_window [title="^Volume Control$"] floating enable 233 | 234 | # float qcode windows 235 | for_window [title="^qcode$"] floating enable 236 | 237 | # float showme windows 238 | for_window [title="^showme$"] floating enable 239 | 240 | # float qalculate windows 241 | for_window [title="^qalculate-gtk$"] floating enable 242 | # 243 | # float edit_text windows 244 | for_window [title="^edit_text$"] floating enable 245 | 246 | # Window colors Border BG Text Indicator Child Border 247 | client.focused $base05 $base0D $base00 $base0D $base0C 248 | client.focused_inactive $base01 $base01 $base05 $base03 $base01 249 | client.unfocused $base01 $base00 $base05 $base01 $base01 250 | client.urgent $base08 $base08 $base00 $base08 $base08 251 | client.placeholder $base00 $base00 $base05 $base00 $base00 252 | client.background $base07 253 | 254 | # Hide borders adjacent to screen edges 255 | hide_edge_borders both 256 | 257 | # Assign MPV to workspace 4 and focus 258 | assign [class="mpv"] 4 259 | for_window [class="mpv"] focus 260 | 261 | ## Colors 262 | ## Base16 Gruvbox dark, medium 263 | # Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) 264 | # 265 | # You can use these variables anywhere in the i3 configuration file. 266 | 267 | set $base00 #282828 268 | set $base01 #3c3836 269 | set $base02 #504945 270 | set $base03 #665c54 271 | set $base04 #bdae93 272 | set $base05 #d5c4a1 273 | set $base06 #ebdbb2 274 | set $base07 #fbf1c7 275 | set $base08 #fb4934 276 | set $base09 #fe8019 277 | set $base0A #fabd2f 278 | set $base0B #b8bb26 279 | set $base0C #8ec07c 280 | set $base0D #83a598 281 | set $base0E #d3869b 282 | set $base0F #d65d0e 283 | -------------------------------------------------------------------------------- /config/qutebrowser/base16-gruvbox-dark-hard.config.py: -------------------------------------------------------------------------------- 1 | # base16-qutebrowser (https://github.com/theova/base16-qutebrowser) 2 | # Base16 qutebrowser template by theova 3 | # Gruvbox dark, hard scheme by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) 4 | 5 | base00 = "#1d2021" 6 | base01 = "#3c3836" 7 | base02 = "#504945" 8 | base03 = "#665c54" 9 | base04 = "#bdae93" 10 | base05 = "#d5c4a1" 11 | base06 = "#ebdbb2" 12 | base07 = "#fbf1c7" 13 | base08 = "#fb4934" 14 | base09 = "#fe8019" 15 | base0A = "#fabd2f" 16 | base0B = "#b8bb26" 17 | base0C = "#8ec07c" 18 | base0D = "#83a598" 19 | base0E = "#d3869b" 20 | base0F = "#d65d0e" 21 | 22 | # set qutebrowser colors 23 | 24 | # Text color of the completion widget. May be a single color to use for 25 | # all columns or a list of three colors, one for each column. 26 | c.colors.completion.fg = base05 27 | 28 | # Background color of the completion widget for odd rows. 29 | c.colors.completion.odd.bg = base01 30 | 31 | # Background color of the completion widget for even rows. 32 | c.colors.completion.even.bg = base00 33 | 34 | # Foreground color of completion widget category headers. 35 | c.colors.completion.category.fg = base0A 36 | 37 | # Background color of the completion widget category headers. 38 | c.colors.completion.category.bg = base00 39 | 40 | # Top border color of the completion widget category headers. 41 | c.colors.completion.category.border.top = base00 42 | 43 | # Bottom border color of the completion widget category headers. 44 | c.colors.completion.category.border.bottom = base00 45 | 46 | # Foreground color of the selected completion item. 47 | c.colors.completion.item.selected.fg = base05 48 | 49 | # Background color of the selected completion item. 50 | c.colors.completion.item.selected.bg = base02 51 | 52 | # Top border color of the selected completion item. 53 | c.colors.completion.item.selected.border.top = base02 54 | 55 | # Bottom border color of the selected completion item. 56 | c.colors.completion.item.selected.border.bottom = base02 57 | 58 | # Foreground color of the matched text in the selected completion item. 59 | c.colors.completion.item.selected.match.fg = base0B 60 | 61 | # Foreground color of the matched text in the completion. 62 | c.colors.completion.match.fg = base0B 63 | 64 | # Color of the scrollbar handle in the completion view. 65 | c.colors.completion.scrollbar.fg = base05 66 | 67 | # Color of the scrollbar in the completion view. 68 | c.colors.completion.scrollbar.bg = base00 69 | 70 | # Background color of disabled items in the context menu. 71 | c.colors.contextmenu.disabled.bg = base01 72 | 73 | # Foreground color of disabled items in the context menu. 74 | c.colors.contextmenu.disabled.fg = base04 75 | 76 | # Background color of the context menu. If set to null, the Qt default is used. 77 | c.colors.contextmenu.menu.bg = base00 78 | 79 | # Foreground color of the context menu. If set to null, the Qt default is used. 80 | c.colors.contextmenu.menu.fg = base05 81 | 82 | # Background color of the context menu’s selected item. If set to null, the Qt default is used. 83 | c.colors.contextmenu.selected.bg = base02 84 | 85 | #Foreground color of the context menu’s selected item. If set to null, the Qt default is used. 86 | c.colors.contextmenu.selected.fg = base05 87 | 88 | # Background color for the download bar. 89 | c.colors.downloads.bar.bg = base00 90 | 91 | # Color gradient start for download text. 92 | c.colors.downloads.start.fg = base00 93 | 94 | # Color gradient start for download backgrounds. 95 | c.colors.downloads.start.bg = base0D 96 | 97 | # Color gradient end for download text. 98 | c.colors.downloads.stop.fg = base00 99 | 100 | # Color gradient stop for download backgrounds. 101 | c.colors.downloads.stop.bg = base0C 102 | 103 | # Foreground color for downloads with errors. 104 | c.colors.downloads.error.fg = base08 105 | 106 | # Font color for hints. 107 | c.colors.hints.fg = base00 108 | 109 | # Background color for hints. Note that you can use a `rgba(...)` value 110 | # for transparency. 111 | c.colors.hints.bg = base0A 112 | 113 | # Font color for the matched part of hints. 114 | c.colors.hints.match.fg = base05 115 | 116 | # Text color for the keyhint widget. 117 | c.colors.keyhint.fg = base05 118 | 119 | # Highlight color for keys to complete the current keychain. 120 | c.colors.keyhint.suffix.fg = base05 121 | 122 | # Background color of the keyhint widget. 123 | c.colors.keyhint.bg = base00 124 | 125 | # Foreground color of an error message. 126 | c.colors.messages.error.fg = base00 127 | 128 | # Background color of an error message. 129 | c.colors.messages.error.bg = base08 130 | 131 | # Border color of an error message. 132 | c.colors.messages.error.border = base08 133 | 134 | # Foreground color of a warning message. 135 | c.colors.messages.warning.fg = base00 136 | 137 | # Background color of a warning message. 138 | c.colors.messages.warning.bg = base0E 139 | 140 | # Border color of a warning message. 141 | c.colors.messages.warning.border = base0E 142 | 143 | # Foreground color of an info message. 144 | c.colors.messages.info.fg = base05 145 | 146 | # Background color of an info message. 147 | c.colors.messages.info.bg = base00 148 | 149 | # Border color of an info message. 150 | c.colors.messages.info.border = base00 151 | 152 | # Foreground color for prompts. 153 | c.colors.prompts.fg = base05 154 | 155 | # Border used around UI elements in prompts. 156 | c.colors.prompts.border = base00 157 | 158 | # Background color for prompts. 159 | c.colors.prompts.bg = base00 160 | 161 | # Background color for the selected item in filename prompts. 162 | c.colors.prompts.selected.bg = base02 163 | 164 | # Foreground color of the statusbar. 165 | c.colors.statusbar.normal.fg = base0B 166 | 167 | # Background color of the statusbar. 168 | c.colors.statusbar.normal.bg = base00 169 | 170 | # Foreground color of the statusbar in insert mode. 171 | c.colors.statusbar.insert.fg = base00 172 | 173 | # Background color of the statusbar in insert mode. 174 | c.colors.statusbar.insert.bg = base0D 175 | 176 | # Foreground color of the statusbar in passthrough mode. 177 | c.colors.statusbar.passthrough.fg = base00 178 | 179 | # Background color of the statusbar in passthrough mode. 180 | c.colors.statusbar.passthrough.bg = base0C 181 | 182 | # Foreground color of the statusbar in private browsing mode. 183 | c.colors.statusbar.private.fg = base00 184 | 185 | # Background color of the statusbar in private browsing mode. 186 | c.colors.statusbar.private.bg = base01 187 | 188 | # Foreground color of the statusbar in command mode. 189 | c.colors.statusbar.command.fg = base05 190 | 191 | # Background color of the statusbar in command mode. 192 | c.colors.statusbar.command.bg = base00 193 | 194 | # Foreground color of the statusbar in private browsing + command mode. 195 | c.colors.statusbar.command.private.fg = base05 196 | 197 | # Background color of the statusbar in private browsing + command mode. 198 | c.colors.statusbar.command.private.bg = base00 199 | 200 | # Foreground color of the statusbar in caret mode. 201 | c.colors.statusbar.caret.fg = base00 202 | 203 | # Background color of the statusbar in caret mode. 204 | c.colors.statusbar.caret.bg = base0E 205 | 206 | # Foreground color of the statusbar in caret mode with a selection. 207 | c.colors.statusbar.caret.selection.fg = base00 208 | 209 | # Background color of the statusbar in caret mode with a selection. 210 | c.colors.statusbar.caret.selection.bg = base0D 211 | 212 | # Background color of the progress bar. 213 | c.colors.statusbar.progress.bg = base0D 214 | 215 | # Default foreground color of the URL in the statusbar. 216 | c.colors.statusbar.url.fg = base05 217 | 218 | # Foreground color of the URL in the statusbar on error. 219 | c.colors.statusbar.url.error.fg = base08 220 | 221 | # Foreground color of the URL in the statusbar for hovered links. 222 | c.colors.statusbar.url.hover.fg = base05 223 | 224 | # Foreground color of the URL in the statusbar on successful load 225 | # (http). 226 | c.colors.statusbar.url.success.http.fg = base0C 227 | 228 | # Foreground color of the URL in the statusbar on successful load 229 | # (https). 230 | c.colors.statusbar.url.success.https.fg = base0B 231 | 232 | # Foreground color of the URL in the statusbar when there's a warning. 233 | c.colors.statusbar.url.warn.fg = base0E 234 | 235 | # Background color of the tab bar. 236 | c.colors.tabs.bar.bg = base00 237 | 238 | # Color gradient start for the tab indicator. 239 | c.colors.tabs.indicator.start = base0D 240 | 241 | # Color gradient end for the tab indicator. 242 | c.colors.tabs.indicator.stop = base0C 243 | 244 | # Color for the tab indicator on errors. 245 | c.colors.tabs.indicator.error = base08 246 | 247 | # Foreground color of unselected odd tabs. 248 | c.colors.tabs.odd.fg = base05 249 | 250 | # Background color of unselected odd tabs. 251 | c.colors.tabs.odd.bg = base01 252 | 253 | # Foreground color of unselected even tabs. 254 | c.colors.tabs.even.fg = base05 255 | 256 | # Background color of unselected even tabs. 257 | c.colors.tabs.even.bg = base00 258 | 259 | # Background color of pinned unselected even tabs. 260 | c.colors.tabs.pinned.even.bg = base0C 261 | 262 | # Foreground color of pinned unselected even tabs. 263 | c.colors.tabs.pinned.even.fg = base07 264 | 265 | # Background color of pinned unselected odd tabs. 266 | c.colors.tabs.pinned.odd.bg = base0B 267 | 268 | # Foreground color of pinned unselected odd tabs. 269 | c.colors.tabs.pinned.odd.fg = base07 270 | 271 | # Background color of pinned selected even tabs. 272 | c.colors.tabs.pinned.selected.even.bg = base02 273 | 274 | # Foreground color of pinned selected even tabs. 275 | c.colors.tabs.pinned.selected.even.fg = base05 276 | 277 | # Background color of pinned selected odd tabs. 278 | c.colors.tabs.pinned.selected.odd.bg = base02 279 | 280 | # Foreground color of pinned selected odd tabs. 281 | c.colors.tabs.pinned.selected.odd.fg = base05 282 | 283 | # Foreground color of selected odd tabs. 284 | c.colors.tabs.selected.odd.fg = base05 285 | 286 | # Background color of selected odd tabs. 287 | c.colors.tabs.selected.odd.bg = base02 288 | 289 | # Foreground color of selected even tabs. 290 | c.colors.tabs.selected.even.fg = base05 291 | 292 | # Background color of selected even tabs. 293 | c.colors.tabs.selected.even.bg = base02 294 | 295 | # Background color for webpages if unset (or empty to use the theme's 296 | # color). 297 | # c.colors.webpage.bg = base00 298 | -------------------------------------------------------------------------------- /vimrc: -------------------------------------------------------------------------------- 1 | """"""""""" 2 | " Plugins " 3 | """"""""""" 4 | 5 | " Autoinstall vim-plug 6 | if empty(glob('~/.vim/autoload/plug.vim')) && confirm("Install vim-plug??","Y\nn") == 1 7 | silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 8 | autocmd VimEnter * PlugInstall --sync | source $MYVIMRC 9 | endif 10 | 11 | " Plugins 12 | call plug#begin('~/.vim/plugged') 13 | Plug 'jamessan/vim-gnupg' 14 | Plug 'roman/golden-ratio' 15 | Plug 'othree/html5.vim' 16 | Plug 'hail2u/vim-css3-syntax' 17 | Plug 'ledger/vim-ledger' 18 | Plug 'dhruvasagar/vim-table-mode' 19 | Plug 'fnune/base16-vim' 20 | Plug 'hynek/vim-python-pep8-indent' 21 | Plug 'tpope/vim-surround' 22 | Plug 'junegunn/goyo.vim' 23 | Plug 'junegunn/limelight.vim' 24 | Plug 'godlygeek/tabular' 25 | Plug 'plasticboy/vim-markdown' 26 | Plug 'morhetz/gruvbox' 27 | Plug 'junegunn/fzf.vim' 28 | call plug#end() 29 | 30 | 31 | """"""""""" 32 | " General " 33 | """"""""""" 34 | 35 | " Make Vim more useful, but less Vi compatible 36 | set nocompatible 37 | 38 | " Make backspace work like other apps 39 | set backspace=2 40 | 41 | " Display cursor position 42 | set ruler 43 | 44 | " Show the status line 45 | set laststatus=2 46 | 47 | " Automatically save before commands like :next and :make 48 | set autowrite 49 | 50 | " Show the editor mode 51 | set showmode 52 | 53 | " Show state of keyboard input 54 | set showcmd 55 | 56 | " Allow mouse (is this sacrilege?) 57 | set mouse=a 58 | 59 | " Show whitespace characters 60 | set list 61 | 62 | " Use wildmenu for command line tab completion 63 | set wildmenu 64 | set wildmode=list:longest,full 65 | 66 | " Underline the current line 67 | set cursorline 68 | 69 | " Allow modified buffers to go to the background 70 | set hidden 71 | 72 | " The TTY is fast 73 | set ttyfast 74 | 75 | " Set the minimum number of lines to keep above and below cursor 76 | set scrolloff=5 77 | 78 | 79 | """""""""""""""" 80 | " Line Numbers " 81 | """""""""""""""" 82 | 83 | " Default to absolute line numbers. 84 | set nu 85 | 86 | 87 | """""""" 88 | " Tabs " 89 | """""""" 90 | 91 | " Tabs should be 4-spaces 92 | set tabstop=4 93 | set shiftwidth=4 94 | 95 | " Use spaces instead of tabs 96 | set expandtab 97 | 98 | " Show > for tab 99 | set listchars=tab:>- 100 | 101 | " 4 spaces is a tab, so backspace will work properly 102 | set softtabstop=4 103 | 104 | " Follow line indentation 105 | set autoindent 106 | 107 | 108 | """""""""" 109 | " Search " 110 | """""""""" 111 | 112 | " Turn on search highlighting 113 | set hlsearch 114 | 115 | " Ignore case in searches -- but be smart! 116 | set ignorecase 117 | set smartcase 118 | 119 | " Start searching as the characters are typed 120 | set incsearch 121 | 122 | 123 | """"""""""" 124 | " Folding " 125 | """"""""""" 126 | 127 | " Auto-fold by indentation. 128 | "set foldmethod=indent 129 | 130 | " Limit nested folds. 131 | "set foldnestmax=10 132 | 133 | " Unfold folds by default. 134 | "set nofoldenable 135 | 136 | "set foldlevel=2 137 | 138 | 139 | """"""""""""""""""""" 140 | " Keyboard Shorcuts " 141 | """"""""""""""""""""" 142 | 143 | " Remap colon to semicolon. 144 | nnoremap ; : 145 | 146 | " Toggle folds with space. 147 | nnoremap za 148 | vnoremap za 149 | 150 | " Redraw syntax highlighting from start of file. 151 | nnoremap U :syntax sync fromstart:redraw! 152 | 153 | " Disable arrow keys. Force use of . (Oh noes!) 154 | nnoremap 155 | nnoremap 156 | nnoremap 157 | nnoremap 158 | inoremap 159 | inoremap 160 | inoremap 161 | inoremap 162 | 163 | " Move by screen line rather than file line (for wrapping). 164 | nnoremap j gj 165 | nnoremap k gk 166 | 167 | " Set smooth scrolling 168 | :map 169 | :map 170 | 171 | " Move between windows with CTRL and navigation keys. 172 | noremap h 173 | noremap j 174 | noremap k 175 | noremap l 176 | 177 | " Switch between windows with 178 | let i = 1 179 | while i <= 9 180 | execute 'nnoremap ' . i . ' :' . i . 'wincmd w' 181 | let i = i + 1 182 | endwhile 183 | 184 | " Disable search highlighting () 185 | nnoremap :noh 186 | 187 | " Open a new tab (Ctrl+t) 188 | nnoremap :tabnew 189 | 190 | " Toggle paste mode 191 | set pastetoggle=p 192 | 193 | " Write a file with sudo (w!!) 194 | cmap w!! w !sudo tee % >/dev/null 195 | 196 | " Escape (kj) 197 | inoremap kj 198 | 199 | " Toggle relative line numbers (Ctrl+n) 200 | function! g:ToggleNuMode() 201 | if &nu == 1 202 | set rnu 203 | else 204 | set nu 205 | endif 206 | endfunction 207 | nnoremap :call g:ToggleNuMode() 208 | 209 | " Paste from system clipboard in insert mode (Ctrl+v) 210 | imap "+gpa 211 | 212 | " Yank WORD to system clipboard in normal mode 213 | nmap y "+yE 214 | 215 | " Yank selection to system clipboard in visual mode 216 | vmap y "+y 217 | 218 | " Spell check 219 | map s :setlocal spell! spelllang=en_us 220 | 221 | " Open fzf file finder 222 | map o :Files 223 | 224 | " Buffer navigation 225 | map [b :bprevious 226 | map ]b :bnext 227 | map b :buffers 228 | 229 | " Insert date with cdate 230 | :iab cdate =strftime("%Y-%m-%d") 231 | 232 | " Insert datetime with ctime 233 | :iab ctime =strftime("%Y-%m-%d %H:%M:%SZ%z") 234 | 235 | " Move tabs left or right 236 | map [ :tabmove-1 237 | map ] :tabmove+1 238 | 239 | 240 | """"""""""" 241 | " Styling " 242 | """"""""""" 243 | 244 | " Colorscheme 245 | if filereadable(expand("~/.vimrc_background")) 246 | let base16colorspace=256 247 | source ~/.vimrc_background 248 | else 249 | colorscheme gruvbox 250 | set background=dark 251 | endif 252 | 253 | " Syntax highlighting 254 | syntax enable 255 | 256 | " Spell check 257 | highlight clear SpellBad 258 | highlight SpellBad term=standout ctermfg=1 term=underline cterm=underline 259 | highlight clear SpellCap 260 | highlight SpellCap ctermfg=44 term=underline cterm=underline 261 | highlight clear SpellRare 262 | highlight SpellRare ctermfg=44 term=underline cterm=underline 263 | highlight clear SpellLocal 264 | highlight SpellLocal ctermfg=44 term=underline cterm=underline 265 | 266 | " Default gVim window size and font. 267 | if has("gui_running") 268 | set lines=50 columns=100 269 | set guifont=PragmataPro\ Mono\ Liga\ 12 270 | endif 271 | 272 | 273 | """""""""""""""""""" 274 | " GnuPG Extensions " 275 | """""""""""""""""""" 276 | 277 | " Tell the GnuPG plugin to armor new files. 278 | let g:GPGPreferArmor=1 279 | 280 | " Tell the GnuPG plugin to sign new files. 281 | let g:GPGPreferSign=1 282 | 283 | augroup GnuPGExtra 284 | " Set extra file options. 285 | autocmd BufReadCmd,FileReadCmd *.\(gpg\|asc\|pgp\) call SetGPGOptions() 286 | " Automatically close unmodified files after inactivity. 287 | autocmd CursorHold *.\(gpg\|asc\|pgp\) quit 288 | augroup END 289 | 290 | function SetGPGOptions() 291 | " Set updatetime to 1 minute. 292 | set updatetime=60000 293 | " Fold at markers. 294 | set foldmethod=marker 295 | " Automatically close all folds. 296 | set foldclose=all 297 | " Only open folds with insert commands. 298 | set foldopen=insert 299 | endfunction 300 | 301 | 302 | """""""" 303 | " Mutt " 304 | """""""" 305 | 306 | " Set the filetype on neomutt buffers 307 | au BufRead /tmp/*mutt* setfiletype mail 308 | 309 | " Delete quoted signatures. 310 | au BufRead /tmp/*mutt* normal :g/^\(> \)--\s*$/,/^$/-1d /^$ 311 | 312 | 313 | """"""""""""""""""" 314 | " Temporary Files " 315 | """"""""""""""""""" 316 | " https://gist.github.com/tejr/5890634 317 | 318 | " Don't backup files in temp directories or shm 319 | if exists('&backupskip') 320 | set backupskip+=/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*,*/shm/* 321 | endif 322 | 323 | " Don't keep swap files in temp directories or shm 324 | if has('autocmd') 325 | augroup swapskip 326 | autocmd! 327 | silent! autocmd BufNewFile,BufReadPre 328 | \ /tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*,*/shm/* 329 | \ setlocal noswapfile 330 | augroup END 331 | endif 332 | 333 | " Don't keep undo files in temp directories or shm 334 | if has('persistent_undo') && has('autocmd') 335 | augroup undoskip 336 | autocmd! 337 | silent! autocmd BufWritePre 338 | \ /tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*,*/shm/* 339 | \ setlocal noundofile 340 | augroup END 341 | endif 342 | 343 | " Don't keep viminfo for files in temp directories or shm 344 | if has('viminfo') 345 | if has('autocmd') 346 | augroup viminfoskip 347 | autocmd! 348 | silent! autocmd BufNewFile,BufReadPre 349 | \ /tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*,*/shm/* 350 | \ setlocal viminfo= 351 | augroup END 352 | endif 353 | endif 354 | 355 | 356 | """""""" 357 | " Pass " 358 | """""""" 359 | 360 | augroup passconceal 361 | autocmd! 362 | 363 | " Create the second line if it does not already exist 364 | autocmd BufNewFile,BufRead */pass.*/* if line('$') == 1 | $put _ | endif 365 | 366 | " Jump to the second line 367 | autocmd BufNewFile,BufRead */pass.*/* 2 368 | 369 | " Conceal the first line with an asterisk 370 | autocmd BufNewFile,BufRead */pass.*/* syntax match Concealed '\%1l.*' conceal cchar=* 371 | autocmd BufNewFile,BufRead */pass.*/* set conceallevel=1 372 | 373 | augroup END 374 | 375 | 376 | """""""" 377 | " Goyo " 378 | """""""" 379 | 380 | nnoremap z :Goyo 381 | autocmd! User GoyoEnter Limelight 382 | autocmd! User GoyoLeave Limelight! 383 | 384 | function! s:goyo_enter() 385 | let b:quitting = 0 386 | let b:quitting_bang = 0 387 | autocmd QuitPre let b:quitting = 1 388 | cabbrev q! let b:quitting_bang = 1 q! 389 | set linebreak 390 | set scrolloff=999 391 | Limelight 392 | endfunction 393 | 394 | function! s:goyo_leave() 395 | " Quit Vim if this is the only remaining buffer 396 | if b:quitting && len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 1 397 | if b:quitting_bang 398 | qa! 399 | else 400 | qa 401 | endif 402 | endif 403 | endfunction 404 | 405 | autocmd! User GoyoEnter nested call goyo_enter() 406 | autocmd! User GoyoLeave call goyo_leave() 407 | 408 | 409 | """""""""""" 410 | " Markdown " 411 | """""""""""" 412 | 413 | " Prefer pythonic folding 414 | let g:vim_markdown_folding_style_pythonic = 1 415 | --------------------------------------------------------------------------------