diff --git a/dots/.config/hypr/custom/env.conf b/dots/.config/hypr/custom/env.conf
index fcd59ec86..3215877be 100644
--- a/dots/.config/hypr/custom/env.conf
+++ b/dots/.config/hypr/custom/env.conf
@@ -1,2 +1,10 @@
# You can put extra environment variables here
# https://wiki.hyprland.org/Configuring/Environment-variables/
+
+# ######### Input method ##########
+# See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
+#env = QT_IM_MODULE, fcitx
+#env = XMODIFIERS, @im=fcitx
+#env = SDL_IM_MODULE, fcitx
+#env = GLFW_IM_MODULE, ibus
+#env = INPUT_METHOD, fcitx
diff --git a/dots/.config/hypr/custom/execs.conf b/dots/.config/hypr/custom/execs.conf
index cae4ef6c5..66bb2b8b5 100644
--- a/dots/.config/hypr/custom/execs.conf
+++ b/dots/.config/hypr/custom/execs.conf
@@ -1,2 +1,6 @@
# You can make apps auto-start here
# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing
+
+# Input method
+# exec-once = fcitx5
+
diff --git a/dots/.config/hypr/hyprland/env.conf b/dots/.config/hypr/hyprland/env.conf
index bd45f9f7e..acc363cc6 100644
--- a/dots/.config/hypr/hyprland/env.conf
+++ b/dots/.config/hypr/hyprland/env.conf
@@ -1,11 +1,3 @@
-# ######### Input method ##########
-# See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
-#env = QT_IM_MODULE, fcitx
-#env = XMODIFIERS, @im=fcitx
-#env = SDL_IM_MODULE, fcitx
-#env = GLFW_IM_MODULE, ibus
-#env = INPUT_METHOD, fcitx
-
# ############ Wayland #############
env = ELECTRON_OZONE_PLATFORM_HINT,auto
diff --git a/dots/.config/hypr/hyprland/execs.conf b/dots/.config/hypr/hyprland/execs.conf
index bb5dd7225..2cad1308e 100644
--- a/dots/.config/hypr/hyprland/execs.conf
+++ b/dots/.config/hypr/hyprland/execs.conf
@@ -3,9 +3,6 @@ exec-once = ~/.config/hypr/hyprland/scripts/start_geoclue_agent.sh
exec-once = qs -c $qsConfig &
exec-once = ~/.config/hypr/custom/scripts/__restore_video_wallpaper.sh
-# Input method
-# exec-once = fcitx5
-
# Core components (authentication, lock screen, notification daemon)
exec-once = gnome-keyring-daemon --start --components=secrets
exec-once = hypridle
diff --git a/dots/.config/hypr/hyprland/keybinds.conf b/dots/.config/hypr/hyprland/keybinds.conf
index 020fe582d..6032ab65a 100644
--- a/dots/.config/hypr/hyprland/keybinds.conf
+++ b/dots/.config/hypr/hyprland/keybinds.conf
@@ -4,27 +4,27 @@
#!
##! Shell
# These absolutely need to be on top, or they won't work consistently
-bindid = Super, Super_L, Toggle overview, global, quickshell:overviewToggleRelease # Toggle overview/launcher
-bindid = Super, Super_R, Toggle overview, global, quickshell:overviewToggleRelease # [hidden] Toggle overview/launcher
+bindid = Super, Super_L, Toggle search, global, quickshell:searchToggleRelease # Toggle search
+bindid = Super, Super_R, Toggle search, global, quickshell:searchToggleRelease # [hidden] Toggle search
bind = Super, Super_L, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback)
bind = Super, Super_R, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback)
-binditn = Super, catchall, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Ctrl, Super_L, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Ctrl, Super_R, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Super, mouse:272, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Super, mouse:273, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Super, mouse:274, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Super, mouse:275, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Super, mouse:276, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Super, mouse:277, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Super, mouse_up, global, quickshell:overviewToggleReleaseInterrupt # [hidden]
-bind = Super, mouse_down,global, quickshell:overviewToggleReleaseInterrupt # [hidden]
+binditn = Super, catchall, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Ctrl, Super_L, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Ctrl, Super_R, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Super, mouse:272, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Super, mouse:273, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Super, mouse:274, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Super, mouse:275, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Super, mouse:276, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Super, mouse:277, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Super, mouse_up, global, quickshell:searchToggleReleaseInterrupt # [hidden]
+bind = Super, mouse_down,global, quickshell:searchToggleReleaseInterrupt # [hidden]
bindit = ,Super_L, global, quickshell:workspaceNumber # [hidden]
bindit = ,Super_R, global, quickshell:workspaceNumber # [hidden]
+bind = Super, Tab, global, quickshell:overviewWorkspacesToggle # Toggle overview
bindd = Super, V, Clipboard history >> clipboard, global, quickshell:overviewClipboardToggle # Clipboard history >> clipboard
bindd = Super, Period, Emoji >> clipboard, global, quickshell:overviewEmojiToggle # Emoji >> clipboard
-bind = Super, Tab, global, quickshell:overviewWorkspacesToggle # [hidden] Toggle overview/launcher (alt)
bind = Super, A, global, quickshell:sidebarLeftToggle # Toggle left sidebar
bind = Super+Alt, A, global, quickshell:sidebarLeftToggleDetach # [hidden]
bind = Super, B, global, quickshell:sidebarLeftToggle # [hidden]
@@ -218,8 +218,8 @@ submap = global
#!
# Testing
-bind = Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification with body image" "This notification should contain your user account image and Discord icon. Oh and here is a random image in your Pictures folder:
" -a "Hyprland keybind" -p -h "string:image-path:/var/lib/AccountsService/icons/$USER" -t 6000 -i "discord" -A "openImage=Open profile image" -A "action2=Open the random image" -A "action3=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"' # [hidden]
-bind = Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification" "This notification should contain a random image in your Pictures folder and Discord icon.\nFlick right to dismiss!" -a "Discord (fake)" -p -h "string:image-path:$RANDOM_IMAGE" -t 6000 -i "discord" -A "openImage=Open profile image" -A "action2=Useless button" -A "action3=Cry more"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"' # [hidden]
+bind = Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification with body image" "This notification should contain your user account image and Discord icon. Oh and here is a random image in your Pictures folder:
" -a "Hyprland keybind" -p -h "string:image-path:/var/lib/AccountsService/icons/$USER" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Open the random image" -A "action3=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"' # [hidden]
+bind = Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification" "This notification should contain a random image in your Pictures folder and Discord icon.\nFlick right to dismiss!" -a "Discord (fake)" -p -h "string:image-path:$RANDOM_IMAGE" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"' # [hidden]
bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden]
##! Session
diff --git a/dots/.config/hypr/hyprland/rules.conf b/dots/.config/hypr/hyprland/rules.conf
index 17a4d5af9..cfb1e3f7b 100644
--- a/dots/.config/hypr/hyprland/rules.conf
+++ b/dots/.config/hypr/hyprland/rules.conf
@@ -159,7 +159,9 @@ layerrule = animation slide right, quickshell:sidebarRight
layerrule = animation slide left, quickshell:sidebarLeft
layerrule = animation slide, quickshell:verticalBar
layerrule = animation slide top, quickshell:wallpaperSelector
+layerrule = noanim, quickshell:wNotificationCenter
layerrule = noanim, quickshell:wOnScreenDisplay
+layerrule = noanim, quickshell:wStartMenu
# Launchers need to be FAST
layerrule = noanim, gtk4-layer-shell
diff --git a/dots/.config/quickshell/ii/GlobalStates.qml b/dots/.config/quickshell/ii/GlobalStates.qml
index 972495c64..85a0414d6 100644
--- a/dots/.config/quickshell/ii/GlobalStates.qml
+++ b/dots/.config/quickshell/ii/GlobalStates.qml
@@ -20,6 +20,7 @@ Singleton {
property bool overlayOpen: false
property bool overviewOpen: false
property bool regionSelectorOpen: false
+ property bool searchOpen: false
property bool screenLocked: false
property bool screenLockContainsCharacters: false
property bool screenUnlockFailed: false
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/corporation.svg b/dots/.config/quickshell/ii/assets/icons/fluent/corporation.svg
new file mode 100644
index 000000000..0ed1a0319
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/corporation.svg
@@ -0,0 +1,17 @@
+
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/power-filled.svg b/dots/.config/quickshell/ii/assets/icons/fluent/power-filled.svg
new file mode 100644
index 000000000..2cfa6dba7
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/power-filled.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/power.svg b/dots/.config/quickshell/ii/assets/icons/fluent/power.svg
new file mode 100644
index 000000000..5c28fe986
--- /dev/null
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/power.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/dots/.config/quickshell/ii/assets/icons/fluent/start-here-pressed.svg b/dots/.config/quickshell/ii/assets/icons/fluent/start-here-pressed.svg
index e6b950eca..2efc81c45 100644
--- a/dots/.config/quickshell/ii/assets/icons/fluent/start-here-pressed.svg
+++ b/dots/.config/quickshell/ii/assets/icons/fluent/start-here-pressed.svg
@@ -1,24 +1,120 @@
-