{ lib, config, pkgs, ... }: let inherit (lib) mkEnableOption mkIf; inherit (lib.marleyos) enabled; cfg = config.marleyos.appearance.base; inherit (config.marleyos.theme) colors; inherit (config.marleyos) isDesktop; in { options.marleyos.appearance.base.enable = mkEnableOption "base"; config = mkIf cfg.enable { home.packages = with pkgs; [ # TODO: package font with harfbuzz features. maple-mono-NF dm-sans eb-garamond whatsapp-emoji-font ]; rose-pine.pointerCursor = mkIf colors.isRosePine enabled; marleyos = { theme = { colors = { default = "dark"; dark = { base = "rose-pine"; flavor = "main"; }; light = { base = "rose-pine"; flavor = "dawn"; }; }; icons = { package = pkgs.kora-icon-theme; name = "kora"; }; fonts = { monospace = { package = pkgs.maple-mono-NF; name = "Maple Mono NF"; ligatures = [ "cv02" "ss01" "ss02" "ss03" "ss04" "ss05" ]; }; }; }; apps = { pinentry = if isDesktop then pkgs.pinentry-gtk2 else pkgs.pinentry-curses; }; }; }; }