tree 0e8e6fe442e7123268de77fc1cecab718ade33d9
parent 1eece6e1670c9c2cbc4bb8ee23e06f274047a4c0
author Skyler Grey <skyler3665@gmail.com> 1676275445 +0000
committer Skyler Grey <skyler3665@gmail.com> 1677416979 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE1SCsjXyWkhJbK706Gv0QJWs8cU0FAmP7WhMACgkQGv0QJWs8
 cU0TvQ//d+9FFn8CPPs9ry4FUmTnvzHwij0xO8WKfcG2qoqg1jN1pSGlQfrREley
 B/WT71bRYpMaLRw0u174PqF/WD+K64RT4bNq4agaq3REcfttcGUbTpXtZLhZAzG2
 58dTw8yWzymKH7OyelYoRfFclCO6v1nlD2ny+xSDJ6eDWPGJLSc3BNIaTzlb8aeU
 UyelUxp3TWX/F9v71j8kqYxbTFT2xx1YAZt1hldvO1SDfakMWa7d+1HyNKV62+T2
 CetKtpWpUgtfcFU6Zzlr1QetbOCl7dCQaA0V2whlB6CB+VoRPwP02RokzfJn++79
 m6T3vKrwiQunQmXc5FF5cOMBOWyLD4ss6Q0K6S7z72rUzW84PvVphN1kZhuFcEPe
 Jv/PDdAD150BGIeC7FcDO6Phr2FN+T7KZtchAtY+FCMxVuWtpTWREkwC6/FJvYz0
 PAQvB80Le5Dkc0U09qJ/4tQuyTiBcp3QBO9AEDuN5OGvnE1jDS4QIBwED2Z9Mgq/
 nHPQcvhcOu/j3Qk5Az6RFaKZrVnMHnDlBRyIDremEomqRMctSUj9ONRbP6mDAcJY
 aOHRV9GeEA0NnT4SWrjGeq/9RXykef7FqbzOdrQvnUXzyBjxA1eGlU3dtnM8sS4G
 sIKty6Lfl7O2dyuORww9Tvr8btCE0VtGKwvIr7+95uzWwlW7b54=
 =kSsN
 -----END PGP SIGNATURE-----

Add utils.readFile and utils.interpolateFile, use them in xmonad config

- Add utils.readFile which reads a file and evaluates any nix in ${{null}}
  brackets like that, returning a string. This should be a drop-in replacement
  for builtins.readFile
- Add utils.interpolateFile which does the same as readFile but also writes to
  the store and returns a store path for the new file. This should be a drop-in
  wrapper for a path
- Use utils.interpolateFile on the xmonad config file
- Use a relative file path contained in nix interpolation brackets in the xmonad
  config file
- Use package paths inside the included file (all included paths are also
  interpolated)
- Update xmonad to have better volume change support
- Update xmonad to have better multi-display support (actually start polybar,
  display different colors for second displays)
