diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..cef39a0
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,186 @@
+[global]
+ font = Liberation Sans 9
+
+ # allow a small subset of html markup:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # for a complete reference see http://developer.gnome.org/pango/stable/PangoMarkupFormat.html
+ # If markup is not allowed, those tags will be stripped out of the message.
+ allow_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 = "%a: %s\n%b"
+
+ # Sort messages by urgency
+ sort = yes
+
+ # 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 = 0
+
+ # 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
+
+ # ignore newlines '\n' in notifications
+ ignore_newline = no
+
+
+ # the geometry of the window
+ # geometry [{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 = "300x5-30+30"
+
+ # 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 = 25
+
+ # 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 = 120
+
+ # 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 = keyboard
+
+ # should a notification popped up from history be sticky or
+ # timeout as if it would normally do.
+ sticky_history = 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 = 8
+
+ # horizontal padding
+ horizontal_padding = 8
+
+ # 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
+
+ # print a notification on startup
+ # This is mainly for error detection, since dbus (re-)starts dunst
+ # automatically after a crash.
+ startup_notification = true
+
+ # dmenu path
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # browser for opening urls in context menu
+ browser = /usr/bin/firefox -new-tab
+
+[frame]
+ width = 0
+ color = "#bbbbbb"
+
+[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 = mod4+m
+
+ # close all notifications
+ close_all = mod4+shift+m
+
+ # redisplay last message(s)
+ history = mod4+n
+
+ # context menu
+ context = mod4+shift+i
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the '#' and following would be interpreted as a comment.
+ background = "#222222"
+ foreground = "#dddddd"
+ timeout = 10
+
+[urgency_normal]
+ background = "#222222"
+ foreground = "#ffffff"
+ timeout = 10
+
+[urgency_critical]
+ background = "#000000"
+ foreground = "#ff0000"
+ timeout = 0
+
+
+# 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' or 'icon'
+# and you can override the 'timeout', 'urgency', 'foreground', 'background'
+# 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.
+
+[play_sound]
+ summary = "*"
+ script = /home/dogeystamp/dox/scr/notification-sound.sh
diff --git a/.config/dunst/dunstrcb b/.config/dunst/dunstrcb
new file mode 100644
index 0000000..f693621
--- /dev/null
+++ b/.config/dunst/dunstrcb
@@ -0,0 +1,185 @@
+[global]
+ font = Liberation Sans 9
+
+ # allow a small subset of html markup:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # for a complete reference see http://developer.gnome.org/pango/stable/PangoMarkupFormat.html
+ # If markup is not allowed, those tags will be stripped out of the message. allow_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 = "%a: %s\n%b"
+
+ # Sort messages by urgency
+ sort = yes
+
+ # 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 = 0
+
+ # 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
+
+ # ignore newlines '\n' in notifications
+ ignore_newline = no
+
+
+ # the geometry of the window
+ # geometry [{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 = "300x5-30+30"
+
+ # 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 = 0
+
+ # 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 = 120
+
+ # 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 = keyboard
+
+ # should a notification popped up from history be sticky or
+ # timeout as if it would normally do.
+ sticky_history = 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 = 8
+
+ # horizontal padding
+ horizontal_padding = 8
+
+ # 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
+
+ # print a notification on startup
+ # This is mainly for error detection, since dbus (re-)starts dunst
+ # automatically after a crash.
+ startup_notification = true
+
+ # dmenu path
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # browser for opening urls in context menu
+ browser = /usr/bin/firefox -new-tab
+
+[frame]
+ width = 1
+ color = "#b0a485"
+
+[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 = mod4+m
+
+ # close all notifications
+ close_all = mod4+shift+m
+
+ # redisplay last message(s)
+ history = mod4+n
+
+ # context menu
+ context = mod4+shift+i
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the '#' and following would be interpreted as a comment.
+ background = "#282828"
+ foreground = "#b0a485"
+ timeout = 10
+
+[urgency_normal]
+ background = "#282828"
+ foreground = "#ebdbb2"
+ timeout = 10
+
+[urgency_critical]
+ background = "#000000"
+ foreground = "#ff0000"
+ timeout = 0
+
+
+# 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' or 'icon'
+# and you can override the 'timeout', 'urgency', 'foreground', 'background'
+# 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.
+
+[play_sound]
+ summary = "*"
+ script = /home/dogeystamp/dox/scr/notification-sound.sh
diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config
new file mode 100644
index 0000000..a5afd44
--- /dev/null
+++ b/.config/ncmpcpp/config
@@ -0,0 +1,92 @@
+##
+# Files
+ mpd_music_dir = "~/Music"
+ lyrics_directory = ~/.ncmpcpp/lyrics
+ ncmpcpp_directory = ~/.ncmpcpp
+ mpd_host = "localhost"
+ mpd_port = "6600"
+ mpd_connection_timeout = "5"
+ mpd_crossfade_time = "5"
+
+ # Playlist
+ playlist_disable_highlight_delay = "0"
+ playlist_display_mode = "columns"
+ playlist_show_remaining_time = "yes"
+
+ browser_display_mode = "columns"
+ autocenter_mode = "yes"
+ fancy_scrolling = "yes"
+ follow_now_playing_lyrics = "yes"
+ display_screens_numbers_on_start = "yes"
+ ignore_leading_the = "yes"
+ lyrics_database = "1"
+ song_columns_list_format = "(10)[blue]{l} (30)[green]{a} (30)[magenta]{b} (50)[yellow]{t}"
+ colors_enabled = "yes"
+ main_window_color = "white"
+ main_window_highlight_color = "blue"
+ header_window_color = "cyan"
+ volume_color = "red"
+ progressbar_color = "cyan"
+ statusbar_color = "white"
+ active_column_color = "cyan"
+ active_window_border = "blue"
+
+alternative_header_first_line_format = "$0$aqqu$/a {$7%a - $9}{$5%t$9}|{$8%f$9} $0$atqq$/a$9"
+alternative_header_second_line_format = "{{$6%b$9}{ [$6%y$9]}}|{%D}"
+song_list_format = "{$3%n │ $9}{$7%a - $9}{$5%t$9}|{$8%f$9}$R{$6 │ %b$9}{$3 │ %l$9}"
+#user_interface = "alternative"
+user_interface = "classic"
+default_place_to_search_in = "database"
+
+
+# visualizer
+visualizer_fifo_path = "/tmp/mpd.fifo"
+visualizer_output_name = "my_fifo"
+visualizer_sync_interval = "10"
+visualizer_color = 15, 52, 51, 50, 49, 48
+#visualizer_type = "wave" (spectrum/wave)
+visualizer_type = "wave_filled" (spectrum/wave)
+visualizer_in_stereo = "yes"
+visualizer_look = "●▮"
+
+
+## Navigation ##
+cyclic_scrolling = "yes"
+header_text_scrolling = "yes"
+jump_to_now_playing_song_at_start = "yes"
+lines_scrolled = "2"
+
+## Other ##
+system_encoding = "utf-8"
+regular_expressions = "extended"
+
+
+
+## Selected tracks ##
+selected_item_prefix = "* "
+discard_colors_if_item_is_selected = "no"
+
+## Seeking ##
+incremental_seeking = "yes"
+seek_time = "1"
+
+## Visivility ##
+header_visibility = "yes"
+statusbar_visibility = "yes"
+titles_visibility = "yes"
+
+
+progressbar_look = "=>-"
+progressbar_elapsed_color = "white"
+
+now_playing_prefix = "> "
+song_status_format = " $2%a $4⟫$3⟫ $8%t $4⟫$3⟫ $5%b "
+autocenter_mode = "yes"
+centered_cursor = "yes"
+
+# Misc
+display_bitrate = "yes"
+# enable_window_title = "no"
+follow_now_playing_lyrics = "yes"
+ignore_leading_the = "yes"
+empty_tag_marker = ""
diff --git a/.config/ncmpcpp/error.log b/.config/ncmpcpp/error.log
new file mode 100644
index 0000000..e69de29
diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf
new file mode 100644
index 0000000..df7b857
--- /dev/null
+++ b/.config/picom/picom.conf
@@ -0,0 +1,53 @@
+shadow = true;
+shadow-radius = 10;
+shadow-offset-x = -7;
+shadow-offset-y = -7;
+shadow-exclude = ["class_g = 'polybar'"];
+shadow-ignore-shaped = false;
+inactive-opacity = 1;
+active-opacity = 1;
+frame-opacity = 1;
+inactive-opacity-override = false;
+
+blur-background-exclude = [ "class_g = 'Clock'" ];
+fading = true;
+fade-in-step = 0.10;
+fade-out-step = 0.15;
+fade-exclude = [];
+backend = "xrender";
+mark-wmwin-focused = true;
+mark-ovredir-focused = true;
+detect-rounded-corners = true;
+detect-client-opacity = true;
+refresh-rate = 0;
+transition-length=200
+transition-pow-x = 0.1
+dbe = false;
+focus-exclude = [ "class_g = 'Cairo-clock'", "_NET_WM_NAME@:s = 'rofi'" ];
+detect-transient = true;
+detect-client-leader = true;
+invert-color-include = [ ];
+glx-copy-from-front = false;
+opacity-rule = [ "99:name *?= 'Screenshot'", "99:class_g = 'Firefox'",
+"99:name *?= 'Pale Moon'", "99:name *?= 'QupZilla'", "99:class_g =
+'Midori'", "99:class_g = 'Lazpaint'", "99:class_g = 'Pinta'",
+"99:class_g = 'Viewnior'", "99:class_g = 'GIMP'", "99:class_g =
+'Darktable'", "99:name *?= 'VLC'", "99:name *?= 'Event'", "99:name *?=
+'Call'", "99:name *?= 'Minitube'", "99:name *?= 'Write'", "99:name *?=
+'VirtualBox'", "99:name *?= 'Conky'", "90:name *?= 'Panel'", "90:name
+*?= 'Restart'", "90:name *?= 'Page Info'", "99:name *?= 'Image'",
+"75:class_g = 'kwrite'", "75:name *?= 'mousepad'", "85:class_g *?=
+'Rofi'", "0:class_g *?= 'conky'"];
+ wintypes :
+{
+ tooltip :
+ {
+ fade = true;
+ shadow = false;
+ opacity = 0.75;
+ focus = true;
+ };
+
+};
+blur-background-frame = false;
+
diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc
new file mode 100644
index 0000000..a7874e2
--- /dev/null
+++ b/.config/zathura/zathurarc
@@ -0,0 +1,5 @@
+set selection-clipboard clipboard
+set recolor-darkcolor "#CCCCCC"
+set default-bg "#333333"
+set recolor-lightcolor "#333333"
+set recolor true
diff --git a/.local/bin/mon-on b/.local/bin/mon-on
new file mode 100755
index 0000000..bee0bb5
--- /dev/null
+++ b/.local/bin/mon-on
@@ -0,0 +1 @@
+xrandr --output eDP1 --mode 1920x1080 --pos 2560x673 --rotate normal --output DP2-1 --primary --mode 2560x1440 --left-of DP1 --rotate normal --output DP1 --mode 2560x1440 --pos 0x0 --rotate normal --output HDMI1 --off --output HDMI2 --off --output VIRTUAL1 --off
diff --git a/.local/bin/notification-sound.sh b/.local/bin/notification-sound.sh
new file mode 100755
index 0000000..92a7719
--- /dev/null
+++ b/.local/bin/notification-sound.sh
@@ -0,0 +1 @@
+mpv ~/med/aud/not.mp3
diff --git a/README.md b/README.md
index 448cefe..7b2d7b9 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,9 @@
# dots
My dotfiles.
+
+## Installation
+
+Copy all the folders in here (including hidden ones like .config) to your home directory.
+You don't need .git, and you probably don't need my scripts in .local/bin (like mon-on or notification-sound.sh).
+
+You should install [my dwm](https://github.com/dogeystamp/dwm) and [st](https://github.com/dogeystamp/st) builds as well as this.