Bootstrap
Committed 7c4ebe
index 0000000..8ed75db
--- /dev/null
+neovim/.config/nvim/.netrwhist
+neovim/.config/nvim/plugged
+neovim/.local
index 0000000..019e568
--- /dev/null
+# Workstation Configuration
+
+## Add self as sudoer
+
+ !shell
+ su root
+ /sbin/visudo
+
+Append the following: `angelo ALL=(ALL) NOPASSWD:ALL`
+
+Save and exit: `CTRL+X, Y, ENTER`
+
+ !shell
+ exit
+
+## Make home directory readable only by self
+
+ !shell
+ chmod 700 ~
+
+## Update system and install applications
+
+ !shell
+ sudo apt update
+ sudo apt upgrade
+ sudo apt install \
+ openssh-server build-essential stow git zsh tree tmux progress \
+ libc6-dev libsodium-dev libsqlite3-dev libffi-dev libssl-dev \
+ zlib1g-dev autoconf sqlite3 apache2-utils dconf-cli htop iftop xvfb \
+ \
+ neovim openvpn sshfs rsync silversearcher-ag \
+ libncurses5-dev libncursesw5-dev libreadline-dev \
+ libpcre2-dev liblzma-dev libbz2-dev ccache patchelf \
+ \
+ devilspie2 unclutter obs-studio gimp piper rtorrent \
+ kaffeine libnotify-bin curl jq make whois w3m chromium
+
+### Install Firefox
+
+ !shell
+ sudo install -d -m 0755 /etc/apt/keyrings
+ wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
+ echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
+ echo '
+Package: *
+Pin: origin packages.mozilla.org
+Pin-Priority: 1000
+' | sudo tee /etc/apt/preferences.d/mozilla
+ sudo apt update
+ sudo apt install firefox
+
+### Install Python
+
+ !shell
+ PYVERSION=3.12.2
+ wget https://www.python.org/ftp/python/$PYVERSION/Python-$PYVERSION.tar.xz
+ tar -xf Python-$PYVERSION.tar.xz
+ cd $PYVERSION
+ ./configure --enable-optimizations
+ make
+ sudo make install
+
+### Install Poetry
+
+ !shell
+ curl --proto '=https' --tlsv1.2 -fsSL https://install.python-poetry.org | python3 -
+
+### Install Node
+
+ !shell
+ curl --proto '=https' --tlsv1.2 -fsSL https://deb.nodesource.com/setup_21.x | sudo bash -
+ sudo apt install -y nodejs
+
+### Install Pyright
+
+ !shell
+ sudo npm install -g pyright
+
+### Install Docker
+
+ !shell
+ sudo install -m 0755 -d /etc/apt/keyrings
+ sudo curl --proto '=https' --tlsv1.2 -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
+ sudo chmod a+r /etc/apt/keyrings/docker.asc
+ echo \
+ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
+ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
+ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+ sudo apt update
+
+### Install act
+
+ !shell
+ curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
+
+## Install configuration files
+
+ !shell
+ git clone --recurse-submodules https://ragt.ag/code/projects/dotfiles.git .dotfiles
+ cd .dotfiles
+ sh install.sh
+
+## Setup terminal and shell
+
+1. Text > Text Appearance > Custom font > "Ubuntu Mono derivative Powerline (10pt)"
+2. Text > Sound > Uncheck "Terminal bell"
+3. Scrolling > Uncheck "Show scrollbar"
+
+ !shell
+ ./gnome-terminal-colors-solarized/set_dark.sh
+ chsh -s /bin/zsh
+
+## Configure GNOME
+
+### Tweaks
+
+- Keyboard & Mouse > Additional Layout Options > Ctrl position > "Caps Lock as Ctrl"
+- Appearance > Themes > Applications > "Adwaita-dark"
+
+### Extension
+
+Go to extensions.gnome.org and install "Hide Top Bar" by tuxor1337
+
+### Session
+
+Sign out, change session to "GNOME on Xorg" and sign back in
index 0000000..a70f230
--- /dev/null
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Type=Application
+Exec=devilspie2 -f /home/angelo/.config/devilspie2
+Hidden=false
+NoDisplay=false
+X-GNOME-Autostart-enabled=true
+Name[en_US]=Devil's Pie
+Name=Devil's Pie
+Comment[en_US]=
+Comment=
diff --git a/autostart/.config/autostart/gnome-terminal.desktop b/autostart/.config/autostart/gnome-terminal.desktop
new file mode 100755
index 0000000..dfa2ba9
--- /dev/null
+++ b/autostart/.config/autostart/gnome-terminal.desktop
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Type=Application
+Exec=gnome-terminal
+# Exec=gnome-terminal -x zsh -c "sleep 2; tmux"
+# Exec=gnome-terminal -x zsh -c "sleep 2; /home/angelo/.local/bin/tmuxp load ~/.tmux/main_session.yaml"
+Hidden=false
+NoDisplay=false
+X-GNOME-Autostart-enabled=true
+Name[en_US]=Terminal
+Name=Terminal
+Comment[en_US]=
+Comment=
index 0000000..d43eafc
--- /dev/null
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Type=Application
+Exec=unclutter -idle 2
+Hidden=false
+NoDisplay=false
+X-GNOME-Autostart-enabled=true
+Name[en_US]=Unclutter
+Name=Unclutter
+Comment[en_US]=
+Comment=
index 0000000..668a164
--- /dev/null
+-- use `devilspie2 --debug` to enable calls to `debug_print()`
+debug_print("")
+debug_print(get_application_name())
+debug_print(" " .. get_window_name());
+debug_print(get_window_geometry())
+
+function string.startswith(String, Start)
+ return string.sub(String, 1, string.len(Start)) == Start
+end
+
+function string.endswith(String, End)
+ return End == '' or string.sub(String, -string.len(End)) == End
+end
+
+-- if (get_application_name() == "uzbl-core") then
+-- -- maximize_vertically();
+-- -- set_window_geometry(478, -936, 963, 900);
+-- -- focus();
+-- end
+
+if (get_application_name() == "Terminal") then
+ maximize();
+ -- set_window_geometry(478, -936, 963, 900);
+ focus();
+end
+
+-- if (get_application_name() == "nautilus") then
+-- set_window_geometry(478, -936, 963, 900);
+-- end
+
+-- if (get_window_name() == "VLC media player") then
+if (string.endswith(get_window_name(), "VLC media player")) then
+ -- -- set_window_geometry(-1441, -936, 480, 307);
+ -- set_window_geometry(1439, -1236, 472, 270);
+ -- set_window_geometry(1440, -1197, 472, 270); Sep 18, 2017
+ set_window_geometry(1440, -1197, 421, 274);
+ make_always_on_top();
+end
+
+if (get_window_name() == "mplayer2") then
+ -- -- set_window_geometry(-1441, -936, 480, 307);
+ -- set_window_geometry(1439, -1236, 472, 270);
+ set_window_geometry(1440, -1197, 472, 270);
+ make_always_on_top();
+end
+
+-- if (get_application_name() == "Vlc" and
+-- get_window_name() == "Playlist") then
+-- maximize_vertically();
+-- set_window_geometry(478, -936, 963, 900);
+-- end
+--
+-- if (get_application_name() == "Remote Desktop Viewer") then
+-- -- maximize_vertically();
+-- -- set_window_geometry(478, -936, 963, 900);
+-- end
+--
+-- if (get_application_name() == "Iceweasel") then
+-- -- maximize_vertically();
+-- -- os.execute("sleep 5");
+-- -- set_window_geometry(481, -936, 963, 896);
+-- end
+--
+-- if (get_application_name() == "Firefox" and
+-- string.endswith(get_window_name(), " - Tor Browser")) then
+-- end
+
+undecorate_window();
index 0000000..fa29f20
--- /dev/null
+# Dark 256 color solarized theme for the color GNU ls utility.
+# Used and tested with dircolors (GNU coreutils) 8.5
+#
+# @author {@link http://sebastian.tramp.name Sebastian Tramp}
+# @license http://sam.zoy.org/wtfpl/ Do What The Fuck You Want To Public License (WTFPL)
+#
+# More Information at
+# https://github.com/seebi/dircolors-solarized
+
+# Term Section
+TERM Eterm
+TERM ansi
+TERM color-xterm
+TERM con132x25
+TERM con132x30
+TERM con132x43
+TERM con132x60
+TERM con80x25
+TERM con80x28
+TERM con80x30
+TERM con80x43
+TERM con80x50
+TERM con80x60
+TERM cons25
+TERM console
+TERM cygwin
+TERM dtterm
+TERM eterm-color
+TERM gnome
+TERM gnome-256color
+TERM jfbterm
+TERM konsole
+TERM kterm
+TERM linux
+TERM linux-c
+TERM mach-color
+TERM mlterm
+TERM putty
+TERM rxvt
+TERM rxvt-256color
+TERM rxvt-cygwin
+TERM rxvt-cygwin-native
+TERM rxvt-unicode
+TERM rxvt-unicode256
+TERM rxvt-unicode-256color
+TERM screen
+TERM screen-256color
+TERM screen-256color-bce
+TERM screen-bce
+TERM screen-w
+TERM screen.linux
+TERM vt100
+TERM xterm
+TERM xterm-16color
+TERM xterm-256color
+TERM xterm-88color
+TERM xterm-color
+TERM xterm-debian
+
+## Documentation
+#
+# standard colors
+#
+# Below are the color init strings for the basic file types. A color init
+# string consists of one or more of the following numeric codes:
+# Attribute codes:
+# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
+# Text color codes:
+# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
+# Background color codes:
+# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
+#
+#
+# 256 color support
+# see here: http://www.mail-archive.com/bug-coreutils@gnu.org/msg11030.html)
+#
+# Text 256 color coding:
+# 38;5;COLOR_NUMBER
+# Background 256 color coding:
+# 48;5;COLOR_NUMBER
+
+## Special files
+
+NORMAL 00;38;5;244 # no color code at all
+#FILE 00 # regular file: use no color at all
+RESET 0 # reset to "normal" color
+DIR 00;38;5;33 # directory 01;34
+LINK 01;38;5;37 # symbolic link. (If you set this to 'target' instead of a
+ # numerical value, the color is as for the file pointed to.)
+# XXX MULTIHARDLINK 00 # regular file with more than one link
+FIFO 48;5;230;38;5;136;01 # pipe
+SOCK 48;5;230;38;5;136;02 # socket
+DOOR 48;5;230;38;5;136;01 # door
+BLK 48;5;230;38;5;244;01 # block device driver
+CHR 48;5;230;38;5;244;01 # character device driver
+ORPHAN 48;5;235;38;5;160 # symlink to nonexistent file, or non-stat'able file
+SETUID 48;5;160;38;5;230 # file that is setuid (u+s)
+SETGID 48;5;136;38;5;230 # file that is setgid (g+s)
+CAPABILITY 30;41 # file with capability
+STICKY_OTHER_WRITABLE 48;5;64;38;5;230 # dir that is sticky and other-writable (+t,o+w)
+OTHER_WRITABLE 48;5;235;38;5;33 # dir that is other-writable (o+w) and not sticky
+STICKY 48;5;33;38;5;230 # dir with the sticky bit set (+t) and not other-writable
+# This is for files with execute permission:
+EXEC 01;38;5;64
+
+## Archives or compressed (violet + bold for compression)
+.tar 00;38;5;61
+.tgz 01;38;5;61
+.arj 01;38;5;61
+.taz 01;38;5;61
+.lzh 01;38;5;61
+.lzma 01;38;5;61
+.tlz 01;38;5;61
+.txz 01;38;5;61
+.zip 01;38;5;61
+.z 01;38;5;61
+.Z 01;38;5;61
+.dz 01;38;5;61
+.gz 01;38;5;61
+.lz 01;38;5;61
+.xz 01;38;5;61
+.bz2 01;38;5;61
+.bz 01;38;5;61
+.tbz 01;38;5;61
+.tbz2 01;38;5;61
+.tz 01;38;5;61
+.deb 01;38;5;61
+.rpm 01;38;5;61
+.jar 01;38;5;61
+.rar 01;38;5;61
+.ace 01;38;5;61
+.zoo 01;38;5;61
+.cpio 01;38;5;61
+.7z 01;38;5;61
+.rz 01;38;5;61
+.apk 01;38;5;61
+
+# Image formats (yellow)
+.jpg 00;38;5;136
+.JPG 00;38;5;136 #stupid but needed
+.jpeg 00;38;5;136
+.gif 00;38;5;136
+.bmp 00;38;5;136
+.pbm 00;38;5;136
+.pgm 00;38;5;136
+.ppm 00;38;5;136
+.tga 00;38;5;136
+.xbm 00;38;5;136
+.xpm 00;38;5;136
+.tif 00;38;5;136
+.tiff 00;38;5;136
+.png 00;38;5;136
+.svg 00;38;5;136
+.svgz 00;38;5;136
+.mng 00;38;5;136
+.pcx 00;38;5;136
+.dl 00;38;5;136
+.xcf 00;38;5;136
+.xwd 00;38;5;136
+.yuv 00;38;5;136
+.cgm 00;38;5;136
+.emf 00;38;5;136
+.eps 00;38;5;136
+.CR2 00;38;5;136
+.ico 00;38;5;136
+
+# Files of special interest (base1 + bold)
+.tex 01;38;5;245
+.rdf 01;38;5;245
+.owl 01;38;5;245
+.n3 01;38;5;245
+.ttl 01;38;5;245
+.nt 01;38;5;245
+.torrent 01;38;5;245
+*Makefile 01;38;5;245
+*Rakefile 01;38;5;245
+*build.xml 01;38;5;245
+*rc 01;38;5;245
+*1 01;38;5;245
+.nfo 01;38;5;245
+*README 01;38;5;245
+*README.txt 01;38;5;245
+*readme.txt 01;38;5;245
+*README.md 01;38;5;245
+*README.markdown 01;38;5;245
+*ini 01;38;5;245
+*yml 01;38;5;245
+*cfg 01;38;5;245
+*conf 01;38;5;245
+
+# "unimportant" files as logs and backups (base01)
+.log 00;38;5;240
+.bak 00;38;5;240
+.aux 00;38;5;240
+.bbl 00;38;5;240
+.blg 00;38;5;240
+*~ 00;38;5;240
+*# 00;38;5;240
+.part 00;38;5;240
+.incomplete 00;38;5;240
+.swp 00;38;5;240
+.tmp 00;38;5;240
+.temp 00;38;5;240
+.o 00;38;5;240
+.pyc 00;38;5;240
+.class 00;38;5;240
+.cache 00;38;5;240
+
+# Audio formats (orange)
+.aac 00;38;5;166
+.au 00;38;5;166
+.flac 00;38;5;166
+.mid 00;38;5;166
+.midi 00;38;5;166
+.mka 00;38;5;166
+.mp3 00;38;5;166
+.mpc 00;38;5;166
+.ogg 00;38;5;166
+.ra 00;38;5;166
+.wav 00;38;5;166
+.m4a 00;38;5;166
+# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
+.axa 00;38;5;166
+.oga 00;38;5;166
+.spx 00;38;5;166
+.xspf 00;38;5;166
+
+# Video formats (as audio + bold)
+.mov 01;38;5;166
+.mpg 01;38;5;166
+.mpeg 01;38;5;166
+.m2v 01;38;5;166
+.mkv 01;38;5;166
+.ogm 01;38;5;166
+.mp4 01;38;5;166
+.m4v 01;38;5;166
+.mp4v 01;38;5;166
+.vob 01;38;5;166
+.qt 01;38;5;166
+.nuv 01;38;5;166
+.wmv 01;38;5;166
+.asf 01;38;5;166
+.rm 01;38;5;166
+.rmvb 01;38;5;166
+.flc 01;38;5;166
+.avi 01;38;5;166
+.fli 01;38;5;166
+.flv 01;38;5;166
+.gl 01;38;5;166
+.m2ts 01;38;5;166
+# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
+.axv 01;38;5;166
+.anx 01;38;5;166
+.ogv 01;38;5;166
+.ogx 01;38;5;166
index 0000000..98b6aa3
--- /dev/null
+stow autostart
+stow devilspie2
+stow dircolors
+stow git
+
+stow kaffeine
+mkdir ~/media/videos/tv/timeshift -p
+
+sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim \
+ --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
+stow neovim
+nvim --headless +PlugInstall +qa
+nvim --headless UpdateRemotePlugins +qa
+
+stow openvpn
+stow pypoetry
+
+stow rtorrent
+mkdir ~/media/cache/.rtorrent-session -p
+
+stow tmux
+
+stow user-dirs
+mkdir ~/media/desktop
+mkdir ~/media/documents
+mkdir ~/media/downloads
+mkdir ~/media/music
+mkdir ~/media/pictures
+mkdir ~/media/public
+mkdir ~/media/templates
+mkdir ~/media/videos
+
+stow zsh
index 0000000..642025c
--- /dev/null
+[DVB]
+ActionAfterRecording=
+BeginMargin=300
+ChannelViewState=AAAA/wAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAARIAAAACAQEAAQAAAAAAAAAAAAAAAGT/////AAAAgQAAAAAAAAACAAAArgAAAAEAAAAAAAAAZAAAAAEAAAAAAAAD6AAAAABk
+CreateInfoFile=false
+DisableEpg=false
+EndMargin=600
+LastChannel=004-1 NBC4-LA
+NamingFormat=%title
+Override6937=false
+RecordingFolder=/home/angelo/media/videos/tv
+RecordingRegexList=
+RecordingRegexPriorityList=
+TabSplitterState=AAAA/wAAAAEAAAACAAAA4QAABnQB/////wEAAAABAA==
+TimeShiftFolder=/home/angelo/media/videos/tv/timeshift
+XmltvFileName=
+
+[MainWindow]
+DisplayMode=0
+
+[MediaObject]
+AutoResizeFactor=0
+Deinterlace=0
+Volume=100
diff --git a/openvpn/.openvpn/us-california.ovpn b/openvpn/.openvpn/us-california.ovpn
new file mode 100644
index 0000000..0cdfc75
--- /dev/null
+++ b/openvpn/.openvpn/us-california.ovpn
+client
+dev tun
+proto udp
+remote us-california.privacy.network 1197
+resolv-retry infinite
+nobind
+persist-key
+persist-tun
+cipher aes-256-cbc
+data-ciphers aes-256-cbc
+auth sha256
+tls-client
+remote-cert-tls server
+
+auth-user-pass .authfiles/pia_user_pass
+auth-nocache
+compress
+verb 1
+reneg-sec 0
+
+<crl-verify>
+-----BEGIN X509 CRL-----
+MIIDWDCCAUAwDQYJKoZIhvcNAQENBQAwgegxCzAJBgNVBAYTAlVTMQswCQYDVQQI
+EwJDQTETMBEGA1UEBxMKTG9zQW5nZWxlczEgMB4GA1UEChMXUHJpdmF0ZSBJbnRl
+cm5ldCBBY2Nlc3MxIDAeBgNVBAsTF1ByaXZhdGUgSW50ZXJuZXQgQWNjZXNzMSAw
+HgYDVQQDExdQcml2YXRlIEludGVybmV0IEFjY2VzczEgMB4GA1UEKRMXUHJpdmF0
+ZSBJbnRlcm5ldCBBY2Nlc3MxLzAtBgkqhkiG9w0BCQEWIHNlY3VyZUBwcml2YXRl
+aW50ZXJuZXRhY2Nlc3MuY29tFw0xNjA3MDgxOTAwNDZaFw0zNjA3MDMxOTAwNDZa
+MCYwEQIBARcMMTYwNzA4MTkwMDQ2MBECAQYXDDE2MDcwODE5MDA0NjANBgkqhkiG
+9w0BAQ0FAAOCAgEAppFfEpGsasjB1QgJcosGpzbf2kfRhM84o2TlqY1ua+Gi5TMd
+KydA3LJcNTjlI9a0TYAJfeRX5IkpoglSUuHuJgXhP3nEvX10mjXDpcu/YvM8TdE5
+JV2+EGqZ80kFtBeOq94WcpiVKFTR4fO+VkOK9zwspFfb1cNs9rHvgJ1QMkRUF8Pp
+LN6AkntHY0+6DnigtSaKqldqjKTDTv2OeH3nPoh80SGrt0oCOmYKfWTJGpggMGKv
+IdvU3vH9+EuILZKKIskt+1dwdfA5Bkz1GLmiQG7+9ZZBQUjBG9Dos4hfX/rwJ3eU
+8oUIm4WoTz9rb71SOEuUUjP5NPy9HNx2vx+cVvLsTF4ZDZaUztW9o9JmIURDtbey
+qxuHN3prlPWB6aj73IIm2dsDQvs3XXwRIxs8NwLbJ6CyEuvEOVCskdM8rdADWx1J
+0lRNlOJ0Z8ieLLEmYAA834VN1SboB6wJIAPxQU3rcBhXqO9y8aa2oRMg8NxZ5gr+
+PnKVMqag1x0IxbIgLxtkXQvxXxQHEMSODzvcOfK/nBRBsqTj30P+R87sU8titOox
+NeRnBDRNhdEy/QGAqGh62ShPpQUCJdnKRiRTjnil9hMQHevoSuFKeEMO30FQL7BZ
+yo37GFU+q1WPCplVZgCP9hC8Rn5K2+f6KLFo5bhtowSmu+GY1yZtg+RTtsA=
+-----END X509 CRL-----
+</crl-verify>
+
+<ca>
+-----BEGIN CERTIFICATE-----
+MIIHqzCCBZOgAwIBAgIJAJ0u+vODZJntMA0GCSqGSIb3DQEBDQUAMIHoMQswCQYD
+VQQGEwJVUzELMAkGA1UECBMCQ0ExEzARBgNVBAcTCkxvc0FuZ2VsZXMxIDAeBgNV
+BAoTF1ByaXZhdGUgSW50ZXJuZXQgQWNjZXNzMSAwHgYDVQQLExdQcml2YXRlIElu
+dGVybmV0IEFjY2VzczEgMB4GA1UEAxMXUHJpdmF0ZSBJbnRlcm5ldCBBY2Nlc3Mx
+IDAeBgNVBCkTF1ByaXZhdGUgSW50ZXJuZXQgQWNjZXNzMS8wLQYJKoZIhvcNAQkB
+FiBzZWN1cmVAcHJpdmF0ZWludGVybmV0YWNjZXNzLmNvbTAeFw0xNDA0MTcxNzQw
+MzNaFw0zNDA0MTIxNzQwMzNaMIHoMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0Ex
+EzARBgNVBAcTCkxvc0FuZ2VsZXMxIDAeBgNVBAoTF1ByaXZhdGUgSW50ZXJuZXQg
+QWNjZXNzMSAwHgYDVQQLExdQcml2YXRlIEludGVybmV0IEFjY2VzczEgMB4GA1UE
+AxMXUHJpdmF0ZSBJbnRlcm5ldCBBY2Nlc3MxIDAeBgNVBCkTF1ByaXZhdGUgSW50
+ZXJuZXQgQWNjZXNzMS8wLQYJKoZIhvcNAQkBFiBzZWN1cmVAcHJpdmF0ZWludGVy
+bmV0YWNjZXNzLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALVk
+hjumaqBbL8aSgj6xbX1QPTfTd1qHsAZd2B97m8Vw31c/2yQgZNf5qZY0+jOIHULN
+De4R9TIvyBEbvnAg/OkPw8n/+ScgYOeH876VUXzjLDBnDb8DLr/+w9oVsuDeFJ9K
+V2UFM1OYX0SnkHnrYAN2QLF98ESK4NCSU01h5zkcgmQ+qKSfA9Ny0/UpsKPBFqsQ
+25NvjDWFhCpeqCHKUJ4Be27CDbSl7lAkBuHMPHJs8f8xPgAbHRXZOxVCpayZ2SND
+fCwsnGWpWFoMGvdMbygngCn6jA/W1VSFOlRlfLuuGe7QFfDwA0jaLCxuWt/BgZyl
+p7tAzYKR8lnWmtUCPm4+BtjyVDYtDCiGBD9Z4P13RFWvJHw5aapx/5W/CuvVyI7p
+Kwvc2IT+KPxCUhH1XI8ca5RN3C9NoPJJf6qpg4g0rJH3aaWkoMRrYvQ+5PXXYUzj
+tRHImghRGd/ydERYoAZXuGSbPkm9Y/p2X8unLcW+F0xpJD98+ZI+tzSsI99Zs5wi
+jSUGYr9/j18KHFTMQ8n+1jauc5bCCegN27dPeKXNSZ5riXFL2XX6BkY68y58UaNz
+meGMiUL9BOV1iV+PMb7B7PYs7oFLjAhh0EdyvfHkrh/ZV9BEhtFa7yXp8XR0J6vz
+1YV9R6DYJmLjOEbhU8N0gc3tZm4Qz39lIIG6w3FDAgMBAAGjggFUMIIBUDAdBgNV
+HQ4EFgQUrsRtyWJftjpdRM0+925Y6Cl08SUwggEfBgNVHSMEggEWMIIBEoAUrsRt
+yWJftjpdRM0+925Y6Cl08SWhge6kgeswgegxCzAJBgNVBAYTAlVTMQswCQYDVQQI
+EwJDQTETMBEGA1UEBxMKTG9zQW5nZWxlczEgMB4GA1UEChMXUHJpdmF0ZSBJbnRl
+cm5ldCBBY2Nlc3MxIDAeBgNVBAsTF1ByaXZhdGUgSW50ZXJuZXQgQWNjZXNzMSAw
+HgYDVQQDExdQcml2YXRlIEludGVybmV0IEFjY2VzczEgMB4GA1UEKRMXUHJpdmF0
+ZSBJbnRlcm5ldCBBY2Nlc3MxLzAtBgkqhkiG9w0BCQEWIHNlY3VyZUBwcml2YXRl
+aW50ZXJuZXRhY2Nlc3MuY29tggkAnS7684Nkme0wDAYDVR0TBAUwAwEB/zANBgkq
+hkiG9w0BAQ0FAAOCAgEAJsfhsPk3r8kLXLxY+v+vHzbr4ufNtqnL9/1Uuf8NrsCt
+pXAoyZ0YqfbkWx3NHTZ7OE9ZRhdMP/RqHQE1p4N4Sa1nZKhTKasV6KhHDqSCt/dv
+Em89xWm2MVA7nyzQxVlHa9AkcBaemcXEiyT19XdpiXOP4Vhs+J1R5m8zQOxZlV1G
+tF9vsXmJqWZpOVPmZ8f35BCsYPvv4yMewnrtAC8PFEK/bOPeYcKN50bol22QYaZu
+LfpkHfNiFTnfMh8sl/ablPyNY7DUNiP5DRcMdIwmfGQxR5WEQoHL3yPJ42LkB5zs
+6jIm26DGNXfwura/mi105+ENH1CaROtRYwkiHb08U6qLXXJz80mWJkT90nr8Asj3
+5xN2cUppg74nG3YVav/38P48T56hG1NHbYF5uOCske19F6wi9maUoto/3vEr0rnX
+JUp2KODmKdvBI7co245lHBABWikk8VfejQSlCtDBXn644ZMtAdoxKNfR2WTFVEwJ
+iyd1Fzx0yujuiXDROLhISLQDRjVVAvawrAtLZWYK31bY7KlezPlQnl/D9Asxe85l
+8jO5+0LdJ6VyOs/Hd4w52alDW/MFySDZSfQHMTIc30hLBJ8OnCEIvluVQQ2UQvoW
++no177N9L2Y+M9TcTA62ZyMXShHQGeh20rb4kK8f+iFX8NxtdHVSkxMEFSfDDyQ=
+-----END CERTIFICATE-----
+</ca>
index 0000000..49f97f6
--- /dev/null
+[http-basic]
+[http-basic.pypi]
+username = "angelogladding"
index 0000000..16d2638
--- /dev/null
index 0000000..9aff591
--- /dev/null
+download_rate = 10000
+upload_rate = 1000
+directory = ~/media/cache
+session = ~/media/cache/.rtorrent-session
+schedule = watch_downloads_directory, 20, 10, "load.start_verbose=~/media/cache/*.torrent"
diff --git a/user-dirs/.config/user-dirs.dirs b/user-dirs/.config/user-dirs.dirs
new file mode 100644
index 0000000..56bcf9b
--- /dev/null
+++ b/user-dirs/.config/user-dirs.dirs
+XDG_DESKTOP_DIR="$HOME/media/desktop"
+XDG_DOCUMENTS_DIR="$HOME/media/documents"
+XDG_DOWNLOAD_DIR="$HOME/media/downloads"
+XDG_MUSIC_DIR="$HOME/media/music"
+XDG_PICTURES_DIR="$HOME/media/pictures"
+XDG_PUBLICSHARE_DIR="$HOME/media/public"
+XDG_TEMPLATES_DIR="$HOME/media/templates"
+XDG_VIDEOS_DIR="$HOME/media/videos"
diff --git a/user-dirs/.config/user-dirs.locale b/user-dirs/.config/user-dirs.locale
new file mode 100644
index 0000000..3e0b419
--- /dev/null
+++ b/user-dirs/.config/user-dirs.locale
@@ -0,0 +1 @@
+en_US
\ No newline at end of file