zed
zed copied to clipboard
System wide config file for Zed: e.g. /etc/zed/
Summary
Add support for system wide zed settings: e.g. /etc/zed/settings.json
Description
I'm partly involved in managing computer rooms at a high school. These computers are shared for the students, but they login with their own user account.
At the moment, I have no way to pre-configure Zed with a system level configuration file which already sets some of the required settings for specific languages.
Example: these students learn Ansible, so I want to pre-configure Zed with the necessary Ansible settings.
Hey @ringods! 👋
Firstly, I wanted to mention that it is really cool to hear about Zed being used in a classroom setting. What you are asking makes sense - you want to be able to define some settings that each instance of Zed inherits, regardless of the profile being used on that computer. I'll bring this up in our next all hands meeting.
Going forward, we would love to hear what other sort of friction points you run into, while running Zed in the classroom.
Also, I'm going to tag in @mikayla-maki, as she has had a lot of thoughts about things revolving around using Zed in academia.
Hi @ringods, as Joseph said very glad to hear about people using Zed in the classroom! Do you have more information on the tech setup you have in your classroom? And do you have an example of other tools that knock this specific need out of the park, that we could emulate?
I have a few different ideas for how we could make this work for you. If you'd like to chat synchronously, I'm usually available on our discord: https://discord.gg/uXkyprtD or you could schedule some time that works for you via my Calendly: https://calendly.com/mikayla-zed/hack-on-zed
Thank you for reaching out!
@mikayla-maki my go-to application for what you could emulate is Ansible:
https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file
They merge config from the project folder, the user's home folder and then a global file from the /etc directory.
@ringods Thinking about the implementation of this. Are you looking to just have a set of good defaults (e.g. language server configs, pathing, proxy settings, etc) which could be overridden by Zed user or project settings.
Or are there things that you need to hard-disable -- e.g. "inline_completions": { "enabled": false} such that it can never be re-enabled later.
It sounds like the former would likely suit your needs, but just wanted to explicitly ask.
@notpeter here is how I see it: project > user > system
- if I have system level defaults, the user level defaults will override them.
- if I have user level defaults, the project level defaults will override them.
I think this describes the former situation, right?
@ringods #30444 was just merged, which might (soon) give you the configuration options you requested I believe?
https://github.com/zed-industries/zed/pull/30444 adds support for a a ~/.config/global_settings.json, I would also like to support /etc/zed/settings.json so that it can read-only on multi-user systems.