{ pkgs, ... }: # home-manager profile for darman on terra. System-level Hyprland enable # (session entry, portals) lives in ../../services/desktop/desktop-hyprland.nix; this # manages the user's own hyprland.conf + session packages. { home.stateVersion = "26.05"; wayland.windowManager.hyprland = { enable = true; # Starter config — replace with your real dotfiles. settings = { monitor = [ ",preferred,auto,1" ]; "$mod" = "SUPER"; bind = [ "$mod, Return, exec, alacritty" "$mod, Q, killactive" "$mod, D, exec, wofi --show drun" ]; }; }; programs.git.enable = true; programs.home-manager.enable = true; # ---- Dracula theming (GTK + Qt) ---- gtk = { enable = true; theme = { name = "Dracula"; package = pkgs.dracula-theme; }; }; # dracula-qt5-theme ships only a qt5ct color scheme (no style plugin), so # Qt has to go through qt(5|6)ct rather than a direct style/platformTheme # name. "qtct" pulls in both qt5ct and qt6ct; qt6ct reads its own config # but understands the same scheme file format, so both point at it. qt = { enable = true; platformTheme.name = "qtct"; }; xdg.configFile."qt5ct/qt5ct.conf".text = '' [Appearance] color_scheme_path=${pkgs.dracula-qt5-theme}/share/qt5ct/colors/Dracula.conf custom_palette=true style=Fusion ''; xdg.configFile."qt6ct/qt6ct.conf".text = '' [Appearance] color_scheme_path=${pkgs.dracula-qt5-theme}/share/qt5ct/colors/Dracula.conf custom_palette=true style=Fusion ''; # Custom mime-info defs (sln/slnx). xdg.mime's update-mime-database only # indexes share/mime/packages inside the hm profile itself, so this has to # be a package in home.packages, not a plain xdg.dataFile. xdg.mime.enable = true; xdg.configFile."quickshell".source = ../../dotfiles/quickshell; home.packages = [ (pkgs.writeTextDir "share/mime/packages/application-x-ms-sln.xml" (builtins.readFile ../../dotfiles/mime/application-x-ms-sln.xml)) pkgs.claude-code pkgs.quickshell pkgs.opencode ]; programs.alacritty = { enable = true; settings = { env.SHELL = "/bin/zsh"; terminal.shell = { program = "/bin/zsh"; args = [ "-l" ]; }; window = { padding = { x = 10; y = 10; }; opacity = 0.8; }; font.normal = { family = "DepartureMono Nerd Font"; style = "Regular"; }; colors.primary = { background = "#222831"; foreground = "#ffd369"; }; hints.enabled = [ { hyperlinks = true; regex = "(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\s{-}\\^⟨⟩`]+"; command = "xdg-open"; mouse.enabled = true; } ]; keyboard.bindings = [ # ESC + CR: nix strings have no \u escape, so fromJSON (which # supports \u001B) is used to get the literal control chars here. { key = "Return"; mods = "Shift"; chars = builtins.fromJSON ''"\u001B\r"''; } ]; }; }; }