Skip to content

Attempt/nix support#73

Merged
Brainitech merged 9 commits into
devfrom
attempt/Nix_Support
Jun 14, 2026
Merged

Attempt/nix support#73
Brainitech merged 9 commits into
devfrom
attempt/Nix_Support

Conversation

@Brainitech

Copy link
Copy Markdown
Owner

Overview

This PR introduces full declarative support for NixOS. Instead of relying on imperative package management, Brain Shell can now be installed natively as a Nix flake. The flake handles all Qt6, QuickShell, and system dependencies immutably, while a new distro-specific bash script wires up the mutable user configs and Hyprland autostarts.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (causes existing functionality to not work as expected)

Testing Checklist

  • I have tested these changes locally and on a fresh VM install.
  • I have tested the QML UI on my primary resolution.
  • (If applicable) I have tested UI changes on secondary monitors or different resolutions.
  • (If applicable) I have verified my bash scripts run cleanly without syntax errors.

Description

Arch Linux remains fully supported and untouched via the existing install-arch.sh. For NixOS, the architecture is split to respect Nix conventions:

  • System Dependencies: Managed completely via flake.nix (pulls QuickShell, Qt6, Wayland tools, fonts, and system services into environment.systemPackages).

  • User State: Managed via install-nix.sh to handle ~/.config generation, cache initialization, and safely appending autostarts to the active Hyprland config.

Changes

  • Added flake.nix & flake.lock: Configured inputs, Qt platform variables, and the system
  • Fixed Font Rendering: Registered nerd-fonts.jetbrains-mono and nerd-fonts.symbols-only explicitly in the flake via fonts.packages to ensure icon rendering works out of the.
  • Created install-nix.sh: Handles Hyprland autostart injection, config file creation, and cache dir.
  • Ported Keybind Checker: Carried over the live Python-based keybind conflict checker from the Arch script into the NixOS script so it intelligently checks the active Hyprland.
    Updated README: Added clean, 4-step NixOS setup instructions for end users.

Related Issues

Closes #58 , Closes #59, Resolves #70

@Brainitech
Brainitech merged commit 25f72f0 into dev Jun 14, 2026
3 checks passed
@Brainitech
Brainitech deleted the attempt/Nix_Support branch June 18, 2026 10:17
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