managing-vscode

Manage VSCode configurations and extensions via Nix Home Manager.

4|Updated Dec 21, 2025
One-click install
npx skills add https://github.com/greenheadHQ/nixos-config --skill managing-vscode
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: managing-vscode
Source: https://github.com/greenheadHQ/nixos-config/tree/main/.claude/skills/managing-vscode
Command: npx skills add https://github.com/greenheadHQ/nixos-config --skill managing-vscode

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Declaratively manage VSCode configurations, extensions, and keybindings via Nix Home Manager to eliminate drift from manual setup.

Core Features & Use Cases

  • Declarative install of VSCode and extensions using Home Manager modules.
  • Bi-directional management of settings and keybindings with mkOutOfStoreSymlink (no GUI-only changes).
  • Centralized configuration for file associations using duti and consistent environment on macOS.

Quick Start

Modify modules/darwin/programs/vscode/default.nix to adjust the extensions list, run nrs, and restart VSCode to apply changes.

Frequently Asked Questions about managing-vscode

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I declaratively manage VSCode extensions and settings with Nix Home Manager?

To declaratively manage VSCode extensions and settings with Nix Home Manager, you modify the program module to define extensions and use mkOutOfStoreSymlink for bi-directional settings synchronization, eliminating manual drift.

Can I use nix-darwin to configure VSCode file associations and keybindings?

Yes, you can use nix-darwin to configure VSCode by centralizing file associations with duti and managing keybindings via Home Manager modules to maintain a consistent macOS development environment.

What is the best way to prevent VSCode configuration drift on macOS?

The best way to prevent VSCode configuration drift on macOS is enforcing declarative management through Nix Home Manager modules, which handles extensions, settings, and keybindings reproducibly.

How do I install a new VSCode extension using this Nix setup?

To install a new VSCode extension, you adjust the extensions list in the darwin programs module, run the nrs command to apply the Nix generation, and restart VSCode to load the changes.

Does managing VSCode via Home Manager break manual GUI changes to settings?

Managing VSCode via Home Manager uses mkOutOfStoreSymlink for bi-directional management, meaning manual GUI changes are synchronized back rather than overwritten, preventing conflicts while maintaining declarative control.

Why use duti for file associations instead of native VSCode settings?

Using duti for file associations ensures macOS system-level defaults are declared consistently alongside your Nix environment, providing centralized configuration that survives manual drift better than native VSCode settings.