diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..adc088e
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,265 @@
+[global]
+font = Roboto 12
+
+# Allow a small subset of html markup:
+# bold
+# italic
+# strikethrough
+# underline
+#
+# For a complete reference see
+# .
+# If markup is not allowed, those tags will be stripped out of the
+# message.
+markup = yes
+
+# 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
+# Markup is allowed
+format = "%s\n%b"
+
+# Sort messages by urgency.
+sort = no
+
+# Show how many messages are currently hidden (because of geometry).
+indicate_hidden = yes
+
+# Alignment of message text.
+# Possible values are "left", "center" and "right".
+alignment = left
+
+# The frequency with wich text that is longer than the notification
+# window allows bounces back and forth.
+# This option conflicts with "word_wrap".
+# Set to 0 to disable.
+bounce_freq = 3
+
+# Show age of message if message is older than show_age_threshold
+# seconds.
+# Set to -1 to disable.
+show_age_threshold = -1
+
+# Split notifications into multiple lines if they don't fit into
+# geometry.
+word_wrap = yes
+
+# Ignore newlines '\n' in notifications.
+ignore_newline = no
+
+
+# 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 respectevly.
+# 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 = "300x25-10+45"
+
+# 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 windowmanager is
+# present (e.g. xcompmgr, compiz, etc.).
+#transparency = 15
+transparency = 8
+
+# 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.
+idle_threshold = 0
+
+# 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 windowmanager that exports the
+# _NET_ACTIVE_WINDOW property.
+# This should be the case for almost all modern windowmanagers.
+#
+# If this option is set to mouse or keyboard, the monitor option
+# will be ignored.
+follow = none
+
+# 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 = 50
+
+# Display indicators for URLs (U) and actions (A).
+show_indicators = yes
+
+# The height of a single line. If the height is smaller than the
+# font height, it will get raised to the font height.
+# This adds empty space above and under the text.
+line_height = 0
+
+# Draw a line of "separatpr_height" pixel height between two
+# notifications.
+# Set to 0 to disable.
+separator_height = 2
+
+# Padding between text and separator.
+padding = 16
+
+# Horizontal padding.
+horizontal_padding = 16
+
+# Defines color of the frame around the notification window.
+#frame_color = "#171717"
+frame_color = "#535c5c"
+
+# 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
+
+# Defines width in pixels of frame around the notification window.
+# Set to 0 to disable.
+frame_width = 2
+
+# Print a notification on startup.
+# This is mainly for error detection, since dbus (re-)starts dunst
+# automatically after a crash.
+startup_notification = false
+
+# dmenu path.
+dmenu = /usr/bin/dmenu -p dunst:
+
+# Browser for opening urls in context menu.
+#browser = /usr/bin/qutebrowser
+
+# Align icons left/right/off
+icon_position = right
+
+# Paths to default icons.
+icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+[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".
+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 = "#171717"
+ foreground = "#a4a4a4"
+ timeout = 5
+
+[urgency_normal]
+ background = "#171717"
+ foreground = "#a4a4a4"
+ timeout = 5
+
+[urgency_critical]
+ background = "#171717"
+ foreground = "#a4a4a4"
+ timeout = 0
+
+#[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+# background = "#2e3440"
+# foreground = "#ECEFF4"
+# timeout = 15
+
+#[urgency_normal]
+# background = "#2e3440"
+# foreground = "#ECEFF4"
+# timeout = 15
+
+#[urgency_critical]
+# background = "#2e3440"
+# foreground = "#ECEFF4"
+# timeout = 20
+# 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", "summary", "body", "icon", "category",
+# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
+# "background", "new_icon" and "format".
+# Shell-like globbing will get expanded.
+#
+# 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.
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# format = ""
+
+#[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
+#
+#[volume]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+
+# vim: ft=cfg
diff --git a/install.sh b/install.sh
index 6f7a7c1..8e14aa5 100755
--- a/install.sh
+++ b/install.sh
@@ -2,6 +2,26 @@
#
# Author: Severin Kaderli
# Usage: ./install.sh
+FILES=(
+ ".gitconfig"
+ ".vimrc"
+ ".bash_logout"
+ ".bash_profile"
+ ".bashrc"
+ ".aliases"
+ ".xinitrc"
+ ".Xresources"
+ ".config/i3"
+ ".config/termite"
+ ".config/polybar"
+ ".config/dunst"
+ ".config/compton.conf"
+ ".dircolors"
+ ".hyper.js"
+ "bin"
+ ".crontab"
+)
+
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# TODO: Install yaourt or else the next thing fails
@@ -16,29 +36,13 @@ yaourt -S --noconfirm $(cat "$DIR/yaourt/packages.aur.list")
# TODO: Create a function that makes the linking easier and that checks if
# the links already exists
-# Setting up git configuration
-ln -s "$DIR/.gitconfig" "$HOME/.gitconfig"
+for file in "${FILES[@]}"
+do
+ rm -rf "$HOME/$file"
+ ln -fs "$DIR/$file" "$HOME/$file"
+done
-# Setting up vim configuration
-ln -s "$DIR/.vimrc" "$HOME/.vimrc"
-
-# Setting up various configuration files
-ln -s "$DIR/.bash_logout" "$HOME/.bash_logout"
-ln -s "$DIR/.bash_profile" "$HOME/.bash_profile"
-ln -s "$DIR/.bashrc" "$HOME/.bashrc"
-ln -s "$DIR/.aliases" "$HOME/.aliases"
-ln -s "$DIR/.xinitrc" "$HOME/.xinitrc"
-ln -s "$DIR/.Xresources" "$HOME/.Xresources"
-ln -s "$DIR/.config/i3" "$HOME/.config/i3"
-ln -s "$DIR/.config/termite" "$HOME/.config/termite"
-ln -s "$DIR/.config/polybar" "$HOME/.config/polybar"
-ln -s "$DIR/.dircolors" "$HOME/.dircolors"
-ln -s "$DIR/.config/compton.conf" "$HOME/.config/compton.conf"
-ln -s "$DIR/.hyper.js" "$HOME/.hyper.js"
-
-
-# Symlinking scripts directory and giving execute permissions
-ln -s "$DIR/bin" "$HOME/bin"
+# ive scripts execute permissions
chmod +x "$HOME/bin/*"
# Download and install composer
@@ -47,6 +51,3 @@ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv "$DIR/composer.phar" "$HOME/bin/composer"
-
-# Link crontab file
-ln -s "$DIR/.crontab" "$HOME/.crontab"