<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Zed%2Fzh-cn</id>
	<title>Zed/zh-cn - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Zed%2Fzh-cn"/>
	<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Zed/zh-cn&amp;action=history"/>
	<updated>2026-08-07T04:05:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Zed/zh-cn&amp;diff=34268&amp;oldid=prev</id>
		<title>Tjswysqh: Created page with &quot;Zed&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Zed/zh-cn&amp;diff=34268&amp;oldid=prev"/>
		<updated>2026-08-07T00:30:49Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Zed&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{{infobox application&lt;br /&gt;
  |name=Zed&lt;br /&gt;
  |image=Zed_Editor_Logo.png&lt;br /&gt;
  |type=Source-code Editor&lt;br /&gt;
  |developer=Zed Industries&lt;br /&gt;
  |predecessor=Atom&lt;br /&gt;
  |status=Active&lt;br /&gt;
  |license=[https://www.gnu.org/licenses/agpl-3.0.html AGPL], [https://www.gnu.org/licenses/gpl-3.0.html GPL], [https://www.apache.org/licenses/LICENSE-2.0 Apache License]&lt;br /&gt;
  |os=Cross-platform (Linux, macOS, Windows)&lt;br /&gt;
  |platform=Desktop&lt;br /&gt;
  |programmingLanguage=Rust&lt;br /&gt;
  |website=[https://zed.dev zed.dev]&lt;br /&gt;
  |github=zed-industries/zed&lt;br /&gt;
  |bugTracker=[https://github.com/zed-industries/zed/issues GitHub Issues]&lt;br /&gt;
  |documentation=[https://zed.dev/docs Zed Documentation]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
[https://zed.dev Zed]&amp;lt;ref&amp;gt;Zed Industries, &amp;quot;Zed&amp;quot;, Official Website, Accessed October 2025. https://zed.dev&amp;lt;/ref&amp;gt; is a collaborative, GPU-accelerated text editor developed by Zed Industries. It combines fast local editing with real-time multiplayer features and ships with batteries-included tooling for popular programming languages.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The editor provides native builds for Linux, including Nixpkgs packages and a reproducible flake. Hardware acceleration requires a GPU with Vulkan support; systems without Vulkan can fall back to emulation via tools such as [https://github.com/nix-community/nixGL nixGL].&amp;lt;ref&amp;gt;Zed Industries, &amp;quot;Linux&amp;quot;, Zed Documentation, Accessed October 2025. https://zed.dev/docs/linux&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
{{Nixpkg|pkgs/by-name/ze/zed-editor|zed-editor}} is available in Nixpkgs since 24.11; However, Zed provides [https://github.com/zed-industries/zed/blob/main/flake.nix an official nix flake] which might be useful if you need features that have not yet reached unstable Nixpkgs.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
== Installation ==&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The package installs both desktop launchers and a CLI entry point aliased to &amp;lt;code&amp;gt;zeditor&amp;lt;/code&amp;gt;, mirroring the upstream binary name&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
=== Imperative ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
==== Zed&amp;#039;s Flake ====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
nix run github:zed-industries/zed&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Nixpkgs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
nix run nixpkgs#zed-editor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
=== Declarative ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NixOS ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
environment.systemPackages = [&lt;br /&gt;
  pkgs.zed-editor&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Evaluate}}&lt;br /&gt;
==== Home Manager ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
home.packages = [&lt;br /&gt;
  pkgs.zed-editor&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
home-manager switch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
==== Zed&amp;#039;s Flake ====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  inputs.zed.url = &amp;quot;github:zed-industries/zed&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  outputs =&lt;br /&gt;
    {&lt;br /&gt;
      self,&lt;br /&gt;
      nixpkgs,&lt;br /&gt;
      zed,&lt;br /&gt;
      ...&lt;br /&gt;
    }@inputs:&lt;br /&gt;
    let&lt;br /&gt;
      system = &amp;quot;x86_64-linux&amp;quot;;&lt;br /&gt;
      pkgs = import nixpkgs { inherit system; };&lt;br /&gt;
    in&lt;br /&gt;
    {&lt;br /&gt;
      packages.${system}.zed-latest = zed.packages.${system}.default;&lt;br /&gt;
    };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Build the flake package with &amp;lt;code&amp;gt;nix build .#zed-latest&amp;lt;/code&amp;gt; or expose it in your configuration with the appropriate overlay.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
{{Warning|Zed requires hardware-accelerated Vulkan. On systems without supported drivers, use &amp;lt;code&amp;gt;nixGL&amp;lt;/code&amp;gt; or home-manager&amp;#039;s &amp;lt;code&amp;gt;nixGL.vulkan.enable {{=}} true;&amp;lt;/code&amp;gt; to provide the necessary libraries.&lt;br /&gt;
Providing Vulkan through &amp;lt;code&amp;gt;nixGL&amp;lt;/code&amp;gt; can be more consistent than relying on host distribution packages, especially on non-NixOS systems where Wayland and X11 stacks differ in their Vulkan capabilities.}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Zed stores its configuration in JSON files under &amp;lt;code&amp;gt;~/.config/zed&amp;lt;/code&amp;gt;. Home Manager can manage these settings declaratively.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
==== Basic ====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
programs.zed-editor = {&lt;br /&gt;
  enable = true;&lt;br /&gt;
  extensions = [ &amp;quot;nix&amp;quot; &amp;quot;toml&amp;quot; &amp;quot;rust&amp;quot; ];&lt;br /&gt;
  userSettings = {&lt;br /&gt;
    theme = {&lt;br /&gt;
      mode = &amp;quot;system&amp;quot;;&lt;br /&gt;
      dark = &amp;quot;One Dark&amp;quot;;&lt;br /&gt;
      light = &amp;quot;One Light&amp;quot;;&lt;br /&gt;
    };&lt;br /&gt;
    hour_format = &amp;quot;hour24&amp;quot;;&lt;br /&gt;
    vim_mode = true;&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The configuration above enables Zed via Home Manager, installs a small set of extensions, and synchronises the theme with the desktop appearance.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
==== Advanced ====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
programs.zed-editor = {&lt;br /&gt;
  enable = true;&lt;br /&gt;
&lt;br /&gt;
  # This populates the userSettings &amp;quot;auto_install_extensions&amp;quot;&lt;br /&gt;
  extensions = [ &amp;quot;nix&amp;quot; &amp;quot;toml&amp;quot; &amp;quot;elixir&amp;quot; &amp;quot;make&amp;quot; ];&lt;br /&gt;
&lt;br /&gt;
  # Everything inside of these brackets are Zed options&lt;br /&gt;
  userSettings = {&lt;br /&gt;
    assistant = {&lt;br /&gt;
      enabled = true;&lt;br /&gt;
      version = &amp;quot;2&amp;quot;;&lt;br /&gt;
      default_open_ai_model = null;&lt;br /&gt;
&lt;br /&gt;
      # Provider options:&lt;br /&gt;
      # - zed.dev models (claude-3-5-sonnet-latest) requires GitHub connected&lt;br /&gt;
      # - anthropic models (claude-3-5-sonnet-latest, claude-3-haiku-latest, claude-3-opus-latest) requires API_KEY&lt;br /&gt;
      # - copilot_chat models (gpt-4o, gpt-4, gpt-3.5-turbo, o1-preview) requires GitHub connected&lt;br /&gt;
      default_model = {&lt;br /&gt;
        provider = &amp;quot;zed.dev&amp;quot;;&lt;br /&gt;
        model = &amp;quot;claude-3-5-sonnet-latest&amp;quot;;&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      # inline_alternatives = [&lt;br /&gt;
      #   {&lt;br /&gt;
      #     provider = &amp;quot;copilot_chat&amp;quot;;&lt;br /&gt;
      #     model = &amp;quot;gpt-3.5-turbo&amp;quot;;&lt;br /&gt;
      #   }&lt;br /&gt;
      # ];&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    node = {&lt;br /&gt;
      path = lib.getExe pkgs.nodejs;&lt;br /&gt;
      npm_path = lib.getExe&amp;#039; pkgs.nodejs &amp;quot;npm&amp;quot;;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    hour_format = &amp;quot;hour24&amp;quot;;&lt;br /&gt;
    auto_update = false;&lt;br /&gt;
&lt;br /&gt;
    terminal = {&lt;br /&gt;
      alternate_scroll = &amp;quot;off&amp;quot;;&lt;br /&gt;
      blinking = &amp;quot;off&amp;quot;;&lt;br /&gt;
      copy_on_select = false;&lt;br /&gt;
      dock = &amp;quot;bottom&amp;quot;;&lt;br /&gt;
      detect_venv = {&lt;br /&gt;
        on = {&lt;br /&gt;
          directories = [ &amp;quot;.env&amp;quot; &amp;quot;env&amp;quot; &amp;quot;.venv&amp;quot; &amp;quot;venv&amp;quot; ];&lt;br /&gt;
          activate_script = &amp;quot;default&amp;quot;;&lt;br /&gt;
        };&lt;br /&gt;
      };&lt;br /&gt;
      env = {&lt;br /&gt;
        TERM = &amp;quot;alacritty&amp;quot;;&lt;br /&gt;
      };&lt;br /&gt;
      font_family = &amp;quot;FiraCode Nerd Font&amp;quot;;&lt;br /&gt;
      font_features = null;&lt;br /&gt;
      font_size = null;&lt;br /&gt;
      line_height = &amp;quot;comfortable&amp;quot;;&lt;br /&gt;
      option_as_meta = false;&lt;br /&gt;
      button = false;&lt;br /&gt;
      shell = &amp;quot;system&amp;quot;;&lt;br /&gt;
      # shell = {&lt;br /&gt;
      #   program = &amp;quot;zsh&amp;quot;;&lt;br /&gt;
      # };&lt;br /&gt;
      toolbar = {&lt;br /&gt;
        title = true;&lt;br /&gt;
      };&lt;br /&gt;
      working_directory = &amp;quot;current_project_directory&amp;quot;;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    lsp = {&lt;br /&gt;
      rust-analyzer = {&lt;br /&gt;
        binary = {&lt;br /&gt;
          # path = lib.getExe pkgs.rust-analyzer;&lt;br /&gt;
          path_lookup = true;&lt;br /&gt;
        };&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      nix = {&lt;br /&gt;
        binary = {&lt;br /&gt;
          path_lookup = true;&lt;br /&gt;
        };&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      elixir-ls = {&lt;br /&gt;
        binary = {&lt;br /&gt;
          path_lookup = true;&lt;br /&gt;
        };&lt;br /&gt;
        settings = {&lt;br /&gt;
          dialyzerEnabled = true;&lt;br /&gt;
        };&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    languages = {&lt;br /&gt;
      &amp;quot;Elixir&amp;quot; = {&lt;br /&gt;
        language_servers = [ &amp;quot;!lexical&amp;quot; &amp;quot;elixir-ls&amp;quot; &amp;quot;!next-ls&amp;quot; ];&lt;br /&gt;
        format_on_save = {&lt;br /&gt;
          external = {&lt;br /&gt;
            command = &amp;quot;mix&amp;quot;;&lt;br /&gt;
            arguments = [ &amp;quot;format&amp;quot; &amp;quot;--stdin-filename&amp;quot; &amp;quot;{buffer_path}&amp;quot; &amp;quot;-&amp;quot; ];&lt;br /&gt;
          };&lt;br /&gt;
        };&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      &amp;quot;HEEX&amp;quot; = {&lt;br /&gt;
        language_servers = [ &amp;quot;!lexical&amp;quot; &amp;quot;elixir-ls&amp;quot; &amp;quot;!next-ls&amp;quot; ];&lt;br /&gt;
        format_on_save = {&lt;br /&gt;
          external = {&lt;br /&gt;
            command = &amp;quot;mix&amp;quot;;&lt;br /&gt;
            arguments = [ &amp;quot;format&amp;quot; &amp;quot;--stdin-filename&amp;quot; &amp;quot;{buffer_path}&amp;quot; &amp;quot;-&amp;quot; ];&lt;br /&gt;
          };&lt;br /&gt;
        };&lt;br /&gt;
      };&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    vim_mode = true;&lt;br /&gt;
&lt;br /&gt;
    # Tell Zed to use direnv and direnv can use a flake.nix environment&lt;br /&gt;
    load_direnv = &amp;quot;shell_hook&amp;quot;;&lt;br /&gt;
    base_keymap = &amp;quot;VSCode&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    theme = {&lt;br /&gt;
      mode = &amp;quot;system&amp;quot;;&lt;br /&gt;
      light = &amp;quot;One Light&amp;quot;;&lt;br /&gt;
      dark = &amp;quot;One Dark&amp;quot;;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    show_whitespaces = &amp;quot;all&amp;quot;;&lt;br /&gt;
    ui_font_size = 16;&lt;br /&gt;
    buffer_font_size = 16;&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
This example adds language servers to the FHS sandbox, enables the bundled assistant, configures the terminal, and ensures remote server binaries are provided declaratively.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;userSettings&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;userKeyMaps&amp;lt;/code&amp;gt; options translate directly into JSON. The &amp;lt;code&amp;gt;extraPackages&amp;lt;/code&amp;gt; option includes additional Nixpkgs in the FHS environment, useful for LSP servers (e.g., &amp;lt;code&amp;gt;pkgs.nixd&amp;lt;/code&amp;gt;) or optional tools (e.g., &amp;lt;code&amp;gt;pkgs.shellcheck&amp;lt;/code&amp;gt; for the Basher LSP).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Home Manager renders &amp;lt;code&amp;gt;settings.json&amp;lt;/code&amp;gt; as read-only, which prevents Zed&amp;#039;s GUI from saving most preference changes, including AI provider selection. Plan to manage long-term settings declaratively or temporarily disable the module when editing interactively.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Only the initial extension list can be defined declaratively; additional extensions installed through the GUI are stored within Zed&amp;#039;s writable data directories and do not appear in &amp;lt;code&amp;gt;userSettings&amp;lt;/code&amp;gt;. This follows a similar model to VSCode, where extensions require external binaries downloaded at runtime.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LSP support ==&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Zed downloads LSP servers into &amp;lt;code&amp;gt;~/.local/share/zed/languages/&amp;lt;/code&amp;gt;. These binaries most likely will not work because of linking issues. You can workaround this with the following methods or bring your own LSP servers.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Check &amp;lt;strong&amp;gt;LSP Logs → Server Info&amp;lt;/strong&amp;gt; to confirm which binaries are running.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Nix-ld (recommended) ====&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Enable [[FAQ#I&amp;#039;ve downloaded a binary, but I can&amp;#039;t run it, what can I do?|&amp;lt;code&amp;gt;programs.nix-ld&amp;lt;/code&amp;gt;]] so language servers downloaded by Zed can resolve dynamic libraries without wrapping and work out of the box.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FHS wrapper ====&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;pkgs.zed-editor.fhsWithPackages&amp;lt;/code&amp;gt; to extend the FHS environment with additional system libraries when a language server requires them.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
pkgs.zed-editor.fhsWithPackages(&lt;br /&gt;
  pkgs: with pkgs; [&lt;br /&gt;
    openssl&lt;br /&gt;
    zlib&lt;br /&gt;
  ]&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Remember that language servers started inside the wrapper do not inherit tools and libraries from nix shell. This is usually not desired because LSP may need project-level dependencies provided by nix-shell to compile and analyze the code.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Bring your own LSP servers ====&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Newer versions of Zed can detect LSP servers installed in &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; and prefer local versions over automatically downloaded ones. Install LSP servers globally or provide them through nix shell.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Nixpkgs versions of tools may be required for development on NixOS, especially for the C/C++ ecosystem. Check &amp;lt;strong&amp;gt;LSP Logs → Server Info&amp;lt;/strong&amp;gt; to see which binaries are running.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
If automatic detection doesn&amp;#039;t work, specify the path manually in your Zed configuration:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;lsp&amp;quot;: {&lt;br /&gt;
    &amp;quot;rust-analyzer&amp;quot;: {&lt;br /&gt;
      &amp;quot;binary&amp;quot;: {&lt;br /&gt;
        &amp;quot;path&amp;quot;: &amp;quot;/run/current-system/sw/bin/rust-analyzer&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Adjust the path for each language server you manage. The example above assumes rust-analyzer is installed in your system profile.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remote server ==&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Zed uploads a versioned remote server binary to &amp;lt;code&amp;gt;~/.zed_server&amp;lt;/code&amp;gt; on the target host. The Nixpkgs package exposes the matching binary via the &amp;lt;code&amp;gt;remote_server&amp;lt;/code&amp;gt; output.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
When you connect to a remote machine, the client either downloads a matching server binary from upstream or pushes a local copy if &amp;lt;code&amp;gt;&amp;quot;upload_binary_over_ssh&amp;quot;: true&amp;lt;/code&amp;gt; is enabled. Connections fail if the versions diverge.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
home.file.&amp;quot;.zed_server&amp;quot; = {&lt;br /&gt;
  source = &amp;quot;${pkgs.zed-editor.remote_server}/bin&amp;quot;;&lt;br /&gt;
  recursive = true;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;recursive = true;&amp;lt;/code&amp;gt; setting keeps the directory writable while symlinking individual binaries, allowing Zed to add new versions when needed. This is necessary because the &amp;lt;code&amp;gt;~/.zed_server&amp;lt;/code&amp;gt; folder is also used when external clients connect to the current system as a remote.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Alternatively, use Home Manager&amp;#039;s built-in option for simpler setup:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;programs.zed-editor = {&lt;br /&gt;
  enable = true;&lt;br /&gt;
  installRemoteServer = true;&lt;br /&gt;
};&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
To restrict remote clients to a specific server version, set &amp;lt;code&amp;gt;recursive = false;&amp;lt;/code&amp;gt; to make the entire folder read-only. Zed refuses to connect if it cannot provision the required binary, so document the restriction for collaborators.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
==== Vulkan diagnostics ====&lt;br /&gt;
{{code|lang=bash|line=no|1=$ vulkaninfo --summary}}&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Run the command above to check your Vulkan support before launching Zed. Install &amp;lt;code&amp;gt;vulkan-tools&amp;lt;/code&amp;gt; if the command is not available. On non-NixOS systems, you may need to wrap Zed with &amp;lt;code&amp;gt;nixGLVulkan&amp;lt;/code&amp;gt; from the nixGL package.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Preinstall extensions ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;extensions&amp;quot;: [&lt;br /&gt;
    &amp;quot;nix&amp;quot;,&lt;br /&gt;
    &amp;quot;toml&amp;quot;,&lt;br /&gt;
    &amp;quot;elixir&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Declaratively listing extensions ensures they are installed automatically on new systems while still allowing additional extensions to be added interactively.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Synchronise settings across machines ====&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Store the entire &amp;lt;code&amp;gt;~/.config/zed&amp;lt;/code&amp;gt; directory in a version-controlled dotfiles repo or manage it with Home Manager to keep settings consistent across hosts.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
==== Zed fails to start without Vulkan ====&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
If the GUI refuses to launch, confirm that &amp;lt;code&amp;gt;vulkan-tools&amp;lt;/code&amp;gt; reports a working ICD. Use &amp;lt;code&amp;gt;nixGL&amp;lt;/code&amp;gt; or vendor packages that supply Vulkan drivers for your GPU.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remote collaboration disconnects ====&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Ensure the remote server binary matches the client version. Re-run &amp;lt;code&amp;gt;home-manager switch&amp;lt;/code&amp;gt; or update the symlink in &amp;lt;code&amp;gt;~/.zed_server&amp;lt;/code&amp;gt; if the versions diverge after an update.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Language server missing binaries ====&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
When Zed reports missing tools, add the required executables to &amp;lt;code&amp;gt;programs.zed-editor.extraPackages&amp;lt;/code&amp;gt; or wrap the server using &amp;lt;code&amp;gt;pkgs.writeShellApplication&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* &amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
[[Home Manager]] – Manage Zed configuration declaratively&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
[[Graphics#Vulkan]] – Set up Vulkan on NixOS systems&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
[https://search.nixos.org/options?query=zed-editor NixOS options search for Zed]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Text Editor]]&lt;/div&gt;</summary>
		<author><name>Tjswysqh</name></author>
	</entry>
</feed>