{ lib, config, pkgs, flakeRoot, ... }: let colors = { crust = "#11111b"; mantle = "#181825"; base = "#1e1e2e"; surface0 = "#313244"; surface1 = "#45475a"; surface2 = "#585b70"; overlay0 = "#6c7086"; overlay1 = "#7f849c"; overlay2 = "#9399b2"; subtext0 = "#a6adc8"; subtext1 = "#bac2de"; text = "#cdd6f4"; rosewater = "#f5e0dc"; flamingo = "#f2cdcd"; pink = "#f5c2e7"; mauve = "#cba6f7"; red = "#f38ba8"; maroon = "#eba0ac"; peach = "#fab387"; yellow = "#f9e2af"; green = "#a6e3a1"; teal = "#94e2d5"; sapphire = "#74c7ec"; blue = "#89b4fa"; lavender = "#b4befe"; }; username = config.defaultUser or "henrov"; cssContent = '' /* Catppuccin Mocha Palette - auto-generated, do not edit manually */ '' + lib.concatStringsSep "\n" ( lib.mapAttrsToList (name: value: "@define-color ${name} ${value};" ) colors ) + "\n@define-color base-alpha rgba(30, 30, 46, 0.9);"; qmlContent = '' // Catppuccin Mocha Palette - auto-generated, do not edit manually import QtQuick QtObject { readonly property color baseAlpha: Qt.rgba(30/255, 30/255, 46/255, 0.9) '' + lib.concatStringsSep "\n" ( lib.mapAttrsToList (name: value: " readonly property color ${name}: \"${value}\"" ) colors ) + "\n}"; in { home-manager.users.${username} = { home.file = { ".config/shared/colors.css" = { text = cssContent; force = true; }; ".config/quickshell/Colors.qml" = { text = qmlContent; force = true; }; }; }; }