From e8077fde966e051fc449fffcfa061c7f7edc47b0 Mon Sep 17 00:00:00 2001 From: Caroline Larimore Date: Mon, 14 Apr 2025 19:01:38 -0700 Subject: migration: finalize --- modules/home/desktop/components/fcitx5/default.nix | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 modules/home/desktop/components/fcitx5/default.nix (limited to 'modules/home/desktop/components/fcitx5') diff --git a/modules/home/desktop/components/fcitx5/default.nix b/modules/home/desktop/components/fcitx5/default.nix new file mode 100644 index 0000000..0eb0a4c --- /dev/null +++ b/modules/home/desktop/components/fcitx5/default.nix @@ -0,0 +1,82 @@ +{ options, config, osConfig, lib, pkgs, namespace, ... }: + +with lib; with lib.${namespace}; let + cfg = config.${namespace}.desktop.components.fcitx5; + oscfg = osConfig.${namespace}.hardware.keyboard.jp; + desktop = config.${namespace}.desktop; + impermanence = config.${namespace}.impermanence; +in { + options.${namespace}.desktop.components.fcitx5 = with types; { + enable = mkEnableOption "fcitx5 theming"; + }; + + config = mkIf (cfg.enable && oscfg.enable) { + #TODO: investigate generating config files instead of persisting + home.persistence.${impermanence.location} = { + directories = [ + ".config/fcitx" + ".config/fcitx5" + ]; + }; + + xdg.dataFile."fcitx5/themes/nix-theme/theme.conf".source = let + c = desktop.theme.colors; + in (pkgs.formats.ini {}).generate "fcitx5-theme.conf" { + "Metadata" = { + Name = "nix-theme"; + Author = "CartConnoisseur"; + Description = "Theme generated by NixOS"; + Version = 1; + }; + + "InputPanel" = { + NormalColor = "#${c.fg}"; + HighlightColor = "#${c.fg}"; + HighlightBackgroundColor = "#00000000"; + HighlightCandidateColor = "#${c.bg}"; + + FullWidthHighlight = true; + PageButtonAlignment = "Last Candidate"; + }; + + "InputPanel/Background" = { + Color = "#${c.bg}"; + BorderColor = "#${c.fg1}"; + BorderWidth = 2; + }; + + # "InputPanel/Background/Margin" = { + # Left = 10; + # Right = 10; + # Top = 10; + # Bottom = 10; + # }; + + "InputPanel/Highlight" = { + Color = "#${c.fg}"; + BorderWidth = 0; + }; + + "InputPanel/Highlight/Margin" = { + Left = 2; + Right = 2; + Top = 2; + Bottom = 2; + }; + + "InputPanel/ContentMargin" = { + Left = 2; + Right = 2; + Top = 2; + Bottom = 2; + }; + + "InputPanel/TextMargin" = { + Left = 5; + Right = 5; + Top = 5; + Bottom = 5; + }; + }; + }; +} -- cgit v1.2.3