If you are using `amdvlk` you may find that zed only opens when run with `sudo $(which zed)`. To fix this, remove the `amdvlk` and `lib32-amdvlk` packages and install mesa/vulkan instead. ([#14141](https://github.com/zed-industries/zed/issues/14141)).
For more information, the [Arch guide to Vulkan](https://wiki.archlinux.org/title/Vulkan) has some good steps that translate well to most distributions.
If Vulkan is configured correctly, and Zed is still not working for you, please [file an issue](https://github.com/zed-industries/zed) with as much information as possible.
### I can't open any files
### Clicking links isn't working
These features are provided by XDG desktop portals, specifically:
- `org.freedesktop.portal.FileChooser`
- `org.freedesktop.portal.OpenURI`
Some window managers, such as `Hyprland`, don't provide a file picker by default. See [this list](https://wiki.archlinux.org/title/XDG_Desktop_Portal#List_of_backends_and_interfaces) as a starting point for alternatives.
### Zed isn't remembering my API keys
### Zed isn't remembering my login
These feature also requires XDG desktop portals, specifically:
- `org.freedesktop.portal.Secret` or
- `org.freedesktop.Secrets`
Zed needs a place to securely store secrets such as your Zed login cookie or your OpenAI API Keys and we use a system provided keychain to do this. Examples of packages that provide this are `gnome-keyring`, `KWallet` and `keepassxc` among others.
### Could not start inotify
Zed relies on inotify to watch your filesystem for changes. If you cannot start inotify then Zed will not work reliably.
If you are seeing "too many open files" then first try `sysctl fs.inotify`.
- You should see that max_user_instances is 128 or higher (you can change the limit with `sudo sysctl fs.inotify.max_user_instances=1024`). Zed needs only 1 inotify instance.
- You should see that `max_user_watches` is 8000 or higher (you can change the limit with `sudo sysctl fs.inotify.max_user_watches=64000`). Zed needs one watch per directory in all your open projects + one per git repository + a handful more for settings, themes, keymaps, extensions.
It is also possible that you are running out of file descriptors. You can check the limits with `ulimit` and update them by editing `/etc/security/limits.conf`.
### No sound or wrong output device
If you're not hearing any sound in Zed or the audio is routed to the wrong device, it could be due to a mismatch between audio systems. Zed relies on ALSA, while your system may be using PipeWire or PulseAudio. To resolve this, you need to configure ALSA to route audio through PipeWire/PulseAudio.
If your system uses PipeWire:
1. **Install the PipeWire ALSA plugin**
On Debian-based systems, run:
```bash
sudo apt install pipewire-alsa
```
2. **Configure ALSA to use PipeWire**
Add the following configuration to your ALSA settings file. You can use either `~/.asoundrc` (user-level) or `/etc/asound.conf` (system-wide):
```bash
pcm.!default {
type pipewire
}
ctl.!default {
type pipewire
}
```
3. **Restart your system**