Dconf2nix help. Incorrect translation

Hi there.

I changed a few settings in Blackbox terminal which stores its settings in dconf.

Now when I dump the appropriate path, I see:

λ dconf dump /com/raggesilver/BlackBox/
[/]
<snip>
terminal-padding=(uint32 20, uint32 20, uint32 20, uint32 20)
</snip>

Now when I run this through dconf2nix, I see the padding is converted to:

terminal-padding = mkTuple [ mkUint32 20 mkUint32 20 ];

Now I have narrowed down that this specific line caused a 702 line trace. :rofl:

for those who are dconf experts, is this the right output? Is there another format I can use to set this up? I am wondering if the issue is that there are only 2 mkUint32 20 vs the 4 uint32 20, in the dconf dump.

Thoughts?

Sounds like you discovered not one but two different bugs in dconf2nix:

  • In Nix, list items need to be parenthesized if they contain space, otherwise the function and the argument will become a separate list items.
  • The number of items in the tuple should match, otherwise size 2 tuple will be produced where the app expects size 4

The following should be the correct translation:

terminal-padding = mkTuple [ (mkUint32 20) (mkUint32 20) (mkUint32 20) (mkUint32 20) ];

OMG - THANK YOU.

That was driving me insane!

Please also open issues in the dconf2nix repo so that the bugs can be properly fixed.

1 Like