{
  pkgs,
  inputs,
  system,
  ...
}: let
  chromium_teams = pkgs.writeShellScriptBin "chromium_teams" ''
    ${pkgs.chromium}/bin/chromium --socket=wayland org.chromium.Chromium --app=https://teams.microsoft.com/
  '';
  chromium_discord = pkgs.writeShellScriptBin "chromium_discord" ''
    ${pkgs.chromium}/bin/chromium --socket=wayland org.chromium.Chromium --app=https://discordapp.com/channels/@me
  '';
  ssh_proxy = pkgs.writeShellScriptBin "ssh_proxy" ''
    if ${pkgs.coreutils}/bin/test $# -ne 1; then
      echo "Usage: $0 <user>@<ssh_host>"
      exit
    fi
    PROXY_PORT="1337"
    ${pkgs.openssh}/bin/ssh -D "$PROXY_PORT" -q -N "$@"
  '';
  wrap_sh = let
    bubblewrap = pkgs.callPackage ../packages/bubblewrap/default.nix {};
  in
    pkgs.writeShellScriptBin "wrap.sh" ''
      if ${pkgs.coreutils-full}/bin/test $# -ne 1; then
        echo "Usage: $0 <directory>"
        exit
      fi
      FULL_PATH=$(${pkgs.coreutils-full}/bin/realpath "$1")
      BUBBLEWRAP_DIR="$1" ${bubblewrap}/bin/bwrap \
        --bind / / \
        --dev /dev \
        --overlay-src "$FULL_PATH" \
        --tmp-overlay "$FULL_PATH" \
        "$SHELL"
    '';
in {
  home.packages = with pkgs;
    [
      anydesk
      appimage-run
      arp-scan
      birdtray
      blackmagic
      blender
      btop
      cached-nix-shell
      caddy
      cargo
      chromium
      cmake
      compsize
      cura
      deluge
      discord
      dmenu-wayland
      ffmpeg-full
      firefox
      freecad
      gcc
      gdb
      ghostscript
      glab
      glaxnimate
      gnumake
      go
      grim
      hyperfine
      imagemagick
      imv
      inkscape
      jellyfin-media-player
      kdenlive
      kicad
      kodi-wayland
      krita
      libnotify
      libreoffice
      libva-utils
      mediainfo
      ncdu
      neovide
      ngspice
      nix-init
      nixpkgs-fmt
      nix-prefetch-git
      nodePackages.peerflix
      openocd
      openscad
      pandoc
      pass-wayland
      patchelf
      pavucontrol
      pirate-get
      poppler_utils
      powertop
      pulsemixer
      python3
      python3Packages.west
      remmina
      river
      rtorrent
      screen
      seer
      sioyek
      skypeforlinux
      slurp
      stm32cubemx
      tea
      teams-for-linux
      texlive.combined.scheme-full
      thunderbird
      upx
      waybar
      wdisplays
      whatsapp-for-linux
      wine
      wireshark
      wl-clipboard
      wlr-randr
      wofi
      x2goclient
      yewtube
      yt-dlp
      zapzap
      zathura
      zeal-qt6
      zig
    ]
    ++ [
      chromium_discord
      chromium_teams
      ssh_proxy
      wrap_sh
    ]
    ++ [
      inputs.swaysw.packages.${system}.swaysw
      (pkgs.callPackage ../packages/viber/default.nix {})
      (pkgs.callPackage ../packages/bubblewrap/default.nix {})
    ];
}