TIL: How to Append to a Config Option String in Nix
Recently on my laptop I had to add some extra config settings to my Hyprland config. Rather than polluting my
hyprland.nix file with if, else depending on the host. I wanted to add the extra config in the home.nix of the
host. So it’s contained within that host. Where my home.nix is the entry point for my
home-manager config for that host.
My hyprland.nix looks like this:
{
wayland.windowManager.hyprland = {
enable = true;
extraConfig = ''
input {
kb_layout = gb
touchpad {
disable_while_typing=false
}
}
'';
};
}
I want to add some extra config to the extraConfig option/attribute of this attribute set.
Then in my home.nix I added the following:
{
wayland.windowManager.hyprland.extraConfig = lib.mkAfter ''
exec-once = /usr/libexec/geoclue-2.0/demos/agent
exec-once = warp-taskbar
bind=,XF86Launch5,exec,/usr/local/bin/swaylock -S
bind=,XF86Launch4,exec,/usr/local/bin/swaylock -S
bind=SUPER,backspace,exec,/usr/local/bin/swaylock -S
'';
}
In this case we want to start some processes on this host, like showing warp in my taskbar.
The key line here being lib.mkAfter. Which will append the content after the existing config options we defined in hyprland.nix