Commit 28a2dbd
Changed files (4)
modules
dev
zed
modules/dev/zed/languages/nix.nix
@@ -0,0 +1,10 @@
+{
+ flake.modules.homeManager.dev-zed = _: {
+ programs.zed-editor.extensions = ["nix"];
+
+ programs.zed-editor.userSettings = {
+ languages.Nix.language_servers = ["nixd" "!nil"];
+ lsp.nixd.settings.formatting.command = ["alejandra"];
+ };
+ };
+}
modules/dev/zed/default.nix
@@ -0,0 +1,35 @@
+{
+ flake.modules.homeManager.dev-zed = _: {
+ programs.zed-editor = {
+ enable = true;
+ extensions = [
+ # Appearance
+ "material-icon-theme"
+
+ # No specific config languages
+ "just"
+ "latex"
+ "lua"
+ "marksman"
+ "mdx"
+ "toml"
+ "typst"
+ ];
+ userSettings = {
+ # Appearance
+ relative_line_numbers = true;
+ icon_theme = "Material Icon Theme";
+ # Privacy
+ telemetry = {
+ diagnostics = false;
+ metrics = false;
+ };
+ # Functionality
+ terminal = {
+ working_directory = "current_project_directory";
+ shell.program = "fish";
+ };
+ };
+ };
+ };
+}
modules/dev/zed/keymap.nix
@@ -0,0 +1,32 @@
+{
+ flake.modules.homeManager.dev-zed = _: {
+ programs.zed-editor = {
+ userSettings.helix_mode = true;
+
+ userKeymaps = [
+ {
+ context = "((vim_mode == helix_normal || vim_mode == helix_select) && !menu)";
+ bindings = {
+ # Zed's Helix mode missing keybindings that I frequently used in Helix
+ "alt-o" = "vim::SelectLargerSyntaxNode";
+ "alt-i" = "vim::SelectSmallerSyntaxNode";
+ "space e" = "project_panel::ToggleFocus";
+ "space g" = "git_panel::ToggleFocus";
+ };
+ }
+ {
+ context = "ProjectPanel && not_editing";
+ bindings = {
+ # I prefered yazi's default keybinding
+ "a" = "project_panel::NewFile";
+ "d" = "project_panel::Delete";
+ "y" = "project_panel::Copy";
+ "x" = "project_panel::Cut";
+ "p" = "project_panel::Paste";
+ "r" = "project_panel::Rename";
+ };
+ }
+ ];
+ };
+ };
+}
modules/dev/editors.nix
@@ -9,6 +9,7 @@
imports = with config.flake.modules.homeManager; [
dev-helix
dev-vscode
+ dev-zed
];
xdg.mimeApps.defaultApplications = let