--- title: Discord and Spotify for Linux and xdg-mime date: 2019-05-05 04:26 author: Lynne categories: [Scripts, Technology] --- The bug ------- I've noticed that Discord for Linux takes a very, very long time to start up - sometimes in the order of hours. During this time, my laptop gets very hot. I eventually decided to look into this and found that several instances of `xdg-mime` were taking up 100% CPU. Killing them caused Discord to open instantly. Apparently this issue is present with Spotify too. This fix will work for both of them. You can fix this manually by killing the various `xdg-mime` processes every time you open Discord, but that's annoying. You can work around it permanently by creating a custom wrapper around `xdg-mime` and placing it somewhere in your `$PATH` with higher priority than `/usr/local/bin`, or wherever `xdg-mime` is on your system. In this guide, we'll use `/usr/local/bin`. The fix ------- Create a file called `xdg-mime` in `/usr/local/bin` by running `sudo nano /usr/local/bin/xdg-mime`. Paste this in the file: ``` {.wp-block-code} #!/usr/bin/sh if [[ "$@" == *"x-scheme-handler/discord"* ]] || [[ "$@" == *"x-scheme-handler/spotify"* ]]; then /usr/bin/true else /usr/bin/xdg-mime $@ fi ``` If `xdg-mime` isn't in `/usr/bin` on your machine (you can check where it is by running `which xdg-mime`), you'll need to edit that script to match its location. Save it with ctrl-o, then exit with ctrl-x. This should fix the problem. The explanation --------------- For whatever reason, Discord and Spotify have a lot of trouble registering themselves with `xdg-mime`. This causes them to hang for minutes or hours on startup. The workaround outlined above simply checks for what you're trying to do with xdg-mime, and if you're trying to modify the scheme handlers for Discord or Spotify - the process that causes these apps to hang - it carries on without doing anything. If you're doing anything else, it passes you through to the real `xdg-mime`.