Compare commits

..

2 Commits

Author SHA1 Message Date
79e72505f8 Add Zed remote development setup with vim keybindings 2026-02-04 10:17:34 +00:00
21c8f95f86 flake
Signed-off-by: Christoph Schmatzler <christoph@schmatzler.com>
2026-02-04 10:13:45 +00:00
6 changed files with 154 additions and 27 deletions

54
flake.lock generated
View File

@@ -85,11 +85,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768764703, "lastModified": 1770184146,
"narHash": "sha256-5ulSDyOG1U+1sJhkJHYsUOWEsmtLl97O0NTVMvgIVyc=", "narHash": "sha256-DsqnN6LvXmohTRaal7tVZO/AKBuZ02kPBiZKSU4qa/k=",
"owner": "LnL7", "owner": "LnL7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "0fc4e7ac670a0ed874abacf73c4b072a6a58064b", "rev": "0d7874ef7e3ba02d58bebb871e6e29da36fa1b37",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -254,11 +254,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769978395, "lastModified": 1770164260,
"narHash": "sha256-gj1yP3spUb1vGtaF5qPhshd2j0cg4xf51pklDsIm19Q=", "narHash": "sha256-mQgOAYWlVJyuyXjZN6yxqXWyODvQI5P/UZUCU7IOuYo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "984708c34d3495a518e6ab6b8633469bbca2f77a", "rev": "4fda26500b4539e0a1e3afba9f0e1616bdad4f85",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -270,11 +270,11 @@
"homebrew-cask": { "homebrew-cask": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1770112946, "lastModified": 1770199379,
"narHash": "sha256-8gCyjhZBtUs62pSiOYuxS+miN6L2s/LfYDOEpnF23ps=", "narHash": "sha256-f8aGE7wRVWlVw9jzLd/S3r6eNeqkdjcAMyxkzfSnpxw=",
"owner": "homebrew", "owner": "homebrew",
"repo": "homebrew-cask", "repo": "homebrew-cask",
"rev": "6d02b8ee73875ed7e69ae51c60409fb91f953ad5", "rev": "d2f6a40d7eb797c0bcdbd23f0a9447bdccbb269c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -286,11 +286,11 @@
"homebrew-core": { "homebrew-core": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1770099652, "lastModified": 1770199718,
"narHash": "sha256-gtANbwLFne+aup4+4RSZOEm8pPeAZlz1Dt1FbyFDYWQ=", "narHash": "sha256-uTZTzWMhnAeUl7L5TV188BJX+vic+Se47L/gafVr9yY=",
"owner": "homebrew", "owner": "homebrew",
"repo": "homebrew-core", "repo": "homebrew-core",
"rev": "b0a05a81190f4751490c4e0e64be29626d5966d9", "rev": "19e1ae45d9a4d46e56b5019b82841664161bd8f8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -306,11 +306,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1770108229, "lastModified": 1770195497,
"narHash": "sha256-TBT3Ds5yqnMb3N+KkVDRGQ5UBGiqFHSeouBrPTaU1sE=", "narHash": "sha256-syhQFd0hYN35OE+xD8uSRcHuRqYNxDMJTQhSPl5jYIU=",
"owner": "numtide", "owner": "numtide",
"repo": "llm-agents.nix", "repo": "llm-agents.nix",
"rev": "1303625e7e1034ffd03a8d55176902da24cd9709", "rev": "0fc9de9ceca5a13d04e2c3a221a4032d5bc1020c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -382,11 +382,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1770015011, "lastModified": 1770141374,
"narHash": "sha256-7vUo0qWCl/rip+fzr6lcMlz9I0tN/8m7d5Bla/rS2kk=", "narHash": "sha256-yD4K/vRHPwXbJf5CK3JkptBA6nFWUKNX/jlFp2eKEQc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f08e6b11a5ed43637a8ac444dd44118bc7d273b9", "rev": "41965737c1797c1d83cfb0b644ed0840a6220bd1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -413,11 +413,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1770114159, "lastModified": 1770199293,
"narHash": "sha256-hjjp8mCW8UvzTzChehWGuur2tOzXgUkwIQDMjxFS4mU=", "narHash": "sha256-ER0IkMFDypL7OVPBa02VGJvo9Rtcf2hPS/WBA6jW5rc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9ebad5f3e55f92b20e6cbc3f4886790cf83675dd", "rev": "2fd7d394a72d6f4206b18bc0acb34ccbb5010e64",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -482,11 +482,11 @@
"nono": { "nono": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1770106053, "lastModified": 1770199929,
"narHash": "sha256-DIv9uM6ToNkwtIW6BRcg0Vhmxi1pMMptNmyqA6+1B+o=", "narHash": "sha256-L6X1mlJ80PHzufuBoA/suPS8Xj4sFLdggIiYmHqHjwc=",
"owner": "lukehinds", "owner": "lukehinds",
"repo": "nono", "repo": "nono",
"rev": "2060269257c655c9281138c117bcbbec45cf2e6d", "rev": "f92fcfdb52b442e0e6fbbf754079a10474065905",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -559,11 +559,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770110318, "lastModified": 1770145881,
"narHash": "sha256-NUVGVtYBTC96WhPh4Y3SVM7vf0o1z5W4uqRBn9v1pfo=", "narHash": "sha256-ktjWTq+D5MTXQcL9N6cDZXUf9kX8JBLLBLT0ZyOTSYY=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "f990b0a334e96d3ef9ca09d4bd92778b42fd84f9", "rev": "17eea6f3816ba6568b8c81db8a4e6ca438b30b7c",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -43,6 +43,7 @@
../../profiles/starship.nix ../../profiles/starship.nix
../../profiles/zk.nix ../../profiles/zk.nix
../../profiles/zoxide.nix ../../profiles/zoxide.nix
../../profiles/zed.nix
../../profiles/zsh.nix ../../profiles/zsh.nix
inputs.nixvim.homeModules.nixvim inputs.nixvim.homeModules.nixvim
]; ];

View File

@@ -42,6 +42,7 @@
../../profiles/starship.nix ../../profiles/starship.nix
../../profiles/zk.nix ../../profiles/zk.nix
../../profiles/zoxide.nix ../../profiles/zoxide.nix
../../profiles/zed.nix
../../profiles/zsh.nix ../../profiles/zsh.nix
inputs.nixvim.homeModules.nixvim inputs.nixvim.homeModules.nixvim
]; ];

View File

@@ -43,6 +43,7 @@
../../profiles/starship.nix ../../profiles/starship.nix
../../profiles/zk.nix ../../profiles/zk.nix
../../profiles/zoxide.nix ../../profiles/zoxide.nix
../../profiles/zed-server.nix
../../profiles/zsh.nix ../../profiles/zsh.nix
inputs.nixvim.homeModules.nixvim inputs.nixvim.homeModules.nixvim
]; ];

5
profiles/zed-server.nix Normal file
View File

@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
zed-editor
];
}

119
profiles/zed.nix Normal file
View File

@@ -0,0 +1,119 @@
{
pkgs,
lib,
user,
...
}: {
programs.zed-editor = {
enable = true;
extensions = [
"catppuccin"
"catppuccin-icons"
"nix"
"elixir"
"html"
"toml"
"sql"
"dockerfile"
"make"
"git-firefly"
];
userSettings = {
vim_mode = true;
ui_font_size = 16;
buffer_font_size = 16;
buffer_font_family = "TX-02";
theme = {
mode = "system";
light = "Catppuccin Latte";
dark = "Catppuccin Mocha";
};
icon_theme = "Catppuccin Latte";
tab_bar = {
show = false;
};
toolbar = {
breadcrumbs = false;
quick_actions = false;
selections_menu = false;
};
scrollbar = {
show = "never";
};
indent_guides = {
enabled = true;
coloring = "indent_aware";
};
inlay_hints = {
enabled = true;
};
project_panel = {
button = false;
};
outline_panel = {
button = false;
};
collaboration_panel = {
button = false;
};
notification_panel = {
button = false;
};
chat_panel = {
button = false;
};
assistant = {
enabled = false;
button = false;
};
features = {
edit_prediction_provider = "none";
};
ssh_connections = [
{
host = "tahani";
projects = [];
}
];
};
userKeymaps = [
{
context = "Editor && VimControl && !VimWaiting && !menu";
bindings = {
"space f f" = "file_finder::Toggle";
"space f g" = "pane::DeploySearch";
"space e" = "workspace::ToggleLeftDock";
"space b d" = "pane::CloseActiveItem";
"space b n" = "pane::ActivateNextItem";
"space b p" = "pane::ActivatePrevItem";
"space q" = "workspace::CloseWindow";
"space w v" = "pane::SplitRight";
"space w s" = "pane::SplitDown";
"ctrl-h" = ["workspace::ActivatePaneInDirection" "Left"];
"ctrl-l" = ["workspace::ActivatePaneInDirection" "Right"];
"ctrl-j" = ["workspace::ActivatePaneInDirection" "Down"];
"ctrl-k" = ["workspace::ActivatePaneInDirection" "Up"];
"g r" = "editor::FindAllReferences";
};
}
{
context = "Editor && vim_mode == insert";
bindings = {
"j k" = "vim::NormalBefore";
};
}
{
context = "ProjectPanel && not_editing";
bindings = {
"a" = "project_panel::NewFile";
"A" = "project_panel::NewDirectory";
"r" = "project_panel::Rename";
"d" = "project_panel::Delete";
"x" = "project_panel::Cut";
"y" = "project_panel::Copy";
"p" = "project_panel::Paste";
};
}
];
};
}