feat: zed FHS

Signed-off-by: jolheiser <git@jolheiser.com>
homepage
jolheiser 2024-08-19 10:40:24 -05:00
parent 21c9bef9ae
commit 43519a2400
No known key found for this signature in database
1 changed files with 109 additions and 20 deletions

View File

@ -1,7 +1,15 @@
{ pkgs, ... }: { pkgs, ... }:
let
zed-fhs = pkgs.buildFHSUserEnv {
name = "zed";
targetPkgs = pkgs: [ pkgs.zed-editor ];
runScript = "zed";
};
in
{ {
home.packages = [ pkgs.zed-editor ]; home.packages = [ zed-fhs ];
xdg.configFile."zed/settings.json".text = builtins.toJSON { xdg.configFile = {
"zed/settings.json".text = builtins.toJSON {
buffer_font_family = "Monaspace Neon"; buffer_font_family = "Monaspace Neon";
buffer_font_size = 16; buffer_font_size = 16;
soft_wrap = "editor_width"; soft_wrap = "editor_width";
@ -17,10 +25,91 @@
}; };
theme = "Catppuccin Mocha"; theme = "Catppuccin Mocha";
ui_font_size = 16; ui_font_size = 16;
vim_mode = false; vim_mode = true;
relative_line_numbers = true;
vim = {
use_system_clipboard = "always";
use_multiline_find = true;
};
tab_bar.show = false;
toolbar = {
breadcrumbs = true;
quick_actions = false;
};
assistant = { assistant = {
version = "1"; version = "1";
provider.name = "anthropic"; provider.name = "anthropic";
}; };
}; };
"zed/keymap.json".text =
let
leader = "space";
in
builtins.toJSON [
{
"context" = "Dock || Terminal || Editor";
"bindings" = {
"ctrl-h" = [
"workspace::ActivatePaneInDirection"
"Left"
];
"ctrl-l" = [
"workspace::ActivatePaneInDirection"
"Right"
];
"ctrl-k" = [
"workspace::ActivatePaneInDirection"
"Up"
];
"ctrl-j" = [
"workspace::ActivatePaneInDirection"
"Down"
];
};
}
{
"context" = "Editor && VimControl && !VimWaiting && !menu";
"bindings" = {
"${leader} b" = "editor::ToggleGitBlame";
"${leader} k" = "editor::Hover";
"${leader} a" = "editor::ToggleCodeActions";
"${leader} l f" = "editor::Format";
"${leader} d" = "diagnostics::Deploy";
"${leader} f" = "file_finder::Toggle";
"${leader} o" = "tab_switcher::Toggle";
"${leader} e" = "workspace::ToggleLeftDock";
"${leader} /" = "workspace::NewSearch";
"n" = "search::SelectNextMatch";
"shift-n" = "search::SelectPrevMatch";
"${leader} t" = "workspace::NewCenterTerminal";
"${leader} c" = "editor::ToggleComments";
"${leader} w" = "workspace::Save";
};
}
{
"context" = "Editor && vim_mode == visual && !VimWaiting && !VimObject";
"bindings" = {
"shift-j" = "editor::MoveLineDown";
"shift-k" = "editor::MoveLineUp";
};
}
{
"context" = "Workspace";
"bindings" = {
"ctrl-z" = "workspace::ToggleZoom";
"cmd-k" = [
"projects::OpenRecent"
{ "create_new_window" = false; }
];
"ctrl-x" = "tab_switcher::CloseSelectedItem";
};
}
{
"context" = "Terminal";
"bindings" = {
"cmd-t" = "workspace::NewTerminal";
};
}
];
};
} }