{ osConfig, lib, pkgs, ... }:
let
    hasGui = osConfig.services.dbus.implementation == "dbus";
    baseConfig = {};
    exts = pkgs.vscode-extensions;
in
{
    config = lib.mkIf hasGui
    {
        programs.vscode = {
            enable = true;
            profiles.default = {
                extensions = with exts; [
                    mkhl.direnv
                    bbenoist.nix
                    svelte.svelte-vscode
                    ms-python.python
                    ms-python.debugpy
                    ms-python.pylint
                    golang.go
                    github.vscode-github-actions
                    ms-vsliveshare.vsliveshare
                    prettier.prettier-vscode
                    sumneko.lua
                    astro-build.astro-vscode
                    ms-vscode.cpptools
                    mesonbuild.mesonbuild
                    skellock.just
                    docker.docker
                    redhat.vscode-yaml
                    bradlc.vscode-tailwindcss
                    dbaeumer.vscode-eslint
                    mesonbuild.mesonbuild
                    ms-vscode.cmake-tools
                    ms-dotnettools.csharp
                    ms-dotnettools.csdevkit
                    ms-dotnettools.vscode-dotnet-runtime
                ];
                userSettings = {
                    "chat.agent.enabled" = false;
                    "github.copilot.enable" = {};
                    "editor.inlineSuggest.suppressSuggestions" = true;
                };
            };
        };
    };
}
