Skip to content

aarch#209

Open
connerohnesorge wants to merge 446 commits intomainfrom
aarch
Open

aarch#209
connerohnesorge wants to merge 446 commits intomainfrom
aarch

Conversation

@connerohnesorge
Copy link
Owner

@connerohnesorge connerohnesorge commented Jan 21, 2026

  • aarch-fix
  • fixes for aarch build

Summary by CodeRabbit

  • New Features

    • Added support for a NixOS host configuration targeting aarch64-linux.
    • Added velero, awscli2, and zen-browser to environment packages.
  • Changes

    • Removed NordVPN and several desktop/media/dev apps; reorganized GPU screen-recording to NVIDIA module.
    • Disabled Nix lazy-trees setting.
    • Removed graphite-cli and timewarrior.
  • Chores

    • Updated submodule pointer and set global Git user/email in run script.
  • Cosmetic

    • Added a commented package block for future use.

✏️ Tip: You can customize this high-level summary in your review settings.

connerohnesorge and others added 30 commits May 1, 2025 13:24
# 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).
connerohnesorge and others added 25 commits December 4, 2025 17:15
## 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>
## 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 -->

---------
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 21, 2026

Walkthrough

Submodule 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

Cohort / File(s) Summary
Submodule updates
\.config/nvim
Updated Neovim submodule pointer to a new commit hash
Host configuration — single-host change
hosts/CB14957.local/default.nix
Changed host username from cohnesor to connerohnesorge
Host configuration — new host
hosts/nixos/default.nix
Added new NixOS host module delib.host with boot, networking, services, locales, feature toggles (hyprland, engineer), and many subsystem settings
Host hardware config — new file
hosts/nixos/hardware.nix
Added hardware-specific configuration for nixos (aarch64-linux): boot/initrd/kernel modules, filesystems, UUIDs, and platform settings
Host configuration — minor
hosts/xps-nixos/default.nix
Added a commented-out environment.systemPackages block (no runtime effect)
System configuration
modules/config/user.nix
Removed lazy-trees = true from both darwin and NixOS Nix settings
Feature modules — engineer
modules/features/engineer.nix
Removed NordVPN import/service and many desktop packages; added velero and awscli2; pruned several input references
Feature modules — hyprland / nvidia
modules/features/hyprland.nix, modules/features/nvidia.nix
Moved gpu-screen-recorder from hyprland to nvidia; added zen-browser to hyprland; added gpu-screen-recorder to nvidia
Feature modules — shell
modules/features/zshell.nix
Removed graphite-cli and timewarrior from systemPackages
Setup script
run.sh
Added global Git config: user.email = "me@conneroh.com", user.name = "Conner Ohnesorge"

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'aarch' is vague and overly generic, not clearly conveying what was changed or why despite the PR addressing aarch build fixes and multiple configuration updates. Use a more descriptive title that captures the main objective, such as 'Add aarch64-linux NixOS host configuration and fix aarch build issues' or 'Configure nixos host for aarch64-linux and remove incompatible packages'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch aarch

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +15 to +21
darwin = {
imports = [
# inputs.determinate.darwinModules.default
];
nixpkgs.hostPlatform = "aarch64-linux";
system.stateVersion = "25.11";
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 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 1

Repository: 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.

Suggested change
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).

Comment on lines +28 to +33
myconfig = {
features = {
hyprland.enable = true;
engineer.enable = true;
};
programs = {};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

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.

Suggested change
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.

Comment on lines +1 to +3

git config --global user.email "me@conneroh.com"
git config --global user.name "Conner Ohnesorge"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants