mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 09:17:14 +08:00 
			
		
		
		
	Write iptsd configuration file.
This commit is contained in:
		
				
					committed by
					
						
						mergify[bot]
					
				
			
			
				
	
			
			
			
						parent
						
							4461209624
						
					
				
				
					commit
					b236a7817a
				
			@@ -1,18 +1,39 @@
 | 
			
		||||
{ config, lib, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  inherit (lib) mkDefault mkEnableOption mkIf mkMerge;
 | 
			
		||||
  inherit (lib) mkDefault mkEnableOption mkIf mkMerge mkOption types;
 | 
			
		||||
 | 
			
		||||
  cfg = config.microsoft-surface.ipts;
 | 
			
		||||
 | 
			
		||||
in {
 | 
			
		||||
  iptsConfFile = pkgs.writeTextFile {
 | 
			
		||||
    name = "iptsd.conf";
 | 
			
		||||
    text = lib.generators.toINI { } cfg.config;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  options.microsoft-surface.ipts = {
 | 
			
		||||
    enable = mkEnableOption "Enable IPTSd for Microsoft Surface";
 | 
			
		||||
 | 
			
		||||
    config = mkOption {
 | 
			
		||||
      type = types.attrs;
 | 
			
		||||
      default = { };
 | 
			
		||||
      description = ''
 | 
			
		||||
        Values to wrote to iptsd.conf, first key is section, second key is property.
 | 
			
		||||
        See the example config; https://github.com/linux-surface/iptsd/blob/v1.4.0/etc/iptsd.conf
 | 
			
		||||
      '';
 | 
			
		||||
      example = ''
 | 
			
		||||
        DFT = {
 | 
			
		||||
          ButtonMinMag = 1000;
 | 
			
		||||
        };
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = mkMerge [
 | 
			
		||||
    {
 | 
			
		||||
      microsoft-surface.ipts.enable = mkDefault false;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    (mkIf cfg.enable {
 | 
			
		||||
@@ -22,6 +43,8 @@ in {
 | 
			
		||||
        script = "iptsd $(iptsd-find-hidraw)";
 | 
			
		||||
        wantedBy = [ "multi-user.target" ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      environment.etc."iptsd/iptsd.conf".source = "${iptsConfFile}";
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user