Initial commit

This commit is contained in:
2026-03-31 16:53:11 +02:00
commit d0eba1c834
343 changed files with 34443 additions and 0 deletions
+130
View File
@@ -0,0 +1,130 @@
{pkgs, ...}: let
formatters = {
alejandra = "${pkgs.alejandra}/bin/alejandra";
biome = "${pkgs.biome}/bin/biome";
oxfmt = "${pkgs.oxfmt}/bin/oxfmt";
shfmt = "${pkgs.shfmt}/bin/shfmt";
};
languageServers = {
astro-ls = "${pkgs.astro-language-server}/bin/astro-ls";
biome = "${pkgs.biome}/bin/biome";
marksman = "${pkgs.marksman}/bin/marksman";
nil = "${pkgs.nil}/bin/nil";
tailwindcss = "${pkgs.tailwindcss-language-server}/bin/tailwindcss-language-server";
volar = "${pkgs.vue-language-server}/bin/vue-language-server";
};
# Helper function to create external formatter config
mkExternalFormatter = command: args: {
external = {
inherit command;
arguments = args;
};
};
in {
languages = {
YAML = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
};
Astro = {
tab_size = 2;
formatter = mkExternalFormatter formatters.biome ["format" "--stdin-file-path" "{buffer_path}"];
format_on_save = "on";
language_servers = ["astro-ls" "tailwindcss-language-server"];
};
JavaScript = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
language_servers = ["biome" "tailwindcss-language-server"];
};
JSON = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
language_servers = ["biome"];
};
Markdown = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
language_servers = ["marksman"];
};
TypeScript = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
language_servers = ["biome" "tailwindcss-language-server"];
};
TSX = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
language_servers = ["biome" "tailwindcss-language-server"];
};
CSS = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
language_servers = ["biome" "tailwindcss-language-server"];
};
HTML = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
language_servers = ["tailwindcss-language-server"];
};
"Vue.js" = {
tab_size = 2;
formatter = mkExternalFormatter formatters.oxfmt ["--stdin-filepath" "{buffer_path}"];
format_on_save = "on";
language_servers = ["vue-language-server" "tailwindcss-language-server"];
};
Nix = {
tab_size = 2;
formatter = mkExternalFormatter formatters.alejandra ["-q"];
format_on_save = "on";
language_servers = ["nil"];
};
};
lsp = {
"astro-language-server" = {
binary = {
path = languageServers.astro-ls;
arguments = ["--stdio"];
};
};
biome = {
binary = {
path = languageServers.biome;
arguments = ["lsp-proxy"];
};
};
nil = {
binary = {
path = languageServers.nil;
};
initialization_options = {
formatting = {
command = [formatters.alejandra "-q"];
};
};
};
"tailwindcss-language-server" = {
binary = {
path = languageServers.tailwindcss;
arguments = ["--stdio"];
};
};
"vue-language-server" = {
binary = {
path = languageServers.volar;
arguments = ["--stdio"];
};
};
};
}
+152
View File
@@ -0,0 +1,152 @@
{
config,
lib,
pkgs,
...
}: let
configFile = "zed/settings.json";
languageConfig = import ./_settings.nix {inherit pkgs lib;};
settingsJSON = builtins.toJSON ({
node = {
path = "${pkgs.nodejs}/bin/node";
npm_path = "${pkgs.nodejs}/bin/npm";
};
audio = {"experimental.rodio_audio" = true;};
calls.mute_on_join = true;
terminal.font_size = 11;
window_decorations = "client";
use_system_window_tabs = false;
tabs.git_status = false;
title_bar = {
show_menus = false;
show_user_picture = false;
show_user_menu = false;
show_sign_in = true;
show_onboarding_banner = false;
show_project_items = true;
show_branch_name = true;
show_branch_icon = false;
};
debugger.button = false;
colorize_brackets = true;
inlay_hints = {
show_background = true;
enabled = true;
};
show_whitespaces = "selection";
gutter.runnables = true;
indent_guides = {
background_coloring = "disabled";
coloring = "fixed";
};
relative_line_numbers = "enabled";
which_key.enabled = true;
helix_mode = true;
current_line_highlight = "all";
hide_mouse = "never";
multi_cursor_modifier = "cmd_or_ctrl";
agent_ui_font_size = 15;
agent_buffer_font_size = 11;
session.trust_all_worktrees = true;
redact_private_values = true;
ui_font_family = "GT Pressura Mono Trial";
buffer_font_features = {
calt = true;
dlig = true;
liga = true;
ss13 = true;
ss15 = true;
};
buffer_font_fallbacks = ["Symbols Nerd Font"];
buffer_font_size = 12;
scrollbar.show = "never";
tab_bar.show = false;
toolbar = {
agent_review = false;
quick_actions = false;
};
vim_mode = false;
theme = {
mode = "system";
light = "Noctalia Light";
dark = "Noctalia Dark";
};
icon_theme = "Catppuccin Mocha";
project_panel.dock = "left";
unnecessary_code_fade = 0.9;
restore_on_startup = "last_session";
auto_update = false;
telemetry = {
diagnostics = false;
metrics = false;
};
edit_predictions_disabled_in = ["comments"];
preview_tabs.enabled = false;
format_on_save = "on";
tab_size = 2;
features.edit_prediction_provider = "copilot";
agent = {
play_sound_when_agent_done = false;
default_profile = "write";
always_allow_tool_actions = false;
dock = "right";
default_model = {
provider = "openrouter";
model = "mistralai/devstral-2512:free";
};
commit_message_model = {
provider = "openrouter";
model = "mistralai/devstral-2512:free";
};
thread_summary_model = {
provider = "openrouter";
model = "mistralai/devstral-2512:free";
};
};
}
// languageConfig);
lspPackages = with pkgs; [
# Language Server Protocol
astro-language-server
biome
marksman
nil
tailwindcss-language-server
vue-language-server
# Formatters
alejandra
oxfmt
shfmt
# Node.js (required for Zed LSP node integration)
nodejs
];
lspBinPath = pkgs.buildEnv {
name = "zed-lsp-env";
paths = lspPackages;
pathsToLink = ["/bin"];
};
zedWithLSP = pkgs.symlinkJoin {
name = "zed-with-lsp";
paths = [pkgs.zed-editor];
buildInputs = [pkgs.makeWrapper];
postBuild = ''
rm -rf $out/bin
mkdir -p $out/bin
makeWrapper ${pkgs.zed-editor}/bin/zeditor $out/bin/zeditor \
--prefix PATH : ${lspBinPath}/bin
for bin in ${pkgs.zed-editor}/bin/*; do
if [ "$(basename $bin)" != "zeditor" ]; then
ln -s $bin $out/bin/$(basename $bin)
fi
done
'';
};
in {
users.users.someone.packages = [
zedWithLSP
];
xdg.configFile."${configFile}" = {
text = settingsJSON;
mutable = true;
};
}