anchor.diff:          '';
         };
   
  +      dispatcherScripts = mkOption {
  +        type = types.listOf (types.submodule {
  +          options = {
  +            source = mkOption {
  +              type = types.str;
  +              description = ''
  +                A script source.
  +              '';
  +            };
  +
  +            type = mkOption {
  +              type = types.enum (attrNames dispatcherTypesSubdirMap); 
  +              default = "basic";
  +              description = ''
  +                Dispatcher hook type. Only basic hooks are currently available.
  +              '';
  +            };
  +          };
  +        });
  +        default = [];
  +        description = ''
  +          A list of scripts which will be executed in response to  network  events.
  +        '';
  +      };
       };
     };
   
  
positive.code:     ] ++ optional (cfg.appendNameservers == [] || cfg.insertNameservers == [])
             { source = overrideNameserversScript;
               target = "NetworkManager/dispatcher.d/02overridedns";
             };
  
      environment.systemPackages = cfg.packages ++ [
          networkmanager_openvpn
  
negative.code:     ${coreutils}/bin/rm -f $tmp $tmp.ns
    '';
  
    # pre-up and pre-down hooks were added in NM 0.9.10, but we still use 0.9.0
    dispatcherTypesSubdirMap = {
      "basic" = "";
      /*"pre-up" = "pre-up.d/";
      "pre-down" = "pre-down.d/";*/
    };
  
  in {
  
    ###### interface
  