{ config, pkgs, ... }: { # === WGU / Academic software === home.packages = with pkgs; [ # Reference manager zotero # Browsers brave # Note-taking obsidian # Code editor vscode # Document preparation typst tinymist # LSP (tinymist binary speaks typst-lsp protocol) pandoc # Password manager (LastPass has no Linux native client — use Bitwarden) bitwarden-desktop bitwarden-cli ]; # === VS Code config (Typst LSP) === home.file.".config/Code/User/settings.json".text = builtins.toJSON { "typst-lsp.serverPath" = "${pkgs.tinymist}/bin/tinymist"; "editor.fontFamily" = "JetBrainsMono Nerd Font"; "editor.fontSize" = 14; "workbench.colorTheme" = "Catppuccin Mocha"; }; # === Neovim LSP for Typst === # Tinymist binary speaks the typst-lsp protocol — plug into nvim-lspconfig home.file.".config/nvim/lua/lsp/typst.lua".text = '' return { cmd = { "${pkgs.tinymist}/bin/tinymist" }, filetypes = { "typst" }, root_markers = { ".git", "flake.nix" }, single_file_support = true, settings = { exportPdf = "onSave", outputPath = "$root/out/$name.pdf", }, } ''; }