diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf
new file mode 100644
index 0000000..e4d170d
--- /dev/null
+++ b/.config/btop/btop.conf
@@ -0,0 +1,248 @@
+#? Config file for btop v. 1.3.2
+
+#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
+#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
+color_theme = "/usr/share/btop/themes/tokyo-night.theme"
+
+#* If the theme set background should be shown, set to False if you want terminal background transparency.
+theme_background = False
+
+#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
+truecolor = True
+
+#* Set to true to force tty mode regardless if a real tty has been detected or not.
+#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
+force_tty = False
+
+#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
+#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
+#* Use whitespace " " as separator between different presets.
+#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
+presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
+
+#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
+#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
+vim_keys = False
+
+#* Rounded corners on boxes, is ignored if TTY mode is ON.
+rounded_corners = True
+
+#* Default symbols to use for graph creation, "braille", "block" or "tty".
+#* "braille" offers the highest resolution but might not be included in all fonts.
+#* "block" has half the resolution of braille but uses more common characters.
+#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
+#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
+graph_symbol = "braille"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_cpu = "default"
+
+# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
+graph_symbol_gpu = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_mem = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_net = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_proc = "default"
+
+#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
+shown_boxes = "cpu mem net proc"
+
+#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
+update_ms = 500
+
+#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
+#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
+proc_sorting = "cpu lazy"
+
+#* Reverse sorting order, True or False.
+proc_reversed = False
+
+#* Show processes as a tree.
+proc_tree = False
+
+#* Use the cpu graph colors in the process list.
+proc_colors = True
+
+#* Use a darkening gradient in the process list.
+proc_gradient = False
+
+#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
+proc_per_core = False
+
+#* Show process memory as bytes instead of percent.
+proc_mem_bytes = True
+
+#* Show cpu graph for each process.
+proc_cpu_graphs = True
+
+#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
+proc_info_smaps = False
+
+#* Show proc box on left side of screen instead of right.
+proc_left = False
+
+#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
+proc_filter_kernel = False
+
+#* In tree-view, always accumulate child process resources in the parent process.
+proc_aggregate = False
+
+#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_upper = "Auto"
+
+#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_lower = "Auto"
+
+#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
+show_gpu_info = "Auto"
+
+#* Toggles if the lower CPU graph should be inverted.
+cpu_invert_lower = True
+
+#* Set to True to completely disable the lower CPU graph.
+cpu_single_graph = False
+
+#* Show cpu box at bottom of screen instead of top.
+cpu_bottom = False
+
+#* Shows the system uptime in the CPU box.
+show_uptime = True
+
+#* Show cpu temperature.
+check_temp = True
+
+#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
+cpu_sensor = "Auto"
+
+#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
+show_coretemp = True
+
+#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
+#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
+#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
+#* Example: "4:0 5:1 6:3"
+cpu_core_map = ""
+
+#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
+temp_scale = "celsius"
+
+#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
+base_10_sizes = False
+
+#* Show CPU frequency.
+show_cpu_freq = True
+
+#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
+#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
+clock_format = "%X"
+
+#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
+background_update = True
+
+#* Custom cpu model name, empty string to disable.
+custom_cpu_name = ""
+
+#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
+#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
+disks_filter = ""
+
+#* Show graphs instead of meters for memory values.
+mem_graphs = True
+
+#* Show mem box below net box instead of above.
+mem_below_net = False
+
+#* Count ZFS ARC in cached and available memory.
+zfs_arc_cached = True
+
+#* If swap memory should be shown in memory box.
+show_swap = True
+
+#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
+swap_disk = True
+
+#* If mem box should be split to also show disks info.
+show_disks = True
+
+#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
+only_physical = True
+
+#* Read disks list from /etc/fstab. This also disables only_physical.
+use_fstab = True
+
+#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
+zfs_hide_datasets = False
+
+#* Set to true to show available disk space for privileged users.
+disk_free_priv = False
+
+#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
+show_io_stat = True
+
+#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
+io_mode = False
+
+#* Set to True to show combined read/write io graphs in io mode.
+io_graph_combined = False
+
+#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
+#* Example: "/mnt/media:100 /:20 /boot:1".
+io_graph_speeds = ""
+
+#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
+net_download = 100
+
+net_upload = 100
+
+#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
+net_auto = True
+
+#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
+net_sync = True
+
+#* Starts with the Network Interface specified here.
+net_iface = ""
+
+#* Show battery stats in top right if battery is present.
+show_battery = True
+
+#* Which battery to use if multiple are present. "Auto" for auto detection.
+selected_battery = "Auto"
+
+#* Show power stats of battery next to charge indicator.
+show_battery_watts = True
+
+#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
+#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
+log_level = "WARNING"
+
+#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
+nvml_measure_pcie_speeds = True
+
+#* Horizontally mirror the GPU graph.
+gpu_mirror_graph = True
+
+#* Custom gpu0 model name, empty string to disable.
+custom_gpu_name0 = ""
+
+#* Custom gpu1 model name, empty string to disable.
+custom_gpu_name1 = ""
+
+#* Custom gpu2 model name, empty string to disable.
+custom_gpu_name2 = ""
+
+#* Custom gpu3 model name, empty string to disable.
+custom_gpu_name3 = ""
+
+#* Custom gpu4 model name, empty string to disable.
+custom_gpu_name4 = ""
+
+#* Custom gpu5 model name, empty string to disable.
+custom_gpu_name5 = ""
diff --git a/.config/fastfetch/config.jsonc b/.config/fastfetch/config.jsonc
new file mode 100644
index 0000000..c7a541a
--- /dev/null
+++ b/.config/fastfetch/config.jsonc
@@ -0,0 +1,35 @@
+{
+ "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
+ "modules": [
+ "title",
+ "separator",
+ "os",
+ "host",
+ "kernel",
+ "uptime",
+ "packages",
+ "shell",
+ "display",
+ "de",
+ "wm",
+ "wmtheme",
+ "theme",
+ "icons",
+ "font",
+ "cursor",
+ "terminal",
+ "terminalfont",
+ "cpu",
+ "gpu",
+ "memory",
+ "disk",
+ "localip",
+ "battery",
+ "poweradapter",
+ "locale",
+ "media",
+ "sound",
+ "break",
+ "colors"
+ ]
+}
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
new file mode 100644
index 0000000..d5e8129
--- /dev/null
+++ b/.config/gtk-3.0/settings.ini
@@ -0,0 +1,18 @@
+[Settings]
+gtk-theme-name=Materia-dark
+gtk-icon-theme-name=Adwaita
+gtk-font-name=Cantarell 11
+gtk-cursor-theme-name=default
+gtk-cursor-theme-size=48
+gtk-toolbar-style=GTK_TOOLBAR_ICONS
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=0
+gtk-menu-images=0
+gtk-enable-event-sounds=1
+gtk-enable-input-feedback-sounds=0
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle=hintslight
+gtk-xft-rgba=rgb
+gtk-application-prefer-dark-theme=1
+# gtk-cursor-theme-name=Eevee
diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf
new file mode 100644
index 0000000..a5b4323
--- /dev/null
+++ b/.config/hypr/hypridle.conf
@@ -0,0 +1,22 @@
+#general {
+# lock_cmd = pidof hyprlock || hyprlock
+# before_sleep_cmd = loginctl lock-session
+# after_sleep_cmd = hyprctl dispatch dpms on
+#}
+#
+#listener {
+# timeout = 300
+# on-timeout = loginctl lock-session
+#}
+#
+#
+#listener {
+# timeout = 305
+# on-timeout = hyprctl dispatch dpms off
+# on-resume = hyprctl dispatch dpms on
+#}
+
+listener {
+ timeout = 300
+ on-timeout = systemctl sleep
+}
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..b425398
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,302 @@
+# Tyhis is an example Hyprland config file.
+# Refer to the wiki for more information.
+# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
+
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+
+# You can split this configuration into multiple files
+# Create your files separately and then link them to this file like this:
+# source = ~/.config/hypr/myColors.conf
+
+
+################
+### MONITORS ###
+################
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+monitor=,highres@highrr,auto,auto
+
+# Scalling
+xwayland {
+ force_zero_scaling = true
+}
+env = GDK_SCALE,1
+
+###################
+### MY PROGRAMS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = kitty
+$fileManager = nemo
+$menu = wofi
+$menu_open_cmd = $menu --show drun
+$browser = firefox
+$screenshot = hyprshot
+
+#################
+### AUTOSTART ###
+#################
+
+# Autostart necessary processes (like notifications daemons, status bars, etc.)
+# Or execute your favorite apps at launch like this:
+
+exec-once = $terminal
+# exec-once = waybar & hyprpaper & firefox
+exec-once = nm-applet &
+exec-once = hyprpaper # Wallpaper
+exec-once = mako # Notifications
+exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 # Request root GUI
+exec-once = waybar & # Bar
+exec-once = sunshine & # Remote access
+exec-once = hypridle
+
+exec-once =[workspace 4 silent] youtube-music
+exec-once =[workspace 4 silent] vesktop
+
+
+#############################
+### ENVIRONMENT VARIABLES ###
+#############################
+
+# See https://wiki.hyprland.org/Configuring/Environment-variables/
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,20
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+
+# Refer to https://wiki.hyprland.org/Configuring/Variables/
+
+# https://wiki.hyprland.org/Configuring/Variables/#general
+general {
+ gaps_in = 2
+ gaps_out = 5
+
+ border_size = 3
+
+ # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
+ col.active_border = rgba(de00a399) rgba(05aff799) 45deg
+ col.inactive_border = rgba(595959aa)
+
+
+
+ # Set to true enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = true
+
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+
+ layout = dwindle
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#decoration
+decoration {
+ rounding = 5
+
+ # Change transparency of focused and unfocused windows
+ active_opacity = 1.0
+ inactive_opacity = 0.98
+
+ drop_shadow = true
+ shadow_range = 4
+ shadow_render_power = 3
+ col.shadow = rgba(1a1a1aee)
+
+ # https://wiki.hyprland.org/Configuring/Variables/#blur
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+
+ vibrancy = 0.1696
+ }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#animations
+animations {
+ enabled = true
+
+ # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+
+ animation = windows, 1, 3.5, myBezier
+ animation = windowsOut, 1, 3.5, default, popin 80%
+ animation = border, 1, 5, default
+ animation = borderangle, 1, 5, default
+ animation = fade, 1, 3.5, default
+ animation = workspaces, 1, 3, default
+}
+
+# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+dwindle {
+ pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = true # You probably want this
+}
+
+# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+master {
+ new_status = master
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#misc
+misc {
+ force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
+ disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hyprland.org/Configuring/Variables/#input
+input {
+ kb_layout = ch
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = -0.25 # -1.0 - 1.0, 0 means no modification.
+ accel_profile = flat
+ touchpad {
+ natural_scroll = true
+ scroll_factor = 0.15
+ }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#gestures
+gestures {
+ workspace_swipe = true
+ workspace_swipe_distance = 30
+}
+
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
+device {
+ name = mouse
+ sensitivity = -0.5
+}
+
+
+####################
+### KEYBINDINGSS ###
+####################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod, Q, exec, $terminal
+bind = $mainMod, C, killactive,
+bind = CONTROL_ALT SHIFT, M , exit,
+bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, V, togglefloating,
+bindr = $mainMod, SUPER_L, exec, pkill $menu || $menu_open_cmd
+bind = $mainMod, F, exec, firefox
+# bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, N, togglesplit,
+bind = $mainMod SHIFT, S, exec, $screenshot -m region
+bind = $mainMod SHIFT, C, exec, hyprpicker -a -f hex
+bind = $mainMod, ESCAPE, exec, hyprlock
+bind = , F11, fullscreen, 1
+binde =, XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
+binde =, XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
+bind =, XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
+bind =, XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
+bind =, XF86AudioPlay, exec, playerctl play-pause
+bind =, XF86AudioNext, exec, playerctl next
+bind =, XF86AudioPrev, exec, playerctl previous
+binde =, XF86MonBrightnessUp, exec, brightnessctl set +5%
+binde =, XF86MonBrightnessDown, exec, brightnessctl set 5%-
+bindl =, switch:off:[Lid Switch], exec, hyprctl sleep
+
+#Move focus with mainMod + vim keys
+bind = $mainMod, H, movefocus, l
+bind = $mainMod, J, movefocus, d
+bind = $mainMod, K, movefocus, u
+bind = $mainMod, L, movefocus, r
+
+# Move window with mainMod + Shift + vim keys
+bind = SUPER SHIFT, H, movewindow, l
+bind = SUPER SHIFT, J, movewindow, d
+bind = SUPER SHIFT, K, movewindow, u
+bind = SUPER SHIFT, L, movewindow, r
+
+# Resize window with mainMod + offset vim keys
+binde = $mainMod, U, resizeactive, -10 0
+binde = $mainMod, I, resizeactive, 0 10
+binde = $mainMod, O, resizeactive, 0 -10
+binde = $mainMod, P, resizeactive, 10 0
+
+# Resize window with mainMod + Shift + offset vim keys
+binde = $mainMod SHIFT, U, resizeactive, -50 0
+binde = $mainMod SHIFT, I, resizeactive, 0 50
+binde = $mainMod SHIFT, O, resizeactive, 0 -50
+binde = $mainMod SHIFT, P, resizeactive, 50 0
+
+
+
+# Switch workspaces with mainMod + [0-9]
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+bind = $mainMod, 6, workspace, 6
+bind = $mainMod, 7, workspace, 7
+bind = $mainMod, 8, workspace, 8
+bind = $mainMod, 9, workspace, 9
+bind = $mainMod, 0, workspace, 10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+
+##############################
+### WINDOWS AND WORKSPACES ###
+##############################
+
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrule v1
+# windowrule = float, ^(kitty)$
+
+# Example windowrule v2
+# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
+
+# Windows Rules
+windowrulev2 = bordercolor rgba(de00a3ee) rgba(05aff7ee) 45deg, class:(kitty) # More 'intense' borders for Kitty
+windowrulev2 = noborder on, title:.*- YouTube.*
+
+# Include NVidia stuff
+# UNCOMMENT THIS WHEN RUNNNING AN NVIDIA CARD.
+# source = ~/.config/hypr/nvidia.hyprland.conf
diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..0cfd246
--- /dev/null
+++ b/.config/hypr/hyprlock.conf
@@ -0,0 +1,132 @@
+general {
+ ignore_empty_input = true
+}
+
+background {
+ monitor =
+ path = ~/Pictures/wallpapers/purple_bg.png
+ color = rgb(000000)
+}
+
+input-field {
+ monitor =
+ size = 250, 50
+ outline_thickness = 3
+ dots_size = 0.25
+ dots_spacing = 0.3
+ dots_center = true
+ dots_rounding = -1
+ outer_color = rgba(CC0A9F00)
+ inner_color = rgba(24262B66)
+ font_color = rgb(CCCCFF)
+ font_family = 0xProto Nerd Font
+ fade_on_empty = false
+ fade_timeout = 1000
+ placeholder_text = Input Password...
+ hide_input = false
+ rounding = -1
+ check_color = rgb(20413634)
+ fail_color = rgb(2043434)
+ fail_text = $FAIL ($ATTEMPTS)
+ fail_timeout = 2000
+ fail_transition = 300
+ capslock_color = -1
+ numlock_color = -1
+ bothlock_color = -1
+ invert_numlock = false
+ swap_font_color = false
+
+ position = 0, -170
+ halign = center
+ valign = center
+}
+https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
+
+label {
+ monitor =
+ text = Hi $USER~
+ text_align = center
+ color = rgb(CCCCFF)
+ font_size = 50
+ font_family = 0xProto Nerd Font
+ rotate = 0
+
+ position = 0, 50
+ halign = center
+ valign = center
+}
+
+label {
+ monitor =
+ # text = cmd[update:1000] echo "$(LC_TIME=en_US.UTF-8 date +"It's %H:%M on a %A.")"
+ text = cmd[update:1000] echo "$(LC_TIME=en_US.UTF-8 date +"It's %H:%M on a %A $(date +%H | awk '{if ($1 < 5) print "night"; else if ($1 < 12) print "morning"; else if ($1 < 17) print "afternoon"; else if ($1 < 22) print "evening"; else print "night"}').")"
+
+ text_align = center
+ color = rgb(CCCCFF)
+ font_size = 25
+ font_family = 0xProto Nerd Font
+ rotate = 0
+
+ position = 0, -60
+ halign = center
+ valign = center
+}
+
+label {
+ monitor =
+ text = cmd[update:10000] echo " $(uname -sr)"
+ text_align = center
+ color = rgb(CCCCFF)
+ font_size = 25
+ font_family = 0xProto Nerd Font
+ rotate = 0
+
+ position = 0, 10
+ halign = center
+ valign = bottom
+}
+
+label {
+ monitor =
+ text = cmd[update:10000] echo "$(LC_TIME=en_US.UTF-8 date +" %a, %d.%m.%Y")"
+ text_align = center
+ color = rgb(CCCCFF)
+ font_size = 25
+ fant_family = 0xProto Nerd Font
+ rotate = 0
+
+ position = -10, 10
+ halign = right
+ valign = bottom
+}
+
+label {
+ monitor =
+ text = cmd[update:500] playerctl status | grep -q 'Playing' && title=$(playerctl metadata title) && artist=$(playerctl metadata artist) && combined="${title} - ${artist}" && echo " $(echo "$combined" | awk '{if(length > 30) print substr($0, 1, 27) "..." ; else print $0}') " || echo " No music is playing."
+
+ text_align = center
+ color = rgb(CCCCFF)
+ font_size = 25
+ font_family = 0xProto Nerd Font
+ rotate = 0
+
+ position = 10, 10
+ halign = left
+ valign = bottom
+}
+
+label {
+ monitor =
+ text = cmd[update:2000] echo "$(cat /sys/class/power_supply/BAT0/capacity | awk '{ if ($1 >= 90) icon=" "; else if ($1 >= 70) icon=" "; else if ($1 >= 50) icon=" "; else if ($1 >= 10) icon=" "; else icon=" ";} END {print $1 "% " icon (system("grep -q Charging /sys/class/power_supply/BAT0/status") == 0 ? "" : "")""}')"
+
+
+ text_align = center
+ color = rgb(CCCCFF)
+ font_size = 25
+ font_family = 0xProto Nerd Font
+ rotate = 0
+
+ position = -10, -10
+ halign = right
+ valign = top
+}
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
new file mode 100644
index 0000000..a3a05df
--- /dev/null
+++ b/.config/hypr/hyprpaper.conf
@@ -0,0 +1,2 @@
+preload = /home/melody/Pictures/wallpapers/Beneath+a+Dual+Sky+-+1080p.jpg
+wallpaper = ,/home/melody/Pictures/wallpapers/Beneath+a+Dual+Sky+-+1080p.jpg
diff --git a/.config/hypr/nvidia.hyprland.conf b/.config/hypr/nvidia.hyprland.conf
new file mode 100644
index 0000000..98c15d1
--- /dev/null
+++ b/.config/hypr/nvidia.hyprland.conf
@@ -0,0 +1,14 @@
+# NVidia Stuff..
+windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
+
+
+env = LIBVA_DRIVER_NAME,nvidia
+env = XDG_SESSION_TYPE,wayland
+env = GBM_BACKEND,nvidia-drm
+env = __GLX_VENDOR_LIBRARY_NAME,nvidia
+
+cursor {
+ no_hardware_cursors = true
+}
+
+env = NVD_BACKEND,direct
diff --git a/.zshrc b/.zshrc
new file mode 100644
index 0000000..80a7790
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1,50 @@
+
+# The following lines were added by compinstall
+
+zstyle ':completion:*' completer _complete _ignored _approximate
+zstyle :compinstall filename '/home/melody/.zshrc'
+
+autoload -Uz compinit
+compinit
+# End of lines added by compinstall
+# Lines configured by zsh-newuser-install
+HISTFILE=~/.histfile
+HISTSIZE=1000
+SAVEHIST=1000
+# End of lines configured by zsh-newuser-install
+#
+# ~/.bashrc
+#
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+
+
+bindkey "^A" vi-beginning-of-line
+bindkey "^E" vi-end-of-line
+bindkey "^[[3~" delete-char
+
+
+export EDITOR=nvim
+
+## Aliases
+alias fucking='sudo'
+alias ssh='kitten ssh'
+alias l='ls --color=auto'
+alias ll='ls -lha --color=auto'
+alias ls='ls --color=auto'
+alias grep='grep --color=auto'
+alias open='xdg-open'
+alias ff='fastfetch --config examples/16'
+alias hf='hyfetch'
+alias publicip='curl --silent ifconfig.me || echo "No connection"'
+alias vpn-up='wg-quick up ~/Documents/vpn.config.conf && printf "VPN connected. \nNew public IP: $(curl --silent ifconfig.me)" || echo "Was not able to connect to VPN."'
+alias vpn-reup='wg-quick up ~/Documents/vpn.config.conf && printf "VPN connected. \nNew public IP: $(curl --silent ifconfig.me)" || (echo "VPN is already active. Reconnecting..." && wg-quick down ~/Documents/vpn.config.conf && wg-quick up ~/Documents/vpn.config.conf && printf "VPN reconnected. \nNew public IP: $(curl --silent ifconfig.me)" || echo "Was not able to connect to VPN.")'
+alias vpn-down='wg-quick down ~/Documents/vpn.config.conf && printf "VPN disconnected. \nNew public IP: $(curl --silent ifconfig.me)"'
+alias vpn-status='sudo wg show'
+alias update-grub='sudo grub-mkconfig -o /boot/grub/grub.cfg'
+alias sync-mirrors='sudo systemctl restart reflector.service && cat /etc/pacman.d/mirrorlist'
+alias dotfiles='/usr/bin/git --git-dir=$HOME/dotfiles/ --work-tree=$HOME'
+
+tty | grep -q 'tty' && Hyprland || fastfetch --config examples/16 ; eval "$(starship init zsh)"
diff --git a/Pictures/wallpapers/Beneath+a+Dual+Sky+-+1080p.jpg b/Pictures/wallpapers/Beneath+a+Dual+Sky+-+1080p.jpg
new file mode 100644
index 0000000..ab7c69e
Binary files /dev/null and b/Pictures/wallpapers/Beneath+a+Dual+Sky+-+1080p.jpg differ
diff --git a/Pictures/wallpapers/purple_bg.png b/Pictures/wallpapers/purple_bg.png
new file mode 100644
index 0000000..168ce51
Binary files /dev/null and b/Pictures/wallpapers/purple_bg.png differ