From 0f11a79e02711e79386f4761b1205ea4a8483aa8 Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Mon, 9 Mar 2020 23:25:45 +0100 Subject: [PATCH] dconf: make `settings` have type `gvariant` Closes #835, #1094, #1095 --- modules/misc/dconf.nix | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/modules/misc/dconf.nix b/modules/misc/dconf.nix index f5c9bf714..fbdc83830 100644 --- a/modules/misc/dconf.nix +++ b/modules/misc/dconf.nix @@ -9,22 +9,7 @@ let toDconfIni = generators.toINI { mkKeyValue = mkIniKeyValue; }; mkIniKeyValue = key: value: - let - tweakVal = v: - if isString v then "'${v}'" - else if isList v then tweakList v - else if isBool v then (if v then "true" else "false") - else toString v; - - # Assume empty list is a list of strings, see #769 - tweakList = v: - if v == [] then "@as []" - else "[" + concatMapStringsSep "," tweakVal v + "]"; - - in - "${key}=${tweakVal value}"; - - primitive = with types; either bool (either int (either float str)); + "${key}=${toString (hm.gvariant.mkValue value)}"; in @@ -43,8 +28,7 @@ in }; settings = mkOption { - type = with types; - attrsOf (attrsOf (either primitive (listOf primitive))); + type = with types; attrsOf (attrsOf hm.types.gvariant); default = {}; example = literalExample '' { @@ -53,6 +37,7 @@ in show-thousands = true; base = 10; word-size = 64; + window-position = lib.hm.gvariant.mkTuple [100 100]; }; } '';