diff --git a/.config/dmenu_script/config b/.config/dmenu_script/config
new file mode 100644
index 0000000..6fad7e6
--- /dev/null
+++ b/.config/dmenu_script/config
@@ -0,0 +1,5 @@
+scripts_root=$HOME/Scripts/dmenu_script/
+
+run () {
+ "$1" | rofi -dmenu -i
+}
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..48d7e66
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,47 @@
+[global]
+ font = "Google Sans 10"
+ markup = yes
+ format = "%s\n%b"
+ sort = yes
+ indicate_hidden = yes
+ alignment = center
+ bounce_freq = 0
+ show_age_threshold = 60
+ word_wrap = yes
+ ignore_newline = no
+ geometry = "300x50-12+60"
+ transparency = 20
+ idle_threshold = 120
+ monitor = 0
+ follow = mouse
+ sticky_history = yes
+ line_height = 0
+ separator_height = 1
+ padding = 8
+ horizontal_padding = 8
+ separator_color = auto
+ startup_notification = false
+ frame_width = 1
+ frame_color = "#383838"
+
+
+[shortcuts]
+ close = ctrl+space
+ close_all = ctrl+shift+space
+ history = ctrl+grave
+ context = ctrl+shift+period
+
+[urgency_low]
+ background = "#181818"
+ foreground = "#FFFFFF"
+ timeout = 5
+
+[urgency_normal]
+ background = "#181818"
+ foreground = "#FFFFFF"
+ timeout = 20
+
+[urgency_critical]
+ background = "#181818"
+ foreground = "#FFFFFF"
+ timeout = 0
diff --git a/.config/dunst/dunstrc.template b/.config/dunst/dunstrc.template
new file mode 100644
index 0000000..9732450
--- /dev/null
+++ b/.config/dunst/dunstrc.template
@@ -0,0 +1,47 @@
+[global]
+ font = "Open Sans 10"
+ markup = yes
+ format = "%s\n%b"
+ sort = yes
+ indicate_hidden = yes
+ alignment = center
+ bounce_freq = 0
+ show_age_threshold = 60
+ word_wrap = yes
+ ignore_newline = no
+ geometry = "300x50-12+60"
+ transparency = 20
+ idle_threshold = 120
+ monitor = 0
+ follow = mouse
+ sticky_history = yes
+ line_height = 0
+ separator_height = 1
+ padding = 8
+ horizontal_padding = 8
+ separator_color = auto
+ startup_notification = false
+ frame_width = 1
+ frame_color = "#383838"
+
+
+[shortcuts]
+ close = ctrl+space
+ close_all = ctrl+shift+space
+ history = ctrl+grave
+ context = ctrl+shift+period
+
+[urgency_low]
+ background = ${bg-color}
+ foreground = ${fg-color}
+ timeout = 5
+
+[urgency_normal]
+ background = ${bg-color}
+ foreground = ${fg-color}
+ timeout = 20
+
+[urgency_critical]
+ background = ${bg-color}
+ foreground = ${fg-color}
+ timeout = 0
diff --git a/.config/i3/.config.un~ b/.config/i3/.config.un~
new file mode 100644
index 0000000..a1f1c7a
Binary files /dev/null and b/.config/i3/.config.un~ differ
diff --git a/.config/i3/.exit.sh.un~ b/.config/i3/.exit.sh.un~
new file mode 100755
index 0000000..ce3f170
Binary files /dev/null and b/.config/i3/.exit.sh.un~ differ
diff --git a/.config/i3/.factorio.sh.un~ b/.config/i3/.factorio.sh.un~
new file mode 100755
index 0000000..a50847f
Binary files /dev/null and b/.config/i3/.factorio.sh.un~ differ
diff --git a/.config/i3/.mmc.sh.un~ b/.config/i3/.mmc.sh.un~
new file mode 100755
index 0000000..b24b1de
Binary files /dev/null and b/.config/i3/.mmc.sh.un~ differ
diff --git a/.config/i3/.music.sh.un~ b/.config/i3/.music.sh.un~
new file mode 100755
index 0000000..fb76276
Binary files /dev/null and b/.config/i3/.music.sh.un~ differ
diff --git a/.config/i3/auto-xrandr b/.config/i3/auto-xrandr
new file mode 100755
index 0000000..6ffb2a1
--- /dev/null
+++ b/.config/i3/auto-xrandr
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+# preferred order of monitors (highest to lowest priority)
+order=(DP HDMI)
+# preferred position of monitors (relative to previsous monitor in $order)
+position=${1:-above}
+# maximum number of monitors to use (only names from $order will be used)
+max=10
+
+if [[ "$1" = -h || "$1" = --help ]]; then
+ echo "Usage: $(basename "$0") [position]" >&2
+ exit
+fi
+
+connected=($(xrandr | grep ' connected ' | cut -f 1 -d ' '))
+options=()
+
+for choice in ${order[@]}; do
+ # iterate over the indices of the connected monitors
+ for monitor in ${!connected[@]}; do
+ if [[ ${connected[$monitor]} =~ $choice ]]; then
+ if [[ ${#options[@]} -eq 0 ]]; then
+ # set first match from $order as primary monitor
+ options=(--output ${connected[$monitor]} --auto --primary)
+ else
+ # put monitor in $position of the $last one
+ options=(${options[@]} --output ${connected[$monitor]} --auto --$position $last)
+ fi
+ # remember this monitor to position the next one
+ last=${connected[$monitor]}
+ # delete this monitor from the list of connected monitors
+ unset connected[$monitor]
+ connected=(${connected[@]})
+ # count down the number of monitors that is desired at most
+ ((max--))
+ if [[ $max -eq 0 ]]; then
+ break 2
+ else
+ break
+ fi
+ fi
+ done
+done
+
+# let xrandr turn all disconnected monitors off (just in case) and also all
+# connected monitors that where above the maximum number of desired monitors
+for disconnected in $(xrandr | grep disconnected | cut -f 1 -d ' ') ${connected[@]}; do
+ options=(${options[@]} --output $disconnected --off)
+done
+
+xrandr --verbose ${options[@]}
diff --git a/.config/i3/autorandr b/.config/i3/autorandr
new file mode 100755
index 0000000..c2c3384
--- /dev/null
+++ b/.config/i3/autorandr
@@ -0,0 +1,290 @@
+#!/bin/sh
+#
+# Automatically select a display configuration based on connected devices
+#
+# Stefan Tomanek
+#
+# How to use:
+#
+# Save your current display configuration and setup with:
+# $ autorandr --save mobile
+#
+# Connect an additional display, configure your setup and save it:
+# $ autorandr --save docked
+#
+# Now autorandr can detect which hardware setup is active:
+# $ autorandr
+# mobile
+# docked (detected)
+#
+# To automatically reload your setup, just append --change to the command line
+#
+# To manually load a profile, you can use the --load option.
+#
+# autorandr tries to avoid reloading an identical configuration. To force the
+# (re)configuration, apply --force.
+#
+# To prevent a profile from being loaded, place a script call "block" in its
+# directory. The script is evaluated before the screen setup is inspected, and
+# in case of it returning a value of 0 the profile is skipped. This can be used
+# to query the status of a docking station you are about to leave.
+#
+# If no suitable profile can be identified, the current configuration is kept.
+# To change this behaviour and switch to a fallback configuration, specify
+# --default
+#
+# Another script called "postswitch "can be placed in the directory
+# ~/.autorandr as well as in all profile directories: The scripts are executed
+# after a mode switch has taken place and can notify window managers or other
+# applications about it.
+#
+#
+# While the script uses xrandr by default, calling it by the name "autodisper"
+# or "auto-disper" forces it to use the "disper" utility, which is useful for
+# controlling nvidia chipsets. The formats for fingerprinting the current setup
+# and saving/loading the current configuration are adjusted accordingly.
+
+XRANDR=/usr/bin/xrandr
+DISPER=/usr/bin/disper
+XDPYINFO=/usr/bin/xdpyinfo
+PROFILES=~/.autorandr/
+CONFIG=~/.autorandr.conf
+
+CHANGE_PROFILE=0
+FORCE_LOAD=0
+DEFAULT_PROFILE=""
+SAVE_PROFILE=""
+
+FP_METHODS="setup_fp_xrandr_edid setup_fp_sysfs_edid"
+CURRENT_CFG_METHOD="current_cfg_xrandr"
+LOAD_METHOD="load_cfg_xrandr"
+
+SCRIPTNAME="$(basename $0)"
+# when called as autodisper/auto-disper, we assume different defaults
+if [ "$SCRIPTNAME" = "auto-disper" ] || [ "$SCRIPTNAME" = "autodisper" ]; then
+ echo "Assuming disper defaults..." >&2
+ FP_METHODS="setup_fp_disper"
+ CURRENT_CFG_METHOD="current_cfg_disper"
+ LOAD_METHOD="load_cfg_disper"
+fi
+
+if [ -f $CONFIG ]; then
+ echo "Loading configuration from '$CONFIG'" >&2
+ . $CONFIG
+fi
+
+setup_fp_xrandr_edid() {
+ $XRANDR -q --verbose | awk '
+ /^[^ ]+ (dis)?connected / { DEV=$1; }
+ $1 ~ /^[a-f0-9]+$/ { ID[DEV] = ID[DEV] $1 }
+ END { for (X in ID) { print X " " ID[X]; } }'
+}
+
+setup_fp_sysfs_edid() {
+ # xrandr triggers the reloading of EDID data
+ $XRANDR -q > /dev/null
+ # hash the EDIDs of all _connected_ devices
+ for P in /sys/class/drm/card*-*/; do
+ # nothing found
+ [ ! -d "$P" ] && continue
+ if grep -q "^connected$" < "${P}status"; then
+ echo -n "$(basename "$P") "
+ md5sum ${P}edid | awk '{print $1}'
+ fi
+ done
+}
+
+setup_fp_disper() {
+ $DISPER -l | grep '^display '
+}
+
+setup_fp() {
+ local FP="";
+ for M in $FP_METHODS; do
+ FP="$($M)"
+ if [ -n "$FP" ]; then
+ break
+ fi
+ done
+ if [ -z "$FP" ]; then
+ echo "Unable to fingerprint display configuration" >&2
+ return
+ fi
+ echo "$FP"
+}
+
+current_cfg_xrandr() {
+ local PRIMARY_SETUP="";
+ if [ -x "$XDPYINFO" ]; then
+ PRIMARY_SETUP="$($XDPYINFO -ext XINERAMA | awk '/^ head #0:/ {printf $3 $5}')"
+ fi
+ $XRANDR -q | awk -v primary_setup="${PRIMARY_SETUP}" '
+ # display is connected and has a mode
+ /^[^ ]+ connected [^(]/ {
+ split($3, A, "+");
+ print "output "$1;
+ print "mode "A[1];
+ print "pos "A[2]"x"A[3];
+ if ($4 !~ /^\(/) {
+ print "rotate "$4;
+ }
+ if (A[1] A[2] "," A[3] == primary_setup)
+ print "primary";
+ next;
+ }
+ # disconnected or disabled displays
+ /^[^ ]+ (dis)?connected / ||
+ /^[^ ]+ unknown connection / {
+ print "output "$1;
+ print "off";
+ next;
+ }'
+}
+
+current_cfg_disper() {
+ $DISPER -p
+}
+
+current_cfg() {
+ $CURRENT_CFG_METHOD;
+}
+
+blocked() {
+ local PROFILE="$1"
+ [ ! -x "$PROFILES/$PROFILE/block" ] && return 1
+
+ "$PROFILES/$PROFILE/block" "$PROFILE"
+}
+
+config_equal() {
+ local PROFILE="$1"
+ if [ "$(cat "$PROFILES/$PROFILE/config")" = "$(current_cfg)" ]; then
+ echo "Config already loaded"
+ return 0
+ else
+ return 1
+ fi
+}
+
+load_cfg_xrandr() {
+ sed 's!^!--!' "$1" | xargs $XRANDR
+}
+
+load_cfg_disper() {
+ $DISPER -i < "$1"
+}
+
+load() {
+ local PROFILE="$1"
+ local CONF="$PROFILES/$PROFILE/config"
+ if [ -e "$CONF" ] ; then
+ echo " -> loading profile $PROFILE"
+ $LOAD_METHOD "$CONF"
+
+ [ -x "$PROFILES/$PROFILE/postswitch" ] && \
+ "$PROFILES/$PROFILE/postswitch" "$PROFILE"
+ [ -x "$PROFILES/postswitch" ] && \
+ "$PROFILES/postswitch" "$PROFILE"
+ fi
+}
+
+help() {
+ cat < save your current setup to profile
+-l, --load load profile
+-d, --default make profile the default profile
+--force force (re)loading of a profile
+--fingerprint fingerprint your current hardware setup
+--config dump your current xrandr setup
+
+ To prevent a profile from being loaded, place a script call "block" in its
+ directory. The script is evaluated before the screen setup is inspected, and
+ in case of it returning a value of 0 the profile is skipped. This can be used
+ to query the status of a docking station you are about to leave.
+
+ If no suitable profile can be identified, the current configuration is kept.
+ To change this behaviour and switch to a fallback configuration, specify
+ --default .
+
+ Another script called "postswitch "can be placed in the directory
+ ~/.autorandr as well as in any profile directories: The scripts are executed
+ after a mode switch has taken place and can notify window managers.
+
+ When called by the name "autodisper" or "auto-disper", the script uses "disper"
+ instead of "xrandr" to detect, configure and save the display configuration.
+
+EOH
+ exit
+}
+# process parameters
+OPTS=$(getopt -n autorandr -o s:l:d:cfh --long change,default:,save:,load:,force,fingerprint,config,help -- "$@")
+if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
+eval set -- "$OPTS"
+
+while true; do
+ case "$1" in
+ -c|--change) CHANGE_PROFILE=1; shift ;;
+ -d|--default) DEFAULT_PROFILE="$2"; shift 2 ;;
+ -s|--save) SAVE_PROFILE="$2"; shift 2 ;;
+ -l|--load) LOAD_PROFILE="$2"; shift 2 ;;
+ -h|--help) help ;;
+ --force) FORCE_LOAD=1; shift ;;
+ --fingerprint) setup_fp; exit 0;;
+ --config) current_cfg; exit 0;;
+ --) shift; break ;;
+ *) echo "Error: $1"; exit 1;;
+ esac
+done
+
+CURRENT_SETUP="$(setup_fp)"
+
+if [ -n "$SAVE_PROFILE" ]; then
+ echo "Saving current configuration as profile '${SAVE_PROFILE}'"
+ mkdir -p "$PROFILES/$SAVE_PROFILE"
+ echo "$CURRENT_SETUP" > "$PROFILES/$SAVE_PROFILE/setup"
+ $CURRENT_CFG_METHOD > "$PROFILES/$SAVE_PROFILE/config"
+ exit 0
+fi
+
+if [ -n "$LOAD_PROFILE" ]; then
+ CHANGE_PROFILE=1 FORCE_LOAD=1 load "$LOAD_PROFILE"
+ exit $?
+fi
+
+for SETUP_FILE in $PROFILES/*/setup; do
+ if ! [ -e $SETUP_FILE ]; then
+ break
+ fi
+ PROFILE="$(basename $(dirname "$SETUP_FILE"))"
+ echo -n "$PROFILE"
+
+ if blocked "$PROFILE"; then
+ echo " (blocked)"
+ continue
+ fi
+
+ FILE_SETUP="$(cat "$PROFILES/$PROFILE/setup")"
+ if [ "$CURRENT_SETUP" = "$FILE_SETUP" ]; then
+ echo " (detected)"
+ if [ "$CHANGE_PROFILE" -eq 1 ]; then
+ if [ "$FORCE_LOAD" -eq 1 ] || ! config_equal "$PROFILE"; then
+ load "$PROFILE"
+ fi
+ fi
+ # found the profile, exit with success
+ exit 0
+ else
+ echo ""
+ fi
+done
+
+# we did not find the profile, load default
+if [ -n "$DEFAULT_PROFILE" ]; then
+ echo "No suitable profile detected, falling back to $DEFAULT_PROFILE"
+ load "$DEFAULT_PROFILE"
+fi
+exit 1
diff --git a/.config/i3/config b/.config/i3/config
new file mode 100644
index 0000000..2eb9b0e
--- /dev/null
+++ b/.config/i3/config
@@ -0,0 +1,270 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+
+set_from_resource $bright i3wm.color2 #ff0000
+#set_from_resource $bg i3wm.color7 #ff0000
+set_from_resource $light i3wm.color4 #ff0000
+set_from_resource $fg i3wm.color4 #ff0000
+set_from_resource $bg i3wm.color3 #ff0000
+
+set $bg-color #000000
+set $inactive-bg-color #2f343f
+set $text-color #FFFFFF
+set $inactive-text-color #676E7D
+set $urgent-bg-color #E53935
+set $bordercolor #c5cbd6
+set $bg-highlight #556177
+
+
+gaps inner 10
+gaps outer 7
+gaps top -5
+
+smart_gaps on
+
+set $mode_gaps Toggle gaps: (1) on (2) off
+bindsym $mod+g mode "$mode_gaps"
+mode "$mode_gaps" {
+ bindsym 1 mode "default", gaps inner all set 10, gaps outer all set 4, gaps top all set -5
+ bindsym 2 mode "default", gaps inner all set 0, gaps outer all set 0
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+
+# Brightness
+
+bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 5
+bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5
+bindsym Ctrl+XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 1
+bindsym Ctrl+XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 1
+
+# Auto startup
+
+exec_always --no-startup-id xfce4-power-manager
+#exec --no-startup-id xrandr | grep -q HDMI1 && xrandr --output eDP1 --auto --output HDMI1 --auto --above eDP1
+
+# ! Lock Screen
+#exec_always --no-startup-id xss-lock -- i3lock -i /home/daan/Pictures/wallpapers/wallpaper.png &
+bindsym $mod+shift+x exec --no-startup-id i3lock -i $backgroud &
+
+exec_always --no-startup-id libinput-gestures-setup start
+#exec_always --no-startup-id export QT_QPA_PLATFORMTHEME="qt5ct"
+exec_always --no-startup-id /usr/lib/kdeconnectd &
+exec_always --no-startup-id indicator-kdeconnect
+#exec_always --no-startup-id nm-applet --agent
+exec_always --no-startup-id ~/.config/i3/auto-xrandr
+#
+exec_always --no-startup-id ~/.config/compton/launch.sh
+exec_always --no-startup-id ~/.config/polybar/launch.sh
+#exec_always --no-startup-id /home/daan/.screenlayout/HDMI.sh
+exec_always --no-startup-id ~/setbg.sh &
+#exec_always --no-startup-id hsetroot -solid "#ffffff"
+exec_always --no-startup-id dunst &
+#exec_always --no-startup-id ~/.config/i3/oneko.sh
+exec_always --no-startup-id ~/.config/tilda/launch.sh &
+exec_always --no-startup-id touchegg &
+
+#bindsym $mod+w exec --no-startup-id guake-toggle &
+
+
+# Application
+
+bindsym $mod+Shift+e exec --no-startup-id ~/.config/i3/exit.sh
+
+bindsym $mod+Shift+m exec --no-startup-id dmenu_script minecraft.sh
+
+bindsym $mod+Shift+f exec --no-startup-id dmenu_script factorio.sh
+
+bindsym $mod+t exec --no-startup-id ~/.config/i3/run.sh
+
+bindsym $mod+Shift+g exec --no-startup-id dmenu_script lutris.sh
+
+#exec_always --no-startup-id ~/.config/i3/rotate.sh
+
+bindsym $mod+Shift+p exec --no-startup-id systemctl --user restart music
+bindsym $mod+Ctrl+p exec --no-startup-id systemctl --user stop music
+
+bindsym $mod+Shift+s exec --no-startup-id emacs
+bindsym $mod+Shift+n exec networkmanager_dmenu
+
+# Rotation
+
+bindsym $mod+Ctrl+Shift+Down exec --no-startup-id ~/.config/i3/rotate.sh normal
+bindsym $mod+Ctrl+Shift+Up exec --no-startup-id ~/.config/i3/rotate.sh bottom-up
+bindsym $mod+Ctrl+Shift+Right exec --no-startup-id ~/.config/i3/rotate.sh left-up
+bindsym $mod+Ctrl+Shift+Left exec --no-startup-id ~/.config/i3/rotate.sh right-up
+
+# window border size
+new_window pixel 0
+new_float pixel 0
+
+# default font
+font pango:Open Sans 10
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec termite
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start rofi
+bindsym $mod+d exec rofi -show run --no-startup-id
+
+# workspaces
+
+workspace 1 output eDP1
+workspace 2 output HDMI1
+workspace 3 output HDMI1
+
+# change focus
+bindsym $mod+j focus left
+bindsym $mod+k focus down
+bindsym $mod+l focus up
+bindsym $mod+m 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+i move up
+bindsym $mod+Shift+l move right
+
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+bindsym $mod+Control+Left workspace prev
+bindsym $mod+Control+Right workspace next
+
+# 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
+
+# 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+q focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# switch to workspace
+bindsym $mod+1 workspace 1
+bindsym $mod+2 workspace 2
+bindsym $mod+3 workspace 3
+bindsym $mod+4 workspace 4
+bindsym $mod+5 workspace 5
+bindsym $mod+6 workspace 6
+bindsym $mod+7 workspace 7
+bindsym $mod+8 workspace 8
+bindsym $mod+9 workspace 9
+bindsym $mod+0 workspace 10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace 1
+bindsym $mod+Shift+2 move container to workspace 2
+bindsym $mod+Shift+3 move container to workspace 3
+bindsym $mod+Shift+4 move container to workspace 4
+bindsym $mod+Shift+5 move container to workspace 5
+bindsym $mod+Shift+6 move container to workspace 6
+bindsym $mod+Shift+7 move container to workspace 7
+bindsym $mod+Shift+8 move container to workspace 8
+bindsym $mod+Shift+9 move container to workspace 9
+bindsym $mod+Shift+0 move container to workspace 10
+
+bindsym $mod+Shift+greater move workspace to output up
+bindsym $mod+Shift+less move workspace to output down
+
+# 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 exec ~/.config/i3/auto-xrandr && i3-msg 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)
+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 m 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
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Pulse Audio controls
+bindsym XF86AudioRaiseVolume exec --no-startup-id sh -c "pactl set-sink-mute 0 false && pactl set-sink-volume 0 +5%"
+bindsym XF86AudioLowerVolume exec --no-startup-id sh -c "pactl set-sink-mute 0 false && pactl set-sink-volume 0 -5%"
+bindsym XF86AudioMute exec --no-startup-id sh -c "pactl set-sink-mute 0 toggle"
+
+
+# Workspace assignment
+
+assign [class="^code-oss$"] 3
+for_window [class="^code-oss$"] focus
+
+assign [window_role="browser"] 2
+for_window [window_role="browser"] focus
+
+## Plasma Integration
+# Try to kill the wallpaper set by Plasma (it takes up the entire workspace and hides everythiing)
+exec --no-startup-id wmctrl -c Plasma
+for_window [title="Desktop — Plasma"] kill; floating enable; border none
+
+## Avoid tiling popups, dropdown windows from plasma
+# for the first time, manually resize them, i3 will remember the setting for floating windows
+for_window [class="plasmashell"] floating enable;
+for_window [class="Plasma"] floating enable; border none
+for_window [title="plasma-desktop"] floating enable; border none
+for_window [title="win7"] floating enable; border none
+for_window [class="krunner"] floating enable; border none
+for_window [class="Kmix"] floating enable; border none
+for_window [class="Klipper"] floating enable; border none
+for_window [class="Plasmoidviewer"] floating enable; border none
+
+
+
diff --git a/.config/i3/config~ b/.config/i3/config~
new file mode 100644
index 0000000..bca8cdb
--- /dev/null
+++ b/.config/i3/config~
@@ -0,0 +1,214 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod1
+
+set_from_resource $bright i3wm.color2 #ff0000
+#set_from_resource $bg i3wm.color7 #ff0000
+set_from_resource $light i3wm.color4 #ff0000
+set_from_resource $fg i3wm.color4 #ff0000
+set_from_resource $bg i3wm.color3 #ff0000
+
+set $bg-color #000000
+set $inactive-bg-color #2f343f
+set $text-color #FFFFFF
+set $inactive-text-color #676E7D
+set $urgent-bg-color #E53935
+set $bordercolor #c5cbd6
+set $bg-highlight #556177
+
+# window border background text indicator
+client.focused $bg $bg-color $text-color $fg $fg
+client.unfocused $light $inactive-bg-color $inactive-text-color $light $light
+client.focused_inactive $light $inactive-bg-color $inactive-text-color $light $light
+client.urgent $strong $urgent-bg-color $text-color $strong $strong
+
+# resize gaps
+mode "borders" {
+
+ # ijkl keys
+ bindsym i gaps inner all plus 5
+ bindsym k gaps inner all minus 5
+ bindsym l gaps outer all plus 5
+ bindsym j gaps outer all minus 5
+
+ # custom profiles 1,2,3,4
+ bindsym 1 gaps inner all set 0; gaps outer all set 0
+ bindsym 2 gaps inner all set 5; gaps outer all set 0
+ bindsym 3 gaps inner all set 5; gaps outer all set 5
+ bindsym 4 gaps inner all set 10; gaps outer all set 0
+ bindsym 5 gaps inner all set 10; gaps outer all set 5
+ bindsym 6 gaps inner all set 30; gaps outer all set 15
+ bindsym 7 gaps inner all set 60; gaps outer all set 30
+
+ # enter : back, escape : reset
+ bindsym Return mode "default"
+ bindsym Escape mode "default"; gaps inner all set 10; gaps outer all set 5
+}
+
+# window border size
+new_window pixel 2
+new_float pixel 2
+
+# default font
+font pango:DejaVu Sans Mono 10
+
+gaps inner 10
+gaps outer 10
+
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+#font pango:monospace 8
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# Before i3 v4.8, we used to recommend this one as the default:
+# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+# The font above is very space-efficient, that is, it looks good, sharp and
+# clear in small sizes. However, its unicode glyph coverage is limited, the old
+# X core fonts rendering does not support right-to-left and this being a bitmap
+# font, it doesn’t scale on retina/hidpi displays.
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+exec_always --no-startup-id ~/.config/compton/launch.sh
+exec_always --no-startup-id ~/.config/polybar/launch.sh
+exec_always --no-startup-id ~/.fehbg &
+
+# start a terminal
+bindsym $mod+Return exec urxvt
+
+# kill focused window
+bindsym $mod+Shift+a kill
+
+# start rofi (a program launcher)
+bindsym $mod+d exec rofi -show run
+
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindsym $mod+j focus left
+bindsym $mod+k focus down
+bindsym $mod+l focus up
+bindsym $mod+m 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+i move up
+bindsym $mod+Shift+l 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+z 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+q focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# switch to workspace
+bindsym $mod+ampersand workspace 1
+bindsym $mod+eacute workspace 2
+bindsym $mod+quotedbl workspace 3
+bindsym $mod+apostrophe workspace 4
+bindsym $mod+parenleft workspace 5
+bindsym $mod+section workspace 6
+bindsym $mod+egrave workspace 7
+bindsym $mod+exclam workspace 8
+bindsym $mod+ccedilla workspace 9
+bindsym $mod+agrave workspace 10
+
+# move focused container to workspace
+bindsym $mod+Shift+ampersand move container to workspace 1
+bindsym $mod+Shift+eacute move container to workspace 2
+bindsym $mod+Shift+quotedbl move container to workspace 3
+bindsym $mod+Shift+apostrophe move container to workspace 4
+bindsym $mod+Shift+5 move container to workspace 5
+bindsym $mod+Shift+section move container to workspace 6
+bindsym $mod+Shift+egrave move container to workspace 7
+bindsym $mod+Shift+exclam move container to workspace 8
+bindsym $mod+Shift+ccedilla move container to workspace 9
+bindsym $mod+Shift+agrave move container to workspace 10
+
+# 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)
+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 m 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
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+# resize borders
+bindsym $mod+b mode "borders"
+
+# Pulse Audio controls
+bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 5%+
+bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 5%-
diff --git a/.config/i3/dmenufm b/.config/i3/dmenufm
new file mode 100755
index 0000000..40d6a02
--- /dev/null
+++ b/.config/i3/dmenufm
@@ -0,0 +1,271 @@
+#!/bin/bash
+
+about="
+### Dmen File Manager #############################################
+# Version 0.1.2 by Scott Garrett #
+###################################################################"
+
+### Changelog #####################################################
+# 0.1.0 # * Initial version #
+# 0.1.1 # + Option 'Open last used dir' #
+# # + Options 'Always open dirs' and 'Always open files' #
+# 0.1.2 # + Config moved to $XDG_CONFIG_HOME #
+# # + Options for dmenu styling #
+# # + Option to change executor #
+# # + Option to open file manager in current directory #
+# # + Plugins support #
+# see repo (github.com/hangtwenty/dmenfm) for changes since 0.1.2 #
+###################################################################
+
+function defaults {
+ show_hidden=0
+ show_backup=0
+ always_open_files=0
+ always_open_dirs=0
+ open_last=1
+ dmenu_caseinsens=1
+ dmenu_onbottom=1
+ dmenu_bg='#000000'
+ dmenu_fg='#9999CC'
+ dmenu_sbg='#000066'
+ dmenu_sfg='#FFFFFF'
+ executor='xdg-open'
+ editor='vim'
+ filemanager='dolphin'
+}
+
+function saveconfig {
+ echo "show_hidden=$show_hidden
+show_backup=$show_backup
+always_open_dirs=$always_open_dirs
+always_open_files=$always_open_files
+open_last=$open_last
+dmenu_caseinsens=$dmenu_caseinsens
+dmenu_onbottom=$dmenu_onbottom
+dmenu_bg='$dmenu_bg'
+dmenu_fg='$dmenu_fg'
+dmenu_sbg='$dmenu_sbg'
+dmenu_sfg='$dmenu_sfg'
+editor=\"$editor\"
+executor='xdg'
+filemanager=\"$filemanager\"
+last_dir=\"$(pwd)\"
+" > "$config"
+}
+
+function setmenu {
+ menu="$menu $([ "$dmenu_caseinsens" == '1' ] && echo '-i') $([ "$dmenu_onbottom" == '1' ] && echo '-b') -nb $dmenu_bg -nf $dmenu_fg -sb $dmenu_sbg -sf $dmenu_sfg"
+}
+
+if [ -z "$XDG_CONFIG_HOME" ]; then
+ xdg_config_home="$HOME/.config"
+else
+ xdg_config_home=$XDG_CONFIG_HOME
+fi
+
+file=1
+config_file="preferences"
+config_dir="$xdg_config_home/dmenfm"
+config="$config_dir/$config_file"
+plugins_dir="$config_dir/plugins"
+menu='rofi -dmenu'
+
+[ ! -d "$config_dir" ] && mkdir "$config_dir"
+[ ! -d "$plugins_dir" ] && mkdir "$plugins_dir"
+[ ! -d "$plugins_dir/browser" ] && mkdir "$plugins_dir/browser"
+[ ! -d "$plugins_dir/operations" ] && mkdir "$plugins_dir/operations"
+[ ! -d "$plugins_dir/preferences" ] && mkdir "$plugins_dir/preferences"
+[ -e "$HOME/.dmanfs" ] && mv "$HOME/.dmanfs" "$config"
+
+defaults
+touch "$config"
+source "$config"
+setmenu
+[[ "$last_dir" && "$open_last" == 1 ]] && cd "$last_dir"
+
+while [ "$file" ]; do
+ file=$((echo -e '..\n.'; ls $([[ "$show_hidden" == '1' ]] && echo '-A') $([[ "$show_backup" == '1' ]] && echo '-B'); echo -e "[Preferences]\n[Open in $filemanager]"; ls -B "$plugins_dir/browser") | $menu -p "$(basename $(pwd))")
+ if [ "$file" ]; then
+ if [ -e "$file" ]; then
+ if $([ -d "$file" ] && [[ "$always_open_dirs" != '1' && "$file" != "." && "$file" != ".." ]]) || $([ -f "$file" ] && [[ "$always_open_files" != '1' ]]); then
+ owd=$(pwd)
+ opt=$((echo 'Open'; ([ -f "$file" ] && echo 'Edit'); echo -e 'Copy\nMove\nRename\nDelete'; ls -B "$plugins_dir/operations") | $menu -p "<$file>")
+ else
+ opt='Open'
+ fi
+ case "$opt" in
+ 'Open')
+ if [ -d "$file" ]; then
+ cd "$file"
+ else
+ if [ "$executor" ] && which "$executor" &> /dev/null; then
+ exec "$executor" "$owd/$file" &
+ unset file
+ elif which exo-open &> /dev/null; then
+ exo-open "$owd/$file"
+ unset file
+ elif gnome-open &> /dev/null; then
+ gnome-open "$owd/$file"
+ unset file
+ else
+ xmessage 'No executor found. Set one in [Preferences].'
+ fi
+ fi
+ ;;
+ 'Edit')
+ if [ "$editor" ] && which "$editor" &> /dev/null; then
+ exec "$editor" "$owd/$file" &
+ unset file
+ elif which geany &> /dev/null; then
+ exec geany "$owd/$file"
+ unset file
+ elif which gedit &> /dev/null; then
+ exec gedit "$owd/$file"
+ unset file
+ elif which kwrite &> /dev/null; then
+ exec kwrite "$owd/$file"
+ unset file
+ else
+ xmessage 'No editor found. Set one in [Preferences].'
+ fi
+ ;;
+ 'Copy')
+ cdir=1
+ while [ "$cdir" ]; do
+ cdir=$((echo -e '..\n.'; ls $([[ "$show_hidden" == 1 ]] && echo "-A") $([[ "$show_backup" == 1 ]] && echo "-B") -d */) | $menu -p "Copy <$file> to:")
+ if [[ "$cdir" ]]; then
+ opt=$(echo -e 'Open\nCopy' | $menu -p "Copy <$file> to <$cdir>:")
+ if [[ "$opt" == "Open" ]]; then
+ cd "$cdir"
+ elif [[ "$opt" == "Copy" ]]; then
+ echo "$file"
+ [ -e "$cdir/$file" ] && opt=$(echo -e "No\nYes" | $menu -p "Replace existing <$file>?")
+ [[ "$opt" == "Copy" || "$opt" == "Yes" ]] && cp -af "$owd/$file" "$cdir/$file"
+ unset cdir
+ fi
+ fi
+ done
+ ;;
+ 'Move')
+ cdir=1
+ while [ "$cdir" ]; do
+ cdir=$((echo -e '..\n.' && ls $([[ "$show_hidden" == 1 ]] && echo "-A") $([[ "$show_backup" == 1 ]] && echo "-B") -d */) | $menu -p "Move <$file> to:")
+ if [[ "$cdir" ]]; then
+ opt=$(echo -e 'Open\nMove' | $menu -p "Move <$file> to <$cdir>:")
+ if [[ "$opt" == "Open" ]]; then
+ cd "$cdir"
+ elif [[ "$opt" == "Move" ]]; then
+ echo "$file"
+ [ -e "$cdir/$file" ] && opt=$(echo -e "No\nYes" | $menu -p "Replace existing <$file>?")
+ [[ "$opt" == "Move" || "$opt" == "Yes" ]] && mv -f "$owd/$file" "$cdir/$file"
+ unset cdir
+ fi
+ fi
+ done
+ ;;
+ 'Rename')
+ opt=$(echo "" | $menu -p "Rename <$file> to:")
+ [ "$opt" ] && mv -f "$file" "$opt"
+ ;;
+ 'Delete')
+ opt=$(echo -e "No\nYes" | $menu -p "Really delete <$file>?")
+ [[ "$opt" == "Yes" ]] && rm -rf "$file"
+ ;;
+ *) [ "$opt" ] && [ -e "$plugins_dir/operations/$opt" ] && source "$plugins_dir/operations/$opt" ;;
+ esac
+ elif [[ "$file" =~ '[Open in' ]]; then
+ which "$filemanager" &> /dev/null && exec "$filemanager" . &
+ unset file
+ elif [[ "$file" == '[Preferences]' ]]; then
+ opt=1
+ while [ "$opt" ]; do
+ opt=$((echo "[$show_hidden] Show hidden files
+[$show_backup] Show backup files
+[$always_open_dirs] Always open dirs
+[$always_open_files] Always open files
+[$open_last] Open last used dir
+[$dmenu_caseinsens] Case-insensitive
+[$dmenu_onbottom] Display on bottom
+[$dmenu_bg] Background
+[$dmenu_fg] Foreground
+[$dmenu_sbg] Selected background
+[$dmenu_sfg] Selected foreground
+[$executor] Executor
+[$editor] Editor
+[$filemanager] File manager
+Set defaults
+About"; ls -B "$plugins_dir/preferences") | $menu -p "Preferences")
+ case "$opt" in
+ *'hidden files') (('show_hidden=!show_hidden')) ;;
+ *'backup dirs') (('show_backup=!show_backup')) ;;
+ *'open dirs') (('always_open_dirs=!always_open_dirs')) ;;
+ *'open files') (('always_open_files=!always_open_files')) ;;
+ *'used dir') (('open_last=!open_last')) ;;
+ *'insensitive') (('dmenu_caseinsens=!dmenu_caseinsens')) ;;
+ *'on bottom') (('dmenu_onbottom=!dmenu_onbottom')) ;;
+ *'Background')
+ opt=$(echo -e "$dmenu_bg\n[Default]" | $menu -p "Background:")
+ [[ "$opt" == '[Default]' ]] && opt='000000'
+ [ "$opt" ] && dmenu_bg="$opt"
+ dmenu_test=1
+ ;;
+ *'Foreground')
+ opt=$(echo -e "$dmenu_fg\n[Default]" | $menu -p "Foreground:")
+ [[ "$opt" == '[Default]' ]] && opt='9999CC'
+ [ "$opt" ] && dmenu_fg="$opt"
+ dmenu_test=1
+ ;;
+ *'Selected background')
+ opt=$(echo -e "$dmenu_bg\n[Default]" | $menu -p "Selected background:")
+ [[ "$opt" == '[Default]' ]] && opt='000066'
+ [ "$opt" ] && dmenu_sbg="$opt"
+ dmenu_test=1
+ ;;
+ *'Selected foreground')
+ opt=$(echo -e "$dmenu_bg\n[Default]" | $menu -p "Selected foreground:")
+ [[ "$opt" == '[Default]' ]] && opt='FFFFFF'
+ [ "$opt" ] && dmenu_sfg="$opt"
+ dmenu_test=1
+ ;;
+ *'Executor')
+ opt=$(echo -e "$executor\n[Default]" | $menu -p "Executor:")
+ [[ "$opt" == '[Default]' ]] && opt='exo'
+ [ "$opt" ] && editor="$opt"
+ ;;
+ *'Editor')
+ opt=$(echo -e "$editor\n[Default]" | $menu -p "Editor:")
+ [[ "$opt" == '[Default]' ]] && opt='geany'
+ [ "$opt" ] && editor="$opt"
+ ;;
+ *'File manager')
+ opt=$(echo -e "$filemanager\n[Default]" | $menu -p "File manager:")
+ [[ "$opt" == '[Default]' ]] && opt='thunar'
+ [ "$opt" ] && filemanager="$opt"
+ ;;
+ *'defaults')
+ opt=$(echo -e "No\nYes" | $menu -p "Really set defaults?")
+ [[ "$opt" == "Yes" ]] && defaults
+ ;;
+ 'About') xmessage -maxWidth 80 -maxHeight 80 "$about" ;;
+ *)
+ [ "$opt" ] && [ -e "$plugins_dir/preferences/$opt" ] && source "$plugins_dir/preferences/$opt"
+ ;;
+ esac
+ done
+ menu="$menu $([ "$dmenu_caseinsens" == '1' ] && echo '-i') $([ "$dmenu_onbottom" == '1' ] && echo '-b') -nb $dmenu_bg -nf $dmenu_fg -sb $dmenu_sbg -sf $dmenu_sfg"
+ if [[ "$dmenu_test" == '1' ]]; then
+ if [[ "OK" != "$(echo 'OK' | $menu -p 'Dmenu settings changed.')" ]]; then
+ defaults
+ source "$config"
+ setmenu
+ echo 'OK' | $menu -p 'Error in Dmenu settings. Reverted.'
+ fi
+ fi
+ saveconfig
+ elif [ -e "$plugins_dir/browser/$file" ]; then
+ source "$plugins_dir/browser/$file"
+ fi
+ fi
+done
+
+saveconfig
diff --git a/.config/i3/exit.sh b/.config/i3/exit.sh
new file mode 100755
index 0000000..39c88af
--- /dev/null
+++ b/.config/i3/exit.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+ANSWER=$(echo -e "suspend\nlock\nlogout\nshutdown\nreboot" | rofi -dmenu)
+
+case $ANSWER in
+ "suspend") systemctl suspend;;
+ "lock") xset s activate;;
+ "logout") i3-msg exit;;
+ "shutdown") shutdown now;;
+ "reboot") reboot;;
+esac
diff --git a/.config/i3/factorio.sh b/.config/i3/factorio.sh
new file mode 100755
index 0000000..b8a3d13
--- /dev/null
+++ b/.config/i3/factorio.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+PACKPATH="$HOME/Games/Factorio/Modpacks/"
+INSTANCE=$(ls $PACKPATH | rofi -dmenu -i)
+
+echo $INSTANCE
+
+if test -n "$INSTANCE"; then
+ cd $(<"${PACKPATH}${INSTANCE}/pack.conf") && padsp ./factorio --mod-directory ${PACKPATH}${INSTANCE}/ &
+fi
diff --git a/.config/i3/factorio.sh! b/.config/i3/factorio.sh!
new file mode 100644
index 0000000..52248a8
--- /dev/null
+++ b/.config/i3/factorio.sh!
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+INSTANCE=$(ls ~/Documents/Games/Factorio/Modpacks/ | rofi -dmenu -i)
+
+echo $INSTANCE
+
+if test -n "$INSTANCE"; then
+ $(<"${INSTANCE}/pack.conf") --mod-directory $INSTANCE
+fi
diff --git a/.config/i3/mmc.sh b/.config/i3/mmc.sh
new file mode 100755
index 0000000..3b08ce3
--- /dev/null
+++ b/.config/i3/mmc.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+INSTANCE=$(ls ~/.local/share/multimc/instances/ | rofi -dmenu -i)
+
+echo $INSTANCE
+
+if test -n "$INSTANCE"; then
+ multimc -l $INSTANCE
+fi
diff --git a/.config/i3/monitor-rotate.sh b/.config/i3/monitor-rotate.sh
new file mode 100755
index 0000000..cba3e65
--- /dev/null
+++ b/.config/i3/monitor-rotate.sh
@@ -0,0 +1,141 @@
+#!/bin/bash
+# Auto rotate screen based on device orientation
+
+# Screen orientation and launcher location is set based upon accelerometer position
+# This script should be added to startup applications for the user
+
+if [ -n "${DEBUG+set}" ]; then echo debug on; DEBUG=1; fi
+
+### configuration
+# find your Touchscreen and Touchpad device with `xinput`
+TouchscreenDevice='ELAN Touchscreen'
+TouchpadDevice='SynPS/2 Synaptics TouchPad'
+KeyboardDevice='AT Translated Set 2 keyboard'
+
+### arguments
+if [ "$1" == '-nosd' ]; then NOSD="true" ; fi
+
+### functions
+rotatescreen() {
+ # Contributors: Ruben Barkow: https://gist.github.com/rubo77/daa262e0229f6e398766
+
+ touchpadEnabled=$(xinput --list-props "$TouchpadDevice" | awk '/Device Enabled/{print $NF}')
+ screenMatrix=$(xinput --list-props "$TouchscreenDevice" | awk '/Coordinate Transformation Matrix/{print $5$6$7$8$9$10$11$12$NF}')
+
+ # Matrix for rotation
+ # ⎡ 1 0 0 ⎤
+ # ⎜ 0 1 0 ⎥
+ # ⎣ 0 0 1 ⎦
+ normal='1 0 0 0 1 0 0 0 1'
+ normal_float='1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000'
+
+ #⎡ -1 0 1 ⎤
+ #⎜ 0 -1 1 ⎥
+ #⎣ 0 0 1 ⎦
+ inverted='-1 0 1 0 -1 1 0 0 1'
+ inverted_float='-1.000000,0.000000,1.000000,0.000000,-1.000000,1.000000,0.000000,0.000000,1.000000'
+
+ # 90° to the left
+ # ⎡ 0 -1 1 ⎤
+ # ⎜ 1 0 0 ⎥
+ # ⎣ 0 0 1 ⎦
+ left='0 -1 1 1 0 0 0 0 1'
+ left_float='0.000000,-1.000000,1.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000'
+
+ # 90° to the right
+ #⎡ 0 1 0 ⎤
+ #⎜ -1 0 1 ⎥
+ #⎣ 0 0 1 ⎦
+ right='0 1 0 -1 0 1 0 0 1'
+
+ if [ "$1" == "-u" ]; then
+ echo "Upside down"
+ xrandr -o inverted
+ xinput set-prop "$TouchscreenDevice" 'Coordinate Transformation Matrix' $inverted
+ xinput disable "$TouchpadDevice"
+ xinput disable "$KeyboardDevice"
+ # if onboard isn't running and NOSD != true, start it
+ if [[ "$NOSD" != "true" ]]; then
+ [[ `pgrep onboard` ]] || onboard 2>/dev/null &
+ fi
+ elif [ "$1" == "-l" ]; then
+ echo "90° to the left"
+ xrandr -o left
+ xinput set-prop "$TouchscreenDevice" 'Coordinate Transformation Matrix' $left
+ xinput disable "$TouchpadDevice"
+ xinput disable "$KeyboardDevice"
+ if [[ "$NOSD" != "true" ]]; then
+ [[ `pgrep onboard` ]] || onboard 2>/dev/null &
+ fi
+ elif [ "$1" == "-r" ]; then
+ echo "90° right up"
+ xrandr -o right
+ xinput set-prop "$TouchscreenDevice" 'Coordinate Transformation Matrix' $right
+ xinput disable "$TouchpadDevice"
+ xinput disable "$KeyboardDevice"
+ if [[ "$NOSD" != "true" ]]; then
+ [[ `pgrep onboard` ]] || onboard 2>/dev/null &
+ fi
+ elif [ "$1" == "-n" ]; then
+ echo "Back to normal"
+ xrandr -o normal
+ xinput set-prop "$TouchscreenDevice" 'Coordinate Transformation Matrix' $normal
+ xinput enable "$TouchpadDevice"
+ xinput enable "$KeyboardDevice"
+ killall -q onboard
+ fi
+}
+
+### dependencies
+( command -v monitor-sensor >/dev/null 2>&1 ) || { echo >&2 "$0 requires monitor-sensor but it's not installed. Please install iio-sensor-proxy (https://github.com/hadess/iio-sensor-proxy)."; exit 1; }
+( command -v xrandr >/dev/null 2>&1 ) || { echo >&2 "$0 requires xrandr but it's not installed. Aborting."; exit 1; }
+# transparently disable onboard support if it's not installed
+( command -v onboard >/dev/null 2>&1 ) || { echo >&2 "Not using onboard keyboard"; NOSD="true"; }
+
+### main script
+
+# check for running instance exit if exists
+myname=$(basename $0)
+runningPID=$(ps -ef | grep ".*bash.*$myname" | grep -v "grep \| $$" | awk '{print $2}')
+if [[ $runningPID != "" ]] ; then
+ echo $myname is already running with PID $runningPID
+ exit
+fi
+
+killall -q -v monitor-sensor
+
+LOG=/tmp/sensor.log
+mkfifo $LOG
+monitor-sensor > $LOG &
+
+PID=$!
+# kill monitor-sensor and rm log if this script exits
+trap "[ ! -e /proc/$PID ] || kill $PID && rm -v $LOG" SIGHUP SIGINT SIGQUIT SIGTERM SIGPIPE
+LASTORIENT='unset'
+
+echo 'monitoring for screen rotation...'
+while read -r; do
+ line=$(echo "$REPLY" | sed -E '/orient/!d;s/.*orient.*: ([a-z\-]*)\)??/\1/;' )
+ # read a line from the pipe, set var if not whitespace
+ [[ $line == *[^[:space:]]* ]] || continue
+ ORIENT=$line
+ if [[ "$ORIENT" != "$LASTORIENT" ]]; then
+ echo "$LASTORIENT > $ORIENT"
+ LASTORIENT=$ORIENT
+ # Set the actions to be taken for each possible orientation
+ case "$ORIENT" in
+ normal)
+ #rotatescreen -n;;
+ if [ $DEBUG ]; then echo "normal" ;else rotatescreen -n; fi ;;
+ bottom-up)
+ if [ $DEBUG ]; then echo "up" ;else rotatescreen -u; fi ;;
+ #rotatescreen -u;;
+ right-up)
+ if [ $DEBUG ]; then echo "right" ;else rotatescreen -r; fi ;;
+ #rotatescreen -r;;
+ left-up)
+ if [ $DEBUG ]; then echo "left" ;else rotatescreen -l; fi ;;
+ #rotatescreen -l;;
+ esac
+ fi
+done < $LOG
diff --git a/.config/i3/music.sh b/.config/i3/music.sh
new file mode 100755
index 0000000..a0278d0
--- /dev/null
+++ b/.config/i3/music.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+arecord -f dat -D hw:0 | aplay -f dat -D pulse
diff --git a/.config/i3/oneko.sh b/.config/i3/oneko.sh
new file mode 100755
index 0000000..3e6eb9e
--- /dev/null
+++ b/.config/i3/oneko.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env sh
+
+killall oneko
+oneko -tofocus
+
diff --git a/.config/i3/recent_files b/.config/i3/recent_files
new file mode 100644
index 0000000..a8486dc
--- /dev/null
+++ b/.config/i3/recent_files
@@ -0,0 +1,14 @@
+cursus-2018.pdf
+Physics-for-Scintists-Engineers-by-Giancoli-4th-Edition (1).pdf
+Algorithms-4th-Ed-Robert-Sedgewick-Kevin-Wayne-2011 (1).pdf
+report.pdf
+opgave.pdf
+Algorithms-4th-Ed-Robert-Sedgewick-Kevin-Wayne-2011.pdf
+2019Cursus-WiskundeII-3sp.pdf
+Logica.pdf
+bvp.les4.correctheidsbewijzen(1).pdf
+bvp.les8.complexiteit(1).pdf
+cursustekst-bri 2018.pdf
+a.out
+taak3
+bri_taak_2
diff --git a/.config/i3/rofifm.sh b/.config/i3/rofifm.sh
new file mode 100755
index 0000000..80d0d8b
--- /dev/null
+++ b/.config/i3/rofifm.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+RECENT_FILES=~/.config/i3/recent_files
+FILE_MANAGER=dolphin
+TERMINAL="termite -d"
+DMENU="rofi -dmenu -i"
+
+open_file() {
+ sed -i "\:$1:d" $RECENT_FILES
+ echo -e "$1\n$(cat $RECENT_FILES)" > $RECENT_FILES
+ xdg-open "$1"
+}
+
+recent_files() {
+ ITEM=$(cat $RECENT_FILES | sed 's!.*/!!' | $DMENU -format i)
+
+ if [[ -z $ITEM ]]; then
+ return
+ fi
+
+ ITEM=$(($ITEM+1))
+ echo $ITEM
+
+ open_file "$(sed -n "${ITEM}p" < $RECENT_FILES)"
+}
+
+DONE=false
+
+if ! [[ -f $RECENT_FILES ]]; then
+ touch $RECENT_FILES
+fi
+
+cd ~
+
+ITEM=$({ echo "Recent Files"; echo "Open in terminal"; echo "Show in $FILE_MANAGER"; ls; } | $DMENU)
+
+while [ $DONE != true ]; do
+
+ if [[ -z $ITEM ]]; then
+ break
+ fi
+
+ if [[ $ITEM = "Open in terminal" ]]; then
+ $TERMINAL "$PWD"
+ break
+ elif [[ $ITEM = "Show in $FILE_MANAGER" ]]; then
+ $FILE_MANAGER .
+ break
+ elif [[ $ITEM = "Recent Files" ]]; then
+ recent_files
+ break
+ elif [[ -d $ITEM ]]; then
+ cd "$ITEM"
+ continue
+ elif [[ -f $ITEM ]]; then
+ open_file "$ITEM"
+ break
+ fi
+
+ ITEM=$({ echo "Open in terminal"; echo "Show in $FILE_MANAGER"; ls; } | rofi -dmenu -i)
+
+done
+
+
+
diff --git a/.config/i3/rotate.sh b/.config/i3/rotate.sh
new file mode 100755
index 0000000..45fa65d
--- /dev/null
+++ b/.config/i3/rotate.sh
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+LOG=/run/user/$(id -u $USER)/sensor.log
+DNAME=eDP1
+
+function rotate {
+ #echo ---- rotete ----
+ ORIENTATION=$1
+ CUR_ROT=$(xrandr -q --verbose | grep $DNAME | cut -d" " -f6)
+
+ NEW_ROT="normal"
+ CTM="1 0 0 0 1 0 0 0 1"
+
+ # Set the actions to be taken for each possible orientation
+ case "$ORIENTATION" in
+ normal)
+ NEW_ROT="normal"
+ CTM="1 0 0 0 1 0 0 0 1"
+ ;;
+ bottom-up)
+ NEW_ROT="inverted"
+ CTM="-1 0 1 0 -1 1 0 0 1"
+ ;;
+ right-up)
+ NEW_ROT="right"
+ CTM="0 1 0 -1 0 1 0 0 1"
+ ;;
+ left-up)
+ NEW_ROT="left"
+ CTM="0 -1 1 1 0 0 0 0 1"
+ ;;
+ esac
+
+ xrandr -o $NEW_ROT
+ xinput set-prop "Wacom HID 50DB Finger" --type=float "Coordinate Transformation Matrix" $CTM
+
+}
+
+rotate "$1"
+
+# kill old monitor-sensor
+#killall monitor-sensor
+
+# Clear sensor.log so it doesn't get too long over time
+#> $LOG
+
+# Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script
+#monitor-sensor >> $LOG 2>&1 &
+
+# Parse output or monitor sensor to get the new orientation whenever the log file is updated
+# Possibles are: normal, bottom-up, right-up, left-up
+# Light data will be ignored
+#while inotifywait -e modify $LOG; do
+# # Read the last line that was added to the file and get the orientation
+# ORIENTATION=$(tail -n 1 $LOG | grep 'orientation' | grep -oE '[^ ]+$')
+#
+# if [ ! -z $ORIENTATION ] ; then
+# rotate $ORIENTATION
+# fi
+#
+#done
diff --git a/.config/i3/rotate_normal.sh b/.config/i3/rotate_normal.sh
new file mode 100755
index 0000000..607a1bb
--- /dev/null
+++ b/.config/i3/rotate_normal.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+#landscape (normal)
+
+xrandr -o normal
+xinput set-prop "Wacom HID 50DB Finger" --type=float "Coordinate Transformation Matrix" 0 0 0 0 0 0 0 0 0
diff --git a/.config/i3/run.sh b/.config/i3/run.sh
new file mode 100755
index 0000000..978b1f3
--- /dev/null
+++ b/.config/i3/run.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+COMMAND=$(rofi -dmenu -i)
+
+if test -n "$COMMAND"; then
+ termite -e zsh -c "${COMMAND}"
+fi
diff --git a/.config/polybar/.config.un~ b/.config/polybar/.config.un~
new file mode 100644
index 0000000..5ddb084
Binary files /dev/null and b/.config/polybar/.config.un~ differ
diff --git a/.config/polybar/config b/.config/polybar/config
new file mode 100644
index 0000000..cc6f9c0
--- /dev/null
+++ b/.config/polybar/config
@@ -0,0 +1,610 @@
+=====================================================
+;
+; To learn more about how to configure Polybar
+; go to https://github.com/jaagr/polybar
+;
+; The README contains alot of information
+;
+;=====================================================
+
+[colors]
+background = #00
+background-alt = #00
+;foreground = ${xrdb:color3:#222}
+;foreground-alt = ${xrdb:color3:#222}
+;primary = ${xrdb:color1:#222}
+;secondary = ${xrdb:color2:#222}
+foreground = #FFFFFF
+foreground-alt = #FFFFFF
+primary = #FFFFFF
+secondary = #FFFFFF
+alert = ${xrdb:color3:#222}
+
+[bar/bar1]
+width = 100%
+height = 25
+radius = 0
+fixed-center = true
+bottom = false
+monitor=${env:MONITOR:}
+
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+line-size = 2
+line-color = #f00
+
+border-size = 10
+border-color = #00000000
+
+padding-left = 2
+padding-right = 2
+
+module-margin-left = 3
+module-margin-right = 0
+
+font-0 = "Hack":pixelsize=12;1"
+font-1 = unifont:fontformat=truetype:size=12:antialias=false;0
+font-2 = "Wuncon Siji:pixelsize=9;1"
+font-3 = "Font Awesome 5 Free:style=Regular:pixelsize=12;1"
+font-4 = "Font Awesome 5 Free:style=Solid:pixelsize=12;1"
+font-5 = "Font Awesome 5 Brands:pixelsize=12;1"
+
+modules-left = i3 workspaces-xmonad
+modules-center = xwindow
+;weather update installed
+modules-right = temperature xbacklight volume wlan battery date
+
+tray-postion = right
+
+override-redirect = false
+
+cursor-click = pointer
+cursor-scroll = ns-resize
+
+[bar/touchbar]
+width = 100%
+height = 25
+radius = 0
+fixed-center = true
+bottom = true
+monitor=${env:MONITOR:}
+
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+line-size = 2
+line-color = #f00
+
+border-size = 10
+border-color = #00000000
+
+padding-left = 2
+padding-right = 2
+
+module-margin-left = 3
+module-margin-right = 0
+
+font-0 = "Hack":pixelsize=12;1"
+font-1 = unifont:fontformat=truetype:size=12:antialias=false;0
+font-2 = "Wuncon Siji:pixelsize=9;1"
+font-3 = "Font Awesome 5 Free:style=Regular:pixelsize=12;1"
+font-4 = "Font Awesome 5 Free:style=Solid:pixelsize=12;1"
+font-5 = "Font Awesome 5 Brands:pixelsize=12;1"
+
+modules-left = touchvolmute touchvoldown touchvolup touchbrightdown touchbrightup
+modules-center = i3touchmenu
+modules-right = touchrofi touchkeyboard
+override-redirect = false
+enable-ipc = true
+
+
+[module/workspaces-xmonad]
+type = custom/script
+exec = tail -F /tmp/.xmonad-workspace-log
+exec-if = [ -p /tmp/.xmonad-workspace-log ]
+tail = true
+
+[module/title-xmonad]
+type = custom/script
+exec = tail -F /tmp/.xmonad-title-log
+exec-if = [ -p /tmp/.xmonad-title-log ]
+tail = true
+
+[module/touchkeyboard]
+;; Open onscreen keyboard (onboard)
+type=custom/text
+content=" "
+content-foreground=#fff
+click-left=onboard
+
+[module/touchrofi]
+type=custom/text
+content=" "
+content-foreground=#fff
+click-left=rofi -show run
+
+[module/touchbrightdown]
+;; Brightness down
+type=custom/text
+content=" "
+content-foreground=#fff
+click-left=xbacklight -dec 10
+
+[module/touchbrightup]
+;; Brightness up
+type=custom/text
+content=" "
+content-foreground=#fff
+click-left=xbacklight -inc 10
+
+[module/touchvolmute]
+;; Mute
+type=custom/text
+content=" "
+content-foreground=#fff
+click-left=pactl set-sink-mute 0 toggle
+
+[module/touchvoldown]
+;; Volume down
+type=custom/text
+content=" "
+content-foreground=#fff
+click-left=pactl set-sink-mute 0 false && pactl set-sink-volume 0 -5%
+
+[module/touchvolup]
+;; Volume up
+type=custom/text
+content=" "
+content-foreground=#fff
+click-left=pactl set-sink-mute 0 false && pactl set-sink-volume 0 +5%
+
+
+[module/update]
+type = custom/script
+label-foreground = ${colors.foreground-alt}
+
+interval = 30
+format =