self: super: {
  purple-slack = super.purple-slack.overrideAttrs(old: {
    version = "2023-05-15";

    src = super.fetchFromGitHub {
      owner = "dylex";
      repo = "slack-libpurple";
      rev = "1cfcf6694c0813d9362d31291e48b54fea1318b2";
      sha256 = "ri6qFgWMVGQUse0A+q3VjvixoUC0zqCSMNw+vEIfgxI=";
    };

    # Further ideas to add:
    # Adjust color of text rendered to start call or open chat
    # Add command to react to messages
    #   https://github.com/dylex/slack-libpurple/issues/155
    # Support sending of files
    # Prevent duplicates of incoming messages (happens from time to time)
    #   https://github.com/dylex/slack-libpurple/issues/155
    # Formatting (bold, italic, …) see: https://github.com/dylex/slack-libpurple/pull/122
    # Receive reactions
    patches = (old.patches or []) ++ [
      # 3rd Party
      ./browser-based-auth.patch

      # Own
      ./open-command.patch

      # Send upstream
      ./call-command.patch
    ];
  });
}
