ide: migrate to zed-editor
This commit is contained in:
parent
25fe9f94fe
commit
794b7604bd
14 changed files with 556 additions and 252 deletions
options/custom
desktops
menus/walker
programs
settings
|
@ -36,6 +36,7 @@ with lib; let
|
|||
vrr = hm.home.file.".local/bin/vrr".source;
|
||||
waydroid = getExe pkgs.waydroid;
|
||||
window = hm.home.file.".local/bin/window".source;
|
||||
zeditor = getExe hm.programs.zed-editor.package;
|
||||
zoom = hm.home.file.".local/bin/zoom".source;
|
||||
|
||||
command = command: "${uwsm} app -- ${command}";
|
||||
|
@ -198,7 +199,7 @@ in {
|
|||
(key "G" "Super" "togglespecialworkspace" "game")
|
||||
(key "G" "Super+Ctrl" "exec" steam)
|
||||
(key "G" "Super+Shift" "movetoworkspacesilent" "special:game")
|
||||
(key "I" "Super" "exec" codium)
|
||||
(key "I" "Super" "exec" zeditor)
|
||||
(key "K" "Super" "exec" obsidian)
|
||||
(key "M" "Super" "togglespecialworkspace" "music")
|
||||
(key "M" "Super+Shift" "movetoworkspacesilent" "special:music")
|
||||
|
|
|
@ -230,6 +230,7 @@ in {
|
|||
|
||||
editor = rules: [
|
||||
(class "codium" rules) # VSCode
|
||||
(class "dev\\.zed\\.Zed" rules)
|
||||
(class "obsidian" rules)
|
||||
];
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ with lib; let
|
|||
virt-manager = "${config.programs.virt-manager.package}/bin/virt-manager";
|
||||
waydroid = "${pkgs.waydroid}/bin/waydroid";
|
||||
youtube-music = "${pkgs.youtube-music}/bin/youtube-music";
|
||||
zeditor = getExe hm.programs.zed-editor.package;
|
||||
in {
|
||||
options.custom.desktops.niri.binds = {
|
||||
enable = mkOption {default = false;};
|
||||
|
@ -145,8 +146,8 @@ in {
|
|||
(key "F" "Mod" (spawn [nautilus "--new-window"]))
|
||||
(key "G" "Ctrl+Alt" (spawn [pkill "steam"]))
|
||||
(key "G" "Mod" (spawn steam))
|
||||
(key "I" "Ctrl+Alt" (spawn [pkill "codium"]))
|
||||
(key "I" "Mod" (spawn codium))
|
||||
(key "I" "Ctrl+Alt" (spawn [pkill "zed"]))
|
||||
(key "I" "Mod" (spawn zeditor))
|
||||
(key "K" "Ctrl+Alt" (spawn [pkill "obsidian"]))
|
||||
(key "K" "Mod" (spawn obsidian))
|
||||
(key "L" "Mod" (spawn [bash "-c" "${hyprlock} --immediate & ${niri} msg action power-off-monitors"]))
|
||||
|
|
|
@ -149,6 +149,7 @@ in {
|
|||
# IDEs
|
||||
matches = [
|
||||
{app-id = "^codium$";}
|
||||
{app-id = "^dev\.zed\.Zed$";}
|
||||
];
|
||||
|
||||
default-column-width.proportion =
|
||||
|
|
|
@ -54,6 +54,7 @@ with lib; let
|
|||
wlfreerdp = "${pkgs.freerdp}/bin/wlfreerdp";
|
||||
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
||||
xfreerdp = "${pkgs.freerdp}/bin/xfreerdp";
|
||||
zeditor = getExe hm.programs.zed-editor.package;
|
||||
|
||||
cfg = config.custom.desktops.sway.binds;
|
||||
in {
|
||||
|
@ -153,7 +154,7 @@ in {
|
|||
"backspace+${super}+${shift}" = "floating toggle";
|
||||
"bracketleft+${super}" = "layout toggle tabbed stacking";
|
||||
"bracketright+${super}" = "layout toggle split";
|
||||
"c+${super}" = "exec ${codium}";
|
||||
"c+${super}" = "exec ${zeditor}";
|
||||
"delete+${super}" = "exec inhibit";
|
||||
"delete+${super}+${shift}" = "exec vrr";
|
||||
"down+${super}" = "move down";
|
||||
|
|
|
@ -254,6 +254,12 @@ case "$1" in
|
|||
url="https://www.youtube.com/results?search_query="
|
||||
query="${1:2}"
|
||||
;;
|
||||
'zi '*)
|
||||
label="Zed Issues"
|
||||
icon="com.github.zren.bugzilla"
|
||||
url="https://github.com/zed-industries/zed/issues?q=is%3Aissue+is%3Aopen+"
|
||||
query="${1:3}"
|
||||
;;
|
||||
*)
|
||||
exit
|
||||
# label="Search"
|
||||
|
|
|
@ -315,6 +315,12 @@ in {
|
|||
shortcut = "y";
|
||||
url = "https://www.youtube.com/results?search_query={searchTerms}";
|
||||
}
|
||||
|
||||
{
|
||||
name = "Zed Issues";
|
||||
shortcut = "zi";
|
||||
url = "https://github.com/zed-industries/zed/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -522,6 +522,12 @@ with lib; {
|
|||
iconUpdateURL = "https://www.youtube.com/s/desktop/f8c8418d/img/favicon.ico";
|
||||
urls = [{template = "https://www.youtube.com/results?search_query={searchTerms}";}];
|
||||
};
|
||||
|
||||
"Zed Issues" = {
|
||||
definedAliases = ["zi"];
|
||||
iconUpdateURL = "https://github.com/favicon.ico";
|
||||
urls = [{template = "https://github.com/zed-industries/zed/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";}];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -17,21 +17,9 @@ in {
|
|||
# https://github.com/nix-community/nix-vscode-extensions
|
||||
nixpkgs.overlays = [inputs.nix-vscode-extensions.overlays.default];
|
||||
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
# https://github.com/nix-community/nixd/blob/main/nixd/docs/features.md
|
||||
NIXD_FLAGS = "--inlay-hints=false"; # Disable package versions in the editor
|
||||
};
|
||||
|
||||
# Extension dependencies
|
||||
systemPackages = with pkgs; [
|
||||
alejandra # nix-ide
|
||||
blueprint-compiler # blueprint-gtk
|
||||
caddy # caddyfile-support
|
||||
nixd # nix-ide
|
||||
powershell # powershell
|
||||
shfmt # shell-format
|
||||
];
|
||||
environment.sessionVariables = {
|
||||
# https://github.com/nix-community/nixd/blob/main/nixd/docs/features.md
|
||||
NIXD_FLAGS = "--inlay-hints=false"; # Disable package versions in the editor
|
||||
};
|
||||
|
||||
home-manager.sharedModules = mkIf cfg.enable [
|
||||
|
|
|
@ -1,233 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.custom.programs.zed;
|
||||
in {
|
||||
options.custom.programs.zed = {
|
||||
enable = mkOption {default = false;};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.sharedModules = [
|
||||
{
|
||||
# https://zed.dev/
|
||||
# https://github.com/zed-industries/zed
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
alejandra # nix
|
||||
nixd # nix
|
||||
shellcheck # basher
|
||||
shfmt # basher
|
||||
];
|
||||
|
||||
# https://zed.dev/docs/extensions
|
||||
# https://github.com/zed-industries/extensions/tree/main/extensions
|
||||
extensions = [
|
||||
"basher" # https://github.com/d1y/bash.zed
|
||||
"git-firefly" # https://github.com/d1y/git_firefly
|
||||
"nix" # https://github.com/zed-extensions/nix
|
||||
];
|
||||
|
||||
# https://zed.dev/docs/key-bindings
|
||||
userKeymaps = [
|
||||
{
|
||||
bindings = {
|
||||
"alt-space" = "command_palette::Toggle";
|
||||
};
|
||||
}
|
||||
{
|
||||
context = "Editor";
|
||||
|
||||
bindings = {
|
||||
"alt-enter" = "editor::DuplicateLineDown";
|
||||
"alt-left" = "editor::MoveToBeginningOfLine";
|
||||
"alt-right" = "editor::MoveToEndOfLine";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
# https://zed.dev/docs/configuring-zed
|
||||
userSettings = {
|
||||
always_treat_brackets_as_autoclosed = true;
|
||||
|
||||
assistant = {
|
||||
default_model = {
|
||||
model = "claude-3-5-sonnet-latest";
|
||||
provider = "zed.dev";
|
||||
};
|
||||
|
||||
version = 2;
|
||||
};
|
||||
|
||||
auto_install_extensions = false;
|
||||
auto_signature_help = true;
|
||||
|
||||
# BUG: Font variations are not currently supported
|
||||
# https://github.com/zed-industries/zed/issues/5028
|
||||
#// buffer_font_family = "monospace";
|
||||
buffer_font_family = "IosevkaTermSlab Nerd Font Propo";
|
||||
|
||||
buffer_font_size = 18;
|
||||
buffer_line_height.custom = 1.5;
|
||||
|
||||
collaboration_panel = {
|
||||
button = false;
|
||||
dock = "right";
|
||||
};
|
||||
|
||||
cursor_blink = false;
|
||||
|
||||
features = {
|
||||
inline_completion_provider = "none";
|
||||
};
|
||||
|
||||
git = {
|
||||
inline_blame.enabled = false;
|
||||
};
|
||||
|
||||
indent_guides = {
|
||||
active_line_width = 2;
|
||||
};
|
||||
|
||||
load_direnv = "shell_hook";
|
||||
middle_click_paste = false;
|
||||
|
||||
outline_panel = {
|
||||
dock = "right";
|
||||
indent_size = 10;
|
||||
};
|
||||
|
||||
preferred_line_length = 120;
|
||||
|
||||
project_panel = {
|
||||
default_width = 200;
|
||||
indent_guides.show = "never";
|
||||
indent_size = 10;
|
||||
};
|
||||
|
||||
seed_search_query_from_cursor = "selection";
|
||||
show_user_picture = false;
|
||||
|
||||
# TODO: Show trailing whitespace when supported
|
||||
# https://github.com/zed-industries/zed/issues/5237
|
||||
show_whitespaces = "selection";
|
||||
|
||||
soft_wrap = "preferred_line_length";
|
||||
tab_size = 2;
|
||||
|
||||
tabs = {
|
||||
file_icons = true;
|
||||
git_status = true;
|
||||
show_diagnostics = "all";
|
||||
};
|
||||
|
||||
telemetry = {
|
||||
metrics = true;
|
||||
diagnostics = true;
|
||||
};
|
||||
|
||||
theme = {
|
||||
mode = "system";
|
||||
light = "NeoSolarized Light";
|
||||
dark = "NeoSolarized Dark";
|
||||
};
|
||||
|
||||
ui_font_family = config.stylix.fonts.sansSerif.name;
|
||||
ui_font_size = 20;
|
||||
|
||||
# Language-specific
|
||||
# https://zed.dev/docs/configuring-languages
|
||||
languages = {
|
||||
Nix = {
|
||||
formatter.external.command = "alejandra";
|
||||
language_servers = ["nixd" "!nil"];
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: Add missing syntax in highlights.scm
|
||||
# Theme overrides
|
||||
# https://zed.dev/docs/themes#theme-overrides
|
||||
# https://zed.dev/docs/extensions/languages#syntax-highlighting
|
||||
# https://github.com/zed-industries/zed/blob/main/assets/themes/solarized/solarized.json
|
||||
# https://github.com/zed-industries/zed/issues/20525
|
||||
#?? editor: copy highlight json
|
||||
"experimental.theme_overrides" = {
|
||||
# https://github.com/zed-industries/zed/issues/4655
|
||||
players = [
|
||||
{
|
||||
cursor = "#93a1a1";
|
||||
background = "#93a1a1";
|
||||
selection = "#93a1a11a"; # 10%
|
||||
}
|
||||
];
|
||||
|
||||
"scrollbar.thumb.background" = "#073642";
|
||||
"scrollbar.thumb.border" = "#00000000";
|
||||
|
||||
syntax = {
|
||||
"_expr".color = "#b58900";
|
||||
"_id".color = "#93a1a1";
|
||||
"attribute".color = "#93a1a1";
|
||||
"boolean".color = "#cb4b16";
|
||||
"comment".color = "#586e75";
|
||||
"comment.doc".color = "#586e75";
|
||||
"constant".color = "#93a1a1";
|
||||
"constant.builtin".color = "#93a1a1";
|
||||
"constructor".color = "#b58900";
|
||||
"embedded".color = "#657b83";
|
||||
"emphasis".color = "#93a1a1";
|
||||
"emphasis.strong".color = "#93a1a1";
|
||||
"enum".color = "#b58900";
|
||||
"function".color = "#268bd2";
|
||||
"function.builtin".color = "#268bd2";
|
||||
"function.call".color = "#268bd2";
|
||||
"hint".color = "#657b83";
|
||||
"keyword".color = "#d33682";
|
||||
"keyword.exception".color = "#d33682";
|
||||
"label".color = "#93a1a1";
|
||||
"link_text".color = "#93a1a1";
|
||||
"link_uri".color = "#93a1a1";
|
||||
"number".color = "#2aa198";
|
||||
"operator".color = "#657b83";
|
||||
"predictive".color = "#657b83";
|
||||
"preproc".color = "#93a1a1";
|
||||
"primary".color = "#93a1a1";
|
||||
"property".color = "#93a1a1";
|
||||
"punctuation".color = "#657b83";
|
||||
"punctuation.bracket".color = "#657b83";
|
||||
"punctuation.delimiter".color = "#657b83";
|
||||
"punctuation.list_marker".color = "#657b83";
|
||||
"punctuation.special".color = "#657b83";
|
||||
"string".color = "#859900";
|
||||
"string.escape".color = "#cb4b16";
|
||||
"string.regex".color = "#cb4b16";
|
||||
"string.special".color = "#cb4b16";
|
||||
"string.special.symbol".color = "#cb4b16";
|
||||
"tag".color = "#93a1a1";
|
||||
"tag.doctype".color = "#93a1a1";
|
||||
"text.literal".color = "#93a1a1";
|
||||
"title".color = "#93a1a1";
|
||||
"type".color = "#b58900";
|
||||
"variable".color = "#93a1a1";
|
||||
"variable.member".color = "#93a1a1";
|
||||
"variable.parameter".color = "#6c71c4";
|
||||
"variable.special".color = "#93a1a1";
|
||||
"variant".color = "#93a1a1";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: Use stylix
|
||||
# https://stylix.danth.me/options/modules/zed.html
|
||||
stylix.targets.zed.enable = false;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
365
options/custom/programs/zed/default.nix
Normal file
365
options/custom/programs/zed/default.nix
Normal file
|
@ -0,0 +1,365 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.custom.programs.zed;
|
||||
in {
|
||||
options.custom.programs.zed = {
|
||||
enable = mkOption {default = false;};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.sharedModules = [
|
||||
{
|
||||
# https://zed.dev/
|
||||
# https://github.com/zed-industries/zed
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
|
||||
# https://zed.dev/docs/extensions
|
||||
# https://github.com/zed-industries/extensions/tree/main/extensions
|
||||
extensions = [
|
||||
#// "basedpyright" # https://github.com/m1guer/basedpyright-zed
|
||||
"basher" # https://github.com/d1y/bash.zed
|
||||
"caddyfile" # https://github.com/nusnewob/caddyfile-zed
|
||||
"colored-zed-icons-theme" # https://github.com/TheRedXD/zed-icons-colored-theme
|
||||
"csv" # https://github.com/huacnlee/zed-csv
|
||||
"discord-presence" # https://github.com/xhyrom/zed-discord-presence
|
||||
"docker-compose" # https://github.com/eth0net/zed-docker-compose
|
||||
"dockerfile" # https://github.com/d1y/dockerfile.zed
|
||||
"env" # https://github.com/zarifpour/zed-env
|
||||
"fish" # https://github.com/hasit/zed-fish
|
||||
"git-firefly" # https://github.com/d1y/git_firefly
|
||||
"html" # https://github.com/zed-industries/zed/tree/main/extensions/html
|
||||
"ini" # https://github.com/bajrangCoder/zed-ini
|
||||
"java" # https://github.com/zed-extensions/java
|
||||
"jinja2" # https://github.com/ArcherHume/jinja2-support
|
||||
"make" # https://github.com/caius/zed-make
|
||||
"material-icon-theme" # https://github.com/zed-extensions/material-icon-theme
|
||||
"nginx" # https://github.com/d1y/nginx-zed
|
||||
"nix" # https://github.com/zed-extensions/nix
|
||||
"nu" # https://github.com/zed-extensions/nu
|
||||
"php" # https://github.com/zed-extensions/php
|
||||
"powershell" # https://github.com/wingyplus/zed-powershell
|
||||
"pylsp" # https://github.com/rgbkrk/python-lsp-zed-extension
|
||||
"scss" # https://github.com/bajrangCoder/zed-scss
|
||||
"sql" # https://github.com/zed-extensions/sql
|
||||
"svelte" # https://github.com/zed-extensions/svelte
|
||||
"tmux" # https://github.com/dangh/zed-tmux
|
||||
"unocss" # https://github.com/bajrangCoder/zed-unocss
|
||||
"xml" # https://github.com/sweetppro/zed-xml
|
||||
];
|
||||
|
||||
# https://zed.dev/docs/key-bindings
|
||||
userKeymaps = [
|
||||
{
|
||||
# Global keybinds
|
||||
bindings = {
|
||||
"alt-\\" = "workspace::ToggleBottomDock";
|
||||
"alt-a" = "assistant::ToggleFocus";
|
||||
"alt-c" = "collab_panel::ToggleFocus";
|
||||
"alt-f" = "project_search::ToggleFocus";
|
||||
"alt-g" = "git_panel::ToggleFocus";
|
||||
"alt-p" = "project_panel::ToggleFocus";
|
||||
"alt-t" = "terminal_panel::ToggleFocus";
|
||||
|
||||
"alt-escape" = "workspace::CloseAllDocks";
|
||||
"alt-space" = "command_palette::Toggle";
|
||||
"alt-tab" = "workspace::ToggleLeftDock";
|
||||
|
||||
"alt-shift-tab" = "workspace::ToggleRightDock";
|
||||
};
|
||||
}
|
||||
{
|
||||
# Editor keybinds
|
||||
context = "Editor";
|
||||
|
||||
bindings = {
|
||||
"alt-backspace" = "editor::DeleteLine";
|
||||
"alt-enter" = "editor::DuplicateLineDown";
|
||||
"alt-left" = "editor::MoveToBeginningOfLine";
|
||||
"alt-right" = "editor::MoveToEndOfLine";
|
||||
"ctrl-enter" = "editor::NewlineBelow";
|
||||
|
||||
"alt-shift-enter" = "editor::DuplicateLineUp";
|
||||
};
|
||||
}
|
||||
{
|
||||
# Terminal keybinds
|
||||
# https://zed.dev/docs/key-bindings#forward-keys-to-terminal
|
||||
context = "Terminal";
|
||||
|
||||
bindings = {
|
||||
"ctrl-s" = ["terminal::SendKeystroke" "ctrl-s"];
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
# https://zed.dev/docs/configuring-zed
|
||||
userSettings = {
|
||||
always_treat_brackets_as_autoclosed = true;
|
||||
|
||||
assistant = {
|
||||
default_model = {
|
||||
model = "gemma3:1b";
|
||||
provider = "ollama";
|
||||
};
|
||||
|
||||
default_width = 500;
|
||||
version = "2";
|
||||
};
|
||||
|
||||
auto_install_extensions = false;
|
||||
auto_signature_help = true;
|
||||
base_keymap = "VSCode";
|
||||
|
||||
# BUG: Font variations are not currently supported
|
||||
# https://github.com/zed-industries/zed/issues/5028
|
||||
#// buffer_font_family = "monospace";
|
||||
buffer_font_family = mkForce "IosevkaTermSlab Nerd Font Propo";
|
||||
|
||||
buffer_line_height.custom = 1.5;
|
||||
|
||||
chat_panel = {
|
||||
default_width = 300;
|
||||
};
|
||||
|
||||
collaboration_panel = {
|
||||
button = false;
|
||||
default_width = 300;
|
||||
dock = "right";
|
||||
};
|
||||
|
||||
cursor_blink = false;
|
||||
|
||||
features = {
|
||||
inline_completion_provider = "none";
|
||||
};
|
||||
|
||||
git = {
|
||||
inline_blame.enabled = false;
|
||||
};
|
||||
|
||||
git_panel = {
|
||||
default_width = 300;
|
||||
};
|
||||
|
||||
icon_theme = "Colored Zed Icons Theme Dark";
|
||||
|
||||
indent_guides = {
|
||||
active_line_width = 2;
|
||||
};
|
||||
|
||||
load_direnv = "shell_hook";
|
||||
middle_click_paste = false;
|
||||
|
||||
notification_panel = {
|
||||
default_width = 300;
|
||||
};
|
||||
|
||||
outline_panel = {
|
||||
default_width = 300;
|
||||
dock = "right";
|
||||
indent_size = 10;
|
||||
};
|
||||
|
||||
preferred_line_length = 120;
|
||||
|
||||
project_panel = {
|
||||
auto_reveal_entries = false;
|
||||
default_width = 300;
|
||||
entry_spacing = "standard";
|
||||
indent_guides.show = "never";
|
||||
indent_size = 10;
|
||||
scrollbar.show = "never";
|
||||
};
|
||||
|
||||
seed_search_query_from_cursor = "selection";
|
||||
show_user_picture = false;
|
||||
|
||||
# TODO: Show trailing whitespace when supported
|
||||
# https://github.com/zed-industries/zed/issues/5237
|
||||
show_whitespaces = "selection";
|
||||
|
||||
#// soft_wrap = "preferred_line_length";
|
||||
tab_size = 2;
|
||||
|
||||
tabs = {
|
||||
git_status = true;
|
||||
show_diagnostics = "all";
|
||||
};
|
||||
|
||||
telemetry = {
|
||||
metrics = true;
|
||||
diagnostics = true;
|
||||
};
|
||||
|
||||
terminal = {
|
||||
line_height = "standard";
|
||||
};
|
||||
|
||||
ui_font_size = mkForce 18;
|
||||
|
||||
# Language-specific
|
||||
# https://zed.dev/docs/configuring-languages
|
||||
languages = {
|
||||
Nix = {
|
||||
formatter.external.command = "alejandra";
|
||||
language_servers = ["nil" "!nixd"];
|
||||
};
|
||||
};
|
||||
|
||||
# https://zed.dev/docs/configuring-languages#configuring-language-servers
|
||||
lsp = {
|
||||
nil.initialization_options = {
|
||||
nix.flake.autoArchive = true;
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: Add missing syntax in highlights.scm
|
||||
# Theme overrides
|
||||
# https://zed.dev/docs/themes#theme-overrides
|
||||
# https://zed.dev/docs/extensions/languages#syntax-highlighting
|
||||
# https://github.com/zed-industries/zed/issues/20525
|
||||
# https://github.com/zed-industries/zed/blob/main/assets/themes/one/one.json
|
||||
# https://github.com/zed-industries/zed/blob/main/assets/themes/solarized/solarized.json
|
||||
# https://github.com/tinted-theming/schemes/blob/spec-0.11/base16/solarized-dark.yaml
|
||||
#?? editor: copy highlight json
|
||||
"experimental.theme_overrides" = with config.lib.stylix.colors; {
|
||||
### Styles
|
||||
"background" = "#${base01}";
|
||||
"border" = "#${base00}";
|
||||
"border.variant" = "#${base00}";
|
||||
"editor.active_wrap_guide" = "#${base01}";
|
||||
"editor.document_highlight.read_background" = "#${base01}";
|
||||
"editor.document_highlight.write_background" = "#${base01}";
|
||||
"editor.invisible" = "#${base03}";
|
||||
"editor.wrap_guide" = "#${base01}";
|
||||
|
||||
# TODO: Submit PR to fix
|
||||
# BUG: (ghost_)element is incorrectly defined as nested objects instead of strings
|
||||
# https://github.com/tinted-theming/base16-zed/blob/main/templates/default.mustache
|
||||
"element.active" = "#${base03}20";
|
||||
"element.background" = "#${base00}00";
|
||||
"element.disabled" = "#${base03}";
|
||||
"element.hover" = "#${base03}10";
|
||||
"element.selected" = "#${base03}40";
|
||||
"ghost_element.active" = "#${base03}20";
|
||||
"ghost_element.background" = "#${base00}00";
|
||||
"ghost_element.disabled" = "#${base03}";
|
||||
"ghost_element.hover" = "#${base03}10";
|
||||
"ghost_element.selected" = "#${base03}40";
|
||||
|
||||
"icon.accent" = "#${base0F}";
|
||||
"panel.background" = "#${base01}";
|
||||
"panel.focused_border" = "#${base0F}";
|
||||
"scrollbar.thumb.background" = "#${base03}40";
|
||||
"scrollbar.thumb.border" = "#${base03}00";
|
||||
"scrollbar.thumb.hover_background" = "#${base03}";
|
||||
"search.match_background" = "#${base03}40";
|
||||
"status_bar.background" = "#${base00}";
|
||||
"tab.active_background" = "#${base00}";
|
||||
"tab.inactive_background" = "#${base01}";
|
||||
"tab_bar.background" = "#${base01}";
|
||||
"text.accent" = "#${base0F}";
|
||||
"title_bar.background" = "#${base00}";
|
||||
"title_bar.inactive_background" = "#${base00}";
|
||||
|
||||
### Status
|
||||
"conflict" = "#${base09}";
|
||||
"conflict.background" = "#${base09}d3";
|
||||
"conflict.border" = "#${base09}";
|
||||
|
||||
### Cursors
|
||||
"players" = [
|
||||
{
|
||||
"cursor" = "#${base05}";
|
||||
"background" = "#${base05}40";
|
||||
"selection" = "#${base05}20";
|
||||
}
|
||||
];
|
||||
|
||||
### Syntax highlighting
|
||||
"syntax" = {
|
||||
"_expr".color = "#${base0A}";
|
||||
"_id".color = "#${base05}";
|
||||
"attribute".color = "#${base05}";
|
||||
"boolean".color = "#${base09}";
|
||||
"comment".color = "#${base02}";
|
||||
"comment.doc".color = "#${base02}";
|
||||
"constant".color = "#${base05}";
|
||||
"constant.builtin".color = "#${base05}";
|
||||
"constructor".color = "#${base0A}";
|
||||
"directive".color = "#${base05}";
|
||||
"embedded".color = "#${base03}";
|
||||
"emphasis".color = "#${base05}";
|
||||
"emphasis.strong".color = "#${base05}";
|
||||
"enum".color = "#${base0A}";
|
||||
"escape".color = "#${base09}";
|
||||
"function".color = "#${base0D}";
|
||||
"function.builtin".color = "#${base0D}";
|
||||
"function.call".color = "#${base0D}";
|
||||
"function.decorator".color = "#${base0D}";
|
||||
"function.magic".color = "#${base0D}";
|
||||
"hint".color = "#${base03}";
|
||||
"keyword".color = "#${base0F}";
|
||||
"keyword.exception".color = "#${base0F}";
|
||||
"label".color = "#${base05}";
|
||||
"link_text".color = "#${base05}";
|
||||
"link_uri".color = "#${base05}";
|
||||
"local".color = "#${base05}";
|
||||
"markup".color = "#${base05}";
|
||||
"meta".color = "#${base05}";
|
||||
"modifier".color = "#${base05}";
|
||||
"namespace".color = "#${base05}";
|
||||
"number".color = "#${base0C}";
|
||||
"operator".color = "#${base03}";
|
||||
"parameter".color = "#${base0E}";
|
||||
"predictive".color = "#${base03}";
|
||||
"preproc".color = "#${base05}";
|
||||
"primary".color = "#${base05}";
|
||||
"property".color = "#${base05}";
|
||||
"punctuation".color = "#${base03}";
|
||||
"punctuation.bracket".color = "#${base03}";
|
||||
"punctuation.delimiter".color = "#${base03}";
|
||||
"punctuation.list_marker".color = "#${base03}";
|
||||
"punctuation.special".color = "#${base03}";
|
||||
"regexp".color = "#${base09}";
|
||||
"self".color = "#${base05}";
|
||||
"string".color = "#${base0B}";
|
||||
"string.escape".color = "#${base09}";
|
||||
"string.regex".color = "#${base09}";
|
||||
"string.special".color = "#${base09}";
|
||||
"string.special.symbol".color = "#${base09}";
|
||||
"strong".color = "#${base05}";
|
||||
"support".color = "#${base05}";
|
||||
"symbol".color = "#${base05}";
|
||||
"tag".color = "#${base05}";
|
||||
"tag.doctype".color = "#${base05}";
|
||||
"text".color = "#${base05}";
|
||||
"text.literal".color = "#${base05}";
|
||||
"title".color = "#${base05}";
|
||||
"type".color = "#${base0A}";
|
||||
"variable".color = "#${base05}";
|
||||
"variable.member".color = "#${base05}";
|
||||
"variable.parameter".color = "#${base0E}";
|
||||
"variable.special".color = "#${base05}";
|
||||
"variant".color = "#${base05}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# BUG: Language-specific snippets break with certain files, so use global snippets.json
|
||||
# https://github.com/zed-industries/zed/issues/22726
|
||||
# https://zed.dev/docs/snippets
|
||||
#?? snippets: configure snippets
|
||||
xdg.configFile = {
|
||||
"zed/snippets/".source = ./snippets;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
135
options/custom/programs/zed/snippets/nix.json
Normal file
135
options/custom/programs/zed/snippets/nix.json
Normal file
|
@ -0,0 +1,135 @@
|
|||
{
|
||||
"Home Manager Option": {
|
||||
"prefix": "ho",
|
||||
"body": [
|
||||
"{",
|
||||
" config,",
|
||||
" lib,",
|
||||
" ...",
|
||||
"}:",
|
||||
"with lib; let",
|
||||
" cfg = config.custom.$1;",
|
||||
" hm = config.home-manager.users.\\${config.custom.username};",
|
||||
"in {",
|
||||
" options.custom.$1 = {",
|
||||
" enable = mkOption {default = false;};",
|
||||
" };",
|
||||
"",
|
||||
" config = mkIf cfg.enable {",
|
||||
" home-manager.sharedModules = [",
|
||||
" {",
|
||||
" $0",
|
||||
" }",
|
||||
" ];",
|
||||
" };",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
|
||||
"NixOS Agenix": {
|
||||
"prefix": "na",
|
||||
"body": [
|
||||
"age.secrets =",
|
||||
" let",
|
||||
" secret = filename: {",
|
||||
" file = \"\\${inputs.self}/secrets/\\${filename}\";",
|
||||
" };",
|
||||
" in",
|
||||
" {",
|
||||
" \"$1\" = secret \"$1\";",
|
||||
" };"
|
||||
]
|
||||
},
|
||||
|
||||
"NixOS Container Arion": {
|
||||
"prefix": "nca",
|
||||
"body": [
|
||||
"{",
|
||||
" config,",
|
||||
" inputs,",
|
||||
" lib,",
|
||||
" ...",
|
||||
"}:",
|
||||
"with lib; let",
|
||||
" cfg = config.custom.containers.$1;",
|
||||
"in {",
|
||||
" options.custom.containers.$1 = {",
|
||||
" enable = mkOption {default = false;};",
|
||||
" };",
|
||||
"",
|
||||
" config = mkIf cfg.enable {",
|
||||
" age.secrets = let",
|
||||
" secret = filename: {",
|
||||
" file = \"\\${inputs.self}/secrets/\\${filename}\";",
|
||||
" };",
|
||||
" in {",
|
||||
" \"\\${config.custom.profile}/$1/.env\" = secret \"\\${config.custom.profile}/$1/.env\";",
|
||||
" };",
|
||||
"",
|
||||
" #?? arion-$1 pull",
|
||||
" environment.shellAliases.arion-$1 = \"sudo arion --prebuilt-file \\${config.virtualisation.arion.projects.$1.settings.out.dockerComposeYaml}\";",
|
||||
"",
|
||||
" virtualisation.arion.projects.$1.settings.services = {",
|
||||
" $1.service = {",
|
||||
" container_name = \"$1\";",
|
||||
" depends_on = [\"\"];",
|
||||
" env_file = [config.age.secrets.\"\\${config.custom.profile}/$1/.env\".path];",
|
||||
" image = \"$1\";",
|
||||
" ports = [\"\"];",
|
||||
" restart = \"unless-stopped\";",
|
||||
" volumes = [\"\\${config.custom.containers.directory}/$1/data:/data\"];",
|
||||
" };",
|
||||
" };",
|
||||
" };",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
|
||||
"Nix Develop": {
|
||||
"prefix": "nd",
|
||||
"body": [
|
||||
"{",
|
||||
" inputs = {",
|
||||
" nixpkgs.url = \"github:NixOS/nixpkgs/nixos-24.05\";",
|
||||
" };",
|
||||
"",
|
||||
" outputs =",
|
||||
" inputs:",
|
||||
" let",
|
||||
" system = \"x86_64-linux\";",
|
||||
" pkgs = inputs.nixpkgs.legacyPackages.\\${system};",
|
||||
" in",
|
||||
" {",
|
||||
" #?? nix develop",
|
||||
" devShells.\\${system}.default = pkgs.mkShell {",
|
||||
" inputsFrom = [ ];",
|
||||
" packages = [ ];",
|
||||
" shellHook = '''';",
|
||||
" };",
|
||||
" };",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
|
||||
"NixOS Option": {
|
||||
"prefix": "no",
|
||||
"body": [
|
||||
"{",
|
||||
" config,",
|
||||
" lib,",
|
||||
" ...",
|
||||
"}:",
|
||||
"with lib; let",
|
||||
" cfg = config.custom.$1;",
|
||||
"in {",
|
||||
" options.custom.$1 = {",
|
||||
" enable = mkOption {default = false;};",
|
||||
" };",
|
||||
"",
|
||||
" config = mkIf cfg.enable {",
|
||||
" $0",
|
||||
" };",
|
||||
"}"
|
||||
]
|
||||
}
|
||||
}
|
18
options/custom/programs/zed/snippets/shell script.json
Normal file
18
options/custom/programs/zed/snippets/shell script.json
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"Shell Bash Argc": {
|
||||
"prefix": "sba",
|
||||
"body": [
|
||||
"#! /usr/bin/env bash",
|
||||
"",
|
||||
"# @describe $1",
|
||||
"#",
|
||||
"# https://github.com/sigoden/argc",
|
||||
"",
|
||||
"# @meta combine-shorts",
|
||||
"",
|
||||
"$0",
|
||||
"",
|
||||
"eval \"\\$(argc --argc-eval \"\\$0\" \"\\$@\")\""
|
||||
]
|
||||
}
|
||||
}
|
|
@ -24,6 +24,8 @@ in {
|
|||
])
|
||||
++ optionals config.custom.default [
|
||||
alejandra # Nix formatter
|
||||
blueprint-compiler # GTK markup language
|
||||
caddy # Reverse proxy
|
||||
fd # File finder
|
||||
fzf # Fuzzy search
|
||||
inetutils # Network utilities
|
||||
|
@ -32,14 +34,20 @@ in {
|
|||
lf # Terminal file manager
|
||||
lm_sensors # System sensors
|
||||
lz4 # Compression utility
|
||||
nil # Nix language server
|
||||
nix-output-monitor # Nix build parser
|
||||
nix-tree # Nix store explorer
|
||||
nixd # Nix language server
|
||||
nmap # Network scanner
|
||||
nvd # Nix diff viewer
|
||||
openssl # Certificate utility
|
||||
powershell # Windows shell
|
||||
progress # Coreutils progress viewer
|
||||
q # DNS tester
|
||||
rclone # File sync
|
||||
shellcheck # Script analysis tool
|
||||
shfmt # Script formatter
|
||||
simple-completion-language-server # Snippet language server
|
||||
sshpass # SSH automation
|
||||
stress # CPU stress tester
|
||||
testdisk # Data recovery tool
|
||||
|
|
Loading…
Add table
Reference in a new issue