38 lines
		
	
	
		
			776 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			776 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, pkgs, lib, ... }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let 
 | |
|   cfg = config.i18n.inputMethod.uim;
 | |
| in
 | |
| {
 | |
|   options = {
 | |
| 
 | |
|     i18n.inputMethod.uim = {
 | |
|       toolbar = mkOption {
 | |
|         type    = types.enum [ "gtk" "gtk3" "gtk-systray" "gtk3-systray" "qt4" ];
 | |
|         default = "gtk";
 | |
|         example = "gtk-systray";
 | |
|         description = ''
 | |
|           selected UIM toolbar.
 | |
|         '';
 | |
|       };
 | |
|     };
 | |
| 
 | |
|   };
 | |
| 
 | |
|   config = mkIf (config.i18n.inputMethod.enabled == "uim") {
 | |
|     i18n.inputMethod.package = pkgs.uim;
 | |
| 
 | |
|     environment.variables = {
 | |
|       GTK_IM_MODULE = "uim";
 | |
|       QT_IM_MODULE  = "uim";
 | |
|       XMODIFIERS    = "@im=uim";
 | |
|     };
 | |
|     services.xserver.displayManager.sessionCommands = ''
 | |
|       ${pkgs.uim}/bin/uim-xim &
 | |
|       ${pkgs.uim}/bin/uim-toolbar-${cfg.toolbar} &
 | |
|     '';
 | |
|   };
 | |
| }
 | 
