{ lib, pkgs, ... }: { imports = [ (import ./swaylock.nix) (import ./swayidle.nix) ]; xdg.portal = { enable = true; configPackages = [pkgs.hyprland]; extraPortals = [pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk]; }; wayland.windowManager.hyprland = { enable = true; systemd.enable = true; settings = { input = { touchpad = { natural_scroll = true; scroll_factor = 0.5; }; }; gestures = { workspace_swipe = true; workspace_swipe_numbered = true; }; decoration = { rounding = 5; drop_shadow = false; }; bezier = [ "overshot, 0.05, 0.9, 0.1, 1.1" "linear, 0.0, 0.0, 1.0, 1.0" ]; animations = { enabled = true; animation = [ "windows, 1, 1, default, popin" "border, 1, 1, default" "fade, 1, 1, default" "workspaces, 1, 3, overshot" "borderangle,1, 50, linear, loop" ]; }; bind = [ "SUPER, h, movefocus,l" "SUPER, l, movefocus,r" "SUPER, j, layoutmsg,cyclenext" "SUPER, k, layoutmsg,cycleprev" "SUPER, space, layoutmsg,swapwithmaster master" "SUPER, F, fullscreen," "SUPER, V, togglefloating," "SUPER, W, layoutmsg, orientationprev" "SUPER_SHIFT, W, layoutmsg, orientationnext" "SUPER_SHIFT, V, togglegroup," "SUPER_SHIFT, h, changegroupactive,b" "SUPER_SHIFT, h, moveintogroup,l" "SUPER_SHIFT, l, moveintogroup,r" "SUPER_SHIFT, l, changegroupactive,f" "SUPER, Y, togglespecialworkspace" "SUPER_SHIFT, Y, movetoworkspace, special" "SUPER_SHIFT, X, killactive" "SUPER, slash, focuswindow, brave-browser" "SUPER, n, focuswindow, Logseq" "SUPER, R, submap, resize" "SUPER,1,workspace,1" "SUPER,2,workspace,2" "SUPER,3,workspace,3" "SUPER,4,workspace,4" "SUPER,5,workspace,5" "SUPER,6,workspace,6" "SUPER,7,workspace,7" "SUPER,8,workspace,8" "SUPER,9,workspace,9" "SUPER,0,workspace,10" "SUPER,left,workspace,r-1" "SUPER,right,workspace,r+1" "SUPER_SHIFT,1,movetoworkspace,1" "SUPER_SHIFT,2,movetoworkspace,2" "SUPER_SHIFT,3,movetoworkspace,3" "SUPER_SHIFT,4,movetoworkspace,4" "SUPER_SHIFT,5,movetoworkspace,5" "SUPER_SHIFT,6,movetoworkspace,6" "SUPER_SHIFT,7,movetoworkspace,7" "SUPER_SHIFT,8,movetoworkspace,8" "SUPER_SHIFT,9,movetoworkspace,9" "SUPER_SHIFT,0,movetoworkspace,10" ]; bindm = [ "SUPER, mouse:272, movewindow" "SUPER, mouse:273, resizewindow" ]; env = [ "GDK_BACKEND,wayland,x11" "QT_QPA_PLATFORM,wayland;xcb" "SDL_VIDEODRIVER,wayland" "CLUTTER_BACKEND,wayland" "XDG_CURRENT_DESKTOP,Hyprland" "XDG_SESSION_TYPE,wayland" "XDG_SESSION_DESKTOP,Hyprland" "QT_AUTO_SCREEN_SCALE_FACTOR,1" "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" "NIXOS_OZONE_WL,1" "WLR_NO_HARDWARE_CURSORS,1" ]; windowrule = [ "float, title:wlogout" "idleinhibit always, vrmonitor" "idleinhibit focus, steam_app" ]; workspace = [ "11, default:true" ]; general = { gaps_out = 10; resize_on_border = true; layout = "master"; # "col.active_border" = "rgb(FFFF00) rgb(00FFFF) rgb(FF00FF)"; border_size = lib.mkDefault 5; }; master = { mfact = 0.7; new_on_top = true; }; misc = { vrr = 2; focus_on_activate = true; }; }; # https://wiki.hyprland.org/Configuring/Variables/ extraConfig = '' submap = resize binde = ,right,resizeactive,10 0 binde = ,left,resizeactive,-10 0 binde = ,up,resizeactive,0 -10 binde = ,down,resizeactive,0 10 binde = ,k,resizeactive,0 -10 binde = ,j,resizeactive,0 10 binde = ,l,splitratio,0.05 binde = ,h,splitratio,-0.05 binde = SHIFT,l,splitratio,0.3 binde = SHIFT,h,splitratio,-0.3 bind = , escape, submap,reset bind = , enter, submap,reset bind = SUPER, R, submap,reset bind = CONTROL, C, submap,reset submap = reset ''; }; services.mako = { enable = true; }; programs.waybar.settings.mainBar.modules-left = ["hyprland/workspaces" "hyprland/window"]; }