diff --git a/dotfiles/bat/.config/bat/config b/dotfiles/bat/.config/bat/config
new file mode 100644
index 0000000..6e1cf1d
--- /dev/null
+++ b/dotfiles/bat/.config/bat/config
@@ -0,0 +1,29 @@
+# This is `bat`s configuration file. Each line either contains a comment or
+# a command-line option that you want to pass to `bat` by default. You can
+# run `bat --help` to get a list of all possible configuration options.
+
+# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
+# for a list of all available themes
+#--theme="TwoDark"
+
+# Enable this to use italic text on the terminal. This is not supported on all
+# terminal emulators (like tmux, by default):
+#--italic-text=always
+
+# Uncomment the following line to disable automatic paging:
+#--paging=never
+
+# Uncomment the following line if you are using less version >= 551 and want to
+# enable mouse scrolling support in `bat` when running inside tmux. This might
+# disable text selection, unless you press shift.
+#--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"
+
+# Syntax mappings: map a certain filename pattern to a language.
+# Example 1: use the C++ syntax for Arduino .ino files
+# Example 2: Use ".gitignore"-style highlighting for ".ignore" files
+#--map-syntax "*.ino:C++"
+#--map-syntax ".ignore:Git Ignore"
+
+--style='changes,grid,header-filename'
+# -f
+--color=always
diff --git a/dotfiles/dunst/.config/dunst/dunstrc b/dotfiles/dunst/.config/dunst/dunstrc
new file mode 100644
index 0000000..41bda8b
--- /dev/null
+++ b/dotfiles/dunst/.config/dunst/dunstrc
@@ -0,0 +1,465 @@
+# See dunst(5) for all configuration options
+
+[global]
+ ### Display ###
+ # start flavours
+frame_color = "#C0C5CE"
+separator_color = "#C0C5CE"
+
+[urgency_low]
+ background = "#99C794"
+ foreground = "#D8DEE9"
+ timeout = 10
+
+[urgency_normal]
+ background = "#4F5B66"
+ foreground = "#C0C5CE"
+ timeout = 10
+
+[urgency_critical]
+ background = "#F99157"
+ foreground = "#65737E"
+ timeout = 0
+ # end flavours
+
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = none
+
+ ### Geometry ###
+
+ # dynamic width from 0 to 300
+ # width = (0, 300)
+ # constant width of 300
+ width = 300
+
+ # The maximum height of a single notification, excluding the frame.
+ height = 300
+
+ # Position the notification in the top right corner
+ origin = top-right
+
+ # Offset from the origin
+ offset = 10x50
+
+ # Scale factor. It is auto-detected if value is 0.
+ scale = 0
+
+ # Maximum number of notification (0 means no limit)
+ notification_limit = 0
+
+ ### Progress bar ###
+
+ # Turn on the progess bar. It appears when a progress hint is passed with
+ # for example dunstify -h int:value:12
+ progress_bar = true
+
+ # Set the progress bar height. This includes the frame, so make sure
+ # it's at least twice as big as the frame width.
+ progress_bar_height = 10
+
+ # Set the frame width of the progress bar
+ progress_bar_frame_width = 1
+
+ # Set the minimum width for the progress bar
+ progress_bar_min_width = 150
+
+ # Set the maximum width for the progress bar
+ progress_bar_max_width = 300
+
+
+ # Show how many messages are currently hidden (because of
+ # notification_limit).
+ indicate_hidden = yes
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.). (X11 only)
+ transparency = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ # If gap_size is greater than 0, this setting will be ignored.
+ separator_height = 2
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Padding between text and icon.
+ text_icon_padding = 0
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 3
+
+ # Defines color of the frame around the notification window.
+ # frame_color = "#aaaaaa"
+
+ # Size of gap to display between notifications - requires a compositor.
+ # If value is greater than 0, separator_height will be ignored and a border
+ # of size frame_width will be drawn around each notification instead.
+ # Click events on gaps do not currently propagate to applications below.
+ gap_size = 0
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ # separator_color = frame
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # A client can set the 'transient' hint to bypass this. See the rules
+ # section for how to disable this if necessary
+ # idle_threshold = 120
+
+ ### Text ###
+
+ font = Monospace 8
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "%s\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Vertical alignment of message text and icon.
+ # Possible values are "top", "center" and "bottom".
+ vertical_alignment = center
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Specify where to make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Stack together notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of stacked notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Align icons left/right/top/off
+ icon_position = left
+
+ # Scale small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 32
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 128
+
+ # Paths to default icons.
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/xdg-open
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 0
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = false
+
+ ### Wayland ###
+ # These settings are Wayland-specific. They have no effect when using X11
+
+ # Uncomment this if you want to let notications appear under fullscreen
+ # applications (default: overlay)
+ # layer = top
+
+ # Set this to true to use X11 output on Wayland.
+ force_xwayland = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+ ### mouse
+
+ # Defines list of actions for each mouse event
+ # Possible values are:
+ # * none: Don't do anything.
+ # * do_action: Invoke the action determined by the action_name rule. If there is no
+ # such action, open the context menu.
+ # * open_url: If the notification has exactly one url, open it. If there are multiple
+ # ones, open the context menu.
+ # * close_current: Close current notification.
+ # * close_all: Close all notifications.
+ # * context: Open context menu for the notification.
+ # * context_all: Open context menu for all notifications.
+ # These values can be strung together for each mouse event, and
+ # will be executed in sequence.
+ mouse_left_click = close_current
+ mouse_middle_click = do_action, close_current
+ mouse_right_click = close_all
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+
+#[urgency_low]
+# # IMPORTANT: colors have to be defined in quotation marks.
+# # Otherwise the "#" and following would be interpreted as a comment.
+# background = "#222222"
+# foreground = "#888888"
+# timeout = 10
+# # Icon for notifications with low urgency, uncomment to enable
+# #default_icon = /path/to/icon
+
+#[urgency_normal]
+# background = "#285577"
+# foreground = "#ffffff"
+# timeout = 10
+# # Icon for notifications with normal urgency, uncomment to enable
+# #default_icon = /path/to/icon
+
+#[urgency_critical]
+# background = "#900000"
+# foreground = "#ffffff"
+# frame_color = "#ff0000"
+# timeout = 0
+# # Icon for notifications with critical urgency, uncomment to enable
+# #default_icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+#
+# Messages can be matched by
+# appname (discouraged, see desktop_entry)
+# body
+# category
+# desktop_entry
+# icon
+# match_transient
+# msg_urgency
+# stack_tag
+# summary
+#
+# and you can override the
+# background
+# foreground
+# format
+# frame_color
+# fullscreen
+# new_icon
+# set_stack_tag
+# set_transient
+# set_category
+# timeout
+# urgency
+# icon_position
+# skip_display
+# history_ignore
+# action_name
+# word_wrap
+# ellipsize
+# alignment
+# hide_text
+#
+# Shell-like globbing will get expanded.
+#
+# Instead of the appname filter, it's recommended to use the desktop_entry filter.
+# GLib based applications export their desktop-entry name. In comparison to the appname,
+# the desktop-entry won't get localized.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+# Disable the transient hint so that idle_threshold cannot be bypassed from the
+# client
+#[transient_disable]
+# match_transient = yes
+# set_transient = no
+#
+# Make the handling of transient notifications more strict by making them not
+# be placed in history.
+#[transient_history_ignore]
+# match_transient = yes
+# history_ignore = yes
+
+# fullscreen values
+# show: show the notifications, regardless if there is a fullscreen window opened
+# delay: displays the new notification, if there is no fullscreen window active
+# If the notification is already drawn, it won't get undrawn.
+# pushback: same as delay, but when switching into fullscreen, the notification will get
+# withdrawn from screen again and will get delayed like a new notification
+#[fullscreen_delay_everything]
+# fullscreen = delay
+#[fullscreen_show_critical]
+# msg_urgency = critical
+# fullscreen = show
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# skip_display = true
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[skip-display]
+# # This notification will not be displayed, but will be included in the history
+# summary = "foobar"
+# skip_display = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+#[stack-volumes]
+# appname = "some_volume_notifiers"
+# set_stack_tag = "volume"
+#
+# vim: ft=cfg
diff --git a/dotfiles/flavours/.config/flavours/config.toml b/dotfiles/flavours/.config/flavours/config.toml
new file mode 100644
index 0000000..0b9c0dd
--- /dev/null
+++ b/dotfiles/flavours/.config/flavours/config.toml
@@ -0,0 +1,50 @@
+[[items]]
+file = "~/.config/dunst/dunstrc"
+template = "dunst"
+rewrite = false
+hook = "pkill dunst"
+
+# fzf, bat, vim, dunst, lemonbar, dmenu, ls_colors?, st, bspwm
+
+# [[items]]
+# file = "~/.config/flavours/env.fish"
+# template = "environment"
+# rewrite = true
+# hook = "~/.config/flavours/env.fish && lemonlaunch"
+# # TODO: reload all env dependent things ?
+
+
+[[items]]
+file = "~/bin/lemonlaunch"
+template = "lemonlaunch"
+rewrite = true
+hook = "lemonlaunch &"
+
+[[items]]
+file = "~/.config/bspwm/bspwmrc"
+template = "bspwm"
+rewrite = false
+hook = "bspc wm -r"
+
+[[items]]
+file = "~/.Xresources"
+template = "xresources"
+rewrite = false
+start = "/* start flavours */"
+end = "/* end flavours */"
+hook = "xrdb -load .Xresources && pidof st | xargs kill -s USR1"
+
+[[items]]
+file = "~/.config/sxhkd/sxhkdrc"
+template = "sxhkd"
+rewrite = false
+hook = "pkill -USR1 -x sxhkd"
+# TODO: actually, make dmenu aliases and redefine them here
+# TODO: cleanup sxhkdrc stuff ?
+
+# [[items]]
+# file = "~/repos/st/config.h"
+# template = "st"
+# rewrite = true
+# hook = ""
+# # TODO: don't rewrite whole file probably
diff --git a/dotfiles/flavours/.config/flavours/env.fish b/dotfiles/flavours/.config/flavours/env.fish
new file mode 100755
index 0000000..29f1725
--- /dev/null
+++ b/dotfiles/flavours/.config/flavours/env.fish
@@ -0,0 +1,34 @@
+#!/usr/bin/fish
+set -e FLAV01
+set -e FLAV02
+set -e FLAV03
+set -e FLAV04
+set -e FLAV05
+set -e FLAV06
+set -e FLAV07
+set -e FLAV08
+set -e FLAV09
+set -e FLAV10
+set -e FLAV11
+set -e FLAV12
+set -e FLAV13
+set -e FLAV14
+set -e FLAV15
+set -e FLAV16
+
+set -Ux FLAV01 "#ebdbb2"
+set -Ux FLAV02 "#d5c4a1"
+set -Ux FLAV03 "#bdae93"
+set -Ux FLAV04 "#665c54"
+set -Ux FLAV05 "#504945"
+set -Ux FLAV06 "#3c3836"
+set -Ux FLAV07 "#282828"
+set -Ux FLAV08 "#9d0006"
+set -Ux FLAV09 "#af3a03"
+set -Ux FLAV10 "#f9f5d7"
+set -Ux FLAV11 "#f9f5d7"
+set -Ux FLAV12 "#9d0006"
+set -Ux FLAV13 "#b57614"
+set -Ux FLAV14 "#79740e"
+set -Ux FLAV15 "#427b58"
+set -Ux FLAV16 "#076678"
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/amfora/templates/config.yaml b/dotfiles/flavours/.local/share/flavours/base16/templates/amfora/templates/config.yaml
new file mode 100644
index 0000000..29768cb
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/amfora/templates/config.yaml
@@ -0,0 +1,3 @@
+default:
+ extension: .toml
+ output: colors
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/amfora/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/amfora/templates/default.mustache
new file mode 100644
index 0000000..6171f24
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/amfora/templates/default.mustache
@@ -0,0 +1,42 @@
+# Base16 {{scheme-name}} - amfora color config
+# {{scheme-author}}
+
+[theme]
+bg = "#{{base00-hex}}"
+fg = "#{{base05-hex}}"
+
+bottombar_label = "#{{base0E-hex}}"
+bottombar_text = "#{{base05-hex}}"
+bottombar_bg = "#{{base01-hex}}"
+
+tab_num = "#{{base02-hex}}"
+tab_divider = "#{{base04-hex}}"
+
+amfora_link = "#{{base0B-hex}}"
+foreign_link = "#{{base03-hex}}"
+link_number = "#{{base03-hex}}"
+
+btn_bg = "#{{base01-hex}}"
+btn_text = "#{{base05-hex}}"
+
+input_modal_bg = "#{{base01-hex}}"
+input_modal_text = "#{{base05-hex}}"
+input_modal_field_bg = "#{{base00-hex}}"
+input_modal_field_text = "#{{base05-hex}}"
+info_modal_bg = "#{{base01-hex}}"
+info_modal_text = "#{{base05-hex}}"
+error_modal_bg = "#{{base01-hex}}"
+error_modal_text = "#{{base0F-hex}}"
+yesno_modal_bg = "#{{base01-hex}}"
+yesno_modal_text = "#{{base05-hex}}"
+tofu_modal_bg = "#{{base01-hex}}"
+tofu_modal_text = "#{{base05-hex}}"
+subscription_modal_bg = "#{{base01-hex}}"
+subscription_modal_text = "#{{base05-hex}}"
+
+hdg_1 = "#{{base09-hex}}"
+hdg_2 = "#{{base0A-hex}}"
+hdg_3 = "#{{base0D-hex}}"
+regular_text = "#{{base05-hex}}"
+preformatted_text = "#{{base0C-hex}}"
+list_text = "#{{base05-hex}}"
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/bspwm/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/bspwm/templates/default.mustache
new file mode 100644
index 0000000..ba86ba8
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/bspwm/templates/default.mustache
@@ -0,0 +1,4 @@
+bspc config normal_border_color "#{{base01-hex}}"
+bspc config active_border_color "#{{base14-hex}}"
+bspc config focused_border_color "#{{base14-hex}}"
+bspc config presel_feedback_color "#{{base15-hex}}"
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/dunst/templates/config.yaml b/dotfiles/flavours/.local/share/flavours/base16/templates/dunst/templates/config.yaml
new file mode 100644
index 0000000..5efbdf0
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/dunst/templates/config.yaml
@@ -0,0 +1,3 @@
+default:
+ extension: .dunstrc
+ output: themes
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/dunst/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/dunst/templates/default.mustache
new file mode 100644
index 0000000..1ad8168
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/dunst/templates/default.mustache
@@ -0,0 +1,17 @@
+frame_color = "#{{base05-hex}}"
+separator_color = "#{{base05-hex}}"
+
+[urgency_low]
+ background = "#{{base14-hex}}"
+ foreground = "#{{base07-hex}}"
+ timeout = 10
+
+[urgency_normal]
+ background = "#{{base02-hex}}"
+ foreground = "#{{base05-hex}}"
+ timeout = 10
+
+[urgency_critical]
+ background = "#{{base09-hex}}"
+ foreground = "#{{base03-hex}}"
+ timeout = 0
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/environment/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/environment/templates/default.mustache
new file mode 100644
index 0000000..3b535ad
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/environment/templates/default.mustache
@@ -0,0 +1,34 @@
+#!/usr/bin/fish
+set -e FLAV01
+set -e FLAV02
+set -e FLAV03
+set -e FLAV04
+set -e FLAV05
+set -e FLAV06
+set -e FLAV07
+set -e FLAV08
+set -e FLAV09
+set -e FLAV10
+set -e FLAV11
+set -e FLAV12
+set -e FLAV13
+set -e FLAV14
+set -e FLAV15
+set -e FLAV16
+
+set -Ux FLAV01 "#{{base01-hex}}"
+set -Ux FLAV02 "#{{base02-hex}}"
+set -Ux FLAV03 "#{{base03-hex}}"
+set -Ux FLAV04 "#{{base04-hex}}"
+set -Ux FLAV05 "#{{base05-hex}}"
+set -Ux FLAV06 "#{{base06-hex}}"
+set -Ux FLAV07 "#{{base07-hex}}"
+set -Ux FLAV08 "#{{base08-hex}}"
+set -Ux FLAV09 "#{{base09-hex}}"
+set -Ux FLAV10 "#{{base10-hex}}"
+set -Ux FLAV11 "#{{base11-hex}}"
+set -Ux FLAV12 "#{{base12-hex}}"
+set -Ux FLAV13 "#{{base13-hex}}"
+set -Ux FLAV14 "#{{base14-hex}}"
+set -Ux FLAV15 "#{{base15-hex}}"
+set -Ux FLAV16 "#{{base16-hex}}"
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/config.yaml b/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/config.yaml
new file mode 100644
index 0000000..6060562
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/config.yaml
@@ -0,0 +1,7 @@
+default:
+ extension: .config
+ output: bash
+
+fish:
+ extension: .fish
+ output: fish
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/default.mustache
new file mode 100644
index 0000000..8df2c49
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/default.mustache
@@ -0,0 +1,30 @@
+# Base16 {{scheme-name}}
+# Author: {{scheme-author}}
+
+_gen_fzf_default_opts() {
+
+local color00='#{{base00-hex}}'
+local color01='#{{base01-hex}}'
+local color02='#{{base02-hex}}'
+local color03='#{{base03-hex}}'
+local color04='#{{base04-hex}}'
+local color05='#{{base05-hex}}'
+local color06='#{{base06-hex}}'
+local color07='#{{base07-hex}}'
+local color08='#{{base08-hex}}'
+local color09='#{{base09-hex}}'
+local color0A='#{{base0A-hex}}'
+local color0B='#{{base0B-hex}}'
+local color0C='#{{base0C-hex}}'
+local color0D='#{{base0D-hex}}'
+local color0E='#{{base0E-hex}}'
+local color0F='#{{base0F-hex}}'
+
+export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS"\
+" --color=bg+:$color01,bg:$color00,spinner:$color0C,hl:$color0D"\
+" --color=fg:$color04,header:$color0D,info:$color0A,pointer:$color0C"\
+" --color=marker:$color0C,fg+:$color06,prompt:$color0A,hl+:$color0D"
+
+}
+
+_gen_fzf_default_opts
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/fish.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/fish.mustache
new file mode 100644
index 0000000..802360e
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/fzf/templates/fish.mustache
@@ -0,0 +1,32 @@
+# Base16 {{scheme-name}}
+# Author: {{scheme-author}}
+
+set -l color00 '#{{base00-hex}}'
+set -l color01 '#{{base01-hex}}'
+set -l color02 '#{{base02-hex}}'
+set -l color03 '#{{base03-hex}}'
+set -l color04 '#{{base04-hex}}'
+set -l color05 '#{{base05-hex}}'
+set -l color06 '#{{base06-hex}}'
+set -l color07 '#{{base07-hex}}'
+set -l color08 '#{{base08-hex}}'
+set -l color09 '#{{base09-hex}}'
+set -l color0A '#{{base0A-hex}}'
+set -l color0B '#{{base0B-hex}}'
+set -l color0C '#{{base0C-hex}}'
+set -l color0D '#{{base0D-hex}}'
+set -l color0E '#{{base0E-hex}}'
+set -l color0F '#{{base0F-hex}}'
+
+set -l FZF_NON_COLOR_OPTS
+
+for arg in (echo $FZF_DEFAULT_OPTS | tr " " "\n")
+ if not string match -q -- "--color*" $arg
+ set -a FZF_NON_COLOR_OPTS $arg
+ end
+end
+
+set -Ux FZF_DEFAULT_OPTS "$FZF_NON_COLOR_OPTS"\
+" --color=bg+:$color01,bg:$color00,spinner:$color0C,hl:$color0D"\
+" --color=fg:$color04,header:$color0D,info:$color0A,pointer:$color0C"\
+" --color=marker:$color0C,fg+:$color06,prompt:$color0A,hl+:$color0D"
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/lemonlaunch/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/lemonlaunch/templates/default.mustache
new file mode 100644
index 0000000..49765fe
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/lemonlaunch/templates/default.mustache
@@ -0,0 +1,6 @@
+#!/usr/bin/fish
+pkill lemonbar &&
+sleep .1 &&
+~/.config/lemonbar/lemonbar.fish | lemonbar -pb -f "BitstreamVeraSansMono:size=12" -B "#{{base01-hex}}" -F "#{{base06-hex}}" &
+sleep .1 &&
+xdo above -t (xdo id -n root) (xdo id -n lemonbar)
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/config.yaml b/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/config.yaml
new file mode 100644
index 0000000..d033b4c
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/config.yaml
@@ -0,0 +1,7 @@
+default:
+ extension: .config.py
+ output: themes/default
+
+minimal:
+ extension: .config.py
+ output: themes/minimal
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/default.mustache
new file mode 100644
index 0000000..39bc4ff
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/default.mustache
@@ -0,0 +1,300 @@
+# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
+# Base16 qutebrowser template by theova
+# {{scheme-name}} scheme by {{scheme-author}}
+
+base00 = "#{{base00-hex}}"
+base01 = "#{{base01-hex}}"
+base02 = "#{{base02-hex}}"
+base03 = "#{{base03-hex}}"
+base04 = "#{{base04-hex}}"
+base05 = "#{{base05-hex}}"
+base06 = "#{{base06-hex}}"
+base07 = "#{{base07-hex}}"
+base08 = "#{{base08-hex}}"
+base09 = "#{{base09-hex}}"
+base0A = "#{{base0A-hex}}"
+base0B = "#{{base0B-hex}}"
+base0C = "#{{base0C-hex}}"
+base0D = "#{{base0D-hex}}"
+base0E = "#{{base0E-hex}}"
+base0F = "#{{base0F-hex}}"
+
+# set qutebrowser colors
+
+# Text color of the completion widget. May be a single color to use for
+# all columns or a list of three colors, one for each column.
+c.colors.completion.fg = base05
+
+# Background color of the completion widget for odd rows.
+c.colors.completion.odd.bg = base01
+
+# Background color of the completion widget for even rows.
+c.colors.completion.even.bg = base00
+
+# Foreground color of completion widget category headers.
+c.colors.completion.category.fg = base0A
+
+# Background color of the completion widget category headers.
+c.colors.completion.category.bg = base00
+
+# Top border color of the completion widget category headers.
+c.colors.completion.category.border.top = base00
+
+# Bottom border color of the completion widget category headers.
+c.colors.completion.category.border.bottom = base00
+
+# Foreground color of the selected completion item.
+c.colors.completion.item.selected.fg = base05
+
+# Background color of the selected completion item.
+c.colors.completion.item.selected.bg = base02
+
+# Top border color of the selected completion item.
+c.colors.completion.item.selected.border.top = base02
+
+# Bottom border color of the selected completion item.
+c.colors.completion.item.selected.border.bottom = base02
+
+# Foreground color of the matched text in the selected completion item.
+c.colors.completion.item.selected.match.fg = base0B
+
+# Foreground color of the matched text in the completion.
+c.colors.completion.match.fg = base0B
+
+# Color of the scrollbar handle in the completion view.
+c.colors.completion.scrollbar.fg = base05
+
+# Color of the scrollbar in the completion view.
+c.colors.completion.scrollbar.bg = base00
+
+# Background color of disabled items in the context menu.
+c.colors.contextmenu.disabled.bg = base01
+
+# Foreground color of disabled items in the context menu.
+c.colors.contextmenu.disabled.fg = base04
+
+# Background color of the context menu. If set to null, the Qt default is used.
+c.colors.contextmenu.menu.bg = base00
+
+# Foreground color of the context menu. If set to null, the Qt default is used.
+c.colors.contextmenu.menu.fg = base05
+
+# Background color of the context menu’s selected item. If set to null, the Qt default is used.
+c.colors.contextmenu.selected.bg = base02
+
+#Foreground color of the context menu’s selected item. If set to null, the Qt default is used.
+c.colors.contextmenu.selected.fg = base05
+
+# Background color for the download bar.
+c.colors.downloads.bar.bg = base00
+
+# Color gradient start for download text.
+c.colors.downloads.start.fg = base00
+
+# Color gradient start for download backgrounds.
+c.colors.downloads.start.bg = base0D
+
+# Color gradient end for download text.
+c.colors.downloads.stop.fg = base00
+
+# Color gradient stop for download backgrounds.
+c.colors.downloads.stop.bg = base0C
+
+# Foreground color for downloads with errors.
+c.colors.downloads.error.fg = base08
+
+# Font color for hints.
+c.colors.hints.fg = base00
+
+# Background color for hints. Note that you can use a `rgba(...)` value
+# for transparency.
+c.colors.hints.bg = base0A
+
+# Font color for the matched part of hints.
+c.colors.hints.match.fg = base05
+
+# Text color for the keyhint widget.
+c.colors.keyhint.fg = base05
+
+# Highlight color for keys to complete the current keychain.
+c.colors.keyhint.suffix.fg = base05
+
+# Background color of the keyhint widget.
+c.colors.keyhint.bg = base00
+
+# Foreground color of an error message.
+c.colors.messages.error.fg = base00
+
+# Background color of an error message.
+c.colors.messages.error.bg = base08
+
+# Border color of an error message.
+c.colors.messages.error.border = base08
+
+# Foreground color of a warning message.
+c.colors.messages.warning.fg = base00
+
+# Background color of a warning message.
+c.colors.messages.warning.bg = base0E
+
+# Border color of a warning message.
+c.colors.messages.warning.border = base0E
+
+# Foreground color of an info message.
+c.colors.messages.info.fg = base05
+
+# Background color of an info message.
+c.colors.messages.info.bg = base00
+
+# Border color of an info message.
+c.colors.messages.info.border = base00
+
+# Foreground color for prompts.
+c.colors.prompts.fg = base05
+
+# Border used around UI elements in prompts.
+c.colors.prompts.border = base00
+
+# Background color for prompts.
+c.colors.prompts.bg = base00
+
+# Background color for the selected item in filename prompts.
+c.colors.prompts.selected.bg = base02
+
+# Foreground color for the selected item in filename prompts.
+c.colors.prompts.selected.fg = base05
+
+# Foreground color of the statusbar.
+c.colors.statusbar.normal.fg = base0B
+
+# Background color of the statusbar.
+c.colors.statusbar.normal.bg = base00
+
+# Foreground color of the statusbar in insert mode.
+c.colors.statusbar.insert.fg = base00
+
+# Background color of the statusbar in insert mode.
+c.colors.statusbar.insert.bg = base0D
+
+# Foreground color of the statusbar in passthrough mode.
+c.colors.statusbar.passthrough.fg = base00
+
+# Background color of the statusbar in passthrough mode.
+c.colors.statusbar.passthrough.bg = base0C
+
+# Foreground color of the statusbar in private browsing mode.
+c.colors.statusbar.private.fg = base00
+
+# Background color of the statusbar in private browsing mode.
+c.colors.statusbar.private.bg = base01
+
+# Foreground color of the statusbar in command mode.
+c.colors.statusbar.command.fg = base05
+
+# Background color of the statusbar in command mode.
+c.colors.statusbar.command.bg = base00
+
+# Foreground color of the statusbar in private browsing + command mode.
+c.colors.statusbar.command.private.fg = base05
+
+# Background color of the statusbar in private browsing + command mode.
+c.colors.statusbar.command.private.bg = base00
+
+# Foreground color of the statusbar in caret mode.
+c.colors.statusbar.caret.fg = base00
+
+# Background color of the statusbar in caret mode.
+c.colors.statusbar.caret.bg = base0E
+
+# Foreground color of the statusbar in caret mode with a selection.
+c.colors.statusbar.caret.selection.fg = base00
+
+# Background color of the statusbar in caret mode with a selection.
+c.colors.statusbar.caret.selection.bg = base0D
+
+# Background color of the progress bar.
+c.colors.statusbar.progress.bg = base0D
+
+# Default foreground color of the URL in the statusbar.
+c.colors.statusbar.url.fg = base05
+
+# Foreground color of the URL in the statusbar on error.
+c.colors.statusbar.url.error.fg = base08
+
+# Foreground color of the URL in the statusbar for hovered links.
+c.colors.statusbar.url.hover.fg = base05
+
+# Foreground color of the URL in the statusbar on successful load
+# (http).
+c.colors.statusbar.url.success.http.fg = base0C
+
+# Foreground color of the URL in the statusbar on successful load
+# (https).
+c.colors.statusbar.url.success.https.fg = base0B
+
+# Foreground color of the URL in the statusbar when there's a warning.
+c.colors.statusbar.url.warn.fg = base0E
+
+# Background color of the tab bar.
+c.colors.tabs.bar.bg = base00
+
+# Color gradient start for the tab indicator.
+c.colors.tabs.indicator.start = base0D
+
+# Color gradient end for the tab indicator.
+c.colors.tabs.indicator.stop = base0C
+
+# Color for the tab indicator on errors.
+c.colors.tabs.indicator.error = base08
+
+# Foreground color of unselected odd tabs.
+c.colors.tabs.odd.fg = base05
+
+# Background color of unselected odd tabs.
+c.colors.tabs.odd.bg = base01
+
+# Foreground color of unselected even tabs.
+c.colors.tabs.even.fg = base05
+
+# Background color of unselected even tabs.
+c.colors.tabs.even.bg = base00
+
+# Background color of pinned unselected even tabs.
+c.colors.tabs.pinned.even.bg = base0C
+
+# Foreground color of pinned unselected even tabs.
+c.colors.tabs.pinned.even.fg = base07
+
+# Background color of pinned unselected odd tabs.
+c.colors.tabs.pinned.odd.bg = base0B
+
+# Foreground color of pinned unselected odd tabs.
+c.colors.tabs.pinned.odd.fg = base07
+
+# Background color of pinned selected even tabs.
+c.colors.tabs.pinned.selected.even.bg = base02
+
+# Foreground color of pinned selected even tabs.
+c.colors.tabs.pinned.selected.even.fg = base05
+
+# Background color of pinned selected odd tabs.
+c.colors.tabs.pinned.selected.odd.bg = base02
+
+# Foreground color of pinned selected odd tabs.
+c.colors.tabs.pinned.selected.odd.fg = base05
+
+# Foreground color of selected odd tabs.
+c.colors.tabs.selected.odd.fg = base05
+
+# Background color of selected odd tabs.
+c.colors.tabs.selected.odd.bg = base02
+
+# Foreground color of selected even tabs.
+c.colors.tabs.selected.even.fg = base05
+
+# Background color of selected even tabs.
+c.colors.tabs.selected.even.bg = base02
+
+# Background color for webpages if unset (or empty to use the theme's
+# color).
+# c.colors.webpage.bg = base00
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/minimal.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/minimal.mustache
new file mode 100644
index 0000000..841743c
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/qutebrowser/templates/minimal.mustache
@@ -0,0 +1,300 @@
+# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
+# Base16 qutebrowser template by theova and Daniel Mulford
+# {{scheme-name}} scheme by {{scheme-author}}
+
+base00 = "#{{base00-hex}}"
+base01 = "#{{base01-hex}}"
+base02 = "#{{base02-hex}}"
+base03 = "#{{base03-hex}}"
+base04 = "#{{base04-hex}}"
+base05 = "#{{base05-hex}}"
+base06 = "#{{base06-hex}}"
+base07 = "#{{base07-hex}}"
+base08 = "#{{base08-hex}}"
+base09 = "#{{base09-hex}}"
+base0A = "#{{base0A-hex}}"
+base0B = "#{{base0B-hex}}"
+base0C = "#{{base0C-hex}}"
+base0D = "#{{base0D-hex}}"
+base0E = "#{{base0E-hex}}"
+base0F = "#{{base0F-hex}}"
+
+# set qutebrowser colors
+
+# Text color of the completion widget. May be a single color to use for
+# all columns or a list of three colors, one for each column.
+c.colors.completion.fg = base05
+
+# Background color of the completion widget for odd rows.
+c.colors.completion.odd.bg = base00
+
+# Background color of the completion widget for even rows.
+c.colors.completion.even.bg = base00
+
+# Foreground color of completion widget category headers.
+c.colors.completion.category.fg = base0D
+
+# Background color of the completion widget category headers.
+c.colors.completion.category.bg = base00
+
+# Top border color of the completion widget category headers.
+c.colors.completion.category.border.top = base00
+
+# Bottom border color of the completion widget category headers.
+c.colors.completion.category.border.bottom = base00
+
+# Foreground color of the selected completion item.
+c.colors.completion.item.selected.fg = base05
+
+# Background color of the selected completion item.
+c.colors.completion.item.selected.bg = base02
+
+# Top border color of the selected completion item.
+c.colors.completion.item.selected.border.top = base02
+
+# Bottom border color of the selected completion item.
+c.colors.completion.item.selected.border.bottom = base02
+
+# Foreground color of the matched text in the selected completion item.
+c.colors.completion.item.selected.match.fg = base05
+
+# Foreground color of the matched text in the completion.
+c.colors.completion.match.fg = base09
+
+# Color of the scrollbar handle in the completion view.
+c.colors.completion.scrollbar.fg = base05
+
+# Color of the scrollbar in the completion view.
+c.colors.completion.scrollbar.bg = base00
+
+# Background color of disabled items in the context menu.
+c.colors.contextmenu.disabled.bg = base01
+
+# Foreground color of disabled items in the context menu.
+c.colors.contextmenu.disabled.fg = base04
+
+# Background color of the context menu. If set to null, the Qt default is used.
+c.colors.contextmenu.menu.bg = base00
+
+# Foreground color of the context menu. If set to null, the Qt default is used.
+c.colors.contextmenu.menu.fg = base05
+
+# Background color of the context menu’s selected item. If set to null, the Qt default is used.
+c.colors.contextmenu.selected.bg = base02
+
+#Foreground color of the context menu’s selected item. If set to null, the Qt default is used.
+c.colors.contextmenu.selected.fg = base05
+
+# Background color for the download bar.
+c.colors.downloads.bar.bg = base00
+
+# Color gradient start for download text.
+c.colors.downloads.start.fg = base00
+
+# Color gradient start for download backgrounds.
+c.colors.downloads.start.bg = base0D
+
+# Color gradient end for download text.
+c.colors.downloads.stop.fg = base00
+
+# Color gradient stop for download backgrounds.
+c.colors.downloads.stop.bg = base0C
+
+# Foreground color for downloads with errors.
+c.colors.downloads.error.fg = base08
+
+# Font color for hints.
+c.colors.hints.fg = base00
+
+# Background color for hints. Note that you can use a `rgba(...)` value
+# for transparency.
+c.colors.hints.bg = base0A
+
+# Font color for the matched part of hints.
+c.colors.hints.match.fg = base05
+
+# Text color for the keyhint widget.
+c.colors.keyhint.fg = base05
+
+# Highlight color for keys to complete the current keychain.
+c.colors.keyhint.suffix.fg = base05
+
+# Background color of the keyhint widget.
+c.colors.keyhint.bg = base00
+
+# Foreground color of an error message.
+c.colors.messages.error.fg = base00
+
+# Background color of an error message.
+c.colors.messages.error.bg = base08
+
+# Border color of an error message.
+c.colors.messages.error.border = base08
+
+# Foreground color of a warning message.
+c.colors.messages.warning.fg = base00
+
+# Background color of a warning message.
+c.colors.messages.warning.bg = base0E
+
+# Border color of a warning message.
+c.colors.messages.warning.border = base0E
+
+# Foreground color of an info message.
+c.colors.messages.info.fg = base05
+
+# Background color of an info message.
+c.colors.messages.info.bg = base00
+
+# Border color of an info message.
+c.colors.messages.info.border = base00
+
+# Foreground color for prompts.
+c.colors.prompts.fg = base05
+
+# Border used around UI elements in prompts.
+c.colors.prompts.border = base00
+
+# Background color for prompts.
+c.colors.prompts.bg = base00
+
+# Background color for the selected item in filename prompts.
+c.colors.prompts.selected.bg = base02
+
+# Foreground color for the selected item in filename prompts.
+c.colors.prompts.selected.fg = base05
+
+# Foreground color of the statusbar.
+c.colors.statusbar.normal.fg = base05
+
+# Background color of the statusbar.
+c.colors.statusbar.normal.bg = base00
+
+# Foreground color of the statusbar in insert mode.
+c.colors.statusbar.insert.fg = base0C
+
+# Background color of the statusbar in insert mode.
+c.colors.statusbar.insert.bg = base00
+
+# Foreground color of the statusbar in passthrough mode.
+c.colors.statusbar.passthrough.fg = base0A
+
+# Background color of the statusbar in passthrough mode.
+c.colors.statusbar.passthrough.bg = base00
+
+# Foreground color of the statusbar in private browsing mode.
+c.colors.statusbar.private.fg = base0E
+
+# Background color of the statusbar in private browsing mode.
+c.colors.statusbar.private.bg = base00
+
+# Foreground color of the statusbar in command mode.
+c.colors.statusbar.command.fg = base04
+
+# Background color of the statusbar in command mode.
+c.colors.statusbar.command.bg = base01
+
+# Foreground color of the statusbar in private browsing + command mode.
+c.colors.statusbar.command.private.fg = base0E
+
+# Background color of the statusbar in private browsing + command mode.
+c.colors.statusbar.command.private.bg = base01
+
+# Foreground color of the statusbar in caret mode.
+c.colors.statusbar.caret.fg = base0D
+
+# Background color of the statusbar in caret mode.
+c.colors.statusbar.caret.bg = base00
+
+# Foreground color of the statusbar in caret mode with a selection.
+c.colors.statusbar.caret.selection.fg = base0D
+
+# Background color of the statusbar in caret mode with a selection.
+c.colors.statusbar.caret.selection.bg = base00
+
+# Background color of the progress bar.
+c.colors.statusbar.progress.bg = base0D
+
+# Default foreground color of the URL in the statusbar.
+c.colors.statusbar.url.fg = base05
+
+# Foreground color of the URL in the statusbar on error.
+c.colors.statusbar.url.error.fg = base08
+
+# Foreground color of the URL in the statusbar for hovered links.
+c.colors.statusbar.url.hover.fg = base09
+
+# Foreground color of the URL in the statusbar on successful load
+# (http).
+c.colors.statusbar.url.success.http.fg = base0B
+
+# Foreground color of the URL in the statusbar on successful load
+# (https).
+c.colors.statusbar.url.success.https.fg = base0B
+
+# Foreground color of the URL in the statusbar when there's a warning.
+c.colors.statusbar.url.warn.fg = base0E
+
+# Background color of the tab bar.
+c.colors.tabs.bar.bg = base00
+
+# Color gradient start for the tab indicator.
+c.colors.tabs.indicator.start = base0D
+
+# Color gradient end for the tab indicator.
+c.colors.tabs.indicator.stop = base0C
+
+# Color for the tab indicator on errors.
+c.colors.tabs.indicator.error = base08
+
+# Foreground color of unselected odd tabs.
+c.colors.tabs.odd.fg = base05
+
+# Background color of unselected odd tabs.
+c.colors.tabs.odd.bg = base00
+
+# Foreground color of unselected even tabs.
+c.colors.tabs.even.fg = base05
+
+# Background color of unselected even tabs.
+c.colors.tabs.even.bg = base00
+
+# Background color of pinned unselected even tabs.
+c.colors.tabs.pinned.even.bg = base0B
+
+# Foreground color of pinned unselected even tabs.
+c.colors.tabs.pinned.even.fg = base00
+
+# Background color of pinned unselected odd tabs.
+c.colors.tabs.pinned.odd.bg = base0B
+
+# Foreground color of pinned unselected odd tabs.
+c.colors.tabs.pinned.odd.fg = base00
+
+# Background color of pinned selected even tabs.
+c.colors.tabs.pinned.selected.even.bg = base02
+
+# Foreground color of pinned selected even tabs.
+c.colors.tabs.pinned.selected.even.fg = base05
+
+# Background color of pinned selected odd tabs.
+c.colors.tabs.pinned.selected.odd.bg = base02
+
+# Foreground color of pinned selected odd tabs.
+c.colors.tabs.pinned.selected.odd.fg = base05
+
+# Foreground color of selected odd tabs.
+c.colors.tabs.selected.odd.fg = base05
+
+# Background color of selected odd tabs.
+c.colors.tabs.selected.odd.bg = base02
+
+# Foreground color of selected even tabs.
+c.colors.tabs.selected.even.fg = base05
+
+# Background color of selected even tabs.
+c.colors.tabs.selected.even.bg = base02
+
+# Background color for webpages if unset (or empty to use the theme's
+# color).
+c.colors.webpage.bg = base00
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/sxhkd/templates/config.yaml b/dotfiles/flavours/.local/share/flavours/base16/templates/sxhkd/templates/config.yaml
new file mode 100644
index 0000000..5efbdf0
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/sxhkd/templates/config.yaml
@@ -0,0 +1,3 @@
+default:
+ extension: .dunstrc
+ output: themes
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/sxhkd/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/sxhkd/templates/default.mustache
new file mode 100644
index 0000000..fd13b34
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/sxhkd/templates/default.mustache
@@ -0,0 +1,4 @@
+set norm_bg "#{{base01-hex}}"
+set norm_fg "#{{base06-hex}}"
+set sel_bg "#{{base14-hex}}"
+set sel_fg "#{{base01-hex}}"
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/tmux/templates/config.yaml b/dotfiles/flavours/.local/share/flavours/base16/templates/tmux/templates/config.yaml
new file mode 100644
index 0000000..293d88a
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/tmux/templates/config.yaml
@@ -0,0 +1,3 @@
+default:
+ extension: .conf
+ output: colors
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/tmux/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/tmux/templates/default.mustache
new file mode 100644
index 0000000..539225e
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/tmux/templates/default.mustache
@@ -0,0 +1,30 @@
+# COLOUR (base16)
+
+# default statusbar colors
+set-option -g status-style "fg=#{{base04-hex}},bg=#{{base01-hex}}"
+
+# default window title colors
+set-window-option -g window-status-style "fg=#{{base04-hex}},bg=default"
+
+# active window title colors
+set-window-option -g window-status-current-style "fg=#{{base0A-hex}},bg=default"
+
+# pane border
+set-option -g pane-border-style "fg=#{{base01-hex}}"
+set-option -g pane-active-border-style "fg=#{{base02-hex}}"
+
+# message text
+set-option -g message-style "fg=#{{base05-hex}},bg=#{{base01-hex}}"
+
+# pane number display
+set-option -g display-panes-active-colour "#{{base0B-hex}}"
+set-option -g display-panes-colour "#{{base0A-hex}}"
+
+# clock
+set-window-option -g clock-mode-colour "#{{base0B-hex}}"
+
+# copy mode highligh
+set-window-option -g mode-style "fg=#{{base04-hex}},bg=#{{base02-hex}}"
+
+# bell
+set-window-option -g window-status-bell-style "fg=#{{base01-hex}},bg=#{{base08-hex}}"
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/config.yaml b/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/config.yaml
new file mode 100644
index 0000000..4bbd043
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/config.yaml
@@ -0,0 +1,6 @@
+default:
+ extension: .Xresources
+ output: xresources
+default-256:
+ extension: -256.Xresources
+ output: xresources
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/default-256.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/default-256.mustache
new file mode 100644
index 0000000..cb122e1
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/default-256.mustache
@@ -0,0 +1,54 @@
+! Base16 {{scheme-name}}
+! Scheme: {{scheme-author}}
+
+#define base00 #{{base00-hex}}
+#define base01 #{{base01-hex}}
+#define base02 #{{base02-hex}}
+#define base03 #{{base03-hex}}
+#define base04 #{{base04-hex}}
+#define base05 #{{base05-hex}}
+#define base06 #{{base06-hex}}
+#define base07 #{{base07-hex}}
+#define base08 #{{base08-hex}}
+#define base09 #{{base09-hex}}
+#define base0A #{{base0A-hex}}
+#define base0B #{{base0B-hex}}
+#define base0C #{{base0C-hex}}
+#define base0D #{{base0D-hex}}
+#define base0E #{{base0E-hex}}
+#define base0F #{{base0F-hex}}
+
+*foreground: base05
+#ifdef background_opacity
+*background: [background_opacity]base00
+#else
+*background: base00
+#endif
+*cursorColor: base05
+
+*color0: base00
+*color1: base08
+*color2: base0B
+*color3: base0A
+*color4: base0D
+*color5: base0E
+*color6: base0C
+*color7: base05
+
+*color8: base03
+*color9: base08
+*color10: base0B
+*color11: base0A
+*color12: base0D
+*color13: base0E
+*color14: base0C
+*color15: base07
+
+! Note: colors beyond 15 might not be loaded (e.g., xterm, urxvt),
+! use 'shell' template to set these if necessary
+*color16: base09
+*color17: base0F
+*color18: base01
+*color19: base02
+*color20: base04
+*color21: base06
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/default.mustache
new file mode 100644
index 0000000..f77c656
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/xresources/templates/default.mustache
@@ -0,0 +1,45 @@
+! Base16 {{scheme-name}}
+! Scheme: {{scheme-author}}
+
+#define base00 #{{base00-hex}}
+#define base01 #{{base01-hex}}
+#define base02 #{{base02-hex}}
+#define base03 #{{base03-hex}}
+#define base04 #{{base04-hex}}
+#define base05 #{{base05-hex}}
+#define base06 #{{base06-hex}}
+#define base07 #{{base07-hex}}
+#define base08 #{{base08-hex}}
+#define base09 #{{base09-hex}}
+#define base0A #{{base0A-hex}}
+#define base0B #{{base0B-hex}}
+#define base0C #{{base0C-hex}}
+#define base0D #{{base0D-hex}}
+#define base0E #{{base0E-hex}}
+#define base0F #{{base0F-hex}}
+
+*foreground: base05
+#ifdef background_opacity
+*background: [background_opacity]base00
+#else
+*background: base00
+#endif
+*cursorColor: base05
+
+*color0: base00
+*color1: base08
+*color2: base0B
+*color3: base0A
+*color4: base0D
+*color5: base0E
+*color6: base0C
+*color7: base05
+
+*color8: base03
+*color9: base09
+*color10: base01
+*color11: base02
+*color12: base04
+*color13: base06
+*color14: base0F
+*color15: base07
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/config.yaml b/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/config.yaml
new file mode 100644
index 0000000..02e20b8
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/config.yaml
@@ -0,0 +1,7 @@
+default:
+ extension: .config
+ output: colors
+
+recolor:
+ extension: .config
+ output: recolors
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/default.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/default.mustache
new file mode 100644
index 0000000..af1e9c3
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/default.mustache
@@ -0,0 +1,35 @@
+# Base16 {{scheme-name}}
+# Author: {{scheme-author}}
+
+set default-bg "#{{base00-hex}}"
+set default-fg "#{{base01-hex}}"
+
+set statusbar-fg "#{{base04-hex}}"
+set statusbar-bg "#{{base02-hex}}"
+
+set inputbar-bg "#{{base00-hex}}"
+set inputbar-fg "#{{base07-hex}}"
+
+set notification-bg "#{{base00-hex}}"
+set notification-fg "#{{base07-hex}}"
+
+set notification-error-bg "#{{base00-hex}}"
+set notification-error-fg "#{{base08-hex}}"
+
+set notification-warning-bg "#{{base00-hex}}"
+set notification-warning-fg "#{{base08-hex}}"
+
+set highlight-color "#{{base0A-hex}}"
+set highlight-active-color "#{{base0D-hex}}"
+
+set completion-bg "#{{base01-hex}}"
+set completion-fg "#{{base0D-hex}}"
+
+set completion-highlight-fg "#{{base07-hex}}"
+set completion-highlight-bg "#{{base0D-hex}}"
+
+set recolor-lightcolor "#{{base00-hex}}"
+set recolor-darkcolor "#{{base06-hex}}"
+
+set recolor "false"
+set recolor-keephue "false"
diff --git a/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/recolor.mustache b/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/recolor.mustache
new file mode 100644
index 0000000..569aa29
--- /dev/null
+++ b/dotfiles/flavours/.local/share/flavours/base16/templates/zathura/templates/recolor.mustache
@@ -0,0 +1,32 @@
+# Base16 {{scheme-name}}
+# Author: {{scheme-author}}
+
+set default-bg "#{{base00-hex}}"
+set default-fg "#{{base01-hex}}"
+
+set statusbar-fg "#{{base04-hex}}"
+set statusbar-bg "#{{base02-hex}}"
+
+set inputbar-bg "#{{base00-hex}}"
+set inputbar-fg "#{{base07-hex}}"
+
+set notification-bg "#{{base00-hex}}"
+set notification-fg "#{{base07-hex}}"
+
+set notification-error-bg "#{{base00-hex}}"
+set notification-error-fg "#{{base08-hex}}"
+
+set notification-warning-bg "#{{base00-hex}}"
+set notification-warning-fg "#{{base08-hex}}"
+
+set highlight-color "#{{base0A-hex}}"
+set highlight-active-color "#{{base0D-hex}}"
+
+set completion-bg "#{{base01-hex}}"
+set completion-fg "#{{base0D-hex}}"
+
+set completion-highlight-fg "#{{base07-hex}}"
+set completion-highlight-bg "#{{base0D-hex}}"
+
+set recolor-lightcolor "#{{base00-hex}}"
+set recolor-darkcolor "#{{base06-hex}}"
diff --git a/dotfiles/mkscaffold.sh b/dotfiles/mkscaffold.sh
index 2973fc9..d3a1780 100644
--- a/dotfiles/mkscaffold.sh
+++ b/dotfiles/mkscaffold.sh
@@ -9,3 +9,7 @@
mkdir ~/.vim
mkdir ~/.local
mkdir ~/.local/bin
+mkdir ~/.local/share/
+mkdir ~/.local/share/flavours
+mkdir ~/.local/share/flavours/base16/
+mkdir ~/.local/share/flavours/base16/templates
diff --git a/dotfiles/rtorrent/.rtorrent.rc b/dotfiles/rtorrent/.rtorrent.rc
new file mode 100644
index 0000000..fe8eae9
--- /dev/null
+++ b/dotfiles/rtorrent/.rtorrent.rc
@@ -0,0 +1,122 @@
+#############################################################################
+# A minimal rTorrent configuration that provides the basic features
+# you want to have in addition to the built-in defaults.
+#
+# See https://github.com/rakshasa/rtorrent/wiki/CONFIG-Template
+# for an up-to-date version.
+#############################################################################
+
+
+## Instance layout (base paths)
+method.insert = cfg.basedir, private|const|string, (cat,"/home/green/rtorrent/")
+method.insert = cfg.download, private|const|string, (cat,(cfg.basedir),"download/")
+method.insert = cfg.logs, private|const|string, (cat,(cfg.basedir),"log/")
+method.insert = cfg.logfile, private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log")
+method.insert = cfg.session, private|const|string, (cat,(cfg.basedir),".session/")
+method.insert = cfg.watch, private|const|string, (cat,(cfg.basedir),"watch/")
+
+
+## Create instance directories
+execute.throw = sh, -c, (cat,\
+ "mkdir -p \"",(cfg.download),"\" ",\
+ "\"",(cfg.logs),"\" ",\
+ "\"",(cfg.session),"\" ",\
+ "\"",(cfg.watch),"/load\" ",\
+ "\"",(cfg.watch),"/start\" ")
+
+
+## Listening port for incoming peer traffic (fixed; you can also randomize it)
+network.port_range.set = 50000-50000
+network.port_random.set = no
+
+
+## Tracker-less torrent and UDP tracker support
+## (conservative settings for 'private' trackers, change for 'public')
+dht.mode.set = disable
+protocol.pex.set = no
+
+trackers.use_udp.set = no
+
+
+## Peer settings
+throttle.max_uploads.set = 100
+throttle.max_uploads.global.set = 250
+
+throttle.min_peers.normal.set = 20
+throttle.max_peers.normal.set = 60
+throttle.min_peers.seed.set = 30
+throttle.max_peers.seed.set = 80
+trackers.numwant.set = 80
+
+protocol.encryption.set = allow_incoming,try_outgoing,enable_retry
+
+
+## Limits for file handle resources, this is optimized for
+## an `ulimit` of 1024 (a common default). You MUST leave
+## a ceiling of handles reserved for rTorrent's internal needs!
+network.http.max_open.set = 50
+network.max_open_files.set = 600
+network.max_open_sockets.set = 300
+
+
+## Memory resource usage (increase if you have a large number of items loaded,
+## and/or the available resources to spend)
+pieces.memory.max.set = 1800M
+network.xmlrpc.size_limit.set = 4M
+
+
+## Basic operational settings (no need to change these)
+session.path.set = (cat, (cfg.session))
+directory.default.set = (cat, (cfg.download))
+log.execute = (cat, (cfg.logs), "execute.log")
+#log.xmlrpc = (cat, (cfg.logs), "xmlrpc.log")
+execute.nothrow = sh, -c, (cat, "echo >",\
+ (session.path), "rtorrent.pid", " ",(system.pid))
+
+
+## Other operational settings (check & adapt)
+encoding.add = utf8
+system.umask.set = 0027
+system.cwd.set = (directory.default)
+network.http.dns_cache_timeout.set = 25
+schedule2 = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M))
+#pieces.hash.on_completion.set = no
+#view.sort_current = seeding, greater=d.ratio=
+#keys.layout.set = qwerty
+#network.http.capath.set = "/etc/ssl/certs"
+#network.http.ssl_verify_peer.set = 0
+#network.http.ssl_verify_host.set = 0
+
+
+## Some additional values and commands
+method.insert = system.startup_time, value|const, (system.time)
+method.insert = d.data_path, simple,\
+ "if=(d.is_multi_file),\
+ (cat, (d.directory), /),\
+ (cat, (d.directory), /, (d.name))"
+method.insert = d.session_file, simple, "cat=(session.path), (d.hash), .torrent"
+
+
+## Watch directories (add more as you like, but use unique schedule names)
+## Add torrent
+schedule2 = watch_load, 11, 10, ((load.verbose, (cat, (cfg.watch), "load/*.torrent")))
+## Add & download straight away
+schedule2 = watch_start, 10, 10, ((load.start_verbose, (cat, (cfg.watch), "start/*.torrent")))
+
+
+## Run the rTorrent process as a daemon in the background
+## (and control via XMLRPC sockets)
+#system.daemon.set = true
+#network.scgi.open_local = (cat,(session.path),rpc.socket)
+#execute.nothrow = chmod,770,(cat,(session.path),rpc.socket)
+
+
+## Logging:
+## Levels = critical error warn notice info debug
+## Groups = connection_* dht_* peer_* rpc_* storage_* thread_* tracker_* torrent_*
+print = (cat, "Logging to ", (cfg.logfile))
+log.open_file = "log", (cfg.logfile)
+log.add_output = "info", "log"
+#log.add_output = "tracker_debug", "log"
+
+### END of rtorrent.rc ###