diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
new file mode 100644
index 0000000..71646a9
--- /dev/null
+++ b/.config/alacritty/alacritty.toml
@@ -0,0 +1,92 @@
+ipc_socket = true
+live_config_reload = true
+
+[colors]
+draw_bold_text_with_bright_colors = true
+
+[cursor]
+unfocused_hollow = true
+
+[cursor.style]
+blinking = "On"
+shape = "Block"
+
+[env]
+TERM = "alacritty"
+
+[font]
+builtin_box_drawing = true
+size = 11.0
+
+[font.bold]
+family = "JetBrainsMono Nerd Font Mono"
+style = "Bold"
+
+[font.bold_italic]
+family = "JetBrainsMono Nerd Font Mono"
+style = "Bold Italic"
+
+[font.italic]
+family = "JetBrainsMono Nerd Font Mono"
+style = "Italic"
+
+[font.normal]
+family = "JetBrainsMono Nerd Font Mono"
+style = "Regular"
+
+[font.offset]
+x = 1
+y = 1
+
+[scrolling]
+history = 10000
+
+[selection]
+save_to_clipboard = true
+
+[window]
+decorations = "none"
+decorations_theme_variant = "None"
+dynamic_padding = true
+dynamic_title = true
+opacity = 1
+title = "Alacritty"
+
+[window.class]
+general = "Alacritty"
+instance = "Alacritty"
+
+[window.padding]
+x = 6
+y = 6
+
+# Colors (Alabaster Dark)
+# author tonsky
+
+[colors.primary]
+background = '#1a1b26'
+foreground = '#a9b1d6'
+
+[colors.cursor]
+text = '#0E1415'
+cursor = '#CECECE'
+
+[colors.normal]
+black = '#0E1415'
+red = '#e25d56'
+green = '#73ca50'
+yellow = '#e9bf57'
+blue = '#4a88e4'
+magenta = '#915caf'
+cyan = '#23acdd'
+white = '#f0f0f0'
+
+[colors.bright]
+black = '#777777'
+red = '#f36868'
+green = '#88db3f'
+yellow = '#f0bf7a'
+blue = '#6f8fdb'
+magenta = '#e987e9'
+cyan = '#4ac9e2'
+white = '#FFFFFF'
diff --git a/.config/alacritty/printcolors.sh b/.config/alacritty/printcolors.sh
new file mode 100755
index 0000000..100099f
--- /dev/null
+++ b/.config/alacritty/printcolors.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env sh
+
+printf "|039| \033[39mDefault \033[m |049| \033[49mDefault \033[m |037| \033[37mLight gray \033[m |047| \033[47mLight gray \033[m\n"
+printf "|030| \033[30mBlack \033[m |040| \033[40mBlack \033[m |090| \033[90mDark gray \033[m |100| \033[100mDark gray \033[m\n"
+printf "|031| \033[31mRed \033[m |041| \033[41mRed \033[m |091| \033[91mLight red \033[m |101| \033[101mLight red \033[m\n"
+printf "|032| \033[32mGreen \033[m |042| \033[42mGreen \033[m |092| \033[92mLight green \033[m |102| \033[102mLight green \033[m\n"
+printf "|033| \033[33mYellow \033[m |043| \033[43mYellow \033[m |093| \033[93mLight yellow \033[m |103| \033[103mLight yellow \033[m\n"
+printf "|034| \033[34mBlue \033[m |044| \033[44mBlue \033[m |094| \033[94mLight blue \033[m |104| \033[104mLight blue \033[m\n"
+printf "|035| \033[35mMagenta \033[m |045| \033[45mMagenta \033[m |095| \033[95mLight magenta \033[m |105| \033[105mLight magenta \033[m\n"
+printf "|036| \033[36mCyan \033[m |046| \033[46mCyan \033[m |096| \033[96mLight cyan \033[m |106| \033[106mLight cyan \033[m\n"
diff --git a/.config/fuzzel/fuzzel.ini b/.config/fuzzel/fuzzel.ini
new file mode 100644
index 0000000..a3fdadb
--- /dev/null
+++ b/.config/fuzzel/fuzzel.ini
@@ -0,0 +1,34 @@
+font=Inter:weight=SemiBold:size=11
+dpi-aware=no
+fields=name,generic,comment,categories,filename,keywords
+terminal=alacritty -e
+
+prompt=Search:
+icon-theme=Papirus-Dark
+icons-enabled=yes
+show-actions=yes
+
+lines=10
+width=30
+horizontal-pad=20
+vertical-pad=20
+inner-pad=5
+line-height=20
+letter-spacing=0
+
+image-size-ratio=0.1
+
+layer = top
+exit-on-keyboard-focus-loss = yes
+
+[colors]
+background=1a1b26ff
+text=a9b1d6ff
+match=ff6000ff
+selection=1793d1ff
+selection-text=120024ff
+border=292e42ff
+
+[border]
+width=3
+radius=0
diff --git a/.config/sway/bg.jpg b/.config/sway/bg.jpg
new file mode 100644
index 0000000..7af5244
Binary files /dev/null and b/.config/sway/bg.jpg differ
diff --git a/.config/sway/config b/.config/sway/config
new file mode 100644
index 0000000..6175cf0
--- /dev/null
+++ b/.config/sway/config
@@ -0,0 +1,105 @@
+set $mod Mod4
+set $term alacritty
+set $menu fuzzel
+
+smart_gaps off
+default_border pixel 0
+hide_edge_borders --i3 smart_no_gaps
+
+font pango:JetBrainsMono Nerd Font Mono 11
+
+floating_modifier $mod normal
+
+bindsym $mod+Return exec $term
+bindsym $mod+Shift+q kill
+bindsym $mod+d exec $menu
+bindsym $mod+Shift+n exec swaync-client -t -sw
+bindsym --release Print+Control exec --no-startup-id swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp | grim -g - - | swappy -f -
+bindsym Print exec grim -g "$(slurp)" - | wl-copy
+bindsym $mod+v exec clipman pick --tool=CUSTOM --tool-args="fuzzel -d"
+bindsym $mod+l exec swaylock -ef
+bindsym $mod+Shift+r reload
+bindsym $mod+Shift+e exec swaynag -t warning -m 'Exit?' -B 'Yes, exit sway' 'swaymsg exit'
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus 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+1 workspace number 1
+bindsym $mod+2 workspace number 2
+bindsym $mod+3 workspace number 3
+bindsym $mod+4 workspace number 4
+bindsym $mod+5 workspace number 5
+bindsym $mod+6 workspace number 6
+bindsym $mod+7 workspace number 7
+bindsym $mod+8 workspace number 8
+bindsym $mod+9 workspace number 9
+bindsym $mod+0 workspace number 10
+bindsym $mod+Shift+1 move container to workspace number 1
+bindsym $mod+Shift+2 move container to workspace number 2
+bindsym $mod+Shift+3 move container to workspace number 3
+bindsym $mod+Shift+4 move container to workspace number 4
+bindsym $mod+Shift+5 move container to workspace number 5
+bindsym $mod+Shift+6 move container to workspace number 6
+bindsym $mod+Shift+7 move container to workspace number 7
+bindsym $mod+Shift+8 move container to workspace number 8
+bindsym $mod+Shift+9 move container to workspace number 9
+bindsym $mod+Shift+0 move container to workspace number 10
+bindsym $mod+b splith
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+bindsym $mod+f fullscreen
+bindsym $mod+Shift+space floating toggle
+bindsym $mod+space focus mode_toggle
+bindsym $mod+a focus parent
+bindsym $mod+Shift+minus move scratchpad
+bindsym $mod+minus scratchpad show
+
+mode "resize" {
+ bindsym Left resize shrink width 10px
+ bindsym Down resize grow height 10px
+ bindsym Up resize shrink height 10px
+ bindsym Right resize grow width 10px
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+bindsym --locked XF86AudioRaiseVolume exec volumectl raise
+bindsym --locked XF86AudioLowerVolume exec volumectl lower
+bindsym --locked XF86AudioMute exec volumectl toggle-mute
+bindsym --locked XF86AudioMicMute exec volumectl -m toggle-mute
+bindsym --locked XF86AudioPlay exec playerctl play-pause
+bindsym --locked $mod+Shift+c exec playerctl play-pause
+bindsym --locked XF86AudioNext exec playerctl next
+bindsym --locked $mod+Shift+Next exec playerctl next
+bindsym --locked XF86AudioPrev exec playerctl previous
+bindsym --locked $mod+Shift+Prior exec playerctl previous
+
+exec swaync
+exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+exec wl-paste -t text --watch clipman store --no-persist
+exec systemctl --user set-environment XDG_CURRENT_DESKTOP=sway
+exec systemctl --user import-environment DISPLAY SWAYSOCK WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+exec hash dbus-update-activation-environment 2>/dev/null
+exec dbus-update-activation-environment --systemd DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=sway WAYLAND_DISPLAY
+
+
+exec_always nm-applet --indicator
+
+output HDMI-A-1 mode 1920x1080 pos 0 0
+output DP-1 mode 1920x1080 pos 1920 0
+output * bg ~/.config/sway/bg.jpg fill
+
+bar {
+ swaybar_command waybar
+}
+
+input * {
+ xkb_layout "gb"
+}
+
+include /etc/sway/config.d/*
diff --git a/.config/swaync/config.json b/.config/swaync/config.json
new file mode 100644
index 0000000..662da33
--- /dev/null
+++ b/.config/swaync/config.json
@@ -0,0 +1,78 @@
+{
+ "$schema": "/etc/xdg/swaync/configSchema.json",
+ "positionX": "right",
+ "positionY": "top",
+ "layer": "overlay",
+ "control-center-layer": "top",
+ "layer-shell": true,
+ "cssPriority": "application",
+ "control-center-margin-top": 0,
+ "control-center-margin-bottom": 0,
+ "control-center-margin-right": 0,
+ "control-center-margin-left": 0,
+ "notification-2fa-action": true,
+ "notification-inline-replies": false,
+ "notification-icon-size": 64,
+ "notification-body-image-height": 100,
+ "notification-body-image-width": 200,
+ "timeout": 10,
+ "timeout-low": 5,
+ "timeout-critical": 0,
+ "fit-to-screen": true,
+ "control-center-width": 500,
+ "control-center-height": 600,
+ "notification-window-width": 500,
+ "keyboard-shortcuts": true,
+ "image-visibility": "when-available",
+ "transition-time": 200,
+ "hide-on-clear": false,
+ "hide-on-action": true,
+ "script-fail-notify": true,
+ "scripts": {
+ "example-script": {
+ "exec": "echo 'Do something...'",
+ "urgency": "Normal"
+ },
+ "example-action-script": {
+ "exec": "echo 'Do something actionable!'",
+ "urgency": "Normal",
+ "run-on": "action"
+ }
+ },
+ "notification-visibility": {
+ "example-name": {
+ "state": "muted",
+ "urgency": "Low",
+ "app-name": "Spotify"
+ }
+ },
+ "widgets": [
+ "inhibitors",
+ "title",
+ "dnd",
+ "notifications"
+ ],
+ "widget-config": {
+ "inhibitors": {
+ "text": "Inhibitors",
+ "button-text": "Clear All",
+ "clear-all-button": true
+ },
+ "title": {
+ "text": "Notifications",
+ "clear-all-button": true,
+ "button-text": "Clear All"
+ },
+ "dnd": {
+ "text": "Do Not Disturb"
+ },
+ "label": {
+ "max-lines": 5,
+ "text": "Label Text"
+ },
+ "mpris": {
+ "image-size": 96,
+ "image-radius": 12
+ }
+ }
+}
diff --git a/.config/swaync/style.css b/.config/swaync/style.css
new file mode 100644
index 0000000..fc218b4
--- /dev/null
+++ b/.config/swaync/style.css
@@ -0,0 +1,270 @@
+* {
+ all: unset;
+ font-size: 14px;
+ font-family: "Ubuntu Nerd Font";
+ transition: 200ms;
+}
+
+.floating-notifications.background .notification-row .notification-background {
+ box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244;
+ border-radius: 12.6px;
+ margin: 18px;
+ background-color: #1e1e2e;
+ color: #cdd6f4;
+ padding: 0;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification {
+ padding: 7px;
+ border-radius: 12.6px;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification.critical {
+ box-shadow: inset 0 0 7px 0 #f38ba8;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification .notification-content {
+ margin: 7px;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification .notification-content .summary {
+ color: #cdd6f4;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification .notification-content .time {
+ color: #a6adc8;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification .notification-content .body {
+ color: #cdd6f4;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * {
+ min-height: 3.4em;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action {
+ border-radius: 7px;
+ color: #cdd6f4;
+ background-color: #313244;
+ box-shadow: inset 0 0 0 1px #45475a;
+ margin: 7px;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
+ box-shadow: inset 0 0 0 1px #45475a;
+ background-color: #313244;
+ color: #cdd6f4;
+}
+
+.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
+ box-shadow: inset 0 0 0 1px #45475a;
+ background-color: #74c7ec;
+ color: #cdd6f4;
+}
+
+.floating-notifications.background .notification-row .notification-background .close-button {
+ margin: 7px;
+ padding: 2px;
+ border-radius: 6.3px;
+ color: #1e1e2e;
+ background-color: #f38ba8;
+}
+
+.floating-notifications.background .notification-row .notification-background .close-button:hover {
+ background-color: #eba0ac;
+ color: #1e1e2e;
+}
+
+.floating-notifications.background .notification-row .notification-background .close-button:active {
+ background-color: #f38ba8;
+ color: #1e1e2e;
+}
+
+.control-center {
+ box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244;
+ border-radius: 12.6px;
+ margin: 18px;
+ background-color: #1e1e2e;
+ color: #cdd6f4;
+ padding: 14px;
+}
+
+.control-center .widget-title {
+ color: #cdd6f4;
+ font-size: 1.3em;
+}
+
+.control-center .widget-title button {
+ border-radius: 7px;
+ color: #cdd6f4;
+ background-color: #313244;
+ box-shadow: inset 0 0 0 1px #45475a;
+ padding: 8px;
+}
+
+.control-center .widget-title button:hover {
+ box-shadow: inset 0 0 0 1px #45475a;
+ background-color: #585b70;
+ color: #cdd6f4;
+}
+
+.control-center .widget-title button:active {
+ box-shadow: inset 0 0 0 1px #45475a;
+ background-color: #74c7ec;
+ color: #1e1e2e;
+}
+
+.control-center .notification-row .notification-background {
+ border-radius: 7px;
+ color: #cdd6f4;
+ background-color: #313244;
+ box-shadow: inset 0 0 0 1px #45475a;
+ margin-top: 14px;
+}
+
+.control-center .notification-row .notification-background .notification {
+ padding: 7px;
+ border-radius: 7px;
+}
+
+.control-center .notification-row .notification-background .notification.critical {
+ box-shadow: inset 0 0 7px 0 #f38ba8;
+}
+
+.control-center .notification-row .notification-background .notification .notification-content {
+ margin: 7px;
+}
+
+.control-center .notification-row .notification-background .notification .notification-content .summary {
+ color: #cdd6f4;
+}
+
+.control-center .notification-row .notification-background .notification .notification-content .time {
+ color: #a6adc8;
+}
+
+.control-center .notification-row .notification-background .notification .notification-content .body {
+ color: #cdd6f4;
+}
+
+.control-center .notification-row .notification-background .notification > *:last-child > * {
+ min-height: 3.4em;
+}
+
+.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action {
+ border-radius: 7px;
+ color: #cdd6f4;
+ background-color: #11111b;
+ box-shadow: inset 0 0 0 1px #45475a;
+ margin: 7px;
+}
+
+.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
+ box-shadow: inset 0 0 0 1px #45475a;
+ background-color: #313244;
+ color: #cdd6f4;
+}
+
+.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
+ box-shadow: inset 0 0 0 1px #45475a;
+ background-color: #74c7ec;
+ color: #cdd6f4;
+}
+
+.control-center .notification-row .notification-background .close-button {
+ margin: 7px;
+ padding: 2px;
+ border-radius: 6.3px;
+ color: #1e1e2e;
+ background-color: #eba0ac;
+}
+
+.control-center .notification-row .notification-background .close-button:hover {
+ background-color: #f38ba8;
+ color: #1e1e2e;
+}
+
+.control-center .notification-row .notification-background .close-button:active {
+ background-color: #f38ba8;
+ color: #1e1e2e;
+}
+
+.control-center .notification-row .notification-background:hover {
+ box-shadow: inset 0 0 0 1px #45475a;
+ background-color: #7f849c;
+ color: #cdd6f4;
+}
+
+.control-center .notification-row .notification-background:active {
+ box-shadow: inset 0 0 0 1px #45475a;
+ background-color: #74c7ec;
+ color: #cdd6f4;
+}
+
+progressbar,
+progress,
+trough {
+ border-radius: 12.6px;
+}
+
+progressbar {
+ box-shadow: inset 0 0 0 1px #45475a;
+}
+
+.notification.critical progress {
+ background-color: #f38ba8;
+}
+
+.notification.low progress,
+.notification.normal progress {
+ background-color: #89b4fa;
+}
+
+trough {
+ background-color: #313244;
+}
+
+.control-center trough {
+ background-color: #45475a;
+}
+
+.control-center-dnd {
+ margin-top: 5px;
+ border-radius: 8px;
+ background: #313244;
+ border: 1px solid #45475a;
+ box-shadow: none;
+}
+
+.control-center-dnd:checked {
+ background: #313244;
+}
+
+.control-center-dnd slider {
+ background: #45475a;
+ border-radius: 8px;
+}
+
+.widget-dnd {
+ margin: 0px;
+ font-size: 1.1rem;
+}
+
+.widget-dnd > switch {
+ font-size: initial;
+ border-radius: 8px;
+ background: #313244;
+ border: 1px solid #45475a;
+ box-shadow: none;
+}
+
+.widget-dnd > switch:checked {
+ background: #313244;
+}
+
+.widget-dnd > switch slider {
+ background: #45475a;
+ border-radius: 8px;
+ border: 1px solid #6c7086;
+}
diff --git a/.config/waybar/colors.css b/.config/waybar/colors.css
new file mode 100644
index 0000000..b5cdf69
--- /dev/null
+++ b/.config/waybar/colors.css
@@ -0,0 +1,30 @@
+@define-color background #1e1e2e;
+@define-color foreground #f0f1f5;
+@define-color lighter #0f1417;
+@define-color white-custom #c2c4c3;
+@define-color gentoo #d17dc6;
+@define-color datet #7d69d1;
+@define-color timet #eda57b;
+@define-color charging #a3c725;
+@define-color discharging #e62315;
+@define-color full #5dbd35;
+@define-color red #e53935;
+@define-color pink #d81b60;
+@define-color purple #9F7DCF;
+@define-color deep-purple #5e35b1;
+@define-color indigo #3949ab;
+@define-color blue #5895DC;
+@define-color light-blue #039be5;
+@define-color cyan #00acc1;
+@define-color teal #00897b;
+@define-color green #43a047;
+@define-color light-green #7cb342;
+@define-color lime #c0ca33;
+@define-color yellow #E0A445;
+@define-color amber #DFA445;
+@define-color orange #F57C00;
+@define-color deep-orange #f4511e;
+@define-color brown #6d4c41;
+@define-color gray #757575;
+@define-color blue-gray #546e7a;
+@define-color nix-color #92d4c9;
diff --git a/.config/waybar/config b/.config/waybar/config
new file mode 100644
index 0000000..ca556c3
--- /dev/null
+++ b/.config/waybar/config
@@ -0,0 +1,133 @@
+{
+ "height": 20,
+ "spacing": 10,
+ "modules-left": [
+ "tray",
+ "sway/workspaces",
+ "custom/media"
+ ],
+ "modules-center": [
+ "sway/window"
+ ],
+ "modules-right": [
+ /*"idle_inhibitor",*/
+ /*"custom/weather",*/
+ /*"custom/vpn",*/
+ "network",
+ "pulseaudio",
+ "clock",
+ "clock#date"
+ /*"battery",*/
+ /*"tray"*/
+ ],
+ "sway/mode": {
+ "format": "{}"
+ },
+ "sway/scratchpad": {
+ "format": "{icon} {count}",
+ "show-empty": false,
+ "format-icons": [
+ "",
+ ""
+ ],
+ "tooltip": true,
+ "tooltip-format": "{app}: {title}"
+ },
+ "sway/window": {
+ "on-click": "ags -t datemenu",
+ "tooltip": false
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "tray": {
+ "spacing": 10
+ },
+ "clock": {
+ "tooltip-format": "{:%Y %B}\n{calendar}",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "clock#date": {
+ "format": "{:%d.%m.%Y}",
+ "tooltip-format": "{:%Y %B}\n{calendar}"
+ },
+ "backlight": {
+ "format": "{icon} {percent}%",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "battery": {
+ "states": {
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon} {capacity}%",
+ "format-charging": " {capacity}%",
+ "format-plugged": " {capacity}%",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "on-click": "ags -t quicksettings"
+ },
+ "pulseaudio": {
+ "format": "{icon} {volume}% {format_source}",
+ "format-bluetooth": " {icon} {volume}% {format_source}",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": " {volume}%",
+ "format-source-muted": "",
+ "format-icons": {
+ "default": [
+ "",
+ "",
+ ""
+ ]
+ },
+ "on-click": "pavucontrol"
+ },
+ "custom/weather": {
+ "format": "{}",
+ "interval": 3600,
+ "exec": "curl -s 'https://wttr.in/~41.03508,28.98331?format=1'",
+ "exec-if": "ping wttr.in -c1"
+ },
+ "custom/vpn": {
+ "tooltip": false,
+ "format": "VPN {} ",
+ "exec": "mullvad status | grep -q 'Connected' && echo '' || echo ''",
+ "interval": 5,
+ "on-click": "mullvad connect",
+ "on-click-right": "mullvad disconnect"
+ },
+ "network": {
+ "format-wifi": " {essid} ({signalStrength}%)",
+ "format-ethernet": "⬇{bandwidthDownBytes} ⬆{bandwidthUpBytes}",
+ "interval": 3,
+ "format-linked": "{ifname} (No IP) ",
+ "format": "",
+ "format-disconnected": "",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}",
+ "on-click": "wl-copy $(ip address show up scope global | grep inet | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c5-)",
+ "tooltip-format": " {bandwidthUpBits} {bandwidthDownBits}\n{ifname}\n{ipaddr}/{cidr}\n",
+ "tooltip-format-wifi": " {essid} {frequency}MHz\nStrength: {signaldBm}dBm ({signalStrength}%)\nIP: {ipaddr}/{cidr}\n {bandwidthUpBits} {bandwidthDownBits}",
+ "min-length": 17,
+ "max-length": 40
+ }
+}
diff --git a/.config/waybar/gruvbox.css b/.config/waybar/gruvbox.css
new file mode 100644
index 0000000..af1ed81
--- /dev/null
+++ b/.config/waybar/gruvbox.css
@@ -0,0 +1,14 @@
+/*
+*
+* Gruvbox material hard dark palette
+*
+*/
+
+@define-color background #1d2021;
+@define-color foreground #d4be98;
+
+@define-color blue #7daea3;
+@define-color mauve #d3869b;
+@define-color maroon #d65d0e;
+@define-color yellow #d8a657;
+@define-color lavender #89b482;
diff --git a/.config/waybar/mocha.css b/.config/waybar/mocha.css
new file mode 100644
index 0000000..0eb6a82
--- /dev/null
+++ b/.config/waybar/mocha.css
@@ -0,0 +1,26 @@
+@define-color rosewater #f5e0dc;
+@define-color flamingo #f2cdcd;
+@define-color pink #f5c2e7;
+@define-color mauve #cba6f7;
+@define-color red #f38ba8;
+@define-color maroon #eba0ac;
+@define-color peach #fab387;
+@define-color yellow #f9e2af;
+@define-color green #a6e3a1;
+@define-color teal #94e2d5;
+@define-color sky #89dceb;
+@define-color sapphire #74c7ec;
+@define-color blue #89b4fa;
+@define-color lavender #b4befe;
+@define-color text #cdd6f4;
+@define-color subtext1 #bac2de;
+@define-color subtext0 #a6adc8;
+@define-color overlay2 #9399b2;
+@define-color overlay1 #7f849c;
+@define-color overlay0 #6c7086;
+@define-color surface2 #585b70;
+@define-color surface1 #45475a;
+@define-color surface0 #313244;
+@define-color base #1e1e2e;
+@define-color mantle #181825;
+@define-color crust #11111b;
diff --git a/.config/waybar/oxocarbon.css b/.config/waybar/oxocarbon.css
new file mode 100644
index 0000000..c3b358f
--- /dev/null
+++ b/.config/waybar/oxocarbon.css
@@ -0,0 +1,18 @@
+@define-color background #1e1e2e;
+@define-color foreground #ffffff;
+@define-color lighter #262626;
+
+/* Normal */
+@define-color black #262626;
+@define-color magenta #ff7eb6;
+@define-color green #42be65;
+@define-color yellow #ffe97b;
+@define-color blue #89b4fa;
+@define-color red #ee5396;
+@define-color cyan #3ddbd9;
+@define-color white #dde1e6;
+@define-color orange #ff9e64;
+@define-color purple #c792ea;
+
+/* misc */
+@define-color hover #cdd6f4;
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
new file mode 100644
index 0000000..965c51b
--- /dev/null
+++ b/.config/waybar/style.css
@@ -0,0 +1,118 @@
+/* @import "oxocarbon.css"; */
+/*@import "mocha.css";*/
+@import "gruvbox.css";
+
+* {
+ font-family: "JetBrainsMono Nerd Font"; /* can add "Mono" at the end*/
+ font-size: 15px;
+ min-height: 0;
+ font-weight: bold;
+}
+
+window#waybar {
+ background: transparent;
+ background-color: @background;
+ color: @foreground;
+ transition-property: background-color;
+ transition-duration: 0.1s;
+}
+
+#window {
+ margin: 2;
+ padding-left: 8;
+ padding-right: 8;
+}
+
+button {
+ box-shadow: inset 0 -3px transparent;
+ border: none;
+ border-radius: 0;
+}
+
+button:hover {
+ background: inherit;
+ border-top: 2px solid @hover;
+}
+
+#workspaces button {
+ padding: 0 4px;
+}
+
+#workspaces button.focused {
+ background-color: rgba(0, 0, 0, 0.3);
+ color: @blue;
+ border-top: 2px solid @blue;
+}
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+#pulseaudio,
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#wireplumber,
+#tray,
+#mode,
+#scratchpad {
+ margin: 2px;
+ padding-left: 4px;
+ padding-right: 4px;
+}
+
+#clock {
+ color: @maroon;
+ border-bottom: 2px solid @maroon;
+}
+
+#clock.date {
+ color: @mauve;
+ border-bottom: 2px solid @mauve;
+}
+
+#pulseaudio {
+ color: @blue;
+ border-bottom: 2px solid @blue;
+}
+
+#network {
+ color: @yellow;
+ border-bottom: 2px solid @yellow;
+}
+
+#idle_inhibitor {
+ margin-right: 12px;
+ color: #7cb342;
+}
+
+#idle_inhibitor.activated {
+ color: @red;
+}
+
+#battery.charging,
+#battery.plugged {
+ color: @green;
+ border-bottom: 2px solid @green;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left>widget:first-child>#workspaces {
+ margin-left: 0;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right>widget:last-child>#workspaces {
+ margin-right: 0;
+}
+
+#custom-vpn {
+ color: @lavender;
+ border-radius: 15px;
+ padding-left: 6px;
+ padding-right: 6px;
+}
diff --git a/.stow-local-ignore b/.stow-local-ignore
new file mode 100644
index 0000000..ec6b2c4
--- /dev/null
+++ b/.stow-local-ignore
@@ -0,0 +1,25 @@
+# Comments and blank lines are allowed.
+
+RCS
+.+,v
+
+CVS
+\.\#.+ # CVS conflict files / emacs lock files
+\.cvsignore
+
+\.svn
+_darcs
+\.hg
+
+\.git
+\.gitignore
+.gitmodules
+
+.+~ # emacs backup files
+\#.*\# # emacs autosave files
+
+^/README.*
+^/LICENSE.*
+^/COPYING
+
+.archive
diff --git a/.zshrc b/.zshrc
new file mode 100644
index 0000000..d5772df
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1,100 @@
+# If you come from bash you might have to change your $PATH.
+# export PATH=$HOME/bin:/usr/local/bin:$PATH
+
+# Path to your oh-my-zsh installation.
+export ZSH="$HOME/.oh-my-zsh"
+
+# Set name of the theme to load --- if set to "random", it will
+# load a random theme each time oh-my-zsh is loaded, in which case,
+# to know which specific one was loaded, run: echo $RANDOM_THEME
+# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
+# ZSH_THEME="robbyrussell"
+
+# Set list of themes to pick from when loading at random
+# Setting this variable when ZSH_THEME=random will cause zsh to load
+# a theme from this variable instead of looking in $ZSH/themes/
+# If set to an empty array, this variable will have no effect.
+# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
+
+# Uncomment the following line to use case-sensitive completion.
+# CASE_SENSITIVE="true"
+
+# Uncomment the following line to use hyphen-insensitive completion.
+# Case-sensitive completion must be off. _ and - will be interchangeable.
+# HYPHEN_INSENSITIVE="true"
+
+# Uncomment one of the following lines to change the auto-update behavior
+# zstyle ':omz:update' mode disabled # disable automatic updates
+# zstyle ':omz:update' mode auto # update automatically without asking
+# zstyle ':omz:update' mode reminder # just remind me to update when it's time
+
+# Uncomment the following line to change how often to auto-update (in days).
+# zstyle ':omz:update' frequency 13
+
+# Uncomment the following line if pasting URLs and other text is messed up.
+# DISABLE_MAGIC_FUNCTIONS="true"
+
+# Uncomment the following line to disable colors in ls.
+# DISABLE_LS_COLORS="true"
+
+# Uncomment the following line to disable auto-setting terminal title.
+# DISABLE_AUTO_TITLE="true"
+
+# Uncomment the following line to enable command auto-correction.
+# ENABLE_CORRECTION="true"
+
+# Uncomment the following line to display red dots whilst waiting for completion.
+# You can also set it to another string to have that shown instead of the default red dots.
+# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
+# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
+# COMPLETION_WAITING_DOTS="true"
+
+# Uncomment the following line if you want to disable marking untracked files
+# under VCS as dirty. This makes repository status check for large repositories
+# much, much faster.
+# DISABLE_UNTRACKED_FILES_DIRTY="true"
+
+# Uncomment the following line if you want to change the command execution time
+# stamp shown in the history command output.
+# You can set one of the optional three formats:
+# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
+# or set a custom format using the strftime function format specifications,
+# see 'man strftime' for details.
+# HIST_STAMPS="mm/dd/yyyy"
+
+# Would you like to use another custom folder than $ZSH/custom?
+# ZSH_CUSTOM=/path/to/new-custom-folder
+
+# Which plugins would you like to load?
+# Standard plugins can be found in $ZSH/plugins/
+# Custom plugins may be added to $ZSH_CUSTOM/plugins/
+# Example format: plugins=(rails git textmate ruby lighthouse)
+# Add wisely, as too many plugins slow down shell startup.
+plugins=(git)
+
+source $ZSH/oh-my-zsh.sh
+
+# User configuration
+
+# export MANPATH="/usr/local/man:$MANPATH"
+
+# You may need to manually set your language environment
+# export LANG=en_US.UTF-8
+
+# Preferred editor for local and remote sessions
+# if [[ -n $SSH_CONNECTION ]]; then
+# export EDITOR='vim'
+# else
+# export EDITOR='mvim'
+# fi
+
+# Compilation flags
+# export ARCHFLAGS="-arch x86_64"
+
+# Set personal aliases, overriding those provided by oh-my-zsh libs,
+# plugins, and themes. Aliases can be placed here, though oh-my-zsh
+# users are encouraged to define aliases within the ZSH_CUSTOM folder.
+# For a full list of active aliases, run `alias`.
+#
+# Example aliases
+alias neofetch="fastfetch"