diff options
Diffstat (limited to 'snowfall/modules/home')
| -rw-r--r-- | snowfall/modules/home/desktop/components/fcitx5/default.nix | 82 | ||||
| -rw-r--r-- | snowfall/modules/home/desktop/components/i3/default.nix | 3 | ||||
| -rw-r--r-- | snowfall/modules/home/suites/desktop/default.nix | 1 |
3 files changed, 85 insertions, 1 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; + }; + }; + }; +} diff --git a/snowfall/modules/home/desktop/components/i3/default.nix b/snowfall/modules/home/desktop/components/i3/default.nix index 93542f0..cf9ed91 100644 --- a/snowfall/modules/home/desktop/components/i3/default.nix +++ b/snowfall/modules/home/desktop/components/i3/default.nix @@ -115,7 +115,8 @@ in { { command = "polybar-msg cmd quit; polybar"; always = true; notification = false; } { command = "systemctl --user restart picom"; always = true; notification = false; } { command = "${pkgs.feh}/bin/feh --bg-fill ${desktop.background}"; always = true; notification = false; } - { command = "${pkgs.fcitx5}/bin/fcitx5 -r -d"; always = true; notification = false; } + ] ++ optionals desktop.components.fcitx5.enable [ + { command = "fcitx5 -dr"; always = true; notification = false; } ]; keybindings = { diff --git a/snowfall/modules/home/suites/desktop/default.nix b/snowfall/modules/home/suites/desktop/default.nix index a98472a..377cff6 100644 --- a/snowfall/modules/home/suites/desktop/default.nix +++ b/snowfall/modules/home/suites/desktop/default.nix @@ -22,6 +22,7 @@ in { picom.enable = true; gtk.enable = true; + fcitx5.enable = true; }; }; }; |