{ pkgs, ... }: # home-manager profile for darman on terra. The Hyprland config lives in its # own module (./hyprland.nix); this handles the rest of the user session # (theming, terminal, packages). { imports = [ ./home/hyprland.nix ]; home.stateVersion = "26.05"; home.keyboard.layout = "de"; programs.git.enable = true; programs.home-manager.enable = true; # Give darman a managed ~/.zshrc. Without any zsh dotfile, zsh runs its # first-run `zsh-newuser-install` prompt on every new terminal. oh-my-zsh + # powerlevel10k still come from the system /etc/zshrc (common.nix), which # always loads for interactive shells before this ~/.zshrc. programs.zsh.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; xdg.configFile."scripts".source = ../../dotfiles/scripts; 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 pkgs.hyprcursor pkgs.bibata-cursors ]; programs.alacritty = { enable = true; settings = { # NixOS has no /bin/zsh (only /bin/sh); point at the real store path or # alacritty exits instantly trying to exec a missing shell — which looked # like "the SUPER+Return keybind doesn't work". env.SHELL = "${pkgs.zsh}/bin/zsh"; terminal.shell = { program = "${pkgs.zsh}/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 has no literal escape for the ESC control char, so # fromJSON decodes it from the JSON unicode escape below. { key = "Return"; mods = "Shift"; chars = builtins.fromJSON ''"\u001B\r"''; } ]; }; }; }