{ pkgs, inputs, config, lib, ... }: with lib; let cfg = config.universe.de.hyprland; in { options.universe.de.hyprland = { enable = mkEnableOption "hyprland"; }; config = mkIf cfg.enable { wayland.windowManager.hyprland = { enable = true; package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; systemd.variables = ["--all"]; settings = { monitor = [ "DP-1, 3440x1440@100, 1920x0, 1" "HDMI-A-1, 1920x1200@60, 0x0, 1" ]; general = { gaps_in = 15; gaps_out = 40; border_size = 3; resize_on_border = false; allow_tearing = false; layout = "dwindle"; }; decoration = { rounding = 10; active_opacity = 1.0; inactive_opacity = 1.0; dim_inactive = false; dim_strength = 0.2; blur = { enabled = true; size = 3; passes = 4; noise = 0.07; xray = true; brightness = 0.4; popups = false; }; }; dwindle = { pseudotile = false; preserve_split = true; smart_split = false; smart_resizing = false; }; misc = { disable_hyprland_logo = true; }; layerrule = [ "blur, notifications" "ignorezero, notifications" "blur, rofi" "ignorezero, rofi" "animation fade, selection" "animation slide top, anyrun" ]; windowrulev2 = [ "suppressevent maximize, class:.*" "float, class:^(com.saivert.pwvucontrol)$" "size 696 570, class:^(com.saivert.pwvucontrol)$" "move 1654 807, class:^(com.saivert.pwvucontrol)$" "monitor DP-1, class:^(com.saivert.pwvucontrol)$" "opacity 0.9, class:^(com.saivert.pwvucontrol)$" "maximize, class:^(org.telegram.desktop)$,title:^(Media viewer)$" "float, class:^(org.telegram.desktop)$,title:^(Media viewer)$" "float, class:^(nemo)$,title:^.*(Properties)$" "float, class:^(zen-alpha)$,title:^(Library)$" "opacity 0.9, class:^(zen-alpha)$,title:^(Library)$" "opacity 0.9, class:^(Spotify)$" "noblur, class:^()$,title:^()$" "plugin:chromakey,fullscreen:0" "opacity 0.999,fullscreen:0" ]; animations = { enabled = true; # bezier = [ # "myBezier, 0.05, 1, 0.1, 1" # ]; # animation = [ # "windows, 1, 7, myBezier, slide" # "fade, 1, 7, myBezier" # "workspaces, 1, 6, myBezier" # "layers, 1, 6, myBezier, slide bottom" # ]; bezier = [ "easeOutQuint,0.23,1,0.32,1" "aseInOutCubic,0.65,0.05,0.36,1" "linear,0,0,1,1" "almostLinear,0.5,0.5,0.75,1.0" "quick,0.15,0,0.1,1" ]; animation = [ "global, 1, 10, default" "border, 1, 5.39, easeOutQuint" "windows, 1, 4.79, easeOutQuint" "windowsIn, 1, 4.1, easeOutQuint, popin 87%" "windowsOut, 1, 1.49, linear, popin 87%" "fadeIn, 1, 1.73, almostLinear" "fadeOut, 1, 1.46, almostLinear" "fade, 1, 3.03, quick" "layers, 1, 3.81, easeOutQuint" "layersIn, 1, 4, easeOutQuint, fade" "layersOut, 1, 1.5, linear, fade" "fadeLayersIn, 1, 1.79, almostLinear" "fadeLayersOut, 1, 1.39, almostLinear" "workspaces, 1, 1.94, aseInOutCubic" "workspacesIn, 1, 1.21, aseInOutCubic" "workspacesOut, 1, 1.94, aseInOutCubic" ]; }; input = { kb_layout = "us,ru"; kb_options = "grp:caps_toggle"; follow_mouse = 1; sensitivity = 0; }; exec-once = [ "hyprctl setcursor Bibata-Modern-Classic 24" "waybar" "telegram-desktop -startintray" "vesktop" "nm-applet" "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" "hyprpaper" ]; }; }; }; }