Commit Graph

37 Commits

Author SHA1 Message Date
Bernardo Magri
a9ee79a5ce fix: add stylix compatibility shims for missing program options
Stylix unconditionally imports all target modules, which expect certain
program options to exist even when those programs aren't enabled. This
causes evaluation errors.

Add stylix-compat.nix with stub options for:
- programs.neovim.initLua (maps to extraLuaConfig)
- programs.opencode.tui/themes

Also:
- Disable neovim/neovide stylix targets (we deploy theme lua via theme-loader)
- Set autoEnable = false to only enable explicitly listed targets
- Enable programs.neovim to satisfy stylix's neovim target
- Update stylix to latest version

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-11 20:20:32 +01:00
Bernardo Magri
b27fc5aee8 refactor: major architectural restructure for theme-centric organization
Theme System:
- Move all theme app configs to apps/ subdirectory (20 themes)
- Add theme-loader.nix for dynamic theme config deployment
- Simplify stylix.nix to focus on base theming only

Override System:
- Add overrides.nix for file-based config overrides
- Add behavior-configs.nix for non-visual configuration
- Split hypr/nomarchy.conf into behavior vs visual sections

Module Improvements:
- Add lib.mkDefault to all customizable settings
- Add modules/lib/ with shared utilities and state schema
- Update all home and system modules for downstream overridability

Installer:
- New minimal TTY installer (installer/install.sh)
- Golden path: BTRFS + LUKS2 (disko-golden.nix)
- New installer-iso.nix for TTY-only installation
- Keep graphical installer as installerIsoGraphical option

Cleanup:
- Remove obsolete install.sh, disko-ext4.nix, install-nomarchy.sh
- Update live-iso.nix references
- Add .claude/ to .gitignore for local IDE settings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-11 19:38:27 +01:00
Bernardo Magri
ef54a4b67c fix: stabilize waybar with systemd and correct shebangs 2026-04-08 20:03:15 +01:00
Bernardo Magri
8ae026474f fix: provide declarative fallback for theme hyprland.conf 2026-04-08 19:26:34 +01:00
Bernardo Magri
1184cad61a fix: exclude ported apps from XDG auto-mapping to avoid collisions 2026-04-07 18:59:45 +01:00
Bernardo Magri
3ff6815ab0 refactor: rename Hyprland entrypoint to nomarchy.conf and finalize config sourcing 2026-04-07 18:57:21 +01:00
Bernardo Magri
98b7c99023 feat: enable Hyprland and wlroots logging for debugging 2026-04-06 22:18:20 +01:00
Bernardo Magri
a6ec85d1ef fix: use proper settings attrset for hypridle 2026-04-06 21:52:07 +01:00
Bernardo Magri
0ce8602384 refactor: final architecture audit and hardening 2026-04-06 21:49:34 +01:00
Bernardo Magri
8b4e9ef6c8 cleanup: remove legacy config files and commit VM refactor 2026-04-06 21:46:08 +01:00
Bernardo Magri
a31023c037 refactor: systemic refactor for FHS compliance, native systemd migration, and script hardening 2026-04-06 21:45:33 +01:00
Bernardo Magri
5c45b10d88 refactor: unify SwayOSD and Hypridle configurations in Nix 2026-04-06 21:41:46 +01:00
Bernardo Magri
f5f515c2f7 refactor: strip redundant Alacritty theming in favor of Stylix 2026-04-06 21:41:30 +01:00
Bernardo Magri
358b129f0f refactor: harmonize Hyprland config by sourcing legacy hyprland.conf 2026-04-06 21:41:24 +01:00
Bernardo Magri
45ca66119a refactor: unify Walker configuration into Nix and delete legacy TOML 2026-04-06 21:41:11 +01:00
Bernardo Magri
db8b009638 refactor: unify Waybar configuration using Nix and fix legacy paths 2026-04-06 21:40:50 +01:00
Bernardo Magri
3e1b1efa6f refactor: safe stylix wallpaper path interpolation 2026-04-06 21:39:17 +01:00
Bernardo Magri
db6bdd8495 refactor: move state migration to pre-flight, fix XDG hardcoding, and prevent Nix store bloat 2026-04-06 21:37:24 +01:00
Bernardo Magri
bb6b46b76e fix(system): finalize VM stabilization and fix Hyprland syntax
- Restore custom SDDM theme.
- Clean up all remaining Hyprland windowrulev2 and layerrule syntax errors.
- Optimize VM configurations with 4GB RAM and virtio-vga graphics for stability.
- Remove diagnostic debug services and autologin debug settings.
- Ensure correct session autologin to hyprland-uwsm.
2026-04-05 14:58:33 +01:00
Bernardo Magri
c336f528a8 fix(hyprland): proper rule syntax for 0.52.1 and re-enable autostart
- Removed 'on/off' suffixes from window rules.
- Replaced 'match:' with proper colon syntax for selectors.
- Re-enabled swww, waybar, and boot scripts.
2026-04-05 14:30:46 +01:00
Bernardo Magri
1fa60ed64a fix(vm): increase RAM to 8GB and fix Hyprland rule syntax to prevent crashes
- Increase VM memory to 8192MB to avoid OOM kills during session startup.
- Migrate all 'windowrule' to 'windowrulev2' in core configuration.
- Fix 'no_anim' syntax in layer rules.
- Re-enable graphics while keeping serial logs for debugging.
2026-04-05 14:17:52 +01:00
Bernardo Magri
70798abcb0 fix(vm): debug hang by disabling on-boot scripts and increasing resources
- Temporarily disable 'nomarchy-on-boot' and 'nomarchy-welcome' in Hyprland to isolate hang.
- Increase VM memory to 4096MB and cores to 4.
- Enable serial console debugging for VM.
- Enable qemuGuest service.
2026-04-05 13:23:20 +01:00
Bernardo Magri
ac6087559d fix(vm): ensure Plymouth display and fix black screen in Hyprland
- Force essential kernel parameters for VMs (video mode, splash).
- Add necessary virtio drivers to initrd.availableKernelModules.
- Fix black screen in Hyprland by disabling hardware cursors.
- Add fallback wallpaper logic to prevent swww crashes.
2026-04-05 12:48:43 +01:00
Bernardo Magri
64c1dc937d chore(branding): update fastfetch ASCII icon and fix branding typos
- Optimized assets/branding/icon.txt with multi-color placeholders for fastfetch.
- Updated config/fastfetch/config.jsonc to use the new multi-colored icon.
- Added icon and svg branding assets to modules/home/theme-files.nix.
- Fixed 'Nnomarchy' typo to 'Nomarchy' and updated branding paths in several scripts.
- Corrected screensaver and welcome scripts to use the centralized branding assets.
2026-04-05 11:06:42 +01:00
Bernardo Magri
514b305713 feat(system): comprehensive branding, styling, and system feature update
- Relocate themes to assets/themes/ and update all references.
- Implement custom SDDM theme and Plymouth theme enhancements.
- Add themed templates for Alacritty, Hyprland, Waybar, and other apps.
- Introduce Makima key remapper module and configuration.
- Add Voxtype and Walker configurations.
- Implement systemd power management and timeout optimizations.
- Add Nautilus-python extensions for LocalSend.
- Update branding assets and ASCII art integration.
2026-04-05 10:52:41 +01:00
Bernardo Magri
e3d8c9ca75 feat(branding): professionalize installer and system branding
- Refactor installer with Gum for a professional interactive experience
- Create custom Nomarchy Plymouth theme with centered logo
- Establish assets/branding directory for official logos and ASCII art
- Update Fastfetch config with official ASCII art and declarative stats
- Declaratively link branding assets via Home Manager
2026-04-04 20:34:32 +01:00
Bernardo Magri
08e2b4e248 feat(system): professionalize system configurations
- Consolidate imperative system settings into /etc/nixos/state.json
- Implement nomarchy.system options for DNS, Wifi powersave, Timezone, and hardware features
- Add declarative browser policies for Chromium/Brave based on theme
- Update toggles scripts to mutate system JSON and run sys-update --impure
- Remove obsolete imperative browser theme and redundant system modules
2026-04-04 19:22:47 +01:00
Bernardo Magri
42f515f4a9 feat(themes): declaratively manage icons, cursors, and dark/light modes
- Automatically detect light mode via 'light.mode' file in theme folder
- Read icon theme name from 'icons.theme' file in theme folder
- Switch Stylix polarity and iconTheme based on theme selection
- Add yaru-theme and bibata-cursors to default packages
- Remove obsolete imperative nomarchy-theme-set-gnome script
2026-04-04 18:33:00 +01:00
Bernardo Magri
8775c6a4bf feat(upstream): switch to remote git repository for engine
- Update installer to use git+https://git.bemagri.xyz/bernardo/Nomarchy.git
- Remove redundant bundling/copying of the engine to /etc/nixos/nomarchy
- Expose all themes via xdg.dataFile for script accessibility
- Update theme scripts to resolve directories via local share instead of hardcoded system paths
- Update documentation to reflect the new remote-first architecture
2026-04-04 17:35:37 +01:00
Bernardo Magri
81d0f0b542 feat(downstream): add easy configuration overrides
- Introduce nomarchy.configOverrides option to map a user directory to ~/.config
- Implement automatic merging of upstream defaults and user overrides
- Use lib.mkDefault for all upstream mappings to allow granular HM overrides
- Update installer template with usage examples
2026-04-04 10:40:15 +01:00
Bernardo Magri
4020ad5878 feat(core): professionalize state migration via Nix activation
- Move state migration logic from shell scripts to Home Manager activation
- Ensure migrations run automatically during rebuilds
- Delete obsolete bin/nomarchy-migrate and migrations/ directory
2026-04-04 10:35:02 +01:00
Bernardo Magri
6032ab1815 fix(configs): declaratively map all upstream config directories
- Replace hardcoded subset with dynamic mapping of the config/ directory
- Apply recursive=true to directories to allow downstream user overrides
2026-04-04 10:25:15 +01:00
Bernardo Magri
b86c2bad43 feat(themes): implement declarative theme file management
- Link active theme files from themes/ directly via Home Manager
- Use 'recursive = true' to allow dynamic templating inside linked directories
- Simplify nomarchy-theme-set to rely on declarative links
- Update template generator to point to the unified theme directory
2026-04-04 10:13:12 +01:00
Bernardo Magri
cfd5e4bb65 feat(core): migrate system state to unified declarative JSON
- Consolidate all configuration toggles (suspend, idle, waybar, etc.) into ~/.config/home-manager/state.json
- Introduce nomarchy.toggles and nomarchy.hyprland options in Nix
- Inject toggle states into all bin/ scripts via environment variables
- Update toggle scripts to mutate JSON and trigger background rebuilds
- Add a migration script to transition legacy flag files to the new format
2026-04-04 10:11:09 +01:00
Bernardo Magri
90e1a21701 feat(home): enhance user environment and dynamic theming
- Implement dynamic palette generation from colors.toml themes
- Update script wrapper to handle non-executable source files
- Integrate Stylix for unified application theming
- Add state-based logic for persistent dynamic configurations
2026-04-03 21:07:12 +01:00
Bernardo Magri
29cc0d2547 feat: implement modular foundation and core system services
- Update flake.nix with 25.11 release and core inputs
- Add dedicated modules for audio (Pipewire), bluetooth, and networking
- Update GEMINI.md with the new Modular Merging Architecture blueprint
- Configure graphical installer ISO and test VM outputs
2026-04-03 21:06:42 +01:00
Bernardo Magri
33deeb494b initial commit 2026-04-01 17:06:01 +01:00