cba6b18914
- caddy: security headers (X-Content-Type-Options/X-XSS-Protection/ X-Frame-Options) on all vhosts + baseline CSP; strip SnappyMail upstream copies via header_down on mail.severijnse.eu - tlsa-updater: compute TLSA 3 1 1 from cert SPKI (SHA-256), sync _25/_465/_993, fail-safe placeholders; coredns zone updated - pre-commit: wire cachix/git-hooks.nix (alejandra, statix, actionlint, ...); CI pre-commit job over x86_64 + aarch64 matrix - gitea: enable Gitea Actions + self-hosted runner (native:host, aarch64 via binfmt); add .gitea/workflows/ci.yml and local hook - fix statix warnings (merge repeated systemd/database/configFile keys, inherit, bool-compare guards); add missing trailing newlines
152 lines
4.0 KiB
Nix
152 lines
4.0 KiB
Nix
{
|
|
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;
|
|
};
|
|
}
|