refactor: added flake parts
This commit is contained in:
parent
db7ac35613
commit
88041e86bd
66 changed files with 3538 additions and 2163 deletions
140
modules/hosts/home/leyla/packages/vscode/default.nix
Normal file
140
modules/hosts/home/leyla/packages/vscode/default.nix
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
{...}: {
|
||||
flake.homeModules.leylaVscode = {
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
nix-development-enabled = osConfig.host.nix-development.enable;
|
||||
ai-tooling-enabled = osConfig.host.ai.enable;
|
||||
in {
|
||||
config = lib.mkIf config.user.isDesktopUser {
|
||||
programs = {
|
||||
bash.shellAliases = {
|
||||
code = "codium";
|
||||
};
|
||||
|
||||
vscode = {
|
||||
package = pkgs.vscodium;
|
||||
|
||||
mutableExtensionsDir = false;
|
||||
|
||||
profiles.default = {
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
|
||||
userSettings = lib.mkMerge [
|
||||
{
|
||||
"javascript.updateImportsOnFileMove.enabled" = "always";
|
||||
"editor.tabSize" = 2;
|
||||
"editor.insertSpaces" = false;
|
||||
# "terminal.integrated.fontFamily" = "'Droid Sans Mono', 'monospace', monospace";
|
||||
}
|
||||
];
|
||||
|
||||
extraExtensions = {
|
||||
# vs code feel
|
||||
oneDark.enable = true;
|
||||
atomKeybindings.enable = true;
|
||||
openRemoteSsh.enable = true;
|
||||
# openDyslexicFont.enable = false;
|
||||
|
||||
# html development
|
||||
autoRenameTag.enable = true;
|
||||
liveServer.enable = true;
|
||||
|
||||
# js development
|
||||
es7ReactJsSnippets.enable = true;
|
||||
tauriVscode.enable = true;
|
||||
vscodeEslint.enable = true;
|
||||
vscodeJest.enable = true;
|
||||
vitest.enable = true;
|
||||
vscodeStandard.enable = true;
|
||||
vscodeStylelint.enable = true;
|
||||
|
||||
nearley.enable = true;
|
||||
|
||||
# graphql
|
||||
graphql.enable = true;
|
||||
|
||||
# astro development
|
||||
vscodeMdx.enable = true;
|
||||
astroVscode.enable = true;
|
||||
|
||||
# nix development
|
||||
alejandra.enable = nix-development-enabled;
|
||||
nixIde.enable = nix-development-enabled;
|
||||
|
||||
# go development
|
||||
go.enable = true;
|
||||
|
||||
# rust development
|
||||
rustAnalyzer.enable = true;
|
||||
|
||||
# arduino development
|
||||
platformIO.enable = false;
|
||||
|
||||
# claude development
|
||||
claudeDev = lib.mkIf ai-tooling-enabled {
|
||||
enable = false;
|
||||
mcp = {
|
||||
nixos = {
|
||||
enable = true;
|
||||
autoApprove = {
|
||||
nixos_search = true;
|
||||
nixos_info = true;
|
||||
home_manager_search = true;
|
||||
home_manager_info = true;
|
||||
darwin_search = true;
|
||||
darwin_info = true;
|
||||
nixos_flakes_search = true;
|
||||
};
|
||||
};
|
||||
eslint = {
|
||||
enable = true;
|
||||
autoApprove = {
|
||||
lint-files = true;
|
||||
};
|
||||
};
|
||||
vitest = {
|
||||
enable = true;
|
||||
autoApprove = {
|
||||
list_tests = true;
|
||||
run_tests = true;
|
||||
analyze_coverage = true;
|
||||
set_project_root = true;
|
||||
};
|
||||
};
|
||||
sleep = {
|
||||
enable = true;
|
||||
timeout = 18000; # 5 hours to match claude codes timeout
|
||||
autoApprove = {
|
||||
sleep = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# misc extensions
|
||||
evenBetterToml.enable = true;
|
||||
direnv.enable = config.programs.direnv.enable;
|
||||
conventionalCommits.enable = true;
|
||||
};
|
||||
|
||||
extensions = let
|
||||
extension-pkgs = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version;
|
||||
in (
|
||||
with extension-pkgs.open-vsx; [
|
||||
# vs code feel extensions
|
||||
streetsidesoftware.code-spell-checker
|
||||
streetsidesoftware.code-spell-checker-german
|
||||
streetsidesoftware.code-spell-checker-italian
|
||||
]
|
||||
);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
129
modules/hosts/home/leyla/packages/vscode/user-words.nix
Normal file
129
modules/hosts/home/leyla/packages/vscode/user-words.nix
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
{...}: {
|
||||
flake.homeModules.leylaVscodeUserWords = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
config.programs.vscode.profiles.default.userSettings = {
|
||||
"cSpell.userWords" = [
|
||||
"leyla"
|
||||
"Cyberia"
|
||||
];
|
||||
|
||||
"cSpell.languageSettings" = [
|
||||
{
|
||||
"languageId" = "nix";
|
||||
"locale" = "*";
|
||||
"dictionaries" = [
|
||||
"applications"
|
||||
"ai-words"
|
||||
"nix-words"
|
||||
|
||||
# We need to include all other dictionaries in the nix language settings because they exist in this file
|
||||
# TODO: see if there is a way to make this only apply for this file
|
||||
"js-words"
|
||||
];
|
||||
}
|
||||
{
|
||||
"languageId" = "javascript,typescript,js,ts";
|
||||
"locale" = "*";
|
||||
"dictionaries" = [
|
||||
"js-words"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
"cSpell.customDictionaries" = {
|
||||
applications = {
|
||||
name = "applications";
|
||||
description = "application names";
|
||||
path = pkgs.writeText "applications.txt" (lib.strings.concatLines [
|
||||
"ollama"
|
||||
"syncthing"
|
||||
"immich"
|
||||
"sonos"
|
||||
"makemkv"
|
||||
"hass"
|
||||
"qbittorent"
|
||||
"prostudiomasters"
|
||||
"protonmail"
|
||||
"pulseaudio"
|
||||
]);
|
||||
};
|
||||
|
||||
ai-words = {
|
||||
name = "ai-words";
|
||||
description = "common words used for ai development";
|
||||
path = pkgs.writeText "ai-words.txt" (lib.strings.concatLines [
|
||||
"ollama"
|
||||
"deepseek"
|
||||
"qwen"
|
||||
]);
|
||||
};
|
||||
|
||||
nix-words = {
|
||||
name = "nix-words";
|
||||
description = "words used in nix configurations";
|
||||
path = pkgs.writeText "nix-words.txt" (lib.strings.concatLines [
|
||||
"pname"
|
||||
"direnv"
|
||||
"tmpfiles"
|
||||
"Networkd"
|
||||
"networkmanager"
|
||||
"dialout"
|
||||
"adbusers"
|
||||
"authkey"
|
||||
"netdevs"
|
||||
"atomix"
|
||||
"geary"
|
||||
"gedit"
|
||||
"hitori"
|
||||
"iagno"
|
||||
"alsa"
|
||||
"timezoned"
|
||||
"pipewire"
|
||||
"rtkit"
|
||||
"disko"
|
||||
"ashift"
|
||||
"autotrim"
|
||||
"canmount"
|
||||
"mountpoint"
|
||||
"xattr"
|
||||
"acltype"
|
||||
"relatime"
|
||||
"keyformat"
|
||||
"keylocation"
|
||||
"vdevs"
|
||||
|
||||
# codium extensions
|
||||
"akamud"
|
||||
"onedark"
|
||||
"jeanp"
|
||||
"dsznajder"
|
||||
"dbaeumer"
|
||||
"orta"
|
||||
"tauri"
|
||||
"unifiedjs"
|
||||
"tamasfe"
|
||||
"pinage"
|
||||
"jnoortheen"
|
||||
"kamadorueda"
|
||||
"karyfoundation"
|
||||
"nearley"
|
||||
|
||||
# nix.optimise is spelled wrong
|
||||
"optimise"
|
||||
]);
|
||||
};
|
||||
|
||||
js-words = {
|
||||
name = "js-words";
|
||||
description = "words used in js development";
|
||||
path = pkgs.writeText "js-words.txt" (lib.strings.concatLines [
|
||||
"webdav"
|
||||
]);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue