From e73b319548ff0a37a4495cc3007ea0f8edc6eb01 Mon Sep 17 00:00:00 2001 From: "molly.computer" Date: Tue, 7 Jul 2026 21:40:33 -0400 Subject: [PATCH] Configure helix, vscodium, and git in home-manager --- flake.nix | 1 + home.nix | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- notes.md | 61 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index ebbbddc..c43fa3e 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; + home-manager.backupFileExtension = "hm-backup"; home-manager.users.mollyw = import ./home.nix; } ]; diff --git a/home.nix b/home.nix index bf1f104..1ac3696 100644 --- a/home.nix +++ b/home.nix @@ -16,11 +16,80 @@ programs = { home-manager.enable = true; + + helix = { + enable = true; + defaultEditor = true; + settings = { + theme = "catppuccin_mocha"; + editor.line-number = "relative"; + }; + }; + git = { enable = true; - settings.user = { - name = "molly.computer"; - email = "molly@molly.computer"; + settings = { + user = { + name = "molly.computer"; + email = "molly@molly.computer"; + }; + init.defaultBranch = "main"; + push.autoSetupRemote = true; + pull.rebase = false; + core.editor = "hx"; + }; + }; + + vscodium = { + enable = true; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + # Language / dev support + rust-lang.rust-analyzer + jnoortheen.nix-ide + tamasfe.even-better-toml + redhat.vscode-yaml + yzhang.markdown-all-in-one + dbaeumer.vscode-eslint + esbenp.prettier-vscode + + # Quality of life + usernamehw.errorlens + gruntfuggly.todo-tree + aaron-bond.better-comments + + # Theme + catppuccin.catppuccin-vsc + + # Custom extensions from Open VSX + (pkgs.vscode-utils.buildVscodeExtension { + pname = "kimi-code"; + version = "0.5.10"; + vscodeExtPublisher = "moonshot-ai"; + vscodeExtName = "kimi-code"; + vscodeExtUniqueId = "moonshot-ai.kimi-code"; + src = pkgs.fetchurl { + name = "kimi-code.vsix"; + url = "https://open-vsx.org/api/moonshot-ai/kimi-code/linux-x64/0.5.10/file/moonshot-ai.kimi-code-0.5.10@linux-x64.vsix"; + sha256 = "1pfdhbcvbb344mvdmmbymzlw8kzgkw6sxl9frmd9jx76pbgx3w9l"; + }; + }) + (pkgs.vscode-utils.buildVscodeExtension { + pname = "git-graph"; + version = "1.30.0"; + vscodeExtPublisher = "mhutchie"; + vscodeExtName = "git-graph"; + vscodeExtUniqueId = "mhutchie.git-graph"; + src = pkgs.fetchurl { + name = "git-graph.vsix"; + url = "https://open-vsx.org/api/mhutchie/git-graph/1.30.0/file/mhutchie.git-graph-1.30.0.vsix"; + sha256 = "0bsmvcxl5jg2qzhxx3mm2ki5xqp79mp2hf333m1ka413nvas7fm6"; + }; + }) + ]; + userSettings = { + "workbench.colorTheme" = "Catppuccin Mocha"; + }; }; }; }; @@ -73,4 +142,4 @@ ''; home.stateVersion = "25.11"; -} \ No newline at end of file +} diff --git a/notes.md b/notes.md index 91cc5ea..0e53cbc 100644 --- a/notes.md +++ b/notes.md @@ -101,6 +101,67 @@ MIT --- +## Development environment + +The user environment is managed by Home Manager in `home.nix`. + +### Editor: Helix + +- Package: `pkgs.helix` +- Default editor (`EDITOR=hx`) +- Theme: `catppuccin_mocha` +- Line numbers: relative + +### Git + +Git is fully configured through `programs.git`: + +- User: `molly.computer ` +- Default branch: `main` +- `push.autoSetupRemote = true` +- `pull.rebase = false` +- Core editor: Helix (`hx`) + +### IDE: VSCodium + +VSCodium is installed and managed through `programs.vscodium`. The default profile uses the **Catppuccin Mocha** theme and comes with the following extensions: + +**Language / dev support** +- rust-analyzer +- nix-ide +- Even Better TOML +- YAML +- Markdown All in One +- ESLint +- Prettier + +**Quality of life** +- Error Lens +- Todo Tree +- Better Comments +- Git Graph + +**Theme** +- Catppuccin for VSCode + +**AI** +- Kimi Code (`moonshot-ai.kimi-code`) + +### Custom Open VSX extensions + +Some extensions are not packaged in nixpkgs, so they are built from VSIX files downloaded from Open VSX: + +- `moonshot-ai.kimi-code` 0.5.10 +- `mhutchie.git-graph` 1.30.0 + +The `@` character in the upstream filenames is avoided by renaming the downloads in the `fetchurl` calls. + +### Backup behavior + +`flake.nix` sets `home-manager.backupFileExtension = "hm-backup"`, so any existing dotfiles that Home Manager wants to overwrite are backed up instead of causing the activation to fail. + +--- + ## chi / framework 12 — notes to expand later This section is a placeholder for things to document as the setup settles. -- 2.51.2