{pkgs, ...}:
{
  hardware.sane.enable = true;
  hardware.graphics.enable = true;

  environment.systemPackages = with pkgs; [
    calibre
    chromium
    discord
    dracula-theme
    eog
    evince
    firefox
    ffmpeg
    gimp
    inkscape
    libreoffice
    logseq
    nautilus
    orca-slicer
    pavucontrol
    portfolio
    pulseaudio
    signal-desktop
    simple-scan
    spotify
    syncthing
    thunderbird
    vlc
    wayshot
    wdisplays
    wl-clipboard
    xdg-utils
    yt-dlp
  ];

  # Workaround for logseq
  nixpkgs.config.permittedInsecurePackages = [
    "electron-27.3.11"
  ];

  programs = {
    gphoto2.enable = true;
    light.enable = true;
    sway.enable = true;
  };

  security.rtkit.enable = true;

  services = {
    dbus.enable = true;
    gvfs.enable = true;
    greetd = {
      enable = true;
      settings = {
        default_session = {
          command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --asterisks --cmd sway";
          user = "rothe";
        };
      };
    };
    pipewire = {
      enable = true;
      alsa.enable = true;
      pulse.enable = true;
    };
    syncthing = {
      enable = true;
      user = "rothe";
      group = "users";
      dataDir = "/home/rothe";
      overrideFolders = false;
      overrideDevices = false;
    };
  };

  programs = {
    # Helper for nixos output
    nh = {
      enable = true;
      clean.enable = true;
      clean.extraArgs = "--keep-since 4d --keep 3";
      flake = "/home/rothe/src/nixos-config";
    };
  };

  xdg.portal = {
    enable = true;
    wlr.enable = true;
    # gtk portal needed to make gtk apps happy
    extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
    config.common.default = "*";
  };
}