aboutsummaryrefslogtreecommitdiff
path: root/snowfall/modules/home/desktop/components/fcitx5/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'snowfall/modules/home/desktop/components/fcitx5/default.nix')
-rw-r--r--snowfall/modules/home/desktop/components/fcitx5/default.nix82
1 files changed, 82 insertions, 0 deletions
diff --git a/snowfall/modules/home/desktop/components/fcitx5/default.nix b/snowfall/modules/home/desktop/components/fcitx5/default.nix
new file mode 100644
index 0000000..0eb0a4c
--- /dev/null
+++ b/snowfall/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;
+ };
+ };
+ };
+}