Skip to content

aarch#209

Open
connerohnesorge wants to merge 4 commits intomainfrom
aarch
Open

aarch#209
connerohnesorge wants to merge 4 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.

Conner Ohnesorge and others added 2 commits January 21, 2026 08:31
@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.

1 participant