{ lib, osConfig, ... }: let # readEtcFile = etc-file: # if etc-file.text != null then # etc-file.text else # (builtins.readFile etc-file.source); readEtcFile = etc-file: lib.mkMerge [ (lib.mkIf (etc-file.text != null) etc-file.text) (lib.mkIf (etc-file.source != null) (builtins.readFile etc-file.source)) ]; in { profiles.development.enable = true; # profiles.desktop.qtile.enable = true; profiles.desktop.dwl.enable = true; profiles.matrix.enable = true; # Don't Starve doesn't pick up /etc/alsa/conf.d. # ALSA lib conf.c:4136:(config_file_load) cannot stat file/directory /etc/alsa/conf.d # This is a workaround that puts the stuff from /etc/alsa/conf.d into ~/.asoundrc that # Don't starve is able to read. home.file.".asoundrc".text = lib.mkMerge [ (readEtcFile osConfig.environment.etc."alsa/conf.d/49-pipewire-modules.conf") (readEtcFile osConfig.environment.etc."alsa/conf.d/50-pipewire.conf") (readEtcFile osConfig.environment.etc."alsa/conf.d/99-pipewire-default.conf") ]; }