diff --git a/home/dot_config/hypr/bind-all.conf b/home/dot_config/hypr/bind-all.conf
new file mode 100644
index 0000000..f22c486
--- /dev/null
+++ b/home/dot_config/hypr/bind-all.conf
@@ -0,0 +1,51 @@
+$mainMod = SUPER
+
+# Keybindings
+bind = $mainMod, return, exec, $terminal
+bind = $mainMod, Q, killactive,
+bind = $mainMod, C, exit,
+bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, V, togglefloating,
+bind = $mainMod, D, exec, $menu
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, J, togglesplit, # dwindle
+bind = $mainMod, L, exec, hyprlock
+bind = $mainMod, F, fullscreen
+
+# Move focus window
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+
+# Switch workspaces
+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
+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
diff --git a/home/dot_config/hypr/bind-framework.conf b/home/dot_config/hypr/bind-framework.conf
new file mode 100644
index 0000000..ec08d7c
--- /dev/null
+++ b/home/dot_config/hypr/bind-framework.conf
@@ -0,0 +1,17 @@
+# Screen brightness controls
+exec-once = light -N 1
+bind = ,XF86MonBrightnessUp, exec, ~/bin/system/backlight-ctl.sh -i
+bind = ,XF86MonBrightnessDown, exec, ~/bin/system/backlight-ctl.sh -d
+
+# Pulse Audio controls
+bind = ,XF86AudioRaiseVolume, exec, amixer set Master 3%+ #increase sound volume
+bind = ,XF86AudioLowerVolume, exec, amixer set Master 3%- #decrease sound volume
+bind = ,XF86AudioMute, exec, amixer set Master toggle # toggle sound
+
+# Media controls
+bind = ,XF86AudioPrev, exec, playerctl previous
+bind = ,XF86AudioPlay, exec, playerctl play-pause
+bind = ,XF86AudioNext, exec, playerctl next
+
+# Lockscreen
+bind = $mainMod, escape, exec, swaylock
\ No newline at end of file
diff --git a/home/dot_config/hypr/env.conf b/home/dot_config/hypr/env.conf
new file mode 100644
index 0000000..5c22d20
--- /dev/null
+++ b/home/dot_config/hypr/env.conf
@@ -0,0 +1,4 @@
+# Programs
+$terminal = alacritty
+$fileManager = dolphin
+$menu = rofi -show combi
diff --git a/home/dot_config/hypr/general.conf b/home/dot_config/hypr/general.conf
new file mode 100644
index 0000000..d1d701e
--- /dev/null
+++ b/home/dot_config/hypr/general.conf
@@ -0,0 +1,43 @@
+general {
+ gaps_in = 5
+ gaps_out = 5
+ border_size = 2
+ col.active_border = rgba(e91e63ee) rgba(ffcdd2ee) 45deg
+ col.inactive_border = rgba(0288d1aa)
+ layout = dwindle
+ allow_tearing = false
+}
+
+decoration {
+ rounding = 5
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+ }
+}
+
+animations {
+ enabled = yes
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+ animation = windows, 1, 3, myBezier
+ animation = windowsOut, 1, 7, default, popin 80%
+ animation = border, 1, 10, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 7, default
+ animation = workspaces, 1, 2, default
+}
+
+dwindle {
+ pseudotile = yes
+ preserve_split = yes
+ force_split = 2
+}
+
+master {
+ orientation = right
+}
+
+gesture = 3, horizontal, workspace
+
diff --git a/home/dot_config/hypr/hyprland.conf b/home/dot_config/hypr/hyprland.conf
new file mode 100644
index 0000000..e675f1e
--- /dev/null
+++ b/home/dot_config/hypr/hyprland.conf
@@ -0,0 +1,40 @@
+monitor=eDP-1,2256x1504@60,auto,1.175
+
+# Enviroment
+source = ~/.config/hypr/env.conf
+
+# Startup programs
+source = ~/.config/hypr/startup-all.conf
+source = ~/.config/hypr/startup-framework.conf
+
+# Default env vars
+env = XCURSOR_SIZE,24
+env = QT_QPA_PLATFORMTHEME,qt5ct
+
+source = ~/.config/hypr/general.conf
+
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+ follow_mouse = 1
+ touchpad {
+ natural_scroll = yes
+ }
+ sensitivity = 0
+}
+
+xwayland {
+ force_zero_scaling = true
+}
+
+misc {
+ force_default_wallpaper = 0
+}
+
+windowrulev2 = suppressevent maximize, class:.*
+
+source = ~/.config/hypr/bind-all.conf
+source = ~/.config/hypr/bind-framework.conf
diff --git a/home/dot_config/hypr/hyprlock.conf b/home/dot_config/hypr/hyprlock.conf
new file mode 100644
index 0000000..df696fb
--- /dev/null
+++ b/home/dot_config/hypr/hyprlock.conf
@@ -0,0 +1,76 @@
+background {
+ monitor =
+ path = $HOME/.cache/blurred_wallpaper.png
+}
+
+input-field {
+ monitor =
+ size = 200, 50
+ outline_thickness = 3
+ dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = true
+ dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
+ outer_color = rgb(151515)
+ inner_color = rgb(FFFFFF)
+ font_color = rgb(10, 10, 10)
+ fade_on_empty = true
+ fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
+ placeholder_text = Input Password... # Text rendered in the input box when it's empty.
+ hide_input = false
+ rounding = -1 # -1 means complete rounding (circle/oval)
+ check_color = rgb(204, 136, 34)
+ fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
+ fail_text = $FAIL ($ATTEMPTS) # can be set to empty
+ fail_transition = 300 # transition time in ms between normal outer_color and fail_color
+ capslock_color = -1
+ numlock_color = -1
+ bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
+ invert_numlock = false # change color if numlock is off
+ swap_font_color = false # see below
+ position = 0, -20
+ halign = center
+ valign = center
+}
+
+label {
+ monitor =
+ #clock
+ text = cmd[update:1000] echo "$TIME"
+ color = rgba(200, 200, 200, 1.0)
+ font_size = 55
+ font_family = Fira Semibold
+ position = -100, 70
+ halign = right
+ valign = bottom
+ shadow_passes = 5
+ shadow_size = 10
+}
+
+label {
+ monitor =
+ text = $USER
+ color = rgba(200, 200, 200, 1.0)
+ font_size = 20
+ font_family = Fira Semibold
+ position = -100, 160
+ halign = right
+ valign = bottom
+ shadow_passes = 5
+ shadow_size = 10
+}
+
+image {
+ monitor =
+ path = $HOME/.cache/square_wallpaper.png
+ size = 280 # lesser side if not 1:1 ratio
+ rounding = -1 # negative values mean circle
+ border_size = 4
+ border_color = rgb(221, 221, 221)
+ rotate = 0 # degrees, counter-clockwise
+ reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
+# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
+ position = 0, 200
+ halign = center
+ valign = center
+}
diff --git a/home/dot_config/hypr/startup-all.conf b/home/dot_config/hypr/startup-all.conf
new file mode 100644
index 0000000..3f5f16b
--- /dev/null
+++ b/home/dot_config/hypr/startup-all.conf
@@ -0,0 +1,6 @@
+# Password manager update
+exec-once = pass git pull
+
+# Start up script
+exec-once = ~/bin/system/system-start.sh
+
diff --git a/home/dot_config/hypr/startup-framework.conf b/home/dot_config/hypr/startup-framework.conf
new file mode 100644
index 0000000..c65df02
--- /dev/null
+++ b/home/dot_config/hypr/startup-framework.conf
@@ -0,0 +1,2 @@
+exec-once = [workspace 1 silent] brave-browser
+exec-once = [workspace 2 silent] $terminal