diff options
Diffstat (limited to 'snowfall/modules')
5 files changed, 89 insertions, 5 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; }; }; }; diff --git a/snowfall/modules/nixos/hardware/keyboard/default.nix b/snowfall/modules/nixos/hardware/keyboard/default.nix index a8c478d..0ea2aa6 100644 --- a/snowfall/modules/nixos/hardware/keyboard/default.nix +++ b/snowfall/modules/nixos/hardware/keyboard/default.nix @@ -5,7 +5,7 @@ with lib; with lib.${namespace}; let in { options.${namespace}.hardware.keyboard = with types; { enable = mkEnableOption "keyboard hardware tweaks"; - jp = mkEnableOption "japanese ime support"; + jp.enable = mkEnableOption "japanese ime support"; }; config = mkIf cfg.enable { @@ -29,13 +29,13 @@ in { }; }; - i18n.inputMethod = mkIf cfg.jp { + i18n.inputMethod = mkIf cfg.jp.enable { enable = true; type = "fcitx5"; fcitx5.addons = with pkgs; [ fcitx5-mozc ]; }; - environment.variables = mkIf cfg.jp { + environment.variables = mkIf cfg.jp.enable { # Required for fcitx5 support in kitty GLFW_IM_MODULE = "ibus"; }; diff --git a/snowfall/modules/nixos/suites/desktop/default.nix b/snowfall/modules/nixos/suites/desktop/default.nix index 1d6e0c2..246f38c 100644 --- a/snowfall/modules/nixos/suites/desktop/default.nix +++ b/snowfall/modules/nixos/suites/desktop/default.nix @@ -11,7 +11,7 @@ in { cxl = { hardware = { audio.enable = true; - keyboard.jp = true; + keyboard.jp.enable = true; }; apps = { |