{ config, lib, ... }:

# This module provides some filesystem functionality I expect to work out of the box
let
  cfg = config.snowhawk.filesystem;
in
{
  options.snowhawk.filesystem = {
    enable = lib.mkEnableOption "filesystem nixos module";
  };

  config = lib.mkIf cfg.enable {
    # Building nixos without this uses a ton of disk
    # Needs to be disabled on low memory systems
    boot.tmp.useTmpfs = true;

    # This makes shebangs work
    services.envfs.enable = true;

    # So many things break without this
    programs.dconf.enable = true;

    # Enable trash:/// support
    services.gvfs.enable = true;
  };
}