diff --git a/flake.lock b/flake.lock index 3fb87ef..f1d6310 100644 --- a/flake.lock +++ b/flake.lock @@ -135,6 +135,22 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -191,6 +207,24 @@ "type": "github" } }, + "flake-utils_3": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -353,6 +387,7 @@ "home-manager": "home-manager_2", "lanzaboote": "lanzaboote", "nixpkgs": "nixpkgs", + "vscode-extensions": "vscode-extensions", "vscode-server": "vscode-server" } }, @@ -441,6 +476,21 @@ "type": "github" } }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { "inputs": { "systems": "systems_2" @@ -459,9 +509,31 @@ "type": "github" } }, + "vscode-extensions": { + "inputs": { + "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705627293, + "narHash": "sha256-qwKYsN3tG5TaOt3gV3/wljrR+NYc8xEg8e8io9egn4I=", + "owner": "nix-community", + "repo": "nix-vscode-extensions", + "rev": "f0e4ca7d52508cdea17a70290d64f1c71d5c26bc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-vscode-extensions", + "type": "github" + } + }, "vscode-server": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "nixpkgs": [ "nixpkgs" ] diff --git a/flake.nix b/flake.nix index f86aa08..96ad4f9 100644 --- a/flake.nix +++ b/flake.nix @@ -39,6 +39,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + vscode-extensions = { + url = "github:nix-community/nix-vscode-extensions"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + vscode-server = { url = "github:nix-community/nixos-vscode-server"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/programs/vscode.nix b/programs/vscode.nix index 333ebc6..5723275 100644 --- a/programs/vscode.nix +++ b/programs/vscode.nix @@ -1,14 +1,30 @@ -{pkgs, ...}: { - hm = { - home.packages = with pkgs; [vscode]; +{ + pkgs, + vscode-extensions, + ... +}: let + inherit (pkgs.stdenv.hostPlatform) system; + extensions = vscode-extensions.extensions.${system}; - programs.vscode = { - enable = true; - enableUpdateCheck = false; + patched = with pkgs.vscode-extensions; [ + ms-python.python + ms-vscode.cpptools + ms-vscode-remote.remote-ssh + rust-lang.rust-analyzer + wakatime.vscode-wakatime + ]; +in { + hm.programs.vscode = { + enable = true; + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; + mutableExtensionsDir = false; - extensions = with pkgs.vscode-extensions; [ + extensions = with extensions.vscode-marketplace; + patched + ++ [ # style - # bierner.markdown-preview-github-styles + bierner.markdown-preview-github-styles catppuccin.catppuccin-vsc # git @@ -19,12 +35,11 @@ github.copilot editorconfig.editorconfig mkhl.direnv + tailscale.vscode-tailscale usernamehw.errorlens - wakatime.vscode-wakatime # rust - # dustypomerleau.rust-syntax - rust-lang.rust-analyzer + dustypomerleau.rust-syntax serayuzgur.crates tamasfe.even-better-toml @@ -32,39 +47,42 @@ jnoortheen.nix-ide # cpp - # mesonbuild.mesonbuild + mesonbuild.mesonbuild ms-vscode.cmake-tools - ms-vscode.cpptools ms-vscode.makefile-tools twxs.cmake xaver.clang-format # python - # donjayamanne.python-environment-manager - ms-python.python + donjayamanne.python-environment-manager ms-python.vscode-pylance # java redhat.java ]; - userSettings = { - "cmake.configureOnOpen" = true; - "editor.fontFamily" = "'Iosevka Nerd Font', monospace"; - "editor.fontSize" = 16; - "editor.formatOnSave" = true; - "editor.inlineSuggest.enabled" = true; - "files.autoSave" = "afterDelay"; - "nix.enableLanguageServer" = true; - "nix.serverPath" = "nil"; - "rust-analyzer.check.command" = "clippy"; - "terminal.integrated.fontFamily" = "Iosevka Nerd Font"; - "workbench.colorTheme" = "Catppuccin Macchiato"; - "errorLens.messageBackgroundMode" = "message"; - "java.jdt.ls.java.home" = "${pkgs.jdk17}/lib/openjdk"; + userSettings = { + "cmake.configureOnOpen" = true; + "editor.fontFamily" = "'Iosevka Nerd Font', monospace"; + "editor.fontSize" = 16; + "editor.formatOnSave" = true; + "editor.inlineSuggest.enabled" = true; + "files.autoSave" = "afterDelay"; + "nix.enableLanguageServer" = true; + "nix.serverPath" = "nil"; + "rust-analyzer.check.command" = "clippy"; + "terminal.integrated.fontFamily" = "Iosevka Nerd Font"; + "workbench.colorTheme" = "Catppuccin Macchiato"; + "errorLens.messageBackgroundMode" = "message"; + "java.jdt.ls.java.home" = "${pkgs.jdk17}/lib/openjdk"; - # fix for segfault on hyprland - "window.titleBarStyle" = "custom"; + # fix for segfault on hyprland + "window.titleBarStyle" = "custom"; + + "remote.SSH.useLocalServer" = false; + "remote.SSH.remotePlatform" = { + "etna.fossa-macaroni.ts.net" = "linux"; + "contabo.fossa-macaroni.ts.net" = "linux"; }; }; };