{ config, lib, pkgs, hyprland, wayland, split-monitor-workspaces, ... }: { home.file.hyprland-catppuccino = let flavour = "frappe"; in { enable = true; target = ".config/hypr/catppuccino.conf"; text = builtins.readFile (pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "hyprland"; rev = "99a88fd21fac270bd999d4a26cf0f4a4222c58be"; sha256 = "sha256-07B5QmQmsUKYf38oWU3+2C6KO4JvinuTwmW1Pfk8CT8="; } + /themes/${flavour}.conf); }; wayland.windowManager.hyprland = { enable = true; systemd.enable = true; package = hyprland.packages.${pkgs.system}.hyprland; plugins = [ split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces ]; settings = { source = [ "~/.config/hypr/monitors.conf" "~/.config/hypr/catppuccino.conf" ]; input = { kb_layout = "de"; kb_options = "caps:swapescape"; follow_mouse = 1; touchpad = { natural_scroll = false; }; sensitivity = 0; }; general = { gaps_in = 15; gaps_out = 15; border_size = 1; resize_on_border = true; "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; "col.inactive_border" = "rgba(595959aa)"; layout = "master"; }; misc = { vfr = true; vrr = 1; animate_manual_resizes = true; }; decoration = { rounding = 10; drop_shadow = true; shadow_range = 4; shadow_render_power = 3; "col.shadow" = "rgba(1a1a1aee)"; blur = { enabled = true; }; }; animations = { enabled = true; bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; animation = [ "windows, 1, 7, myBezier" "windowsOut, 1, 7, default, popin 80%" "border, 1, 10, default" "borderangle, 1, 8, default" "fade, 1, 7, default" "workspaces, 1, 6, default" ]; }; dwindle = { pseudotile = false; preserve_split = true; force_split = 0; default_split_ratio = 1.5; }; master = { new_is_master = false; orientation = "center"; always_center_master = true; mfact = 0.5; special_scale_factor = 0.8; }; gestures = { workspace_swipe = false; }; "$lockscreen" = "${pkgs.swaylock-effects}/bin/swaylock"; "$mainMod" = "SUPER"; bind = [ "$mainMod, Q, exec, ${pkgs.kitty}/bin/kitty" "$mainMod, C, killactive," #"$mainMod, M, exit," "$mainMod, M, exec, ${pkgs.wlogout}/bin/wlogout" "$mainMod, E, exec, dolphin" "$mainMod, V, togglefloating," "$mainMod, R, exec, ${pkgs.fuzzel}/bin/fuzzel" #"$mainMod, R, exec, ${pkgs.tofi}/bin/tofi-drun" "$mainMod, P, pseudo," # dwindle "$mainMod, J, togglesplit," # dwindle "$mainMod, T, togglegroup," "$mainMod, A, layoutmsg, swapwithmaster master" "$mainMod, I, layoutmsg, orientationcenter" "$mainMod, H, layoutmsg, orientationleft" "$mainMod, L, layoutmsg, orientationright" # Screenshots #"SHIFT, PRINT, exec, hyprshot -m region" '' SHIFT, PRINT, exec, ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -'' "$mainMod SHIFT, L, exec, $lockscreen" # Move focus "$mainMod, left, movefocus, l" "$mainMod, right, movefocus, r" "$mainMod, up, movefocus, u" "$mainMod, down, movefocus, d" # Move windows inside a workspace "$mainMod SHIFT, a, movewindoworgroup, l" "$mainMod SHIFT, d, movewindoworgroup, r" #Handle tabbed windows "$mainMod, tab, changegroupactive," "$mainMod SHIFT, T, lockactivegroup, toggle" # Switch workspaces "$mainMod, 1, split-workspace, 1" "$mainMod, 2, split-workspace, 2" "$mainMod, 3, split-workspace, 3" "$mainMod, 4, split-workspace, 4" "$mainMod, 5, split-workspace, 5" "$mainMod, 6, split-workspace, 6" "$mainMod, 7, split-workspace, 7" "$mainMod, 8, split-workspace, 8" "$mainMod, 9, split-workspace, 9" # Move windows to workspaces "$mainMod SHIFT, 1, split-movetoworkspace, 1" "$mainMod SHIFT, 2, split-movetoworkspace, 2" "$mainMod SHIFT, 3, split-movetoworkspace, 3" "$mainMod SHIFT, 4, split-movetoworkspace, 4" "$mainMod SHIFT, 5, split-movetoworkspace, 5" "$mainMod SHIFT, 6, split-movetoworkspace, 6" "$mainMod SHIFT, 7, split-movetoworkspace, 7" "$mainMod SHIFT, 8, split-movetoworkspace, 8" "$mainMod SHIFT, 9, split-movetoworkspace, 9" "$mainMod SHIFT, ß, split-movetoworkspace, special" # Scroll through workspaces "$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_up, workspace, e-1" # Special workspace "SHIFT ALT, RETURN, togglespecialworkspace" ]; # Mouse bindings # 274: Middle mouse button # 275: left near # 276: left far # 277: right near # 278: right far bindm = [ "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" ]; windowrulev2 = [ "tile,class:(pharo)" ]; # Autostart exec-once = [ "[workspace special] ${pkgs.kitty}/bin/kitty" "sleep 1; hyprctl dispatch layoutmsg orientationleft; hyprctl dispatch togglespecialworkspace" "hyprpaper" ]; }; }; }