diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
new file mode 100644
index 0000000..d05aa52
--- /dev/null
+++ b/.config/alacritty/alacritty.yml
@@ -0,0 +1,501 @@
+# # Configuration for Alacritty, the GPU enhanced terminal emulator
+
+# # Any items in the `env` entry below will be added as
+# # environment variables. Some entries may override variables
+# # set by alacritty it self.
+# # env:
+# # TERM env customization.
+# #
+# # If this property is not set, alacritty will set it to xterm-256color.
+# #
+# # Note that some xterm terminfo databases don't declare support for italics.
+# # You can verify this by checking for the presence of `smso` and `sitm` in
+# # `infocmp xterm-256color`.
+# # TERM: xterm-256color-italic
+
+window:
+# # Window dimensions (changes require restart)
+# #
+# # Specified in number of columns/lines, not pixels. If both are zero this
+# # setting is ignored.
+# dimensions:
+# columns: 100
+# lines: 85
+
+# # Window padding (changes require restart)
+# #
+# # Blank space added around the window in pixels. This padding is not scaled by
+# # DPI and the specified value is always added at both opposing sides.
+ padding:
+ x: 8
+ y: 8
+
+# # Spread additional padding evenly around the terminal content.
+# dynamic_padding: false
+
+# # Window decorations
+# #
+# # Available values:
+# # - full: borders and title bar
+# # - none: neither borders nor title bar
+# # - transparent: title bar, transparent background and title bar buttons
+# # - buttonless: title bar, transparent background, but no title bar buttons
+# decorations: buttonless
+
+# # Startup Mode (changes require restart)
+# #
+# # Values for `startup_mode`:
+# # - Windowed
+# # - Maximized
+# # - Fullscreen
+# #
+# # Values for `startup_mode` (macOS only):
+# # - SimpleFullscreen
+# startup_mode: Windowed
+
+# # Background opacity
+# opacity: 1.0
+
+# scrolling:
+# # maximum number of lines in the scrollback buffer. Specifying '0' will
+# # disable scrolling.
+# history: 0
+
+# # Number of lines the viewport will move for every line scrolled when
+# # scrollback is enabled (history > 0).
+# multiplier: 3
+
+# # Font configuration (changes require restart)
+font:
+# # The normal (roman) font face to use.
+# # Style can be specified to pick a specific face.
+ # normal:
+ # family: JetBrainsMono
+ # style: Light
+# # family: "Fira Code"
+# # family: "Source Code Pro"
+# # style: Retina
+
+# # The bold font face
+# bold:
+# family: Iosevka
+# style: Medium
+# # family: "Fira Code"
+# # family: "Source Code Pro"
+
+# # The italic font face
+# italic:
+# family: Iosevka
+# style: "Light Italic"
+# # style: "Light Oblique"
+# # family: "Fira Code"
+# # family: "Source Code Pro"
+# # style: "Medium Italic"
+
+# # Point size of the font
+ size: 8.0
+
+# # Offset is the extra space around each character. offset.y can be thought of
+# # as modifying the linespacing, and offset.x as modifying the letter spacing.
+# offset:
+# x: 0
+# y: 0
+
+# # Glyph offset determines the locations of the glyphs within their cells with
+# # the default being at the bottom. Increase the x offset to move the glyph to
+# # the right, increase the y offset to move the glyph upward.
+# glyph_offset:
+# x: 0
+# y: 0
+
+# # Thin stroke font rendering (macOS only)
+# #
+# # Thin strokes are suitable for retina displays, but for non-retina you
+# # probably want this set to false.
+# #
+# # macOS >= 10.14.x:
+# #
+# # If the font quality on non-retina display looks bad then set
+# # `use_thin_strokes` to `true` and enable font smoothing by running the
+# # following command:
+# # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
+# #
+# # This is a global setting and will require a log out or restart to take
+# # effect.
+# use_thin_strokes: true
+
+# # When true, bold text is drawn using the bright variant of colors.
+# draw_bold_text_with_bright_colors: false
+
+# # Use custom cursor colors. If true, display the cursor in the cursor.foreground
+# # and cursor.background colors, otherwise invert the colors of the cursor.
+# custom_cursor_colors: true
+
+# # Colors
+colors:
+
+# # Tomorrow (https://github.com/aarowill/base16-alacritty/blob/master/colors/base16-tomorrow.yml)
+# # Default colors
+ # primary:
+ # background: '0xffffff'
+ # foreground: '0x4d4d4c'
+ # # Colors the cursor will use if `custom_cursor_colors` is true
+ # cursor:
+ # text: '0xffffff'
+ # cursor: '0x4d4d4c'
+ # # Normal colors
+ # normal:
+ # black: '0xffffff'
+ # red: '0xc82829'
+ # green: '0x718c00'
+ # yellow: '0xeab700'
+ # blue: '0x4271ae'
+ # magenta: '0x8959a8'
+ # cyan: '0x3e999f'
+ # white: '0x4d4d4c'
+ # # Bright colors
+ # bright:
+ # black: '0x8e908c'
+ # red: '0xf5871f'
+ # green: '0xe0e0e0'
+ # yellow: '0xd6d6d6'
+ # blue: '0x969896'
+ # magenta: '0x282a2e'
+ # cyan: '0xa3685a'
+ # white: '0x1d1f21'
+
+# # # Tomorrow Night (https://github.com/aarowill/base16-alacritty/blob/master/colors/base16-tomorrow-night.yml)
+# # # Default colors
+ primary:
+ background: '0x222222'
+# # foreground: '0xc5c8c6'
+# # # Colors the cursor will use if `custom_cursor_colors` is true
+# # cursor:
+# # text: '0x1d1f21'
+# # cursor: '0xc5c8c6'
+# # # Normal colors
+# # normal:
+# # black: '0x1d1f21'
+# # red: '0xcc6666'
+# # green: '0xb5bd68'
+# # yellow: '0xf0c674'
+# # blue: '0x81a2be'
+# # magenta: '0xb294bb'
+# # cyan: '0x8abeb7'
+# # white: '0xc5c8c6'
+# # # Bright colors
+# # bright:
+# # black: '0x969896'
+# # red: '0xde935f'
+# # green: '0x282a2e'
+# # yellow: '0x373b41'
+# # blue: '0xb4b7b4'
+# # magenta: '0xe0e0e0'
+# # cyan: '0xa3685a'
+# # white: '0xffffff'
+
+# # 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: []
+
+# # Visual Bell
+# #
+# # Any time the BEL code is received, Alacritty "rings" the visual bell. Once
+# # rung, the terminal background will be set to white and transition back to the
+# # default background color. You can control the rate of this transition by
+# # setting the `duration` property (represented in milliseconds). You can also
+# # configure the transition function by setting the `animation` property.
+# #
+# # Possible values for `animation`
+# # `Ease`
+# # `EaseOut`
+# # `EaseOutSine`
+# # `EaseOutQuad`
+# # `EaseOutCubic`
+# # `EaseOutQuart`
+# # `EaseOutQuint`
+# # `EaseOutExpo`
+# # `EaseOutCirc`
+# # `Linear`
+# #
+# # To completely disable the visual bell, set its duration to 0.
+# #
+# bell:
+# animation: EaseOutExpo
+# color: '0xffffff'
+# duration: 0
+
+
+# # Key bindings
+# #
+# # Key bindings are specified as a list of objects. Each binding will specify a
+# # key and modifiers required to trigger it, terminal modes where the binding is
+# # applicable, and what should be done when the key binding fires. It can either
+# # send a byte sequence to the running application (`chars`), execute a
+# # predefined action (`action`) or fork and execute a specified command plus
+# # arguments (`command`).
+# #
+# # Bindings are always filled by default, but will be replaced when a new binding
+# # with the same triggers is defined. To unset a default binding, it can be
+# # mapped to the `None` action.
+# #
+# # Example:
+# # `- { key: V, mods: Control|Shift, action: Paste }`
+# #
+# # Available fields:
+# # - key
+# # - mods (optional)
+# # - chars | action | command (exactly one required)
+# # - mode (optional)
+# #
+# # Values for `key`:
+# # - `A` -> `Z`
+# # - `F1` -> `F12`
+# # - `Key1` -> `Key0`
+# #
+# # A full list with available key codes can be found here:
+# # https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
+# #
+# # Instead of using the name of the keys, the `key` field also supports using
+# # the scancode of the desired key. Scancodes have to be specified as a
+# # decimal number.
+# # This command will allow you to display the hex scancodes for certain keys:
+# # `showkey --scancodes`
+# #
+# # Values for `mods`:
+# # - Command
+# # - Control
+# # - Option
+# # - Super
+# # - Shift
+# # - Alt
+# #
+# # Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
+# # Whitespace and capitalization is relevant and must match the example.
+# #
+# # Values for `chars`:
+# # The `chars` field writes the specified string to the terminal. This makes
+# # it possible to pass escape sequences.
+# # To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
+# # the command `showkey -a` outside of tmux.
+# # Note that applications use terminfo to map escape sequences back to
+# # keys. It is therefore required to update the terminfo when
+# # changing an escape sequence.
+# #
+# # Values for `action`:
+# # - Paste
+# # - PasteSelection
+# # - Copy
+# # - IncreaseFontSize
+# # - DecreaseFontSize
+# # - ResetFontSize
+# # - ScrollPageUp
+# # - ScrollPageDown
+# # - ScrollLineUp
+# # - ScrollLineDown
+# # - ScrollToTop
+# # - ScrollToBottom
+# # - ClearHistory
+# # - Hide
+# # - Quit
+# # - ClearLogNotice
+# # - SpawnNewInstance
+# # - ToggleFullscreen
+# # - None
+# #
+# # Values for `action` (macOS only):
+# # - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
+# #
+# # Values for `command`:
+# # The `command` field must be a map containing a `program` string and
+# # an `args` array of command line parameter strings.
+# #
+# # Example:
+# # `command: { program: "alacritty", args: ["-e", "vttest"] }`
+# #
+# # Values for `mode`:
+# # - ~AppCursor
+# # - AppCursor
+# # - ~AppKeypad
+# # - AppKeypad
+# #
+# key_bindings:
+# - { key: V, mods: Command, action: Paste }
+# - { key: C, mods: Command, action: Copy }
+# - { key: Q, mods: Command, action: Quit }
+# - { key: N, mods: Command, action: SpawnNewInstance }
+# - { key: Return, mods: Command, action: ToggleFullscreen }
+
+# - { key: Home, chars: "\x1bOH", mode: AppCursor }
+# - { key: Home, chars: "\x1b[H", mode: ~AppCursor }
+# - { key: End, chars: "\x1bOF", mode: AppCursor }
+# - { key: End, chars: "\x1b[F", mode: ~AppCursor }
+# - { key: Equals, mods: Command, action: IncreaseFontSize }
+# - { key: Minus, mods: Command, action: DecreaseFontSize }
+# - { key: Minus, mods: Command|Shift, action: ResetFontSize }
+# - { key: PageUp, mods: Shift, chars: "\x1b[5;2~" }
+# - { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
+# - { key: PageUp, chars: "\x1b[5~" }
+# - { key: PageDown, mods: Shift, chars: "\x1b[6;2~" }
+# - { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
+# - { key: PageDown, chars: "\x1b[6~" }
+# - { key: Left, mods: Shift, chars: "\x1b[1;2D" }
+# - { key: Left, mods: Control, chars: "\x1b[1;5D" }
+# - { key: Left, mods: Alt, chars: "\x1b[1;3D" }
+# - { key: Left, chars: "\x1b[D", mode: ~AppCursor }
+# - { key: Left, chars: "\x1bOD", mode: AppCursor }
+# - { key: Right, mods: Shift, chars: "\x1b[1;2C" }
+# - { key: Right, mods: Control, chars: "\x1b[1;5C" }
+# - { key: Right, mods: Alt, chars: "\x1b[1;3C" }
+# - { key: Right, chars: "\x1b[C", mode: ~AppCursor }
+# - { key: Right, chars: "\x1bOC", mode: AppCursor }
+# - { key: Up, mods: Shift, chars: "\x1b[1;2A" }
+# - { key: Up, mods: Control, chars: "\x1b[1;5A" }
+# - { key: Up, mods: Alt, chars: "\x1b[1;3A" }
+# - { key: Up, chars: "\x1b[A", mode: ~AppCursor }
+# - { key: Up, chars: "\x1bOA", mode: AppCursor }
+# - { key: Down, mods: Shift, chars: "\x1b[1;2B" }
+# - { key: Down, mods: Control, chars: "\x1b[1;5B" }
+# - { key: Down, mods: Alt, chars: "\x1b[1;3B" }
+# - { key: Down, chars: "\x1b[B", mode: ~AppCursor }
+# - { key: Down, chars: "\x1bOB", mode: AppCursor }
+# - { key: Tab, mods: Shift, chars: "\x1b[Z" }
+# - { key: F1, chars: "\x1bOP" }
+# - { key: F2, chars: "\x1bOQ" }
+# - { key: F3, chars: "\x1bOR" }
+# - { key: F4, chars: "\x1bOS" }
+# - { key: F5, chars: "\x1b[15~" }
+# - { key: F6, chars: "\x1b[17~" }
+# - { key: F7, chars: "\x1b[18~" }
+# - { key: F8, chars: "\x1b[19~" }
+# - { key: F9, chars: "\x1b[20~" }
+# - { key: F10, chars: "\x1b[21~" }
+# - { key: F11, chars: "\x1b[23~" }
+# - { key: F12, chars: "\x1b[24~" }
+# - { key: Back, chars: "\x7f" }
+# - { key: Back, mods: Alt, chars: "\x1b\x7f" }
+# - { key: Insert, chars: "\x1b[2~" }
+# - { key: Delete, chars: "\x1b[3~" }
+
+# # shortcuts for tmux. the leader key is control-b (0x02)
+# - { key: W, mods: Command, chars: "\x02&" } # close tab (kill)
+# - { key: T, mods: Command, chars: "\x02c" } # new tab
+# - { key: RBracket, mods: Command|Shift, chars: "\x02n" } # select next tab
+# - { key: LBracket, mods: Command|Shift, chars: "\x02p" } # select previous tab
+# - { key: RBracket, mods: Command, chars: "\x02o" } # select next pane
+# - { key: LBracket, mods: Command, chars: "\x02;" } # select last (previously used) pane
+# - { key: F, mods: Command, chars: "\x02/" } # search (upwards) (see tmux.conf)
+
+# mouse:
+# # Click settings
+# #
+# # The `double_click` and `triple_click` settings control the time
+# # alacritty should wait for accepting multiple clicks as one double
+# # or triple click.
+# double_click: { threshold: 300 }
+# triple_click: { threshold: 300 }
+
+# # If this is `true`, the cursor is temporarily hidden when typing.
+# hide_when_typing: true
+
+# # URL launcher
+# # url:
+# # This program is executed when clicking on a text which is recognized as a URL.
+# # The URL is always added to the command as the last parameter.
+# #
+# # When set to `None`, URL launching will be disabled completely.
+# #
+# # Default:
+# # - (macOS) open
+# # - (Linux) xdg-open
+# # - (Windows) explorer
+# # launcher:
+# # program: xdg-open
+# # args: []
+
+# # These are the modifiers that need to be held down for opening URLs when clicking
+# # on them. The available modifiers are documented in the key binding section.
+# # modifiers: Control|Shift
+
+# selection:
+# semantic_escape_chars: ",│`|:\"' ()[]{}<>"
+
+# # When set to `true`, selected text will be copied to the primary clipboard.
+# save_to_clipboard: false
+
+# # Mouse bindings
+# #
+# # Available fields:
+# # - mouse
+# # - action
+# # - mods (optional)
+# #
+# # Values for `mouse`:
+# # - Middle
+# # - Left
+# # - Right
+# # - Numeric identifier such as `5`
+# #
+# # All available `mods` and `action` values are documented in the key binding
+# # section.
+# mouse_bindings:
+# - { mouse: Middle, action: PasteSelection }
+
+# cursor:
+# # Cursor style
+# #
+# # Values for 'style':
+# # - ▇ Block
+# # - _ Underline
+# # - | Beam
+# style: Block
+
+# # If this is `true`, the cursor will be rendered as a hollow box when the
+# # window is not focused.
+# unfocused_hollow: true
+
+# # dynamic_title: false
+
+# # Live config reload (changes require restart)
+# live_config_reload: true
+
+# debug:
+# # Should display the render timer
+# render_timer: false
+
+# # Keep the log file after quitting Alacritty.
+# persistent_logging: false
+
+# # Log level
+# #
+# # Values for `log_level`:
+# # - OFF
+# # - ERROR
+# # - WARN
+# # - INFO
+# # - DEBUG
+# # - TRACE
+# log_level: OFF
+
+# # Print all received window events.
+# print_events: false
+
+# # Record all characters and escape sequences as test data.
+# ref_test: false
+
+# # Shell
+# #
+# # You can set shell.program to the path of your favorite shell, e.g. /bin/fish.
+# # Entries in shell.args are passed unmodified as arguments to the shell.
+# shell:
+# program: /usr/local/bin/fish
+# args:
+# - --command=tmux
+
+# # vim: nospell
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..d04903f
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,216 @@
+[global]
+ font = Monospace 8
+
+ # 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-10+35"
+
+ # 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 = 0
+ color = "#000000"
+
+[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 = "#888888"
+ timeout = 10
+
+[urgency_normal]
+ background = "#44433d"
+ foreground = "#ffffff"
+ timeout = 10
+
+[urgency_critical]
+ background = "#900000"
+ foreground = "#ffffff"
+ 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.
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.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
+ format = "%s "%b""
+
+[music]
+ appname = Amarok
+ summary = "Now playing"
+ urgency = low
diff --git a/.config/i3/config b/.config/i3/config
new file mode 100644
index 0000000..0d9df0b
--- /dev/null
+++ b/.config/i3/config
@@ -0,0 +1,201 @@
+# _ _____ __ _
+# (_|___ / ___ ___ _ __ / _(_) __ _
+# | | |_ \ / __/ _ \| '_ \| |_| |/ _` |
+# | |___) | (_| (_) | | | | _| | (_| |
+# |_|____/ \___\___/|_| |_|_| |_|\__, |
+# |___/
+
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+# set mod key
+set $mod Mod4
+
+# font for window titles
+font pango:monospace 8
+
+
+
+# exec programs
+exec --no-startup-id nm-applet # applet for NetworkManager
+exec --no-startup-id ~/.scripts/disable_bleeping.sh # thank you debian
+exec picom --backend glx --vsync # screen tearing fix
+exec_always --no-startup-id $HOME/.config/polybar/launch.sh # polybar
+exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 # polkit
+exec --no-startup-id redshift -l 54.4:18.6 -t 5700:3600 -g 0.8 -m randr -v
+# exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork # i3lock
+
+ exec feh --bg-scale ~/Pictures/svgs/wallpaper-empty.png # wallpaper
+# exec feh --bg-tile ~/Pictures/error_wall.png # error
+# exec feh --bg-fill ~/Pictures/screenshots/HISZ.png # hiszpańskiii
+
+
+# Use pactl to adjust volume in PulseAudio.
+# set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% # && $refresh_i3status
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% # && $refresh_i3status
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle # && $refresh_i3status
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle # && $refresh_i3status
+
+# screen brightnessctl
+bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +8
+bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 8-
+
+# spotify control
+bindsym XF86Favorites exec --no-startup-id playerctl --player=spotify play-pause
+
+# start programs on key binding
+bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+bindsym $mod+x exec ~/.scripts/dmenu_custom.sh
+# bindsym Print exec --no-startup-id gnome-screenshot -c
+# bindsym $mod+Shift+p exec --no-startup-id systemctl suspend
+bindsym shift+XF86Display exec /home/igor/.scripts/screen_off.sh
+bindsym $mod+Return exec alacritty
+bindsym $mod+equal exec gnome-calculator
+
+# change keyboard layout
+bindsym $mod+l exec ~/.scripts/keyboard_layout.sh
+
+# make windows look better
+for_window [class="^.*"] border pixel 2
+for_window [floating] border pixel 0
+# gaps outer 10
+
+# set colors
+client.focused #ebad64 #e8660c #66675f #323c47
+
+# enable gaps and borders only when more than 2 windows are present
+smart_gaps on
+smart_borders on
+
+# enable floating for certain windows
+for_window [class="Gnome-calculator"] floating enable
+for_window [class="Gnome-screenshot"] floating enable
+
+
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# kill focused window
+bindsym $mod+q kill
+
+# change focus
+# bindsym $mod+j focus left
+# bindsym $mod+k focus down
+# bindsym $mod+l focus up
+# bindsym $mod+semicolon focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+j move left
+bindsym $mod+Shift+k move down
+bindsym $mod+Shift+l move up
+bindsym $mod+Shift+semicolon move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+h split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+# bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+# bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
+
+# resize window (you can also use the mouse for that)
+bindsym $mod+r mode "resize"
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
diff --git a/.config/polybar/config b/.config/polybar/config
new file mode 100644
index 0000000..ebcb9e4
--- /dev/null
+++ b/.config/polybar/config
@@ -0,0 +1,458 @@
+;==========================================================
+;
+;
+; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
+; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
+; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
+; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
+; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
+; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
+;
+;
+; To learn more about how to configure Polybar
+; go to https://github.com/polybar/polybar
+;
+; The README contains a lot of information
+;
+;==========================================================
+
+[colors]
+;background = ${xrdb:color0:#222}
+background = #222
+background-alt = #444
+;foreground = ${xrdb:color7:#222}
+foreground = #dfdfdf
+foreground-alt = #555
+primary = #ffb52a
+secondary = #e60053
+alert = #bd2c40
+
+[bar/example]
+;monitor = ${env:MONITOR:HDMI-1}
+width = 100%
+height = 27
+;offset-x = 1%
+;offset-y = 1%
+;radius = 6.0
+fixed-center = false
+
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+; line-size = 3
+; line-color = #f00
+
+; border-size = 4
+; border-color = #00000000
+
+padding-left = 0
+padding-right = 2
+
+module-margin-left = 1
+module-margin-right = 2
+
+font-0 = fixed:pixelsize=10;1
+font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
+font-2 = siji:pixelsize=10;1
+
+modules-left = bspwm i3 spotify
+modules-center =
+modules-right = xbacklight pulseaudio xkeyboard filesystem memory cpu wlan eth battery temperature date powermenu
+
+tray-position = right
+tray-padding = 2
+;tray-background = #0063ff
+
+;wm-restack = bspwm
+;wm-restack = i3
+
+;override-redirect = true
+
+;scroll-up = bspwm-desknext
+;scroll-down = bspwm-deskprev
+
+;scroll-up = i3wm-wsnext
+;scroll-down = i3wm-wsprev
+
+cursor-click = pointer
+cursor-scroll = ns-resize
+
+[module/xwindow]
+type = internal/xwindow
+label = %title:0:30:...%
+
+[module/xkeyboard]
+type = internal/xkeyboard
+blacklist-0 = num lock
+
+format-prefix = "lang "
+format-prefix-foreground = ${colors.foreground-alt}
+format-prefix-underline = ${colors.secondary}
+
+label-layout = %layout%
+label-layout-underline = ${colors.secondary}
+
+label-indicator-padding = 2
+label-indicator-margin = 1
+label-indicator-background = ${colors.secondary}
+label-indicator-underline = ${colors.secondary}
+
+[module/filesystem]
+type = internal/fs
+interval = 25
+
+mount-0 = /
+
+label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
+label-unmounted = %mountpoint% not mounted
+label-unmounted-foreground = ${colors.foreground-alt}
+
+[module/bspwm]
+type = internal/bspwm
+
+label-focused = %index%
+label-focused-background = ${colors.background-alt}
+label-focused-underline= ${colors.primary}
+label-focused-padding = 2
+
+label-occupied = %index%
+label-occupied-padding = 2
+
+label-urgent = %index%!
+label-urgent-background = ${colors.alert}
+label-urgent-padding = 2
+
+label-empty = %index%
+label-empty-foreground = ${colors.foreground-alt}
+label-empty-padding = 2
+
+; Separator in between workspaces
+; label-separator = |
+
+[module/i3]
+type = internal/i3
+format =
+index-sort = true
+wrapping-scroll = false
+
+; Only show workspaces on the same output as the bar
+;pin-workspaces = true
+
+label-mode-padding = 2
+label-mode-foreground = #000
+label-mode-background = ${colors.primary}
+
+; focused = Active workspace on focused monitor
+label-focused = %index%
+label-focused-background = ${colors.background-alt}
+label-focused-underline= ${colors.primary}
+label-focused-padding = 2
+
+; unfocused = Inactive workspace on any monitor
+label-unfocused = %index%
+label-unfocused-padding = 2
+
+; visible = Active workspace on unfocused monitor
+label-visible = %index%
+label-visible-background = ${self.label-focused-background}
+label-visible-underline = ${self.label-focused-underline}
+label-visible-padding = ${self.label-focused-padding}
+
+; urgent = Workspace with urgency hint set
+label-urgent = %index%
+label-urgent-background = ${colors.alert}
+label-urgent-padding = 2
+
+; Separator in between workspaces
+; label-separator = |
+
+[module/spotify]
+type = custom/script
+interval = 1
+format-prefix = "music "
+format-prefix-foreground = ${colors.foreground-alt}
+format =