{ pkgs, ... }: { # 启用 Noctalia programs.noctalia-shell = { enable = true; # 可以在这里添加具体的 Noctalia 配置,暂时先用默认的 settings = { # 可以在这里覆盖默认设置,例如: # colors.accent = "#88c0d0"; }; }; # 启用 Hyprland (Lua 模式) wayland.windowManager.hyprland = { enable = true; configType = "lua"; settings = { # ── 基础变量 ────────────────────────────────────────── "$mainMod" = "SUPER"; # ── 基础设置 ────────────────────────────────────────── monitor = ",preferred,auto,1"; env = [ "XCURSOR_SIZE,24" "HYPRCURSOR_SIZE,24" "XDG_CURRENT_DESKTOP,Hyprland" "XDG_SESSION_TYPE,wayland" "XDG_SESSION_DESKTOP,Hyprland" ]; input = { kb_layout = "us"; follow_mouse = 1; touchpad = { natural_scroll = true; }; sensitivity = 0; }; general = { gaps_in = 5; gaps_out = 10; border_size = 2; "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; "col.inactive_border" = "rgba(595959aa)"; layout = "dwindle"; }; decoration = { rounding = 10; blur = { enabled = true; size = 3; passes = 1; }; shadow = { enabled = true; range = 4; render_power = 3; color = "rgba(1a1a1aee)"; }; }; 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" ]; }; # ── 快捷键 (Keybindings) ────────────────────────────── bind = [ "$mainMod, Return, exec, ghostty" "$mainMod, Q, killactive," "$mainMod, B, exec, google-chrome" "$mainMod, M, exit," "$mainMod, E, exec, dolphin" "$mainMod, V, togglefloating," # 使用 Noctalia 的快捷键 "$mainMod, R, exec, noctalia-shell ipc call launcher toggle" "$mainMod, N, exec, noctalia-shell ipc call notifications toggle" "$mainMod, D, exec, noctalia-shell ipc call dashboard toggle" # 聚焦移动 "$mainMod, left, movefocus, l" "$mainMod, right, movefocus, r" "$mainMod, up, movefocus, u" "$mainMod, down, movefocus, d" # 工作区切换 (多桌面核心) "$mainMod, 1, workspace, 1" "$mainMod, 2, workspace, 2" "$mainMod, 3, workspace, 3" "$mainMod, 4, workspace, 4" "$mainMod, 5, workspace, 5" "$mainMod, 6, workspace, 6" "$mainMod, 7, workspace, 7" "$mainMod, 8, workspace, 8" "$mainMod, 9, workspace, 9" "$mainMod, 0, workspace, 10" # 移动窗口到工作区 "$mainMod SHIFT, 1, movetoworkspace, 1" "$mainMod SHIFT, 2, movetoworkspace, 2" "$mainMod SHIFT, 3, movetoworkspace, 3" "$mainMod SHIFT, 4, movetoworkspace, 4" "$mainMod SHIFT, 5, movetoworkspace, 5" "$mainMod SHIFT, 6, movetoworkspace, 6" "$mainMod SHIFT, 7, movetoworkspace, 7" "$mainMod SHIFT, 8, movetoworkspace, 8" "$mainMod SHIFT, 9, movetoworkspace, 9" "$mainMod SHIFT, 0, movetoworkspace, 10" # 鼠标滚动切换工作区 "$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_up, workspace, e-1" ]; bindm = [ "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" ]; # ── 启动项 ──────────────────────────────────────────── exec_once = [ "noctalia-shell" "${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1" ]; }; }; # ── 必备终端 ────────────────────────────────────────────── programs.ghostty = { enable = true; }; home.packages = with pkgs; [ libnotify wl-clipboard ]; }