blob: 0eb0a4c4e6ccaff830e8f20a00944b812e408e47 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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;
};
};
};
}
|