{
  config,
  pkgs,
  nixpkgs-nixos-unstable-and-unfree,
  lib,
  ...
}: {
  boot.kernelModules = ["fuse"];
  services.smartd.enable = true;

  sound.enable = true;

  networking.networkmanager = {
    enable = true;
    dispatcherScripts = [
      {
        source = pkgs.writeText "upHook" ''
          enable_disable_wifi ()
          {
            result=$(nmcli dev | grep "ethernet" | grep -w "connected")
            if [ -n "$result" ]; then
              nmcli radio wifi off
            else
              nmcli radio wifi on
            fi
          }

          if [ "$2" = "up" ]; then
            enable_disable_wifi
          fi

          if [ "$2" = "down" ]; then
            enable_disable_wifi
          fi
        '';
        type = "basic";
      }
    ];
  };

  hardware.enableRedistributableFirmware = true;
  hardware.cpu.intel.updateMicrocode = true;

  hardware.bluetooth = {
    enable = true;
    package = pkgs.bluez;
    settings = {General = {Enable = "Source,Sink,Media,Socket";};};
  };

  services.blueman.enable = true;

  hardware.pulseaudio.enable = false;
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    # If you want to use JACK applications, uncomment this
    #jack.enable = true;

    # use the example session manager (no others are packaged yet so this is enabled by default,
    # no need to redefine it in your config for now)
    #media-session.enable = true;
  };
  environment.systemPackages = with pkgs; [ghostscript poppler];
  services.printing = {
    enable = true;
    drivers = with pkgs; [
      epson-escpr
      nixpkgs-nixos-unstable-and-unfree.samsung-unified-linux-driver
      gutenprint
    ];
    extraConf = ''
      Option pdftops-renderer hybrid
    '';
  };

  hardware.printers.ensurePrinters = [
    {
      description = "Epson XP-540 via bolty";
      name = "epson_xp540_via_bolty";
      deviceUri = "ipp://bolty:631/printers/epson_xp540";
      model = "epson-inkjet-printer-escpr/Epson-XP-540_Series-epson-escpr-en.ppd";
      ppdOptions = {
        PageSize = "A4";
        Duplex = "DuplexNoTumble";
      };
    }
    {
      description = "Samsung SCX-4623 Series";
      name = "samsung-SCX-4623";
      deviceUri = "usb://Samsung/SCX-4623%20Series?serial=Z2TYBFFZC01007W&interface=1";
      model = "samsung/SCX-4623FW.ppd";
      ppdOptions = {
        PageSize = "A4";
        Duplex = "DuplexNoTumble";
      };
    }
  ];

  services.udev.packages = [];
  hardware.sane = {
    enable = true;
    snapshot = true;
    extraBackends = with pkgs; [
      nixpkgs-nixos-unstable-and-unfree.samsung-unified-linux-driver
      sane-airscan
      gawk
    ];
  };

  powerManagement = {
    enable = lib.mkForce true;
    resumeCommands = ''
      ${pkgs.autorandr}/bin/autorandr -c
    '';
    powertop.enable = true;
  };
}
