Dotfiles using Home Manager.
1{ pkgs, ... }:
2{
3 programs.vscode = {
4 enable = true;
5 profiles.default = {
6 extensions = with pkgs.vscode-extensions; [
7 # alexdauenhauer.catppuccin-noctis
8 # alexdauenhauer.catppuccin-noctis-icons
9 bradlc.vscode-tailwindcss
10 dbaeumer.vscode-eslint
11 eamodio.gitlens
12 fill-labs.dependi
13 # ms-vscode.atom-keybindings
14 rust-lang.rust-analyzer
15 tamasfe.even-better-toml
16 vue.volar
17 ];
18 keybindings = [
19 {
20 key = "ctrl+alt+down";
21 command = "workbench.action.toggleMaximizedPanel";
22 }
23 ];
24 userSettings = {
25 "git.autofetch" = true;
26 "git.confirmSync" = false;
27 "window.commandCenter" = true;
28 "catppuccin-noctis-icons.hidesExplorerArrows" = false;
29 "workbench.colorTheme" = "Catppuccin Noctis Mocha";
30 "workbench.iconTheme" = "catppuccin noctis icons";
31 "workbench.sideBar.location" = "right";
32 "workbench.startupEditor" = "none";
33 "explorer.fileNesting.enabled" = true;
34 "explorer.fileNesting.expand" = false;
35 "editor.tabSize" = 2;
36 "editor.fontFamily" = "'IosevkaCode Nerd Font', 'Noto Sans Mono CJK SC', monospace";
37 "editor.semanticHighlighting.enabled" = true;
38 "editor.fontLigatures" = true;
39 "editor.formatOnSave" = true;
40 "editor.codeActionsOnSave" = {
41 "source.fixAll.eslint" = "always";
42 };
43 "editor.gotoLocation.multipleDefinitions" = "goto";
44 "terminal.integrated.fontFamily" = "'IosevkaTerm Nerd Font', 'Noto Sans Mono CJK SC', monospace";
45 "terminal.integrated.defaultProfile.linux" = "fish";
46 "terminal.integrated.enableImages" = true;
47 "terminal.integrated.profiles.linux" = {
48 "bash" = {
49 "path" = "bash";
50 "icon" = "terminal-bash";
51 };
52 "zsh" = {
53 "path" = "zsh";
54 };
55 "fish" = {
56 "path" = "fish";
57 };
58 "tmux" = {
59 "path" = "tmux";
60 "icon" = "terminal-tmux";
61 };
62 "pwsh" = {
63 "path" = "pwsh";
64 "icon" = "terminal-powershell";
65 };
66 "nu" = {
67 "path" = "nu";
68 };
69 };
70 "evenBetterToml.semanticTokens" = true;
71 "rust-analyzer.semanticHighlighting.operator.specialization.enable" = true;
72 "rust-analyzer.semanticHighlighting.punctuation.enable" = true;
73 "rust-analyzer.semanticHighlighting.punctuation.specialization.enable" = true;
74 "rust-analyzer.semanticHighlighting.punctuation.separate.macro.bang" = true;
75 "cSpell.diagnosticLevel" = "Hint";
76 "evenBetterToml.formatter.arrayAutoCollapse" = true;
77 "evenBetterToml.formatter.allowedBlankLines" = 1;
78 "evenBetterToml.formatter.arrayAutoExpand" = true;
79 "evenBetterToml.formatter.arrayTrailingComma" = true;
80 "evenBetterToml.formatter.reorderArrays" = true;
81 "evenBetterToml.formatter.reorderInlineTables" = true;
82 "evenBetterToml.formatter.reorderKeys" = true;
83 "evenBetterToml.formatter.trailingNewline" = true;
84 "evenBetterToml.schema.links" = true;
85 "files.associations" = {
86 "*.json" = "jsonc";
87 };
88 "tailwindCSS.experimental.classRegex" = [
89 [
90 "([\"'`][^\"'`]*.*?[\"'`])"
91 "[\"'`]([^\"'`]*).*?[\"'`]"
92 ]
93 ];
94 "[json]" = {
95 "editor.defaultFormatter" = "esbenp.prettier-vscode";
96 };
97 "[jsonc]" = {
98 "editor.defaultFormatter" = "esbenp.prettier-vscode";
99 };
100 "[yaml]" = {
101 "editor.defaultFormatter" = "esbenp.prettier-vscode";
102 };
103 "[html]" = {
104 "editor.defaultFormatter" = "esbenp.prettier-vscode";
105 };
106 "[markdown]" = {
107 "editor.defaultFormatter" = "esbenp.prettier-vscode";
108 };
109 "[javascript]" = {
110 "editor.defaultFormatter" = "esbenp.prettier-vscode";
111 };
112 "[javascriptreact]" = {
113 "editor.defaultFormatter" = "esbenp.prettier-vscode";
114 };
115 "[typescript]" = {
116 "editor.defaultFormatter" = "esbenp.prettier-vscode";
117 };
118 "[typescriptreact]" = {
119 "editor.defaultFormatter" = "esbenp.prettier-vscode";
120 };
121 "[css]" = {
122 "editor.defaultFormatter" = "esbenp.prettier-vscode";
123 };
124 "[scss]" = {
125 "editor.defaultFormatter" = "esbenp.prettier-vscode";
126 };
127 "[less]" = {
128 "editor.defaultFormatter" = "esbenp.prettier-vscode";
129 };
130 "[vue]" = {
131 "editor.defaultFormatter" = "esbenp.prettier-vscode";
132 };
133 "[rust]" = {
134 "editor.defaultFormatter" = "rust-lang.rust-analyzer";
135 };
136 };
137 };
138 };
139}