diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
index da90cd5..a22fd8a 100644
--- a/.config/alacritty/alacritty.yml
+++ b/.config/alacritty/alacritty.yml
@@ -123,83 +123,48 @@ font:
 # If `true`, bold text is drawn using the bright color variants.
 draw_bold_text_with_bright_colors: true
 
-# Colors (Tomorrow Night Bright)
+# Colors (Dracula)
 colors:
   # Default colors
   primary:
-    background: '0x000000'
-    foreground: '0xeaeaea'
+     background: '#282a36'
+     foreground: '#f8f8f2'
 
-    # Bright and dim foreground colors
-    #
-    # The dimmed foreground color is calculated automatically if it is not present.
-    # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
-    # is `false`, the normal foreground color will be used.
-    #dim_foreground: '0x9a9a9a'
-    #bright_foreground: '0xffffff'
-
-  # Cursor colors
-  #
-  # Colors which should be used to draw the terminal cursor. If these are unset,
-  # the cursor color will be the inverse of the cell color.
-  cursor:
-    text: '0x000000'
-    cursor: '0xffffff'
-
-  # Selection colors
-  #
-  # Colors which should be used to draw the selection area. If selection
-  # background is unset, selection color will be the inverse of the cell colors.
-  # If only text is unset the cell text color will remain the same.
+  search:
+    matches:
+      foreground: '0x44475a'
+      background: '0x50fa7b'
+    focused_match:
+      foreground: '0x44475a'
+      background: '0xffb86c'
+    bar:
+      background: '0x282a36'
+      foreground: '0xf8f8f2'
   selection:
-    text: '0xeaeaea'
-    background: '0x404040'
+    text: '0xf8f8f2'
+    background: '0x44475a'
 
   # Normal colors
   normal:
-    black:   '0x000000'
-    red:     '0xd54e53'
-    green:   '0xb9ca4a'
-    yellow:  '0xe6c547'
-    blue:    '0x7aa6da'
-    magenta: '0xc397d8'
-    cyan:    '0x70c0ba'
-    white:   '0xeaeaea'
+    black:   '#000000'
+    red:     '#ff5555'
+    green:   '#50fa7b'
+    yellow:  '#f1fa8c'
+    blue:    '#caa9fa'
+    magenta: '#ff79c6'
+    cyan:    '#8be9fd'
+    white:   '#bfbfbf'
 
   # Bright colors
   bright:
-    black:   '0x666666'
-    red:     '0xff3334'
-    green:   '0x9ec400'
-    yellow:  '0xe7c547'
-    blue:    '0x7aa6da'
-    magenta: '0xb77ee0'
-    cyan:    '0x54ced6'
-    white:   '0xffffff'
-
-  # Dim colors
-  #
-  # If the dim colors are not set, they will be calculated automatically based
-  # on the `normal` colors.
-  #dim:
-  #  black:   '0x000000'
-  #  red:     '0x8c3336'
-  #  green:   '0x7a8530'
-  #  yellow:  '0x97822e'
-  #  blue:    '0x506d8f'
-  #  magenta: '0x80638e'
-  #  cyan:    '0x497e7a'
-  #  white:   '0x9a9a9a'
-
-  # Indexed Colors
-  #
-  # The indexed colors include all colors from 16 to 256.
-  # When these are not set, they're filled with sensible defaults.
-  #
-  # Example:
-  #   `- { index: 16, color: '0xff00ff' }`
-  #
-  #indexed_colors: []
+    black:   '#575b70'
+    red:     '#ff6e67'
+    green:   '#5af78e'
+    yellow:  '#f4f99d'
+    blue:    '#caa9fa'
+    magenta: '#ff92d0'
+    cyan:    '#9aedfe'
+    white:   '#e6e6e6'
 
 # Background opacity
 #
diff --git a/.config/aliasrc b/.config/aliasrc
index 6099c5a..9621bde 100644
--- a/.config/aliasrc
+++ b/.config/aliasrc
@@ -45,7 +45,6 @@ alias qutebrowser-kiosk='qutebrowser -B $XDG_DATA_HOME/qutebrowser-kiosk -C $XDG
 
 alias rm='rm -I --one-file-system -v'
 
-alias s3cmd="s3cmd --config=$XDG_CONFIG_HOME/s3cmd/config"
 alias sudo='sudo '
 
 alias wget='wget -c'
diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc
index cae5be4..1e613c8 100755
--- a/.config/bspwm/bspwmrc
+++ b/.config/bspwm/bspwmrc
@@ -1,5 +1,10 @@
 #!/bin/sh
 
+bspc config normal_border_color "#44475a"
+bspc config active_border_color "#bd93f9"
+bspc config focused_border_color "#ff79c6"
+bspc config presel_feedback_color "#6272a4"
+
 host_name=$(cat /proc/sys/kernel/hostname)
 if [[ $host_name == "portalo" ]]; then
     primary="HDMI-A-0"
@@ -50,6 +55,7 @@ bspc rule -a 'Brave-browser:brave-browser' follow='true' desktop='side-view'
 
 
 bspc rule -a 'TeamSpeak 3' desktop='voip' locked='true'
+bspc rule -a '*:*:TeamSpeak' desktop='voip'
 bspc rule -a 'Alacritty:mail' desktop='voip' locked='true'
 bspc rule -a 'Element' desktop='voip' locked='true'
 bspc rule -a 'Element (Riot)' desktop='voip' locked='true'
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..00b9ed6
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,430 @@
+[global]
+    ### Display ###
+
+    # 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 = mouse
+
+    # The geometry of the window:
+    #   [{width}]x{height}[+/-{x}+/-{y}]
+    # The geometry of the message window.
+    # The height is measured in number of notifications everything else
+    # in pixels.  If the width is omitted but the height is given
+    # ("-geometry x2"), the message window expands over the whole screen
+    # (dmenu-like).  If width is 0, the window expands to the longest
+    # message displayed.  A positive x is measured from the left, a
+    # negative from the right side of the screen.  Y is measured from
+    # the top and down respectively.
+    # The width can be negative.  In this case the actual width is the
+    # screen width minus the width defined in within the geometry option.
+    geometry = "300x5-30+20"
+
+    # Show how many messages are currently hidden (because of geometry).
+    indicate_hidden = yes
+
+    # Shrink window if it's smaller than the width.  Will be ignored if
+    # width is 0.
+    shrink = no
+
+    # 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.).
+    transparency = 15
+
+    # The height of the entire notification.  If the height is smaller
+    # than the font height and padding combined, it will be raised
+    # to the font height and padding.
+    notification_height = 0
+
+    # Draw a line of "separator_height" pixel height between two
+    # notifications.
+    # Set to 0 to disable.
+    separator_height = 1
+
+    # Padding between text and separator.
+    padding = 8
+
+    # Horizontal padding.
+    horizontal_padding = 10
+
+    # Defines width in pixels of frame around the notification window.
+    # Set to 0 to disable.
+    frame_width = 0
+
+    # Defines color of the frame around the notification window.
+    frame_color = "#282a36"
+
+    # 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 10
+
+    # 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:
+    #        <b>bold</b>
+    #        <i>italic</i>
+    #        <s>strikethrough</s>
+    #        <u>underline</u>
+    #
+    #        For a complete reference see
+    #        <https://developer.gnome.org/pango/stable/pango-Markup.html>.
+    #
+    # 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 = "<b>%s %p\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
+
+    # Split notifications into multiple lines if they don't fit into
+    # geometry.
+    word_wrap = yes
+
+    # When word_wrap is set to no, 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/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 = 0
+
+    # Scale larger icons down to this size, set to 0 to disable
+    max_icon_size = 64
+
+    # 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/firefox -new-tab
+
+    # 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
+
+    # Print a notification on startup.
+    # This is mainly for error detection, since dbus (re-)starts dunst
+    # automatically after a crash.
+    startup_notification = false
+
+    # Manage dunst's desire for talking
+    # Can be one of the following values:
+    #  crit: Critical features. Dunst aborts
+    #  warn: Only non-fatal warnings
+    #  mesg: Important Messages
+    #  info: all unimportant stuff
+    # debug: all less than unimportant stuff
+    verbosity = mesg
+
+    # 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
+
+    ### 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: If the notification has exactly one action, or one is marked as default,
+    #              invoke it. If there are multiple and no default, open the context menu.
+    # * close_current: Close current notification.
+    # * close_all: Close 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
+
+[shortcuts]
+
+    # Shortcuts are specified as [modifier+][modifier+]...key
+    # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
+    # "mod3" and "mod4" (windows-key).
+    # Xev might be helpful to find names for keys.
+
+    # Close notification.
+    #close = ctrl+space
+
+    # Close all notifications.
+    #close_all = ctrl+shift+space
+
+    # Redisplay last message(s).
+    # On the US keyboard layout "grave" is normally above TAB and left
+    # of "1". Make sure this key actually exists on your keyboard layout,
+    # e.g. check output of 'xmodmap -pke'
+    #history = ctrl+grave
+
+    # Context menu.
+    #context = ctrl+shift+period
+
+[urgency_low]
+    # IMPORTANT: colors have to be defined in quotation marks.
+    # Otherwise the "#" and following would be interpreted as a comment.
+    background = "#282a36"
+    foreground = "#6272a4"
+    timeout = 10
+    # Icon for notifications with low urgency, uncomment to enable
+    #icon = /path/to/icon
+
+[urgency_normal]
+    background = "#282a36"
+    foreground = "#bd93f9"
+    timeout = 10
+    # Icon for notifications with normal urgency, uncomment to enable
+    #icon = /path/to/icon
+
+[urgency_critical]
+    background = "#ff5555"
+    foreground = "#f8f8f2"
+    timeout = 0
+    # Icon for notifications with critical urgency, uncomment to enable
+    #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
+#    timeout
+#    urgency
+#
+# 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: if you don't want a notification to be displayed, set the format
+# to "".
+# 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"
+#    format = ""
+
+#[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/.config/polybar/bars.ini b/.config/polybar/bars.ini
index 3cb8768..e407ecd 100644
--- a/.config/polybar/bars.ini
+++ b/.config/polybar/bars.ini
@@ -52,7 +52,7 @@
 
     modules-left = bspwm
     modules-center = mpd
-    modules-right = memory cpu temperature eth check-arch-updates date powermenu
+    modules-right = memory cpu temperature eth check-arch-updates date
 
     eth-interface = enp0s31f6
 
diff --git a/.config/polybar/colors.ini b/.config/polybar/colors.ini
index 5074e7b..ce413f8 100644
--- a/.config/polybar/colors.ini
+++ b/.config/polybar/colors.ini
@@ -1,10 +1,10 @@
 [colors]
-    background = #222
-    background-alt = #444
-    foreground = #dfdfdf
-    foreground-alt = #777
-    primary = #ffb52a
-    secondary = #e60053
-    alert = #bd2c40
+    background = #282a36
+    background-alt = #44475a
+    foreground = #f8f8f2
+    foreground-alt = #6272a4
+    primary = #bd93f9
+    secondary = #8be9fd
+    alert = #ff5555
 
 ; vim: ft=dosini
diff --git a/.config/polybar/custom.ini b/.config/polybar/custom.ini
index 9a09861..4b8d1ed 100644
--- a/.config/polybar/custom.ini
+++ b/.config/polybar/custom.ini
@@ -4,7 +4,7 @@
     interval = 1
 
     format-prefix = " "
-    format-prefix-foreground = ${colors.foreground-alt}
+    format-prefix-foreground = ${colors.foreground}
     format-underline = #8bf
     format = <label>
 
@@ -16,7 +16,7 @@
     interval = 30
 
     format-prefix = " "
-    format-prefix-foreground = ${colors.foreground-alt}
+    format-prefix-foreground = ${colors.foreground}
     format-underline = #1794D1
     format = <label>
 
diff --git a/.config/polybar/modules.ini b/.config/polybar/modules.ini
index ac276b8..228cec0 100644
--- a/.config/polybar/modules.ini
+++ b/.config/polybar/modules.ini
@@ -7,7 +7,7 @@
     blacklist-0 = num lock
 
     format-prefix = " "
-    format-prefix-foreground = ${colors.foreground-alt}
+    format-prefix-foreground = ${colors.foreground}
     format-prefix-underline = ${colors.secondary}
 
     label-layout = %layout%
@@ -26,7 +26,7 @@
 
     label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
     label-unmounted = %mountpoint% not mounted
-    label-unmounted-foreground = ${colors.foreground-alt}
+    label-unmounted-foreground = ${colors.foreground}
 
 [module/bspwm]
     type = internal/bspwm
@@ -132,7 +132,7 @@
     type = internal/xbacklight
 
     format-prefix = " "
-    format-prefix-foreground = ${colors.foreground-alt}
+    format-prefix-foreground = ${colors.foreground}
     format-underline = #fff
     format = <label>
     label = %percentage%%
@@ -146,7 +146,7 @@
     bar-fill-foreground = #9f78e1
     bar-empty = -
     bar-empty-font = 2
-    bar-empty-foreground = ${colors.foreground-alt}
+    bar-empty-foreground = ${colors.foreground}
 
 [module/backlight-acpi]
     inherit = module/xbacklight
@@ -157,7 +157,7 @@
     type = internal/cpu
     interval = 2
     format-prefix = " "
-    format-prefix-foreground = ${colors.foreground-alt}
+    format-prefix-foreground = ${colors.foreground}
     format-underline = #f90000
     label = %percentage:3%%
 
@@ -165,7 +165,7 @@
     type = internal/memory
     interval = 2
     format-prefix = " "
-    format-prefix-foreground = ${colors.foreground-alt}
+    format-prefix-foreground = ${colors.foreground}
     format-underline = #4bffdc
     label = %percentage_used%%
 
@@ -182,14 +182,14 @@
 ;    format-disconnected = <label-disconnected>
 ;    format-disconnected-underline = ${self.format-connected-underline}
 ;    label-disconnected = %ifname% disconnected
-;    label-disconnected-foreground = ${colors.foreground-alt}
+;    label-disconnected-foreground = ${colors.foreground}
 
     ramp-signal-0 = 
     ramp-signal-1 = 
     ramp-signal-2 = 
     ramp-signal-3 = 
     ramp-signal-4 = 
-    ramp-signal-foreground = ${colors.foreground-alt}
+    ramp-signal-foreground = ${colors.foreground}
 
 [module/eth]
     type = internal/network
@@ -198,14 +198,14 @@
 
     format-connected-underline = #55aa55
     format-connected-prefix = " "
-    format-connected-prefix-foreground = ${colors.foreground-alt}
+    format-connected-prefix-foreground = ${colors.foreground}
     label-connected = %local_ip%
 
     format-disconnected =
 ;    format-disconnected = <label-disconnected>
 ;    format-disconnected-underline = ${self.format-connected-underline}
 ;    label-disconnected = %ifname% disconnected
-;    label-disconnected-foreground = ${colors.foreground-alt}
+;    label-disconnected-foreground = ${colors.foreground}
 
 [module/date]
     type = internal/date
@@ -216,7 +216,7 @@
     time = %H:%M:%S
 
     format-prefix = " "
-    format-prefix-foreground = ${colors.foreground-alt}
+    format-prefix-foreground = ${colors.foreground}
     format-underline = #0a6cf5
 
     label = %date% %time%
@@ -225,7 +225,7 @@
     type = internal/pulseaudio
 
     format-volume-prefix = " "
-    format-volume-prefix-foreground = ${colors.foreground-alt}
+    format-volume-prefix-foreground = ${colors.foreground}
 ;    format-volume = <label-volume> <bar-volume>
     format-volume = <label-volume>
     format-volume-underline = #d8d804
@@ -251,7 +251,7 @@
     bar-volume-fill-font = 2
     bar-volume-empty = -
     bar-volume-empty-font = 2
-    bar-volume-empty-foreground = ${colors.foreground-alt}
+    bar-volume-empty-foreground = ${colors.foreground}
 
 [module/alsa]
     type = internal/alsa
@@ -261,7 +261,7 @@
     label-volume-foreground = ${root.foreground}
 
     format-muted-prefix = " "
-    format-muted-foreground = ${colors.foreground-alt}
+    format-muted-foreground = ${colors.foreground}
     label-muted = sound muted
 
     bar-volume-width = 10
@@ -279,7 +279,7 @@
     bar-volume-fill-font = 2
     bar-volume-empty = ─
     bar-volume-empty-font = 2
-    bar-volume-empty-foreground = ${colors.foreground-alt}
+    bar-volume-empty-foreground = ${colors.foreground}
 
 [module/battery]
     type = internal/battery
@@ -296,7 +296,7 @@
     label-discharging = %percentage_raw%% (%time%)
 
     format-full-prefix = " "
-    format-full-prefix-foreground = ${colors.foreground-alt}
+    format-full-prefix-foreground = ${colors.foreground}
     format-full = <label-full>
     format-full-underline = ${self.format-charging-underline}
     label-full = %percentage_raw%%
@@ -306,14 +306,14 @@
     ramp-capacity-2 = 
     ramp-capacity-3 = 
     ramp-capacity-4 = 
-    ramp-capacity-foreground = ${colors.foreground-alt}
+    ramp-capacity-foreground = ${colors.foreground}
 
     animation-charging-0 = 
     animation-charging-1 = 
     animation-charging-2 = 
     animation-charging-3 = 
     animation-charging-4 = 
-    animation-charging-foreground = ${colors.foreground-alt}
+    animation-charging-foreground = ${colors.foreground}
     animation-charging-framerate = 500
 
     animation-discharging-0 = 
@@ -321,7 +321,7 @@
     animation-discharging-2 = 
     animation-discharging-3 = 
     animation-discharging-4 = 
-    animation-discharging-foreground = ${colors.foreground-alt}
+    animation-discharging-foreground = ${colors.foreground}
     animation-discharging-framerate = 500
 
 [module/temperature]
@@ -344,7 +344,7 @@
     ramp-2 = 
     ramp-3 = 
     ramp-4 = 
-    ramp-foreground = ${colors.foreground-alt}
+    ramp-foreground = ${colors.foreground}
 
 [module/powermenu]
     type = custom/menu
@@ -358,7 +358,7 @@
     label-close =  cancel
     label-close-foreground = ${colors.secondary}
     label-separator = |
-    label-separator-foreground = ${colors.foreground-alt}
+    label-separator-foreground = ${colors.foreground}
 
     menu-0-0 = reboot
     menu-0-0-exec = menu-open-1
diff --git a/.config/qutebrowser/config.py b/.config/qutebrowser/config.py
index 95d94f2..b67b42b 100644
--- a/.config/qutebrowser/config.py
+++ b/.config/qutebrowser/config.py
@@ -1,7 +1,13 @@
+import dracula.draw
+
 config.load_autoconfig()
 
 c.auto_save.session = True
 
+#c.colors.webpage.darkmode.enabled = True
+#c.colors.webpage.darkmode.policy.images = 'never'
+c.colors.webpage.preferred_color_scheme = 'dark'
+
 #c.content.proxy = "socks://localhost:9050/"
 c.content.headers.accept_language = "en-IE,en;q=0.9"
 
@@ -45,3 +51,11 @@ config.bind('<Alt-9>', 'tab-focus 9')
 
 config.bind('<Ctrl-Tab>', 'tab-next')
 config.bind('<Ctrl-Shift-Tab>', 'tab-prev')
+
+
+dracula.draw.blood(c, {
+    'spacing': {
+        'vertical': 1,
+        'horizontal': 3
+    }
+})
diff --git a/.config/qutebrowser/dracula/.gitignore b/.config/qutebrowser/dracula/.gitignore
new file mode 100644
index 0000000..4949fe8
--- /dev/null
+++ b/.config/qutebrowser/dracula/.gitignore
@@ -0,0 +1,2 @@
+/bookmarks/
+quickmarks
diff --git a/.config/qutebrowser/dracula/INSTALL.md b/.config/qutebrowser/dracula/INSTALL.md
new file mode 100644
index 0000000..7c61e78
--- /dev/null
+++ b/.config/qutebrowser/dracula/INSTALL.md
@@ -0,0 +1,31 @@
+### [qutebrowser](https://www.qutebrowser.org/)
+
+#### Install using Git
+
+If you are a git user, you can install the theme and keep up to date by cloning the repo:
+
+    $ git clone https://github.com/dracula/qutebrowser-dracula-theme.git dracula
+
+#### Install manually
+
+Download using the [GitHub .zip download](https://github.com/dracula/qutebrowser.git) option and unzip.
+
+#### Activating theme
+
+- Find your *[qutebrowser configuration directory](https://www.qutebrowser.org/doc/help/configuring.html#configpy)* (see e.g. `:version` in qutebrowser). This folder should be located at the "config" location listed on qute://version, which is typically ~/.config/qutebrowser/ on Linux, ~/.qutebrowser/ on macOS, and %APPDATA%/qutebrowser/config/ on Windows.
+- Move the repository folder to `dracula` inside the configuration directory.
+- In your [qutebrowser config.py file](https://www.qutebrowser.org/doc/help/configuring.html#configpy), include the following:
+
+```python
+import dracula.draw
+
+# Load existing settings made via :set
+config.load_autoconfig()
+
+dracula.draw.blood(c, {
+    'spacing': {
+        'vertical': 6,
+        'horizontal': 8
+    }
+})
+```
diff --git a/.config/qutebrowser/dracula/__init__.py b/.config/qutebrowser/dracula/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/.config/qutebrowser/dracula/draw.py b/.config/qutebrowser/dracula/draw.py
new file mode 100644
index 0000000..c19ad88
--- /dev/null
+++ b/.config/qutebrowser/dracula/draw.py
@@ -0,0 +1,291 @@
+def blood(c, options = {}):
+    palette = {
+        'background': '#282a36',
+        'background-alt': '#282a36',
+        'background-attention': '#181920',
+        'border': '#282a36',
+        'current-line': '#44475a',
+        'selection': '#44475a',
+        'foreground': '#f8f8f2',
+        'foreground-alt': '#e0e0e0',
+        'foreground-attention': '#ffffff',
+        'comment': '#6272a4',
+        'cyan': '#8be9fd',
+        'green': '#50fa7b',
+        'orange': '#ffb86c',
+        'pink': '#ff79c6',
+        'purple': '#bd93f9',
+        'red': '#ff5555',
+        'yellow': '#f1fa8c'
+    }
+
+    spacing = options.get('spacing', {
+        'vertical': 5,
+        'horizontal': 5
+    })
+
+    padding = options.get('padding', {
+        'top': spacing['vertical'],
+        'right': spacing['horizontal'],
+        'bottom': spacing['vertical'],
+        'left': spacing['horizontal']
+    })
+
+    ## Background color of the completion widget category headers.
+    c.colors.completion.category.bg = palette['background']
+
+    ## Bottom border color of the completion widget category headers.
+    c.colors.completion.category.border.bottom = palette['border']
+
+    ## Top border color of the completion widget category headers.
+    c.colors.completion.category.border.top = palette['border']
+
+    ## Foreground color of completion widget category headers.
+    c.colors.completion.category.fg = palette['foreground']
+
+    ## Background color of the completion widget for even rows.
+    c.colors.completion.even.bg = palette['background']
+
+    ## Background color of the completion widget for odd rows.
+    c.colors.completion.odd.bg = palette['background-alt']
+
+    ## Text color of the completion widget.
+    c.colors.completion.fg = palette['foreground']
+
+    ## Background color of the selected completion item.
+    c.colors.completion.item.selected.bg = palette['selection']
+
+    ## Bottom border color of the selected completion item.
+    c.colors.completion.item.selected.border.bottom = palette['selection']
+
+    ## Top border color of the completion widget category headers.
+    c.colors.completion.item.selected.border.top = palette['selection']
+
+    ## Foreground color of the selected completion item.
+    c.colors.completion.item.selected.fg = palette['foreground']
+
+    ## Foreground color of the matched text in the completion.
+    c.colors.completion.match.fg = palette['orange']
+
+    ## Color of the scrollbar in completion view
+    c.colors.completion.scrollbar.bg = palette['background']
+
+    ## Color of the scrollbar handle in completion view.
+    c.colors.completion.scrollbar.fg = palette['foreground']
+
+    ## Background color for the download bar.
+    c.colors.downloads.bar.bg = palette['background']
+
+    ## Background color for downloads with errors.
+    c.colors.downloads.error.bg = palette['background']
+
+    ## Foreground color for downloads with errors.
+    c.colors.downloads.error.fg = palette['red']
+
+    ## Color gradient stop for download backgrounds.
+    c.colors.downloads.stop.bg = palette['background']
+
+    ## Color gradient interpolation system for download backgrounds.
+    ## Type: ColorSystem
+    ## Valid values:
+    ##   - rgb: Interpolate in the RGB color system.
+    ##   - hsv: Interpolate in the HSV color system.
+    ##   - hsl: Interpolate in the HSL color system.
+    ##   - none: Don't show a gradient.
+    c.colors.downloads.system.bg = 'none'
+
+    ## Background color for hints. Note that you can use a `rgba(...)` value
+    ## for transparency.
+    c.colors.hints.bg = palette['background']
+
+    ## Font color for hints.
+    c.colors.hints.fg = palette['purple']
+
+    ## Hints
+    c.hints.border = '1px solid ' + palette['background-alt']
+
+    ## Font color for the matched part of hints.
+    c.colors.hints.match.fg = palette['foreground-alt']
+
+    ## Background color of the keyhint widget.
+    c.colors.keyhint.bg = palette['background']
+
+    ## Text color for the keyhint widget.
+    c.colors.keyhint.fg = palette['purple']
+
+    ## Highlight color for keys to complete the current keychain.
+    c.colors.keyhint.suffix.fg = palette['selection']
+
+    ## Background color of an error message.
+    c.colors.messages.error.bg = palette['background']
+
+    ## Border color of an error message.
+    c.colors.messages.error.border = palette['background-alt']
+
+    ## Foreground color of an error message.
+    c.colors.messages.error.fg = palette['red']
+
+    ## Background color of an info message.
+    c.colors.messages.info.bg = palette['background']
+
+    ## Border color of an info message.
+    c.colors.messages.info.border = palette['background-alt']
+
+    ## Foreground color an info message.
+    c.colors.messages.info.fg = palette['comment']
+
+    ## Background color of a warning message.
+    c.colors.messages.warning.bg = palette['background']
+
+    ## Border color of a warning message.
+    c.colors.messages.warning.border = palette['background-alt']
+
+    ## Foreground color a warning message.
+    c.colors.messages.warning.fg = palette['red']
+
+    ## Background color for prompts.
+    c.colors.prompts.bg = palette['background']
+
+    # ## Border used around UI elements in prompts.
+    c.colors.prompts.border = '1px solid ' + palette['background-alt']
+
+    ## Foreground color for prompts.
+    c.colors.prompts.fg = palette['cyan']
+
+    ## Background color for the selected item in filename prompts.
+    c.colors.prompts.selected.bg = palette['selection']
+
+    ## Background color of the statusbar in caret mode.
+    c.colors.statusbar.caret.bg = palette['background']
+
+    ## Foreground color of the statusbar in caret mode.
+    c.colors.statusbar.caret.fg = palette['orange']
+
+    ## Background color of the statusbar in caret mode with a selection.
+    c.colors.statusbar.caret.selection.bg = palette['background']
+
+    ## Foreground color of the statusbar in caret mode with a selection.
+    c.colors.statusbar.caret.selection.fg = palette['orange']
+
+    ## Background color of the statusbar in command mode.
+    c.colors.statusbar.command.bg = palette['background']
+
+    ## Foreground color of the statusbar in command mode.
+    c.colors.statusbar.command.fg = palette['pink']
+
+    ## Background color of the statusbar in private browsing + command mode.
+    c.colors.statusbar.command.private.bg = palette['background']
+
+    ## Foreground color of the statusbar in private browsing + command mode.
+    c.colors.statusbar.command.private.fg = palette['foreground-alt']
+
+    ## Background color of the statusbar in insert mode.
+    c.colors.statusbar.insert.bg = palette['background-attention']
+
+    ## Foreground color of the statusbar in insert mode.
+    c.colors.statusbar.insert.fg = palette['foreground-attention']
+
+    ## Background color of the statusbar.
+    c.colors.statusbar.normal.bg = palette['background']
+
+    ## Foreground color of the statusbar.
+    c.colors.statusbar.normal.fg = palette['foreground']
+
+    ## Background color of the statusbar in passthrough mode.
+    c.colors.statusbar.passthrough.bg = palette['background']
+
+    ## Foreground color of the statusbar in passthrough mode.
+    c.colors.statusbar.passthrough.fg = palette['orange']
+
+    ## Background color of the statusbar in private browsing mode.
+    c.colors.statusbar.private.bg = palette['background-alt']
+
+    ## Foreground color of the statusbar in private browsing mode.
+    c.colors.statusbar.private.fg = palette['foreground-alt']
+
+    ## Background color of the progress bar.
+    c.colors.statusbar.progress.bg = palette['background']
+
+    ## Foreground color of the URL in the statusbar on error.
+    c.colors.statusbar.url.error.fg = palette['red']
+
+    ## Default foreground color of the URL in the statusbar.
+    c.colors.statusbar.url.fg = palette['foreground']
+
+    ## Foreground color of the URL in the statusbar for hovered links.
+    c.colors.statusbar.url.hover.fg = palette['cyan']
+
+    ## Foreground color of the URL in the statusbar on successful load
+    c.colors.statusbar.url.success.http.fg = palette['green']
+
+    ## Foreground color of the URL in the statusbar on successful load
+    c.colors.statusbar.url.success.https.fg = palette['green']
+
+    ## Foreground color of the URL in the statusbar when there's a warning.
+    c.colors.statusbar.url.warn.fg = palette['yellow']
+
+    ## Status bar padding
+    c.statusbar.padding = padding
+
+    ## Background color of the tab bar.
+    ## Type: QtColor
+    c.colors.tabs.bar.bg = palette['selection']
+
+    ## Background color of unselected even tabs.
+    ## Type: QtColor
+    c.colors.tabs.even.bg = palette['selection']
+
+    ## Foreground color of unselected even tabs.
+    ## Type: QtColor
+    c.colors.tabs.even.fg = palette['foreground']
+
+    ## Color for the tab indicator on errors.
+    ## Type: QtColor
+    c.colors.tabs.indicator.error = palette['red']
+
+    ## Color gradient start for the tab indicator.
+    ## Type: QtColor
+    c.colors.tabs.indicator.start = palette['orange']
+
+    ## Color gradient end for the tab indicator.
+    ## Type: QtColor
+    c.colors.tabs.indicator.stop = palette['green']
+
+    ## Color gradient interpolation system for the tab indicator.
+    ## Type: ColorSystem
+    ## Valid values:
+    ##   - rgb: Interpolate in the RGB color system.
+    ##   - hsv: Interpolate in the HSV color system.
+    ##   - hsl: Interpolate in the HSL color system.
+    ##   - none: Don't show a gradient.
+    c.colors.tabs.indicator.system = 'none'
+
+    ## Background color of unselected odd tabs.
+    ## Type: QtColor
+    c.colors.tabs.odd.bg = palette['selection']
+
+    ## Foreground color of unselected odd tabs.
+    ## Type: QtColor
+    c.colors.tabs.odd.fg = palette['foreground']
+
+    # ## Background color of selected even tabs.
+    # ## Type: QtColor
+    c.colors.tabs.selected.even.bg = palette['background']
+
+    # ## Foreground color of selected even tabs.
+    # ## Type: QtColor
+    c.colors.tabs.selected.even.fg = palette['foreground']
+
+    # ## Background color of selected odd tabs.
+    # ## Type: QtColor
+    c.colors.tabs.selected.odd.bg = palette['background']
+
+    # ## Foreground color of selected odd tabs.
+    # ## Type: QtColor
+    c.colors.tabs.selected.odd.fg = palette['foreground']
+
+    ## Tab padding
+    c.tabs.padding = padding
+    c.tabs.indicator.width = 1
+    c.tabs.favicons.scale = 1
+
diff --git a/.config/qutebrowser/dracula/readme.md b/.config/qutebrowser/dracula/readme.md
new file mode 100644
index 0000000..1e914ea
--- /dev/null
+++ b/.config/qutebrowser/dracula/readme.md
@@ -0,0 +1,21 @@
+# Dracula for [qutebrowser](https://www.qutebrowser.org/)
+
+> A dark theme for [qutebrowser](https://www.qutebrowser.org/).
+
+![Screenshot](./screenshot.png)
+
+## Install
+
+All instructions can be found at [draculatheme.com/qutebrowser](https://draculatheme.com/qutebrowser).
+
+## Team
+
+This theme is maintained by the following person(s) and a bunch of [awesome contributors](https://github.com/dracula/qutebrowser/graphs/contributors).
+
+[![Evan Nagle](https://avatars2.githubusercontent.com/u/556537?s=88&v=4&s=70)](https://github.com/evannagle) |
+--- |
+[Evan Nagle](https://github.com/evannagle) |
+
+## License
+
+[MIT License](./LICENSE)
diff --git a/.config/qutebrowser/dracula/screenshot.png b/.config/qutebrowser/dracula/screenshot.png
new file mode 100644
index 0000000..5dbcba4
Binary files /dev/null and b/.config/qutebrowser/dracula/screenshot.png differ
diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc
index 7fac004..f49e0e3 100644
--- a/.config/sxhkd/sxhkdrc
+++ b/.config/sxhkd/sxhkdrc
@@ -18,8 +18,10 @@ super + p
 super + Escape
     pkill -USR1 -x sxhkd
 
-super + {_, ctrl +, shift + } Print
-    suas {sel, win, }
+#super + {_, ctrl +, shift + } Print
+#    suas {sel, win, }
+super + Print
+    screenshot
 
 super + Pause
     rofi-shutdown
diff --git a/.config/vim/vimrc b/.config/vim/vimrc
index a4b9299..94d4845 100644
--- a/.config/vim/vimrc
+++ b/.config/vim/vimrc
@@ -22,7 +22,8 @@ call plug#begin('~/.config/vim/plugged')
     " Eye-Candy
     Plug 'machakann/vim-highlightedyank'
     Plug 'itchyny/lightline.vim'
-    Plug 'nanotech/jellybeans.vim'
+    "Plug 'nanotech/jellybeans.vim'
+    Plug 'dracula/vim', { 'as': 'dracula' }
     Plug 'scrooloose/syntastic'
     Plug 'Yggdroot/indentLine'
 
@@ -148,7 +149,8 @@ let g:jellybeans_overrides = {
 \       '256ctermbg': 'none'
 \   },
 \ }
-colorscheme jellybeans
+colorscheme dracula
+highlight Normal ctermbg=NONE
 
 let g:highlightedyank_highlight_duration = 250
 
diff --git a/.local/bin/rofi-shutdown b/.local/bin/rofi-shutdown
index 3969012..42a21f6 100755
--- a/.local/bin/rofi-shutdown
+++ b/.local/bin/rofi-shutdown
@@ -10,7 +10,7 @@ case "$action" in
         systemctl reboot
         ;;
     "Logout")
-        bspc quit
+        systemctl --user exit
         ;;
     *)
         ;;
diff --git a/.local/bin/screenshot b/.local/bin/screenshot
new file mode 100755
index 0000000..226de90
--- /dev/null
+++ b/.local/bin/screenshot
@@ -0,0 +1,19 @@
+#!/usr/bin/env sh
+
+s3_bucket=public.serguzim.me/screenshots
+s3_host=https://sos-de-fra-1.exo.io
+path=/tmp/screenshot.png
+
+if flameshot gui -r > $path
+then
+    file=$(date "+%F_%H-%M-%S").png
+
+    xclip -t image/png $path -selection clipboard
+
+    s3cmd put -P $path s3://$s3_bucket/$file
+    echo "$s3_host/$s3_bucket/$file" | xclip  -selection primary
+fi
+
+
+
+
diff --git a/.local/share/qutebrowser/greasemonkey/ddg-dracula.user.js b/.local/share/qutebrowser/greasemonkey/ddg-dracula.user.js
new file mode 100644
index 0000000..fe90a59
--- /dev/null
+++ b/.local/share/qutebrowser/greasemonkey/ddg-dracula.user.js
@@ -0,0 +1,10 @@
+// ==UserScript==
+// @name        DuckDuckGo Dracula Dark Theme
+// @namespace   https://duckduckgo.com/
+// @match       https://duckduckgo.com/
+// @grant       none
+// @version     1.0
+// @author      -
+// @description 2/19/2020, 3:26:24 PM
+// ==/UserScript==
+var dracula=["7=282a36","8=f8f8f2","9=50fa7b","ae=t","t=p","s=m","w=n","m=l","o=s","j=282a36","a=p","aa=bd93f9","u=-1","x=f1fa8c","y=44475a","af=1","ai=1","f=1"];for(var i=0;i<dracula.length;i++)document.cookie=dracula[i];
diff --git a/.xprofile b/.xprofile
index 5d14aa9..68485ee 100644
--- a/.xprofile
+++ b/.xprofile
@@ -52,7 +52,8 @@ _autostart_on_launch()
     sleep 1
 
     ### Workspace VOIP
-    teamspeak3 &
+    #teamspeak3 &
+    /opt/teamspeak5/TeamSpeak &
     #sleep 2
     #alacritty --class "mail" --command sh -c "neomutt" &
     sleep 1