How to factor out keys in a set?

I’ve added myself a user account like so:

let
  my-fullname = "Joe Blogs";
in
  users = {
    users = {
      joe = {
        isNormalUser = true;
        home = "/home/joe";
        description = my-fullname;
        extraGroups = [ "wheel" ];
      };
    };
  };

But what I’d like to happen is for my user name to be a variable I can set elsewhere like my-fullname. Something like this:

let
  my-username = "joe";
  my-fullname = "Joe Blogs";
in
  users = {
    users = {
      my-username = {
        isNormalUser = true;
        home = "/home/${my-username}";
        description = my-fullname;
        extraGroups = [ "wheel" ];
      };
    };
  };

But it seems that nix interprets my-username = { literally as a user “my-username”, instead of referring to the string “joe”. Anyway to resolve this and factor out my username into a definition?

${my-username} = ...

2 Likes