diff options
| -rw-r--r-- | flake.lock | 95 | ||||
| -rw-r--r-- | modules/private/email.example.nix | 11 | ||||
| -rw-r--r-- | modules/programs/neomutt/default.nix | 37 | ||||
| -rw-r--r-- | modules/programs/neomutt/theme.nix | 102 | ||||
| -rw-r--r-- | modules/programs/nixvim/plugins/lsp.nix | 198 |
5 files changed, 311 insertions, 132 deletions
@@ -84,11 +84,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1782231411, - "narHash": "sha256-W/Yhek5L3nc0gaGgMHPrzO6DbLGq7Yb9DKw/kvLwij0=", + "lastModified": 1783538213, + "narHash": "sha256-jNjKlmrejUrBgVAeiavlMLlkmC7ZEv1D9nhfuwMW5Q8=", "owner": "cachix", "repo": "devenv", - "rev": "a4fd3348220d96f7602385adff0ace482e720586", + "rev": "d1fb321e73048d0e1e2b523580268ebb3df2ae90", "type": "github" }, "original": { @@ -142,11 +142,11 @@ ] }, "locked": { - "lastModified": 1778716662, - "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "lastModified": 1782949081, + "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e", "type": "github" }, "original": { @@ -174,11 +174,11 @@ "ghostty": { "flake": false, "locked": { - "lastModified": 1779069789, - "narHash": "sha256-ojo+gso45/6CVSuqfSVnlWpQ4d0QeLgwok+v/g3yu0E=", + "lastModified": 1782866021, + "narHash": "sha256-BOLtzL5iAHmtCOg9/DXtcfw+K86QWol088K72chJB04=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "4b7bf0b20e3baf9c1ba10c63f2ad1fd853faea8f", + "rev": "e1d31deaaed21aa9225afca78d778fb373c95852", "type": "github" }, "original": { @@ -193,18 +193,17 @@ "devenv", "flake-compat" ], - "gitignore": "gitignore", "nixpkgs": [ "devenv", "nixpkgs" ] }, "locked": { - "lastModified": 1778507602, - "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=", + "lastModified": 1782908218, + "narHash": "sha256-wLMOrPgVyeF3XmP+qfYcLqnVdTxikdcSvbIY7rA9jTA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a", + "rev": "9f7e99119ece7705299595299f3b031f39356de1", "type": "github" }, "original": { @@ -213,28 +212,6 @@ "type": "github" } }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "devenv", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -242,11 +219,11 @@ ] }, "locked": { - "lastModified": 1782233665, - "narHash": "sha256-h/xOtrByoA/Ak1lWHn0O1lVZz4qWYbwOSLQ8YSwQO0I=", + "lastModified": 1783823409, + "narHash": "sha256-OI4IkRjRXa1e7hYmCGJDPDq5H/kPwhsyoS80cNUF9fI=", "owner": "nix-community", "repo": "home-manager", - "rev": "062581938b4a378a82dfbb294b494808157153a1", + "rev": "7566825d4652a1b885bd4ce65bd9e8def432fec9", "type": "github" }, "original": { @@ -282,11 +259,11 @@ ] }, "locked": { - "lastModified": 1779748925, - "narHash": "sha256-meIhqGC04O5VXbKSFXSQoOKp+XCq5RMnwAk1Guo0VQo=", + "lastModified": 1782407171, + "narHash": "sha256-xem+4ncdQCTFJsQ4PrVuyVmi3j4w/Yqg298hBUzVejA=", "owner": "cachix", "repo": "nix", - "rev": "0bc443c8ff235c3547d09327b48aaa2ab98b15f2", + "rev": "782ac1b155679b065ec945ae50d0fa1d495883b7", "type": "github" }, "original": { @@ -309,11 +286,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1778381404, - "narHash": "sha256-FqhdOTA8vyoIpkHhbs2cCT7h6EWM7nsLeOYJc1ifQLE=", + "lastModified": 1780381423, + "narHash": "sha256-S1BIJiQF4lRtJUKak0e97JwNvbe69/LW78YJJuB18Qk=", "owner": "nix-community", "repo": "nixd", - "rev": "e3e45eb76663f522e196b7f0cf34cab201db7779", + "rev": "0e07c08c448a2995e7793d1098437b29bbe80b02", "type": "github" }, "original": { @@ -324,11 +301,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1781577229, - "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", + "lastModified": 1783776592, + "narHash": "sha256-UgCQzxeWI75XM8G+hPrPh+MKzEPjG3SpAj7dtqSbksA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev": "e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3", "type": "github" }, "original": { @@ -340,11 +317,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1781607440, - "narHash": "sha256-rxO+uc/KFbSJp+pgyXRuAX6QlG9hJdnt0BXpEQRXY+U=", + "lastModified": 1783279667, + "narHash": "sha256-/NAkDSsve+GNM0Bt6tleJdCGfsTlK89nPjkVOzZMo0s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3e41b24abd260e8f71dbe2f5737d24122f972158", + "rev": "f205b5574fd0cb7da5b702a2da51507b7f4fdd1b", "type": "github" }, "original": { @@ -361,11 +338,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1782254890, - "narHash": "sha256-kjsEECqhpPnJWqhooXp6tWh2qGQftCPAo2G1GvZtKdw=", + "lastModified": 1783647864, + "narHash": "sha256-gtVkWD4SbsvQQ8aSFEsrUTxxyuim4/ZC6lBJmA+sE/k=", "owner": "nix-community", "repo": "nixvim", - "rev": "dbf9550dba8448b03e11d58e5695d6c44a464554", + "rev": "ebffdb62cd1604537ee51d4d23258c002f1c90f8", "type": "github" }, "original": { @@ -391,11 +368,11 @@ ] }, "locked": { - "lastModified": 1779074409, - "narHash": "sha256-6aXy8Ga41iLVM8ibddFU1O5+wYWcBGNEfZzZuL91eIc=", + "lastModified": 1782875958, + "narHash": "sha256-5eqDcnBjb1424HRQdnhuhNOBZguq1Z2tqSa2OMF/m2c=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "2a77b5b1dc952f214e8102acdef1622b68515560", + "rev": "13139aefa973f3d96c60c0fbab801de058ae25ca", "type": "github" }, "original": { @@ -429,11 +406,11 @@ ] }, "locked": { - "lastModified": 1775636079, - "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", + "lastModified": 1780220602, + "narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", + "rev": "db947814a175b7ca6ded66e21383d938df01c227", "type": "github" }, "original": { diff --git a/modules/private/email.example.nix b/modules/private/email.example.nix index 9fc9ee2..ca4a3a1 100644 --- a/modules/private/email.example.nix +++ b/modules/private/email.example.nix @@ -13,7 +13,7 @@ enable = true; mailboxType = "maildir"; extraConfig = '' - mailboxes =Inbox ="[Gmail]/Drafts" ="[Gmail]/Sent Mail" ="[Gmail]/Trash" + mailboxes =Inbox ="[Gmail]/Drafts" ="[Gmail]/Sent Mail" ="[Gmail]/Spam" ="[Gmail]/Trash" ''; }; @@ -29,9 +29,10 @@ create = "maildir"; patterns = [ "INBOX" - "\"[Gmail]/Drafts\"" - "\"[Gmail]/Sent Mail\"" - "\"[Gmail]/Trash\"" + "[Gmail]/Drafts" + "[Gmail]/Sent Mail" + "[Gmail]/Spam" + "[Gmail]/Trash" ]; extraConfig.channel = { SyncState = "*"; @@ -46,7 +47,7 @@ neomutt.virtualMailboxes = [ { name = "All Mail"; - query = "folder:example/Inbox or folder:\"example/[Gmail]/Sent Mail\""; + query = "folder:arpitchakladar/Inbox or folder:\"arpitchakladar/[Gmail]/Sent Mail\""; } ]; }; diff --git a/modules/programs/neomutt/default.nix b/modules/programs/neomutt/default.nix index b144af0..3626341 100644 --- a/modules/programs/neomutt/default.nix +++ b/modules/programs/neomutt/default.nix @@ -50,7 +50,7 @@ in NeoMutt Index Flags =================== - Message state ($flag_chars) + Message state ($flag_chars) -- unchanged defaults N New - unread, arrived since you last checked O Old - unread, but seen in a previous session D Deleted - marked for deletion (pending expunge) @@ -58,18 +58,21 @@ in ! Flagged - important (toggle with F) * Tagged - selected for a bulk operation (toggle with t) r Replied - you've replied to this message - S Signed - PGP/SMIME signed - P Encrypted - PGP/SMIME encrypted - s Cert - contains a S/MIME certificate/key - K PGP key - contains a PGP public key (blank) - read, nothing else notable + Cryptography ($crypt_chars) + Verified - signed, and the signature checks out + Encrypted - PGP/SMIME encrypted + Signed - PGP/SMIME signed (unverified) + PGP key - message contains a PGP public key + (blank) - no cryptography info + Addressing ($to_chars) - + To you only - sent to you and only you - T To (with others) - you're in the To: list, among others - C Cc only - you're only in the Cc: list - F From you - sent by you - L Mailing list - sent to a list you're subscribed to + To you only - sent to you and only you + To (with others) - you're in the To: list, among others + Cc only - you're only in the Cc: list + From you - sent by you + Mailing list - sent to a list you're subscribed to (blank) - not in To/Cc (e.g. Bcc, unlisted) Press q to close. @@ -359,6 +362,20 @@ in action = "next-unread-mailbox"; } + # --- filter/limit (vim: gf to 'find' or 'filter') --- + { + map = [ "index" ]; + key = "gf"; + action = "limit"; + } + + # --- filter/limit (vim: gf to 'find' or 'filter') --- + { + map = [ "index" ]; + key = "gF"; + action = "limit"; + } + # --- help message to show functions and keybindings --- { map = [ diff --git a/modules/programs/neomutt/theme.nix b/modules/programs/neomutt/theme.nix index b770975..52845ee 100644 --- a/modules/programs/neomutt/theme.nix +++ b/modules/programs/neomutt/theme.nix @@ -9,29 +9,36 @@ # Base16 OneDark Dark terminal colors for neomutt # Each column in the index receives a distinct color to keep the UI organized. - set index_format = " %5C │ %Z │ %{%d/%m/%y %H:%M} │ %-25.25a │ %s%* " + # Nerd Font icon-based flag/attachment/crypto indicators + # order: new, old, deleted, flagged, replied, old(unused), tagged, encrypt, ... + set flag_chars = "" + set to_chars = " " + set crypt_chars = " " + set attach_format = "%u%D%I %t%4n %T%.40d %> [%m/%M, %e%?C?, %C?, %s] " + + set index_format = " %5C │ %Z │ %{%d/%m/%y %H:%M} │ %-25.25a │ %s%* " # Hide the keybindings help bar at the top to save vertical space set help = no - # Empty the status bar content - set status_format = " Unread: %5u │ New: %5n │ Tagged: %5t %> Filter: %V │ Sorted By: %s │" + # Status bar with Nerd Font icons per field + set status_format = " Unread: %5u │ New: %5n │ Tagged: %5t │ Search: %f │ Filter: %v │ Sorted By: %s │" # --- Basic UI Colors -------------------------------------------------- # target foreground background color normal white default # base05 (Standard text) - color error red default # base08 (Red) + color error red default # base08 (Red) color tilde brightblack default # base03 (Dark Grey) - color message cyan default # base0C (Cyan) - color markers red default # base08 (Red) - color attachment magenta default # base0E (Magenta) - color search magenta default # base0E (Magenta) - color prompt cyan default # base0C (Questions/prompts) - color progress black yellow # base0A bg (Progress bar) + color message cyan default # base0C (Cyan) + color markers red default # base08 (Red) + color attachment magenta default # base0E (Magenta) + color search magenta default # base0E (Magenta) + color prompt cyan default # base0C (Questions/prompts) + color progress black yellow # base0A bg (Progress bar) # Selected row and status bar color status white brightblack # base05 on base03 - color indicator default brightblack # default on base03 (Selected email) + color indicator default brightblack # default on base03 (Selected email) color tree magenta default # base03 (Thread arrows) # Whole-line fallback for the index (base for anything not caught below) @@ -39,54 +46,54 @@ # --- Index Columns (The Multi-Color Table) ---------------------------- # Applies distinct colors to specific columns for ALL messages (~A) - color index_number cyan default "~A" # base05 (Fixed: was brightblack) - color index_date green default "~A" # base0B (Green) - color index_flags red default "~A" # base08 (Red) - color index_size cyan default "~A" # base0C (Cyan) - color index_author yellow default "~A" # base0A (Yellow) - color index_subject white default "~A" # base05 (Standard text for Read messages) - color index_collapsed yellow default # base0A (Collapsed thread count, %M) - color index_label magenta default # base0E (Message label, %y %Y) - color index_tag cyan default # base0C (Message tags, %G) - color index_tags cyan default # base0C (Transformed tags, %g %J) + color index_number cyan default "~A" # base05 (Fixed: was brightblack) + color index_date green default "~A" # base0B (Green) + color index_flags red default "~A" # base08 (Red) + color index_size cyan default "~A" # base0C (Cyan) + color index_author yellow default "~A" # base0A (Yellow) + color index_subject white default "~A" # base05 (Standard text for Read messages) + color index_collapsed yellow default # base0A (Collapsed thread count, %M) + color index_label magenta default # base0E (Message label, %y %Y) + color index_tag cyan default # base0C (Message tags, %G) + color index_tags cyan default # base0C (Transformed tags, %g %J) # --- Index Message States --------------------------------------------- - # By targeting *only* `index_subject`, we preserve your multi-color + # By targeting *only* `index_subject`, we preserve your multi-color # columns while still easily identifying unread or flagged emails. - color index_subject blue default "~U" # Unread: Blue (base0D) - color index_subject blue default "~N" # New: Blue (base0D) - color index_subject red default "~F" # Flagged: Red (base08) - color index_subject magenta default "~Q" # Replied: Magenta (base0E) - color index_subject black red "~D" # Deleted + color index_subject blue default "~U" # Unread: Blue (base0D) + color index_subject blue default "~N" # New: Blue (base0D) + color index_subject red default "~F" # Flagged: Red (base08) + color index_subject magenta default "~Q" # Replied: Magenta (base0E) + color index_subject black red "~D" # Deleted # This rule now colors the "email (name)" column as it is considered the 'author' color index_author yellow default "~A" color index_subject white default "~A" # %s - # We removed the ~R (Read) override so it stays white. + # We removed the ~R (Read) override so it stays white. # For Deleted (~D), if brightblack is still too dark to see, we can use a red background instead: - color index_subject black red "~D" # Deleted: Black on Red background + color index_subject black red "~D" # Deleted: Black on Red background # Thread collapsing states - color index_subject yellow default "~v" # Collapsed thread - color index_subject blue default "~v~(~N)" # Collapsed with unread inside - color index_subject red default "~v~(~F)" # Collapsed with flagged inside + color index_subject yellow default "~v" # Collapsed thread + color index_subject blue default "~v~(~N)" # Collapsed with unread inside + color index_subject red default "~v~(~F)" # Collapsed with flagged inside # Subtle zebra striping between adjacent index rows (barely-there contrast) color stripe_odd default default color stripe_even default default # --- Message Headers -------------------------------------------------- - color hdrdefault cyan default # base0C - color header yellow default "^(From|To|Cc|Bcc)" # base0A - color header blue default "^(Subject)" # base0D - color header green default "^(Date)" # base03 + color hdrdefault cyan default # base0C + color header yellow default "^(From|To|Cc|Bcc)" # base0A + color header blue default "^(Subject)" # base0D + color header green default "^(Date)" # base03 # Attachment header lines (shown above each MIME part in the pager) - color attach_headers cyan default + color attach_headers cyan default # # --- Message Body ----------------------------------------------------- - color quoted blue default # base0D + color quoted blue default # base0D color quoted1 cyan default # base0C color quoted2 yellow default # base0A color quoted3 red default # base08 @@ -97,7 +104,7 @@ color quoted8 red default # base08 color quoted9 magenta default # base0E - color signature green default # base0B + color signature green default # base0B color bold white default # base05 color underline white default # base05 @@ -105,18 +112,19 @@ color body blue default "([a-z][a-z0-9+-]*://[^ ]+)" # PGP - color body green default "(Good signature)" - color body red default "(BAD signature)" - color body brightblack default "^gpg: " + color body green default "(Good signature)" # verified + color body red default "(BAD signature)" # bad + color body brightblack default "^gpg: " # # --- Sidebar (was completely unset despite sidebar.enable = true) ----- + set sidebar_format = " %D%* %?N? %N?%?F? %F? " color sidebar_background default default # transparent, blends with terminal bg color sidebar_divider white default # base03 (matches old tree color) - color sidebar_ordinary white default # base05 (normal mailbox entries) - color sidebar_new green default # base0B (mailboxes with new mail) - color sidebar_flagged red default # base08 (mailboxes with flagged mail) - color sidebar_spool_file yellow default # base0A (your inbox/spool) + color sidebar_ordinary white default # base05 (normal mailbox entries) + color sidebar_new green default # base0B (mailboxes with new mail) + color sidebar_flagged red default # base08 (mailboxes with flagged mail) + color sidebar_spool_file yellow default # base0A (your inbox/spool) color sidebar_highlight white brightblack # base05 on base03 (cursor position) - color sidebar_indicator default brightblack # default on base03 (currently open mailbox) + color sidebar_indicator default brightblack # default on base03 (currently open mailbox) ''; } diff --git a/modules/programs/nixvim/plugins/lsp.nix b/modules/programs/nixvim/plugins/lsp.nix index c734ea2..7fc3ddd 100644 --- a/modules/programs/nixvim/plugins/lsp.nix +++ b/modules/programs/nixvim/plugins/lsp.nix @@ -6,6 +6,7 @@ enable = true; inlayHints = true; autoLoad = true; + keymaps.lspBuf = { K = "hover"; gD = "references"; @@ -13,46 +14,221 @@ gi = "implementation"; gt = "type_definition"; }; + servers = { - nil_ls = { + # -- System & Configuration -- + nixd = { enable = true; - }; - lua_ls = { + package = null; + }; # Nix + bashls = { + enable = true; + package = null; + }; # Bash/Shell + taplo = { + enable = true; + package = null; + }; # TOML + yamlls = { + enable = true; + package = null; + }; # YAML + jsonls = { + enable = true; + package = null; + }; # JSON + marksman = { + enable = true; + package = null; + }; # Markdown + + # -- Web Development (HTML/CSS/JS/TS) -- + html = { + enable = true; + package = null; + }; # HTML + cssls = { + enable = true; + package = null; + }; # CSS/SCSS/LESS + tailwindcss = { enable = true; package = null; + }; # Tailwind CSS + vtsls = { + # JS/TS (Modern fast wrapper for tsserver) + enable = true; + package = null; + settings = { + # Optional but recommended: stops huge generic types from taking over your screen + vtsls.experimental.maxInlayHintLength = 30; + + # TypeScript type inferences + typescript.inlayHints = { + parameterNames.enabled = "all"; + parameterTypes.enabled = true; + variableTypes.enabled = true; + propertyDeclarationTypes.enabled = true; + functionLikeReturnTypes.enabled = true; + enumMemberValues.enabled = true; + }; + + # JavaScript type inferences (via JSDoc) + javascript.inlayHints = { + parameterNames.enabled = "all"; + parameterTypes.enabled = true; + variableTypes.enabled = true; + propertyDeclarationTypes.enabled = true; + functionLikeReturnTypes.enabled = true; + enumMemberValues.enabled = true; + }; + }; }; - nixd = { + eslint = { enable = true; package = null; + }; # ESLint diagnostics/formatting + + # -- Web Frameworks -- + volar = { + # Vue + enable = true; + package = null; + tslsIntegration = false; }; - pyright = { + svelte = { + enable = true; + package = null; + }; # Svelte + astro = { enable = true; package = null; + }; # Astro + + # -- Scripting & High-Level Languages -- + basedpyright = { + # Python (Modern, faster fork of Pyright) + enable = true; + package = null; + settings.basedpyright.analysis.inlayHints = { + variableTypes = true; + callArgumentNames = true; + functionReturnTypes = true; + genericTypes = false; # can get noisy, opt-in + }; }; - ts_ls = { + ruff = { enable = true; package = null; + }; # Python (Ultra-fast linter/formatter) + ruby_lsp = { + enable = true; + package = null; + }; # Ruby (Shopify's modern standard) + lua_ls = { + # Lua + enable = true; + package = null; + settings.Lua.hint = { + enable = true; + arrayIndex = "Auto"; + setType = true; + paramName = "All"; + paramType = true; + }; }; + intelephense = { + enable = true; + package = null; + }; # PHP + elixirls = { + enable = true; + package = null; + }; # Elixir + + # -- Systems, Compiled, & Enterprise -- clangd = { enable = true; package = null; - }; - jsonls = { + }; # C/C++ (inlay hints on by default) + rust_analyzer = { + # Rust (inlay hints on by default) enable = true; package = null; + installCargo = false; + installRustc = false; }; - yamlls = { + gopls = { + # Go enable = true; package = null; + settings.gopls.hints = { + assignVariableTypes = true; + compositeLiteralFields = true; + compositeLiteralTypes = true; + constantValues = true; + functionTypeParameters = true; + parameterNames = true; + rangeVariableTypes = true; + }; }; - bashls = { + zls = { enable = true; package = null; + }; # Zig (inlay hints on by default) + jdtls = { + # Java + enable = true; + package = null; + settings.java.inlayHints.parameterNames.enabled = "all"; }; - gopls = { + kotlin_language_server = { + enable = true; + package = null; + }; # Kotlin + csharp_ls = { enable = true; package = null; + }; # C# (.NET) — no inlay hint support + hls = { + # Haskell + enable = true; + package = null; + installGhc = false; + settings.haskell.plugin."inlay-hints".globalOn = true; }; + ocamllsp = { + enable = true; + package = null; + }; # OCaml + + # -- Infrastructure & DevOps -- + dockerls = { + enable = true; + package = null; + }; # Dockerfile + docker_compose_language_service = { + enable = true; + package = null; + }; # Docker Compose + terraformls = { + enable = true; + package = null; + }; # Terraform/HCL + + # -- Data & APIs -- + sqlls = { + enable = true; + package = null; + }; # SQL + graphql = { + enable = true; + package = null; + }; # GraphQL + prismals = { + enable = true; + package = null; + }; # Prisma ORM }; }; } |
