# ══════════════════════════════════════════ # HYPRLAND CONFIGURATION — Omarchy-style # ══════════════════════════════════════════ # Keyboard-first. Consistent keybinds. Clean aesthetics. # Super is the main modifier (like omarchy). # ══════════════════════════════════════════ # ── Monitors ───────────────────────────── # Adjust for your setup. "preferred" auto-detects. monitor = , preferred, auto, 1 # ── Autostart ──────────────────────────── exec-once = waybar exec-once = walker --gapplication-service exec-once = mako exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store exec-once = wl-clip-persist --clipboard regular exec-once = nm-applet --indicator exec-once = blueman-applet exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 # ── General ────────────────────────────── general { gaps_in = 4 gaps_out = 8 border_size = 2 # Gruvbox colors col.active_border = rgba(d79921ff) rgba(b8bb26ff) 45deg col.inactive_border = rgba(504945ff) layout = dwindle allow_tearing = false } # ── Decoration ─────────────────────────── decoration { rounding = 8 blur { enabled = true size = 6 passes = 2 new_optimizations = true xray = false } shadow { enabled = true range = 12 render_power = 3 color = rgba(1d2021cc) } } # ── Animations ─────────────────────────── animations { enabled = true bezier = ease, 0.25, 0.1, 0.25, 1 bezier = overshot, 0.05, 0.9, 0.1, 1.1 animation = windows, 1, 4, overshot, slide animation = windowsOut, 1, 4, ease, slide animation = fade, 1, 4, ease animation = workspaces, 1, 4, overshot, slidevert animation = border, 1, 6, ease } # ── Layout ─────────────────────────────── dwindle { pseudotile = true preserve_split = true force_split = 2 } master { new_status = master } # ── Input ──────────────────────────────── input { kb_layout = us kb_options = caps:escape follow_mouse = 1 sensitivity = 0 touchpad { natural_scroll = true tap-to-click = true drag_lock = true } } gestures { workspace_swipe = true workspace_swipe_fingers = 3 } # ── Misc ───────────────────────────────── misc { disable_hyprland_logo = true disable_splash_rendering = true force_default_wallpaper = 0 vfr = true } # ══════════════════════════════════════════ # KEYBINDINGS — Omarchy-inspired # ══════════════════════════════════════════ # Super = main modifier # Super + Return = terminal # Super + Space = app launcher # Super + Shift + Return = browser # Super + Q = close window # Super + K = show all keybinds (via walker) # ══════════════════════════════════════════ $mod = SUPER # ── Core ───────────────────────────────── bind = $mod, Return, exec, alacritty bind = $mod SHIFT, Return, exec, firefox # Change to helium if installed bind = $mod, Space, exec, walker bind = $mod, Q, killactive bind = $mod SHIFT, Q, exit bind = $mod, V, togglefloating bind = $mod, F, fullscreen bind = $mod, P, pseudo # dwindle pseudo-tile bind = $mod, J, togglesplit # dwindle toggle split direction # ── Applications ───────────────────────── bind = $mod, E, exec, nautilus # File manager bind = $mod, B, exec, bitwarden # Password manager bind = $mod SHIFT, S, exec, spotify bind = $mod, C, exec, cursor # Cursor IDE bind = $mod SHIFT, C, exec, code # VS Code (antigravity) # ── Window Focus (vim keys) ────────────── bind = $mod, h, movefocus, l bind = $mod, l, movefocus, r bind = $mod, k, movefocus, u bind = $mod, j, movefocus, d # ── Window Move ────────────────────────── bind = $mod SHIFT, h, movewindow, l bind = $mod SHIFT, l, movewindow, r bind = $mod SHIFT, k, movewindow, u bind = $mod SHIFT, j, movewindow, d # ── Window Resize ──────────────────────── binde = $mod CTRL, h, resizeactive, -40 0 binde = $mod CTRL, l, resizeactive, 40 0 binde = $mod CTRL, k, resizeactive, 0 -40 binde = $mod CTRL, j, resizeactive, 0 40 # ── Workspaces ─────────────────────────── bind = $mod, 1, workspace, 1 bind = $mod, 2, workspace, 2 bind = $mod, 3, workspace, 3 bind = $mod, 4, workspace, 4 bind = $mod, 5, workspace, 5 bind = $mod, 6, workspace, 6 bind = $mod, 7, workspace, 7 bind = $mod, 8, workspace, 8 bind = $mod, 9, workspace, 9 bind = $mod, 0, workspace, 10 # Move window to workspace bind = $mod SHIFT, 1, movetoworkspace, 1 bind = $mod SHIFT, 2, movetoworkspace, 2 bind = $mod SHIFT, 3, movetoworkspace, 3 bind = $mod SHIFT, 4, movetoworkspace, 4 bind = $mod SHIFT, 5, movetoworkspace, 5 bind = $mod SHIFT, 6, movetoworkspace, 6 bind = $mod SHIFT, 7, movetoworkspace, 7 bind = $mod SHIFT, 8, movetoworkspace, 8 bind = $mod SHIFT, 9, movetoworkspace, 9 bind = $mod SHIFT, 0, movetoworkspace, 10 # Workspace navigation bind = $mod, Tab, workspace, e+1 bind = $mod SHIFT, Tab, workspace, e-1 # ── Special Workspace (Scratchpad) ─────── bind = $mod, S, togglespecialworkspace, magic bind = $mod SHIFT, S, movetoworkspace, special:magic # ── Screenshots ────────────────────────── bind = , Print, exec, grim -g "$(slurp)" - | swappy -f - bind = $mod, Print, exec, grim - | swappy -f - # ── Media Keys ─────────────────────────── bindel = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise bindel = , XF86AudioLowerVolume, exec, swayosd-client --output-volume lower bindl = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle bindl = , XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle bindel = , XF86MonBrightnessUp, exec, swayosd-client --brightness raise bindel = , XF86MonBrightnessDown, exec, swayosd-client --brightness lower bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioNext, exec, playerctl next bindl = , XF86AudioPrev, exec, playerctl previous # ── Clipboard History ──────────────────── bind = $mod CTRL, V, exec, cliphist list | walker --dmenu | cliphist decode | wl-copy # ── Lock Screen ────────────────────────── bind = $mod CTRL, L, exec, hyprlock # ── Mouse Bindings ─────────────────────── bindm = $mod, mouse:272, movewindow bindm = $mod, mouse:273, resizewindow # ── Window Rules ───────────────────────── windowrulev2 = float, class:^(pavucontrol)$ windowrulev2 = float, class:^(blueman-manager)$ windowrulev2 = float, class:^(nm-connection-editor)$ windowrulev2 = float, class:^(bitwarden)$ windowrulev2 = float, title:^(Picture-in-Picture)$ windowrulev2 = pin, title:^(Picture-in-Picture)$ # ── Environment Variables ──────────────── env = XCURSOR_SIZE, 24 env = QT_QPA_PLATFORMTHEME, qt5ct env = QT_QPA_PLATFORM, wayland env = GDK_BACKEND, wayland env = SDL_VIDEODRIVER, wayland env = CLUTTER_BACKEND, wayland env = XDG_CURRENT_DESKTOP, Hyprland env = XDG_SESSION_TYPE, wayland env = XDG_SESSION_DESKTOP, Hyprland