{ pkgs, outputs, ... }:

{
  programs.emacs = {
    enable = true;
    package = pkgs.emacs30-pgtk;
  };
  programs.vesktop = {
    enable = true;
    settings = {
      appBadge = false;
      arRPC = true;
      checkUpdates = false;
      customTitleBar = false;
      hardwareAcceleration = true;
    };
    vencord.settings = {
      autoUpdate = false;
      autoUpdateNotification = false;
      notifyAboutUpdates = false;
      plugins = {
        AnonymiseFileNames.enabled = true;
        BetterFolders.enabled = true;
        BetterGifAltText.enabled = true;
        CallTimer.enabled = true;
        ClearURLs.enabled = true;
        CopyFileContents.enabled = true;
        CtrlEnterSend.enabled = true;
        CustomIdle = {
          enabled = true;
          settings = {
            remainInIdle = false;
          };
        };
        FriendsSince.enabled = true;
        GameActivityToggle.enabled = true;
        ImplicitRelationships.enabled = true;
        MutualGroupDMs.enabled = true;
        QuickMention.enabled = true;
        QuickReply.enabled = true;
        ReplaceGoogleSearch = {
          enabled = true;
          settings.customEngineName = "DuckDuckGo";
        };
        ReviewDB.enabled = true;
        ShowConnections.enabled = true;
      };
    };
  };
  home.packages = with pkgs; [
    cmake
    shellcheck
    glslang
    pipenv
    python312Packages.isort
    python312Packages.pytest

    # rust tools
    trunk
    wasm-pack
    cargo-tarpaulin
    cargo-watch
    cargo-generate
    diesel-cli
    cargo-audit
    gitoxide

    # nix tools
    nil
    nixfmt-rfc-style
    nix-init

    # markdown
    nodePackages.markdownlint-cli

    # doom emacs dependencies
    yaml-language-server
    nodePackages.typescript-language-server
    nodePackages.bash-language-server
    pyright
    cmake-language-server
    multimarkdown
    rustc
    cargo
    rust-analyzer
    clang
    clang-tools
    wakatime
    enchant
    nuspell
    hunspellDicts.en-us
    languagetool

    # latex
    texlive.combined.scheme-medium

    # dependencies for nix-dotfiles/hydra-check-action
    nodejs_20
    nodePackages.prettier
    treefmt

    nextcloud-client
    bitwarden-cli
    bitwarden-menu
    wtype
    zathura
    obsidian
    libreoffice-qt-fresh
    wlr-randr
  ];
}