aboutsummaryrefslogtreecommitdiff
path: root/snowfall/modules/home
diff options
context:
space:
mode:
Diffstat (limited to 'snowfall/modules/home')
-rw-r--r--snowfall/modules/home/desktop/components/fcitx5/default.nix82
-rw-r--r--snowfall/modules/home/desktop/components/i3/default.nix3
-rw-r--r--snowfall/modules/home/suites/desktop/default.nix1
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;
};
};
};