Conversation
just work pls
* latest * latest
# Dotfile Upgrade - **New Features** - Automated generation of a custom Nix configuration file with predefined settings, including experimental features and user permissions. - Added a macOS-specific system configuration with tailored package management, user setup, system defaults, and application aliasing. - Introduced new shell script binaries for image and media processing utilities. - Added a Python 3.12 virtual environment with a curated set of scientific and utility packages. - **Chores** - Updated workflow to trigger only on the "main" branch and set a global environment variable for more detailed error reporting. - Switched to a new reusable workflow source for continuous integration. - Removed platform-specific module selection in home-manager configuration helpers. - Removed `sharedModules` and `qt` attributes from home-manager configuration. - Improved formatting and whitespace in configuration files for clarity. - Replaced a package input URL with a flakehub release reference. - Corrected package reference path in a Hyprland module configuration. - Removed several unused packages and applications from system and Python environments for streamlined configuration. - Eliminated `sops-nix` integration and related modules from the flake inputs and system modules. - Simplified function argument lists and removed explanatory comments in multiple Nix modules for cleaner code. - Removed mobile development and Bluetooth modules, as well as VPN and secrets management configurations, reducing system complexity. - Deleted obsolete or placeholder modules and configuration files to maintain a lean codebase. - Removed deprecated configuration blocks and unused packages from Linux system profiles for optimization. - Removed Nushell clipboard plugin submodule and related plugin metadata files. - Deleted Python scripts for media and image cleaning utilities, consolidating functionality in new packages. - Removed a package from the default shell environment for simplification. - Commented out Nushell plugin loading line to disable the `nupm` plugin. The updates include modifications to a GitHub Actions workflow configuration and enhancements to a Nix configuration module. The workflow now sets a global environment variable, references a new reusable workflow source with an added `fail-fast` parameter, and triggers only on pushes to the "main" branch. In the Nix module, a new `environment` attribute is introduced to generate a custom Nix configuration file using a helper function that formats various types of settings into appropriate configuration syntax. The home-manager helper function was simplified by removing platform-specific module selection. The `sops-nix` input and related modules were removed from the flake. A previously conditional shared module configuration was removed. A new macOS-specific NixOS configuration was added for `x86_64-darwin` systems, defining system packages, user setup, Homebrew integration, and an activation script for managing application aliases. Several modules and configuration files related to mobile development, Bluetooth, VPN, and media cleaning utilities were removed or simplified. New package derivations and Python virtual environments were added. Several configuration files related to Nushell plugins were deleted. ## Changes | File(s) | Change Summary | |--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | .github/workflows/ci.yml | Updated workflow to trigger only on "main" branch, added global `RUST_BACKTRACE=1` environment variable, switched reusable workflow source from `DeterminateSystems/ci` to `conneroisu/ci`, added `fail-fast: true` parameter. | | modules/shared/default.nix | Added `environment` attribute to generate `etc/nix/nix.custom.conf` with a helper function formatting Nix settings; defined environment variables and a curated set of packages from `pkgs` and `inputs` scoped by `namespace` and `system`; simplified `fonts.packages` to a fixed list. | | home-manager/utils/helpers.nix | Removed platform-specific conditional assignment of `mod` variable; simplified `modules` list to only include relative module `../.`. | | flake.nix | Removed `sops-nix` input and its module references; removed `flake-checker` input; reordered and regrouped inputs; updated some input versions and dependencies; flattened homebrew inputs; removed inputs like `nur`, `mk-shell-bin`, and `fenix`. | | home-manager/default.nix | Removed `sharedModules` attribute with conditional `stylix` configuration and removed `qt` attribute; no replacements added. | | systems/x86_64-darwin/Conners-MacBook-Air/default.nix | Added new macOS-specific NixOS configuration defining system packages, user setup, Homebrew integration with taps and Rosetta, system defaults, touch ID sudo authentication, and an activation script to create application aliases. | | modules/nixos/hyprland/default.nix | Corrected `ashell` package attribute path in `environment.systemPackages`; removed some rofi plugins and `spotify-cli-linux` package. | | modules/nixos/bluetooth/default.nix | Removed `pkgs` parameter from function argument list. | | modules/nixos/hardware-design/default.nix | Removed all inline comments describing function arguments; no changes to argument list or logic. | | modules/nixos/mobile-development/default.nix | Deleted entire module including option for enabling mobile development and adding `android-studio` to system packages. | | modules/nixos/office/default.nix | Removed argument list comments and unused parameters; simplified argument list to `lib`, `pkgs`, `namespace`, and `config`. | | modules/nixos/power-efficient/default.nix | Removed `with pkgs;` from scope when assigning `environment.systemPackages` to empty list; no other changes. | | packages/httptap/default.nix | Removed all comments describing function arguments; no changes to argument list or logic. | | systems/x86_64-linux/xps-nixos/default.nix | Removed `sops` configuration and `openvpn` service configuration; removed several packages from `systemPackages`; simplified function argument list by removing unused parameters; cleaned up commented journald config. | | systems/x86_64-linux/xps-nixos/us9662.nordvpn.com.tcp.ovpn | Deleted OpenVPN client configuration file containing connection and cryptographic settings. | | modules/home/commons/default.nix | Deleted entire module which provided base inputs and exposed an empty attribute set. | | result (deleted file) | Removed entire file at `/nix/store/piwmc9q3qdfwbzzvh15hhh67akdnz5wq-source`. | | modules/shared/clean_media.py | Deleted Python script for stripping metadata and resizing MP4 files using FFmpeg; removed all related functions and CLI logic. | | modules/shared/clean_png.py | Deleted Python script for cleaning PNG files by removing metadata and optionally optimizing; removed all related functions and CLI logic. | | packages/catls/default.nix | Added new derivation exporting a shell script binary `clean_media` that runs a Python script `catls.py` via a Python virtual environment. | | packages/convert_img/default.nix | Added new derivation exporting a shell script binary `clean_media` that runs a Python script `convert_img.py` via a Python virtual environment. | | packages/python-venv/default.nix | Added new Python 3.12 virtual environment with a curated set of Python packages including numpy, requests, pandas, scipy, matplotlib, and others. | | shells/default/default.nix | Removed `nixfmt-rfc-style` package from the default shell environment package list. | | systems/aarch64-darwin/Conners-MacBook-Air/default.nix | Removed commented-out arguments and the `"homebrew/homebrew-bundle"` tap; set `homebrew.casks` to an empty list explicitly. | | .config/nushell/nupm/plugins/.crates.toml | Deleted file containing local path dependency for `nu_plugin_clipboard` crate. | | .config/nushell/nupm/plugins/.crates2.json | Deleted file containing metadata about `nu_plugin_clipboard` plugin build and installation. | | .config/nushell/plugins/nupm | Deleted entire Nushell `nupm` plugin subproject reference. | | .config/nushell/remotes/nu_plugin_clipboard | Deleted Nushell clipboard plugin submodule commit reference. | | modules/nixos/nvidia/default.nix | Simplified `environment.systemPackages` assignment by removing unnecessary concatenation; no change in packages included. | | .config/nushell/config.nu | Commented out line sourcing the `nupm` plugin; disabling plugin loading. | | .github/workflows/flakehub-publish-rolling.yml | Deleted GitHub Actions workflow for publishing to FlakeHub on pushes to main. | <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Automated generation of a custom Nix configuration file with predefined settings, including experimental features and user permissions. - Added a macOS-specific system configuration with tailored package management, user setup, system defaults, and application aliasing. - Introduced new shell script binaries for image and media processing utilities. - Added a Python 3.12 virtual environment with a curated set of scientific and utility packages. - **Chores** - Updated workflow to trigger only on the "main" branch and set a global environment variable for more detailed error reporting. - Switched to a new reusable workflow source for continuous integration. - Removed platform-specific module selection in home-manager configuration helpers. - Removed `sharedModules` and `qt` attributes from home-manager configuration. - Improved formatting and whitespace in configuration files for clarity. - Replaced a package input URL with a flakehub release reference. - Corrected package reference path in a Hyprland module configuration. - Removed several unused packages and applications from system and Python environments for streamlined configuration. - Eliminated `sops-nix` integration and related modules from the flake inputs and system modules. - Simplified function argument lists and removed explanatory comments in multiple Nix modules for cleaner code. - Removed mobile development and Bluetooth modules, as well as VPN and secrets management configurations, reducing system complexity. - Deleted obsolete or placeholder modules and configuration files to maintain a lean codebase. - Removed deprecated configuration blocks and unused packages from Linux system profiles for optimization. - Removed Nushell clipboard plugin submodule and related plugin metadata files. - Deleted Python scripts for media and image cleaning utilities, consolidating functionality in new packages. - Removed a package from the default shell environment for simplification. - Commented out Nushell plugin loading line to disable the `nupm` plugin. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit - **New Features** - Added automatic pull request merging workflows and scheduled update merging via GitHub Actions. - Introduced a CI status badge in the README for quick build status visibility. - **Chores** - Removed an unused installation step from the check workflow. - Cleaned up commented-out trigger patterns in the CI workflow. - Added the "coder" package to system packages. - Updated system boot configuration to limit the number of retained configurations. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
add github token to flakecheck
This pull request includes a small change to the `.github/workflows/check.yaml` file. The change adds `checks: write` to the `permissions:` section, granting write access to checks. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated workflow permissions to improve status check reporting on GitHub. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…, and custom utility scripts. (#35) This update introduces significant changes to shell configuration, system package management, and custom utility scripts. It replaces a Python-based file listing tool with Ruby and Perl alternatives, restructures Nushell and Zsh configurations, updates Nix and NixOS modules and packages, and revises systemd and package management for improved modularity and integration.
- **added pandoc back** - **latest** - **latest** <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated the version of the Neovim configuration submodule. - Removed the 1Password Shell Plugins integration and added Codex as a new input source. - **New Features** - Added Codex, Kubectl, and Pandoc to the set of installed system packages. - **Refactor** - Adjusted system bootloader settings to keep a maximum of 2 configurations (previously 3). <!-- end of auto-generated comment: release notes by coderabbit.ai -->
- **add git-reset cmd alias to `git checkout main && git pull`** - **added templates** - **remove ocmments** - **latest** - **latest** - **save** - **latest** - **latest** - **move to denix** <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced modular and declarative configuration for hosts, user, home environment, and features such as audio, Bluetooth, NVIDIA GPU, power efficiency, engineering tools, darknet, secrets management, and Hyprland desktop. - Added new "catls" program and a dark rice theming configuration. - Provided reusable development shell templates for general, Rust, and Go environments. - **Bug Fixes** - Standardized configuration naming conventions and improved value consistency in user-facing config files. - **Documentation** - Added documentation for development shell templates. - **Chores** - Updated and simplified configuration structure, removed legacy and redundant modules, and cleaned up package definitions and system profiles. - **Style** - Improved naming consistency and readability in configuration files. - **Refactor** - Migrated to a more maintainable, modular configuration system and removed obsolete files and modules. - **Tests** - No changes to tests. - **Revert** - No revert actions present.
Add Elixir Phoenix Framework flake shell template with necessary files and update `flake.nix`. * **Add template files:** - Add `templates/elixir-phoenix-shell/.gitignore` with `.direnv` and `result`. - Add `templates/elixir-phoenix-shell/.envrc` with `use flake . --impure`. - Add `templates/elixir-phoenix-shell/flake.nix` with Elixir Phoenix Framework flake shell configuration. * **Update `flake.nix`:** - Add `elixir-phoenix-shell` entry to `templates` attribute with description and path to `./templates/elixir-phoenix-shell`. --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/conneroisu/dotfiles/pull/44?shareId=f7067a55-b581-4b49-a2bb-2506979cc156).
Add a new Remix JS flake-shell template with bun. * **flake.nix** - Add a new entry for the Remix JS flake-shell template with bun in the `templates` section. * **templates/remix-js-shell/flake.nix** - Create a new Remix JS flake-shell template with bun. - Include necessary dependencies and configurations for Remix JS and bun. * **README.md** - Add a section mentioning the new Remix JS flake-shell template. - Provide instructions on how to apply the template and a warning about its limitations. - Add an example of adding a package build for the Remix JS dev shell. --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/conneroisu/dotfiles/pull/43?shareId=b5e83195-6fae-47fc-b00d-681daaae23fe).
## Summary Implements the `add-cf-program` change by creating a standalone Nix program module for fuzzy directory navigation, replacing the shell alias with a properly packaged tool. ## Changes - **New**: `modules/programs/cf/cf` - Interactive fuzzy directory finder shell script - **New**: `modules/programs/cf/default.nix` - Nix module with Denix pattern - **Modified**: `.zshrc` - Replaced alias with shell function wrapper - **Modified**: `spectr/changes/add-cf-program/tasks.md` - All tasks marked complete - **Formatting**: Various files formatted by `nix fmt` ## Features - Fast directory discovery using `fd` - Interactive selection with directory preview via `fzf` - Cross-platform support (NixOS/Darwin) - Proper dependency management through Nix wrapper - Help system (`cf --help`) and comprehensive error handling - Graceful cancellation behavior ## Implementation Details The `cf` binary outputs the selected directory path, and a shell function in `.zshrc` captures this output to change to that directory in the current shell session. This approach allows the program to work as a standalone Nix package while maintaining shell integration. ## Testing - ✅ NixOS build successful (`nixos-rebuild build --flake .`) - ✅ Help command verified (`cf --help`) - ✅ Underlying fd command tested - ✅ Lint checks passed (`nix develop -c lint`) - ✅ Code formatting completed (`nix fmt`) - ✅ No conflicting cf alias references ## Impact - **Affected specs**: `shell-utilities` (new capability) - **Automatic inclusion**: Available to all systems with `engineer` feature enabled - **Migration**: Old alias replaced with shell function (backward compatible) 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added an interactive fuzzy directory navigator for searching and selecting directories with live preview. * Enabled the navigator feature in the configuration set. * **Style** * Replaced the previous directory shortcut with a safer shell helper that avoids errors when no selection is made. * Formatting and whitespace cleanups across various modules and templates. * **Chores** * Marked related setup/task checklist items as completed. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
) ## Summary - Replace the simple `latest` alias (`git add . && git commit -m "latest" && git push`) with a program that invokes `cldk` to generate meaningful AI-assisted commit messages - Create `modules/programs/latest/` with Denix module pattern following existing conventions - Enable `latest` program in `engineer.nix` for both NixOS and Darwin platforms - Additional config updates: stowrc ignore list, conclaude cleanup, mouseless keyboard config ## Test plan - [x] Run `nix flake check` to validate module syntax - [x] Run `nixos-rebuild build --flake .` to verify NixOS configuration builds - [x] Verified `latest` program is included in the build output ## Summary by CodeRabbit * **New Features** * Added a cross-platform "latest" command to commit and push changes with AI-generated messages. * **Configuration** * Added comprehensive app/UI configuration (keyboard, grid, styling, behavior). * Enabled the "latest" feature in system profiles and expanded tool/library declarations. * **Other** * Removed the prior shell alias for "latest". * Removed Docker NVIDIA auto-enable flag. * Adjusted runtime library lookup for CUDA-enabled shells. * **Cleanup** * Removed configurable rounds option from stop settings. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary Archived completed change: `add-cf-program` **Location**: `spectr/changes/archive/2025-12-05-add-cf-program/` ## Spec Updates | Operation | Count | |-----------|-------| | Added | 3 | | Modified | 0 | | Removed | 0 | | Renamed | 0 | **Updated capabilities**: - shell-utilities ## Review Checklist - [ ] Archived change structure is complete - [ ] Spec deltas are accurate - [ ] Merged spec content is correct --- *Generated by `spectr pr archive`*
## Summary Archived completed change: `add-latest-program` **Location**: `spectr/changes/archive/2025-12-10-add-latest-program/` ## Spec Updates | Operation | Count | |-----------|-------| | Added | 1 | | Modified | 0 | | Removed | 0 | | Renamed | 0 | **Updated capabilities**: - shell-utilities ## Review Checklist - [ ] Archived change structure is complete - [ ] Spec deltas are accurate - [ ] Merged spec content is correct --- *Generated by `spectr pr archive`* <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a new "Latest Program" to shell-utilities that commits and pushes all uncommitted changes with AI-generated commit messages. * Cross-platform availability on NixOS and Darwin systems. * Replaces previous shell alias with enhanced commit message generation. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
The spectr package was only available on NixOS systems via the engineer
module, but not on darwin/macOS systems.
**Changes:**
- Added
`inputs.spectr.packages."${pkgs.stdenv.hostPlatform.system}".default` to
darwin's `environment.systemPackages` in `modules/features/engineer.nix`
- Placed alongside existing flake input packages (nix-auth,
nix-ai-tools, conclaude)
```nix
darwin.ifEnabled = {
environment = {
systemPackages = with pkgs; [
# ... existing packages ...
# Nix tools
inputs.nix-auth.packages."${pkgs.stdenv.hostPlatform.system}".default
inputs.nix-ai-tools.packages."${pkgs.stdenv.hostPlatform.system}".crush
inputs.conclaude.packages."${pkgs.stdenv.hostPlatform.system}".default
inputs.spectr.packages."${pkgs.stdenv.hostPlatform.system}".default # Added
];
};
};
```
Darwin systems with the engineer module now have feature parity with
NixOS.
> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> -
`https://api.github.com/repos/numtide/treefmt-nix/tarball/5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4`
> - Triggering command: `/nix/var/nix/profiles/default/bin/nix nix fmt`
(http block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/connerohnesorge/dotfiles/settings/copilot/coding_agent)
(admins only)
>
> </details>
<!-- START COPILOT ORIGINAL PROMPT -->
<details>
<summary>Original prompt</summary>
>
> ----
>
> *This section details on the original issue you should resolve*
>
> <issue_title>add spectr to darwin config in engineer
module</issue_title>
> <issue_description>We currently in the engineer module add
inputs.spectr.packages.${system}.default to just nixos systems, but we
should also add it to darwin systems that enable the engineer
module.</issue_description>
>
> <agent_instructions>This phase adds spectr package support to darwin
systems in the engineer module.
>
> In `modules/features/engineer.nix`:
> - Locate the darwin.ifEnabled block's environment.systemPackages list
> - Add
`inputs.spectr.packages."${pkgs.stdenv.hostPlatform.system}".default` to
> the systemPackages concatenation
> - Place it alongside existing flake input packages (nix-auth,
nix-ai-tools,
> conclaude)
> - Use the same package reference pattern as the NixOS
section</agent_instructions>
>
> ## Comments on the Issue (you are @copilot in this section)
>
> <comments>
> </comments>
>
</details>
<!-- START COPILOT CODING AGENT SUFFIX -->
- Fixes #201
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 We'd love your input! Share your thoughts on Copilot coding agent in
our [2 minute survey](https://gh.io/copilot-coding-agent-survey).
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: connerohnesorge <88785126+connerohnesorge@users.noreply.github.com>
Adds a shell alias `g='git'` to enable shorter git command invocation. **Changes:** - Added `alias g='git'` to `.zshrc` on line 57, positioned with other git-related aliases **Usage:** ```bash g status # equivalent to: git status g commit -m # equivalent to: git commit -m g push # equivalent to: git push ``` <!-- START COPILOT ORIGINAL PROMPT --> <details> <summary>Original prompt</summary> > > ---- > > *This section details on the original issue you should resolve* > > <issue_title>alias g to git in .zshrc</issue_title> > <issue_description>```zsh > alias g='git' > ```</issue_description> > > ## Comments on the Issue (you are @copilot in this section) > > <comments> > </comments> > </details> <!-- START COPILOT CODING AGENT SUFFIX --> - Fixes #199 <!-- START COPILOT CODING AGENT TIPS --> --- ✨ Let Copilot coding agent [set things up for you](https://github.com/connerohnesorge/dotfiles/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: connerohnesorge <88785126+connerohnesorge@users.noreply.github.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** - Added NVIDIA GPU monitoring and performance analysis utilities - Integrated new editor plugins and development enhancements * **Chores** - Updated configuration hooks and system command handling - Pinned critical dependencies to specific versions for improved stability and reproducibility - Extended development environment with additional system packages and tools <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Adds `alias v='nvim'` to `.zshrc` for faster editor access. ```sh alias v='nvim' ``` Placed after the existing `alias vim='nvim'` for logical grouping with nvim-related aliases. <!-- START COPILOT ORIGINAL PROMPT --> <details> <summary>Original prompt</summary> > > ---- > > *This section details on the original issue you should resolve* > > <issue_title>Alias 'v' to 'nvim' in .zshrc</issue_title> > <issue_description>Add the following alias to the `.zshrc` file: > > ```sh > alias v='nvim' > ``` > > This will allow opening `nvim` with a simple `v` command in the terminal. Make sure to source the `.zshrc` file or restart your shell after making this change.</issue_description> > > ## Comments on the Issue (you are @copilot in this section) > > <comments> > </comments> > </details> <!-- START COPILOT CODING AGENT SUFFIX --> - Fixes #204 <!-- START COPILOT CODING AGENT TIPS --> --- ✨ Let Copilot coding agent [set things up for you](https://github.com/connerohnesorge/dotfiles/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: connerohnesorge <88785126+connerohnesorge@users.noreply.github.com>
- Update flake.lock with latest package versions - Rename nix-ai-tools to llm-agents.nix - Add glaude program for local Google Claude proxy - Add gh-dash, radicle tools, and amp to engineer feature - Fix hyprland gnome desktop manager configuration - Add klaude alias to .zshrc - Remove conclaude generated file edit prevention config 💘 Generated with Crush Assisted-by: Kimi for Coding via Crush <crush@charm.land> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a new "glaude" program option and a "student" feature module. * New terminal keybinding: open a new tab in current directory (Ctrl+Shift+T). * Zsh: interactive edit shortcut (Ctrl‑X Ctrl‑E) and three convenience aliases. * **Chores** * Switched default terminal to kitty and removed automatic background launcher. * Simplified configuration templates and notification placeholders for easier customization. * Updated AI model defaults and CLI permission behavior for assistant tooling. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…iles (#207) Templates failed `nix flake check` on macOS because they defined packages that tried to build from non-existent source files. ## Changes **Commented out example package definitions:** - `csharp-shell`: `buildDotnetModule` referencing missing `src/MyApp.csproj` and `deps.json` - `go-shell`: `buildGoModule` with `src = self` (no Go sources in template) - `zig-shell`: `mkDerivation` with `src = self` (no Zig sources in template) - `ocaml-shell`: Three `buildDunePackage` definitions with `src = ./.` (no OCaml sources) **Added minimal `composer.json` to `laravel-shell`:** - Required by `buildPhpFromComposer { src = inputs.self; ... }` - Prevents evaluation failure during flake check Templates remain fully functional as development environments. Users can uncomment package definitions when they have actual project source files. ```nix # Before (fails nix flake check) packages = { default = pkgs.buildGoModule { src = self; # No Go sources exist in template ... }; }; # After (check passes, users can uncomment when ready) # packages = { # default = pkgs.buildGoModule { # src = ./.; # Use project sources # ... # }; # }; ``` > [!WARNING] > > <details> > <summary>Firewall rules blocked me from connecting to one or more addresses (expand for details)</summary> > > #### I tried to connect to the following addresses, but was blocked by firewall rules: > > - `https://api.github.com/repos/numtide/flake-utils/commits/HEAD` > - Triggering command: `/nix/var/nix/profiles/default/bin/nix nix flake metadata` (http block) > - Triggering command: `/nix/var/nix/profiles/default/bin/nix nix flake metadata owner --uid-owner 0 -j ACCEPT` (http block) > - `https://api.github.com/repos/numtide/flake-utils/tarball/11707dc2f618dd54ca8739b309ec4fc024de578b` > - Triggering command: `/nix/var/nix/profiles/default/bin/nix nix flake check` (http block) > - `https://api.github.com/repos/numtide/treefmt-nix/tarball/dec15f37015ac2e774c84d0952d57fcdf169b54d` > - Triggering command: `/nix/var/nix/profiles/default/bin/nix nix fmt -- templates/csharp-shell/flake.nix templates/go-shell/flake.nix templates/zig-shell/flake.nix templates/ocaml-shell/flake.nix templates/laravel-shell/flake.nix templates/laravel-shell/composer.json` (http block) > > If you need me to access, download, or install something from one of these locations, you can either: > > - Configure [Actions setup steps](https://gh.io/copilot/actions-setup-steps) to set up my environment, which run before the firewall is enabled > - Add the appropriate URLs or hosts to the custom allowlist in this repository's [Copilot coding agent settings](https://github.com/connerohnesorge/dotfiles/settings/copilot/coding_agent) (admins only) > > </details> <!-- START COPILOT CODING AGENT SUFFIX --> <!-- START COPILOT ORIGINAL PROMPT --> <details> <summary>Original prompt</summary> > Reference: https://github.com/connerohnesorge/dotfiles/actions/runs/20668596057/job/59345521821#step:4:1 > > > Fix the failing template shells </details>
paradigm better than kitty's
## Summary - Add per-host `username` option allowing different usernames per machine - Create work machine host config (`CB14957.local`) with username `cohnesor` - Update all modules to use dynamic username from `myconfig.constants.username` - Update standalone home-manager configs to accept username as argument ## Changes - `modules/config/hosts.nix` - Added `username` option with default - `modules/config/constants.nix` - Username derives from host config - `modules/config/user.nix` - Fixed hardcoded usernames - `modules/features/engineer.nix` - Dynamic NordVPN users and nh flake path - `hosts/mac-nix/default.nix` - Uses dynamic username pattern - `hosts/CB14957.local/default.nix` - New work machine config - `.config/home-manager/*` - Updated to support multiple users ## Usage ```bash # Personal machines (use default username) darwin-rebuild switch --flake .#Conners-MacBook-Air # Work machine darwin-rebuild switch --flake .#CB14957.local ``` ## Test plan - [ ] Verify `nix flake check` passes - [ ] Test rebuild on personal machine - [ ] Test rebuild on work machine <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added browser integration with selectable extensions and a new browser input for home configurations. * Introduced a firefox-addons input and applied its overlay across platforms. * **Chores** * Extended system configuration support for additional macOS and Linux hosts. * Made user/home settings configurable per-host (dynamic usernames and platform-specific home paths). * Centralized and parameterized user-related options for flexible multi-machine deployments. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> ---------
WalkthroughSubmodule pointer updated; a new NixOS host (hosts/nixos) with accompanying hardware file was added; one host username changed; several feature modules had package/inclusion changes; lazy-trees removed from user Nix settings; Git global name/email set in run.sh. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Fix all issues with AI agents
In `@hosts/nixos/default.nix`:
- Around line 28-33: The feature flags are using the wrong key names
(myconfig.features.hyprland.enable and myconfig.features.engineer.enable) which
doesn't match the expected boolean shape; change them to set
myconfig.features.hyprland = true and myconfig.features.engineer = true instead
(leave myconfig.programs untouched), ensuring the features are simple booleans
under myconfig.features so evaluation and feature toggling work as expected.
- Around line 15-21: In the darwin configuration block update the
nixpkgs.hostPlatform value from "aarch64-linux" to a Darwin platform string
(e.g., "aarch64-darwin") so the darwin block evaluates against macOS-compatible
packages; locate the darwin block and change the nixpkgs.hostPlatform assignment
accordingly (leave other keys like system.stateVersion unchanged).
In `@run.sh`:
- Around line 1-3: Add a shebang to the top of run.sh (e.g., use /usr/bin/env
bash) so the interpreter is explicit, and retain the existing git config lines
(git config --global user.email and git config --global user.name);
additionally, instead of hardcoding username/email in run.sh consider
referencing or moving those values into the project constants
(modules/config/constants.nix) and loading them into the script so the
credentials are centralized and not duplicated.
🧹 Nitpick comments (1)
hosts/xps-nixos/default.nix (1)
45-50: Avoid keeping commented-out package lists.Commented blocks tend to rot; either remove them or make them a real option (e.g., behind a feature flag) so they stay validated.
| darwin = { | ||
| imports = [ | ||
| # inputs.determinate.darwinModules.default | ||
| ]; | ||
| nixpkgs.hostPlatform = "aarch64-linux"; | ||
| system.stateVersion = "25.11"; | ||
| }; |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# First, let's see what hosts exist and examine the file structure
echo "=== Listing hosts directory structure ==="
find hosts -type f -name "*.nix" | head -20
echo -e "\n=== Checking hosts/nixos/default.nix full content ==="
cat hosts/nixos/default.nix
echo -e "\n=== Search for darwin platform definitions in the repo ==="
rg -n 'darwin\s*=' hosts -g '*.nix' -B 2 -A 5
echo -e "\n=== Search for hostPlatform definitions ==="
rg -n 'hostPlatform' hosts -g '*.nix' -B 1 -A 1Repository: connerohnesorge/dotfiles
Length of output: 6800
Set a Darwin hostPlatform instead of Linux.
The darwin block currently uses "aarch64-linux", which makes nix-darwin evaluate against the Linux platform and can select incompatible packages or error. This file has a placeholder darwin block to satisfy the host module evaluation. Use a Darwin platform (e.g., "aarch64-darwin") to match the pattern in other nixos hosts like xps-nixos and oxe-nixos.
🔧 Proposed fix
darwin = {
imports = [
# inputs.determinate.darwinModules.default
];
- nixpkgs.hostPlatform = "aarch64-linux";
+ nixpkgs.hostPlatform = "aarch64-darwin";
system.stateVersion = "25.11";
};📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| darwin = { | |
| imports = [ | |
| # inputs.determinate.darwinModules.default | |
| ]; | |
| nixpkgs.hostPlatform = "aarch64-linux"; | |
| system.stateVersion = "25.11"; | |
| }; | |
| darwin = { | |
| imports = [ | |
| # inputs.determinate.darwinModules.default | |
| ]; | |
| nixpkgs.hostPlatform = "aarch64-darwin"; | |
| system.stateVersion = "25.11"; | |
| }; |
🤖 Prompt for AI Agents
In `@hosts/nixos/default.nix` around lines 15 - 21, In the darwin configuration
block update the nixpkgs.hostPlatform value from "aarch64-linux" to a Darwin
platform string (e.g., "aarch64-darwin") so the darwin block evaluates against
macOS-compatible packages; locate the darwin block and change the
nixpkgs.hostPlatform assignment accordingly (leave other keys like
system.stateVersion unchanged).
| myconfig = { | ||
| features = { | ||
| hyprland.enable = true; | ||
| engineer.enable = true; | ||
| }; | ||
| programs = {}; |
There was a problem hiding this comment.
Use boolean feature flags (avoid .enable here).
Host configs in this repo enable features via myconfig.features.<name> = true. Using .enable likely won’t match the expected option shape and can leave features disabled or fail evaluation.
🔧 Proposed fix
myconfig = {
features = {
- hyprland.enable = true;
- engineer.enable = true;
+ hyprland = true;
+ engineer = true;
};
programs = {};
};Based on learnings, host configs should enable features using myconfig.features.<name> = true.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| myconfig = { | |
| features = { | |
| hyprland.enable = true; | |
| engineer.enable = true; | |
| }; | |
| programs = {}; | |
| myconfig = { | |
| features = { | |
| hyprland = true; | |
| engineer = true; | |
| }; | |
| programs = {}; |
🤖 Prompt for AI Agents
In `@hosts/nixos/default.nix` around lines 28 - 33, The feature flags are using
the wrong key names (myconfig.features.hyprland.enable and
myconfig.features.engineer.enable) which doesn't match the expected boolean
shape; change them to set myconfig.features.hyprland = true and
myconfig.features.engineer = true instead (leave myconfig.programs untouched),
ensuring the features are simple booleans under myconfig.features so evaluation
and feature toggling work as expected.
|
|
||
| git config --global user.email "me@conneroh.com" | ||
| git config --global user.name "Conner Ohnesorge" |
There was a problem hiding this comment.
Add a shebang line to specify the shell interpreter.
The script is missing a shebang (e.g., #!/bin/bash or #!/usr/bin/env bash), which makes the interpreter ambiguous and can cause portability issues.
Additionally, consider whether hardcoding Git credentials here is the best approach. Based on learnings, user constants like username and email are typically defined in modules/config/constants.nix for consistency across the configuration.
Proposed fix
+#!/usr/bin/env bash
- git config --global user.email "me@conneroh.com"
- git config --global user.name "Conner Ohnesorge"
+git config --global user.email "me@conneroh.com"
+git config --global user.name "Conner Ohnesorge"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| git config --global user.email "me@conneroh.com" | |
| git config --global user.name "Conner Ohnesorge" | |
| #!/usr/bin/env bash | |
| git config --global user.email "me@conneroh.com" | |
| git config --global user.name "Conner Ohnesorge" |
🧰 Tools
🪛 Shellcheck (0.11.0)
[error] 1-1: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
(SC2148)
🤖 Prompt for AI Agents
In `@run.sh` around lines 1 - 3, Add a shebang to the top of run.sh (e.g., use
/usr/bin/env bash) so the interpreter is explicit, and retain the existing git
config lines (git config --global user.email and git config --global user.name);
additionally, instead of hardcoding username/email in run.sh consider
referencing or moving those values into the project constants
(modules/config/constants.nix) and loading them into the script so the
credentials are centralized and not duplicated.
de7b275 to
85b8fb9
Compare
Summary by CodeRabbit
New Features
Changes
Chores
Cosmetic
✏️ Tip: You can customize this high-level summary in your review settings.