Package Details: discord_arch_electron 1:1.0.150-1

Git Clone URL: https://aur.archlinux.org/discord_arch_electron.git (read-only, click to copy)
Package Base: discord_arch_electron
Description: Discord using system provided electron for increased security and performance
Upstream URL: https://discord.com
Keywords: chat discord discord-stable discordapp electron video voice
Licenses: LicenseRef-custom
Conflicts: discord
Provides: discord
Submitter: johnnyapol
Maintainer: Zoddo
Last Packager: Zoddo
Votes: 210
Popularity: 2.18
First Submitted: 2020-05-19 23:51 (UTC)
Last Updated: 2026-07-21 20:49 (UTC)

Dependencies (8)

Required by (35)

Sources (17)

Pinned Comments

Zoddo commented on 2026-06-21 10:35 (UTC) (edited on 2026-06-21 10:42 (UTC) by Zoddo)

This took more time than I wanted, but the package is now updated to 1:1.0.143-1, which supports the new Discord distribution/bootstrap mechanism introduced in May.

Notable changes:
  • Modules are now built directly in the package, instead of being dynamically downloaded by discord in ~/.config/discord/
  • Krisp is now patched directly at build time (feel free to remove ~/.config/discord.conf if you used it to enable Krisp, as this file is not used anymore)

These changes represent a large diff since 1:0.0.135-1, and they may be complex to review. To help you review the changes, I've tried to split them in multiple commits.
Feel free to review individual commits to better understand the changes:

git show 47c13dd..HEAD

(or using cgit's web interface)

Zoddo commented on 2022-09-15 17:54 (UTC) (edited on 2026-06-21 10:30 (UTC) by Zoddo)

Starting with 1.0.143 (2026-06-21):
  • With the switch to the new Discord bootstrapper, we now include modules directly in the package
  • Krisp is now patched directly at build time
Starting with 0.0.55-2 (2024-06-09):
  • Added a patcher to make Krisp work with this package (kudos to @SunRed). You need to manually enable it (see the end of this message).
Starting with 0.0.26-1 (2023-03-31):
  • Switched back to the main electron package (electron22)
  • Watching cameras and streams is working again
Starting with 0.0.20-1 (2022-09-15):
  • Bumped electron16 to electron19 (I still have blocking issues with electron20)
  • Added support for $XDG_CONFIG_HOME/discord-flags.conf: this works like electron-flags.conf, you can set in this file the command line flags you want to pass to electron when running Discord (there are some useful flags in the wiki, especially if you are experiencing lag in the Discord UI).
FAQ

Discord requires an update, but this package isn't yet updated
Check the wiki.

The Discord UI is lagging
Try to add the flags recommended in the wiki in $XDG_CONFIG_HOME/discord-flags.conf.

Discord is crashing when starting/joining a stream
This issue arises because Discord recently started to patch their bundled Electron version to introduce their own custom stream API, which doesn't exist in the official Electron package.
Because Discord fallbacks to standard APIs when accessed from browsers, a fix is likely possible but hasn't been worked on yet.

Latest Comments

1 2 3 4 5 6 .. 45 Next › Last »

Zoddo commented on 2026-06-21 19:29 (UTC)

Well, fair, I'll remove it with the next upgrade.

DodoGTA commented on 2026-06-21 15:57 (UTC)

@Zoddo That wasn't my main concern with that script (the real issue is that script causes Discord to be closed when the package is upgraded)

Personally the only program which I've encountered that strictly needs to be closed/restarted after updating is Firefox (while the rest stay working with not much issues) which makes this case quite bizarre for me

Zoddo commented on 2026-06-21 13:02 (UTC)

@DodoGTA: I've had issues fixed by clearing the cache in the past (tbf, it may be due to dirty things I sometimes do while debugging the package).

I stumbled across the postinst script again while working on updating the package, and I thought there was no harm in including it (at best, it can fix issues for other people; at worst, it's just useless).

DodoGTA commented on 2026-06-21 11:50 (UTC)

Is there any real reason to include the postinst script when we're already DIYing Discord packaging anyway (and Arch Linux package doesn't even include it)?

Zoddo commented on 2026-06-21 10:35 (UTC) (edited on 2026-06-21 10:42 (UTC) by Zoddo)

This took more time than I wanted, but the package is now updated to 1:1.0.143-1, which supports the new Discord distribution/bootstrap mechanism introduced in May.

Notable changes:
  • Modules are now built directly in the package, instead of being dynamically downloaded by discord in ~/.config/discord/
  • Krisp is now patched directly at build time (feel free to remove ~/.config/discord.conf if you used it to enable Krisp, as this file is not used anymore)

These changes represent a large diff since 1:0.0.135-1, and they may be complex to review. To help you review the changes, I've tried to split them in multiple commits.
Feel free to review individual commits to better understand the changes:

git show 47c13dd..HEAD

(or using cgit's web interface)

ninetailedtori commented on 2026-05-11 02:56 (UTC) (edited on 2026-05-11 02:57 (UTC) by ninetailedtori)

This was my attempt at the patch, for discord-canary-electron-bin. The only thing to change rn should just be the resourcesPath assignment, at least, for canary. If it's different on stable, I do apologise for butting in :3

Zoddo commented on 2026-05-04 19:59 (UTC)

@Cuddlebug: Please check the wiki while I update the PKGBUILD (it's not a simple pkgver bump for this version).

https://wiki.archlinux.org/title/Discord#Discord_asks_for_an_update_not_yet_available_in_the_repository

Cuddlebug commented on 2026-05-04 19:52 (UTC)

Will no longer launch until updated 1.0.136 is current version.

Zoddo commented on 2026-05-02 15:06 (UTC) (edited on 2026-05-02 15:10 (UTC) by Zoddo)

@remanifest: I cannot reproduce your issue with a brand new user. Discord downloads its modules successfully on the first launch.

Note that if you get an empty versions.json it's likely because you forgot the query params (they are built through app.asar/app_bootstrap/moduleUpdater.js). The full URL is: https://discord.com/api/modules/stable/versions.json?platform=linux&host_version=0.0.135

remanifest commented on 2026-05-01 20:37 (UTC)

Discord 0.0.135 fails on fresh installs with Cannot find module 'discord_desktop_core'. After some digging, I traced it to the fact that Discord's versions.json API now returns {}, so the bootstrap can't determine which module versions to download, and skips the download entirely.

The fix is a one-line patch to moduleUpdater.js in build(), injecting fallback versions when the API response is empty. With this in place, Discord downloads all six modules to ~/.config/discord/0.0.135/modules/ on the first launch of a new version, just as it always did.

All six modules are currently at version 1. The fallback only fires when versions.json returns {}. If it ever returns real data again, that will take precedence.

I saw the paths.js regex fix that @stick posted below, which handles path_1.default alongside _path. That's a valid fix for a variable rename in 0.0.135, but patching moduleUpdater.js to restore the self-download behavior is more durable. It keeps modules in the user's config directory where Discord expects them, avoids bundling anything extra in the package, and doesn't require PKGBUILD changes when/if module versions bump in the future.

--- a/PKGBUILD
+++ b/PKGBUILD
@@ -61,6 +61,10 @@
     -e "s|^Name=\${appName}$|Name=${_pkgname^}|" \
     -e "s|^Icon=\${iconPath}$|Icon=${_pkgname}|" \
     resources/app/app_bootstrap/autoStart/linux.js
+  # versions.json returns {} on 0.0.135, so Discord can no longer determine which modules to download. A simple sed operation on moduleUpdater.js fixes that for us.
+  sed -i '/remoteModuleVersions = JSON\.parse(response\.body\.toString/a\    if (!Object.keys(remoteModuleVersions).length) remoteModuleVersions = {"discord_desktop_core":1,"discord_erlpack":1,"discord_spellcheck":1,"discord_utils":1,"discord_voice":1,"discord_zstd":1};' \
+    resources/app/app_bootstrap/moduleUpdater.js
   asar p resources/app resources/app.asar
   rm -rf resources/app
 }