{
  lib,
  pkgs,
  namespace,
  ...
}:
let
  inherit (lib.${namespace}) enabled disabled;
  shellAliases = {
    update-switch = "darwin-rebuild switch --flake ~/nix-config";
    update-flake = "nix flake update ~/nix-config";
    ducks = "du -cksh * | sort -hr | head -n 15";
  };
  packages = with pkgs; [
    age
    cpufetch
    deadnix
    nixfmt-rfc-style
    nodePackages.nodejs
    uv
    sops
    tree
    wget
  ];
in
{
  # Home Manager needs a bit of information about you and the
  # paths it should manage.
  home = {
    username = "mattjallen";
    homeDirectory = "/Users/mattjallen";
    packages = lib.mkForce packages;
    sessionVariables = {
      NH_DARWIN_FLAKE = lib.mkForce "/Users/mattjallen/nix-config";
    };
  };

  programs = {
    zsh = {
      shellAliases = shellAliases;
    };
  };

  # programs.nix-plist-manager = {
  #   enable = true;
  #   options = {
  #     applications = {
  #       finder = {
  #         settings = {
  #           general = {
  #             showTheseItemsOnTheDesktop = {
  #               hardDisks = false;
  #               externalDisks = true;
  #               cdsDvdsAndiPods = false;
  #               connectedServers = false;
  #             };
  #             openFoldersInTabsInsteadOfNewWindows = true;
  #           };
  #           sidebar = {
  #             recentTags = true;
  #           };
  #           advanced = {
  #             removeItemsFromTheTrashAfter30Days = true;
  #             showAllFilenameExtensions = true;
  #             showWarningBeforeChangingAnExtension = true;
  #             showWarningBeforeRemovingFromiCloudDrive = true;
  #             showWarningBeforeEmptyingTheTrash = true;
  #             keepFoldersOnTop = {
  #               inWindowsWhenSortingByName = true;
  #               onDesktop = true;
  #             };
  #             whenPerformingASearch = "Search This Mac";
  #           };
  #         };
  #         menuBar = {
  #           view = {
  #             showTabBar = true;
  #             showSidebar = true;
  #             showPathBar = true;
  #             showStatusBar = true;
  #           };
  #         };
  #       };
  #       systemSettings = {
  #         appearance = {
  #           appearance = "Dark";
  #           accentColor = "Multicolor";
  #           # clickInTheScrollBarTo = "Jump to the next page";
  #           sidebarIconSize = "Medium";
  #           showScrollBars = "When scrolling";
  #         };
  #         controlCenter = {
  #           wifi = true;
  #           bluetooth = true;
  #           airdrop = true;
  #           stageManager = true;
  #           focusModes = "active";
  #           screenMirroring = "active";
  #           display = "never";
  #           sound = "always";
  #           nowPlaying = "active";
  #           accessibilityShortcuts = "unset";
  #           musicRecognition = {
  #             showInMenuBar = false;
  #             showInControlCenter = true;
  #           };
  #           hearing = "unset";
  #           fastUserSwitching = {
  #             showInMenuBar = false;
  #             showInControlCenter = true;
  #           };
  #           keyboardBrightness = {
  #             showInMenuBar = false;
  #             showInControlCenter = true;
  #           };
  #           battery = {
  #             showInMenuBar = false;
  #             showInControlCenter = false;
  #           };
  #           batteryShowPercentage = true;
  #           # menuBarOnly = {
  #           #   spotlight = false;
  #           #   siri = true;
  #           # };
  #           # automaticallyHideAndShowTheMenuBar = "In Full Screen Only";
  #         };
  #         desktopAndDock = {
  #           desktopAndStageManager = {
  #             showItems = {
  #               onDesktop = true;
  #               inStageManager = true;
  #             };
  #             clickWallpaperToRevealDesktop = "Always";
  #             stageManager = false;
  #             showRecentAppsInStageManager = true;
  #             showWindowsFromAnApplication = "All at Once";
  #           };
  #           dock = {
  #             animateOpeningApplications = true;
  #             automaticallyHideAndShowTheDock = enabled;
  #             doubleClickAWindowsTitleBarTo = "Minimize";
  #             magnification = disabled;
  #             minimizeWindowsIntoApplicationIcon = true;
  #             minimizeWindowsUsing = "Genie Effect";
  #             positionOnScreen = "Bottom";
  #             showIndicatorsForOpenApplications = true;
  #             showSuggestedAndRecentAppsInDock = false;
  #             size = 64; # 16 - 128
  #             #     persistentApps = [
  #             #       { app = "/Applications/Clock.app"; }
  #             #       { folder = "/Applications"; }
  #             #       { app = "/Applications/Safari.app"; }
  #             #       { app = "/Applications/Firefox.app"; }
  #             #       { app = "/Applications/Tabby.app"; }
  #             #       { app = "/Applications/Termius.app"; }
  #             #       { app = "/Applications/Muic.app"; }
  #             #       { app = "/Applications/Vesktop.app"; }
  #             #       { app = "/Applications/Messages.app"; }
  #             #       { app = "/Applications/Calendar.app"; }
  #             #       { app = "/Applications/Reminders.app"; }
  #             #       { app = "/Applications/Notes.app"; }
  #             #       { app = "/Applications/Weather.app"; }
  #             #       { app = "/Applications/Maps.app"; }
  #             #       { app = "/Applications/App Store.app"; }
  #             #       { app = "/Applications/System Settings.app"; }
  #             #       { app = "/Applications/ChatGPT.app"; }
  #             #       { app = "/Applications/Nextcloud.app"; }
  #             #       { app = "/Applications/VSCodium.app"; }
  #             #       { app = "/Applications/Omnissa Horizon Client.app"; }
  #             #       { app = "/Applications/Proton Pass.app"; }
  #             #       { app = "/Applications/OrcaSlicer.app"; }
  #             #       { app = "/Applications/AlDente.app"; }
  #             #     ];
  #             #     persistentOthers = [
  #             #       "~/Downloads"
  #             #     ];
  #           };
  #           hotCorners = {
  #             # ["-" "Mission Control" "Application Windows" "Desktop" "Start Screen Saver" "Disable Screen Saver" "Dashboard" "Put Display to Sleep" "Launchpad" "Notification Center" "Lock Screen" "Quick Note"]
  #             topLeft = "-";
  #             topRight = "-";
  #             bottomLeft = "-";
  #             bottomRight = "-";
  #           };
  #           missionControl = {
  #             automaticallyRearrangeSpacesBasedOnMostRecentUse = true;
  #             displaysHaveSeparateSpaces = true;
  #             dragWindowsToTopOfScreenToEnterMissionControl = true;
  #             groupWindowsByApplication = true;
  #             whenSwitchingToAnApplicationSwitchToAspaceWithOpenWindowsForTheApplication = true;
  #           };
  #           widgets = {
  #             showWidgets = {
  #               onDesktop = true;
  #               inStageManager = true;
  #             };
  #             widgetStyle = "Automatic";
  #             useIphoneWidgets = true;
  #           };
  #           windows = {
  #             askToKeepChangesWhenClosingDocuments = true;
  #             closeWindowsWhenQuittingAnApplication = true;
  #             dragWindowsToScreenEdgesToTile = true;
  #             dragWindowsToMenuBarToFillScreen = true;
  #             holdOptionKeyWhileDraggingWindowsToTile = true;
  #             preferTabsWhenOpeningDocuments = "In Full Screen";
  #             tiledWindowsHaveMargin = false;
  #           };
  #         };
  #         focus = {
  #           shareAcrossDevices = true;
  #         };
  #         # general.dateAndTime."24HourTime" = false;
  #         notifications = {
  #           notificationCenter = {
  #             showPreviews = "When Unlocked";
  #             summarizeNotifications = true;
  #           };
  #         };
  #         sound = {
  #           soundEffects = {
  #             alertSound = "Boop";
  #             alertVolume = 0.7;
  #             playFeedbackWhenVolumeIsChanged = true;
  #             playUserInterfaceSoundEffects = true;
  #           };
  #         };
  #         spotlight = {
  #           helpAppleImproveSearch = false;
  #           # searchResults = {
  #           #   applications = true;
  #           #   calculator = true;
  #           #   contacts = true;
  #           #   conversion = true;
  #           #   definition = true;
  #           #   developer = true;
  #           #   documents = true;
  #           #   eventsAndReminders = true;
  #           #   folders = true;
  #           #   fonts = false;
  #           #   images = true;
  #           #   mailAndMessages = true;
  #           #   movies = true;
  #           #   music = true;
  #           #   other = false;
  #           #   pdfDocuments = true;
  #           #   presentations = true;
  #           #   siriSuggestions = false;
  #           #   systemSettings = true;
  #           #   tips = false;
  #           #   websites = true;
  #         };
  #       };
  #     };
  #   };
  # };

  # Manage bug in compilations - who uses manpages in 2024 anyways? :P
  manual.manpages = enabled;

  # Override defaults that arent supported
  programs = {
    mangohud = lib.mkForce disabled;

    nh = {
      flake = lib.mkForce "/Users/mattjallen/nix-config";
    };
  };

  services = {
    pass-secret-service = lib.mkForce disabled;
    nextcloud-client = lib.mkForce disabled;
    kdeconnect = {
      enable = false;
      indicator = false;
    };
  };
}
