diff --git a/hyprland/.config/hypr/config.d/03-keybinds.conf b/hyprland/.config/hypr/config.d/03-keybinds.conf
index ad9c8d42..5b798d15 100644
--- a/hyprland/.config/hypr/config.d/03-keybinds.conf
+++ b/hyprland/.config/hypr/config.d/03-keybinds.conf
@@ -79,6 +79,19 @@ bind = $mainMod SHIFT, MINUS, movetoworkspace, 11
 bind = $mainMod, Period, workspace, e+1
 bind = $mainMod, Comma, workspace, e-1
 
-# Resize
+# Move windows around
 bindm = $mainMod, mouse:272, movewindow
+
+# Resize mouse binding and submap
 bindm = $mainMod, mouse:273, resizewindow
+bind = $mainMod SHIFT, R, submap, resize
+submap = resize
+$resizeFactor = 50
+bind = , l, resizeactive, $resizeFactor 0
+bind = , h, resizeactive, -$resizeFactor 0
+bind = , k, resizeactive, 0 -$resizeFactor
+bind = , j, resizeactive, 0 $resizeFactor
+bind = , Return, submap, reset
+bind = , Escape, submap, reset
+bind = $mainMod SHIFT, R, submap, reset
+submap = reset
diff --git a/hyprland/.config/waybar/config b/hyprland/.config/waybar/config
index 9e175186..c50d7a1c 100644
--- a/hyprland/.config/waybar/config
+++ b/hyprland/.config/waybar/config
@@ -6,7 +6,7 @@
 	"margin-top": 16,
 	"margin-left": 16,
 	"margin-right": 16,
-	"modules-left": ["hyprland/workspaces", "hyprland/window", "sway/mode"],
+	"modules-left": ["hyprland/workspaces", "hyprland/window", "hyprland/submap", "sway/mode"],
 	"modules-right": ["tray"],
 	"hyprland/workspaces": {
 		"all-outputs": false,
@@ -21,6 +21,9 @@
 		"separate-outputs": true,
 		"format": "{}"
 	},
+	"hyprland/submap": {
+		"on-click": "hyprctl dispatch submap reset"
+	},
 	"tray": {
 		"icon-size": 16,
 		"spacing": 10
diff --git a/hyprland/.config/waybar/style.css b/hyprland/.config/waybar/style.css
index cd455f87..5aa65155 100644
--- a/hyprland/.config/waybar/style.css
+++ b/hyprland/.config/waybar/style.css
@@ -89,6 +89,16 @@ window#waybar.fullscreen #window {
 	color: rgba(40, 40, 40, 0.8);
 	background: #d3869b;
 }
+/* Submap display */
+#submap {
+	color: rgba(235, 219, 178, 0.4);
+	padding: 0 1em;
+	border-radius: 8px;
+}
+#submap.resize {
+	color: rgba(40, 40, 40, 0.8);
+	background: #d3869b;
+}
 
 /* widgets */
 #pulseaudio {