{
  config,
  lib,
  ...
}:
with lib; let
  cfg = config.custom.programs.mosh;
in {
  options.custom.programs.mosh.enable = mkOption {default = false;};

  config = mkIf cfg.enable {
    # https://wiki.nixos.org/wiki/Mosh
    # https://github.com/mobile-shell/mosh
    programs.mosh.enable = true; # !! Opens UDP ports 60000-61000
    environment.shellAliases.mosh = "mosh --predict-overwrite";
  };
}