{
  # Snowfall Lib provides a customized `lib` instance with access to your flake's library
  # as well as the libraries available from your flake's inputs.
  lib,
  # An instance of `pkgs` with your overlays and packages applied is also available.
  pkgs,
  # You also have access to your flake's inputs.
  inputs,

  # Additional metadata is provided by Snowfall Lib.
  system, # The system architecture for this host (eg. `x86_64-linux`).
  target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
  format, # A normalized name for the system target (eg. `iso`).
  virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
  systems, # An attribute map of your defined hosts.

  # All other arguments come from the module system.
  config,
  host,
  ...
}:

let
  cfg = config.modules.suites.desktop;
in
{
  options.modules.suites.desktop = {
    enable = lib.mkOption { default = false; };
  };

  config = lib.mkIf cfg.enable {
    services.blueman-applet.enable = true;
    services.nextcloud-client.enable = true;
    services.nextcloud-client.startInBackground = true;
    services.network-manager-applet.enable = true;

    services.syncthing.tray.enable = true;
    services.syncthing.tray.command = "syncthingtray --wait"; # Wait for tray to become available

    programs.chromium = {
      enable = true;
      extensions = [
        # Tampermonkey
        { id = "dhdgffkkebhmkfjojejmpbldmpobfkfo"; }
      ];
    };

    home.packages = with pkgs; [
      arandr
      calibre # ebook manager and viewer
      digikam
      discord
      # dvdisaster
      # element-desktop
      # rocketchat-desktop
      thunderbird
      tdesktop # telegram
      # schildichat-desktop # not updated regularly
      nheko
      evince # Simple pdf reader, good for focusing on document content
      firefox
      # geogebra
      cheese
      handbrake
      kitty # Terminal
      libnotify
      libreoffice
      mate.engrampa
      nomacs # Image viewer
      okular # Pdf reader with many features, good for commenting documents
      pavucontrol
      pdfsam-basic # Split, merge, etc for pdfs
      qalculate-gtk # Nice gui calculator
      qpdfview
      # qutebrowser
      # realvnc-vnc-viewer
      rpi-imager # make isos
      # rustdesk
      tor-browser
      unstable.path-of-building # Path of Building
      # frajul.pob-dev-version # Path of Building
      vlc
      wine
      winetricks
      xclip # x11 clipboard access from terminal
      xfce.mousepad # simple text editor
      xournalpp # Edit pdf files
      zoom-us # Video conferencing
      zotero # Manage papers and other sources

      ## My scripts
      frajul.open-messaging
      frajul.xwacomcalibrate
    ];
  };
}