1{ config, pkgs, lib, ... }:
2
3with lib;
4
5let
6 cfg = config.i18n.inputMethod.uim;
7in
8{
9 options = {
10
11 i18n.inputMethod.uim = {
12 toolbar = mkOption {
13 type = types.enum [ "gtk" "gtk3" "gtk-systray" "gtk3-systray" "qt4" ];
14 default = "gtk";
15 example = "gtk-systray";
16 description = ''
17 selected UIM toolbar.
18 '';
19 };
20 };
21
22 };
23
24 config = mkIf (config.i18n.inputMethod.enabled == "uim") {
25 i18n.inputMethod.package = pkgs.uim;
26
27 environment.variables = {
28 GTK_IM_MODULE = "uim";
29 QT_IM_MODULE = "uim";
30 XMODIFIERS = "@im=uim";
31 };
32 services.xserver.displayManager.sessionCommands = ''
33 ${pkgs.uim}/bin/uim-xim &
34 ${pkgs.uim}/bin/uim-toolbar-${cfg.toolbar} &
35 '';
36 };
37}