Can't find my executables in my `PATH`

Emacs can’t find any of the external programs that I am certain are installed on my system and in my PATH. e.g. Programs like ripgrep, xclip, or cargo. Emacs consistently throws an error like:

(file-missing "Searching for program" "No such file or directory" "xclip")

How do I get Emacs to find these programs, or see my PATH?

1 Like

TL;DR Run bin/doom env to regenerate your envvars file, then restart Emacs.

:warning: If your envvar file already exists, no need to call doom env directly. doom sync will regenerate it too.


The most common causes for PATH issues in Doom are:

  1. Your shell configuration doesn’t configure PATH correctly. If running which <PROGRAM> in your shell doesn’t produce the path you expect (or no path at all) then this is likely the case.

    # add something like this to ~/.zshenv or ~/.bash_profile
    export PATH="/directory/my/executable/is/in:$PATH"
    
  2. Your app launcher (rofi, albert, docky, dmenu, sxhkd, etc) is launching Emacs with the wrong shell, either because it defaults to a different shell from the one you use or the app launcher itself inherits the wrong environment because it was launched from the wrong shell.

  3. You’re a MacOS user launching Emacs from an Emacs.app bundle. MacOS launches these apps from an isolated environment.

Solutions

Issues #1 and #3 are solved by properly configuring your shell and running doom env. This generates an envvar file by dumping your shell environment into a file that Doom will load at startup. Run doom help env for details on how it works.

For issue #2, you’ll need to investigate your launcher. Open an issue in #support or hop on our Discord to ask about it.

2 Likes