diff --git a/AGENTS.md b/AGENTS.md index 90d0d51..a5b8663 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,6 @@ This file provides guidelines for AI coding agents operating within this reposit - **Build**: `make build-usb` (Builds the NixOS workshop ISO) - **Local VM**: `make vm` (Starts local VM that simulates USB environment) -- **Lint**: `make lint` (Runs markdownlint, JSON validation, and nixpkgs-fmt) - **Test**: `make status-cloud` (Health checks for cloud infrastructure) - **Deploy**: `make deploy-cloud` (Deploys 15 VMs to Hetzner Cloud) diff --git a/common.nix b/common.nix index 10a69df..068ca60 100644 --- a/common.nix +++ b/common.nix @@ -515,43 +515,43 @@ isoConfig fi ''; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - User = "root"; - Environment = [ - "TERM=xterm-256color" - "HOME=/root" - ]; - }; - }; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + User = "root"; + Environment = [ + "TERM=xterm-256color" + "HOME=/root" + ]; + }; + }; - # Set Firefox as default browser - systemd.services.workshop-set-default-browser = { - description = "Set Firefox as the default browser for workshop user"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - path = with pkgs; [ - xdg-utils - coreutils - su - ]; - script = '' - # Set Firefox as default browser for workshop user - su - workshop -c "xdg-settings set default-web-browser firefox.desktop" - # Also set MIME types for HTML files - su - workshop -c "xdg-mime default firefox.desktop text/html" - su - workshop -c "xdg-mime default firefox.desktop x-scheme-handler/http" - su - workshop -c "xdg-mime default firefox.desktop x-scheme-handler/https" - ''; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - User = "root"; - }; - }; + # Set Firefox as default browser + systemd.services.workshop-set-default-browser = { + description = "Set Firefox as the default browser for workshop user"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + path = with pkgs; [ + xdg-utils + coreutils + su + ]; + script = '' + # Set Firefox as default browser for workshop user + su - workshop -c "xdg-settings set default-web-browser firefox.desktop" + # Also set MIME types for HTML files + su - workshop -c "xdg-mime default firefox.desktop text/html" + su - workshop -c "xdg-mime default firefox.desktop x-scheme-handler/http" + su - workshop -c "xdg-mime default firefox.desktop x-scheme-handler/https" + ''; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + User = "root"; + }; + }; - # Enhanced Bash Configuration with All Features + # Enhanced Bash Configuration with All Features programs.bash.interactiveShellInit = let recipeList = builtins.concatStringsSep " " allRecipes; @@ -1233,57 +1233,57 @@ isoConfig } ''; - programs.firefox = { - enable = true; - preferences = { - "browser.fixup.fallback-to-https" = false; - "browser.urlbar.autoFill" = false; - # Disable telemetry and data collection - "datareporting.healthreport.uploadEnabled" = false; - "datareporting.policy.dataSubmissionEnabled" = false; - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; - "toolkit.telemetry.shutdownPingSender.enabled" = false; - "toolkit.telemetry.updatePing.enabled" = false; - "toolkit.telemetry.bhrPing.enabled" = false; - "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.coverage.opt-out" = true; - "toolkit.coverage.opt-out" = true; - "toolkit.coverage.endpoint.base" = ""; - # Disable Mozilla experiments - "experiments.supported" = false; - "experiments.enabled" = false; - "experiments.manifest.uri" = ""; - # Disable crash reporting - "breakpad.reportURL" = ""; - "browser.tabs.crashReporting.sendReport" = false; - "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; - # Disable default browser check - "browser.shell.checkDefaultBrowser" = false; - # Disable welcome tour and onboarding - "browser.aboutwelcome.enabled" = false; - "browser.onboarding.enabled" = false; - "browser.onboarding.tour-type" = "new"; - "browser.onboarding.seen-tourset-version" = "999"; - "browser.onboarding.hidden" = true; - # Disable pocket - "extensions.pocket.enabled" = false; - # Disable Firefox accounts - "identity.fxaccounts.enabled" = false; - # Disable sponsored content - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - # Disable search suggestions - "browser.search.suggest.enabled" = false; - "browser.urlbar.suggest.searches" = false; - # Disable geolocation - "geo.enabled" = false; - # Disable webRTC - "media.peerconnection.enabled" = false; - }; - }; + programs.firefox = { + enable = true; + preferences = { + "browser.fixup.fallback-to-https" = false; + "browser.urlbar.autoFill" = false; + # Disable telemetry and data collection + "datareporting.healthreport.uploadEnabled" = false; + "datareporting.policy.dataSubmissionEnabled" = false; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.newProfilePing.enabled" = false; + "toolkit.telemetry.shutdownPingSender.enabled" = false; + "toolkit.telemetry.updatePing.enabled" = false; + "toolkit.telemetry.bhrPing.enabled" = false; + "toolkit.telemetry.firstShutdownPing.enabled" = false; + "toolkit.telemetry.coverage.opt-out" = true; + "toolkit.coverage.opt-out" = true; + "toolkit.coverage.endpoint.base" = ""; + # Disable Mozilla experiments + "experiments.supported" = false; + "experiments.enabled" = false; + "experiments.manifest.uri" = ""; + # Disable crash reporting + "breakpad.reportURL" = ""; + "browser.tabs.crashReporting.sendReport" = false; + "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; + # Disable default browser check + "browser.shell.checkDefaultBrowser" = false; + # Disable welcome tour and onboarding + "browser.aboutwelcome.enabled" = false; + "browser.onboarding.enabled" = false; + "browser.onboarding.tour-type" = "new"; + "browser.onboarding.seen-tourset-version" = "999"; + "browser.onboarding.hidden" = true; + # Disable pocket + "extensions.pocket.enabled" = false; + # Disable Firefox accounts + "identity.fxaccounts.enabled" = false; + # Disable sponsored content + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + # Disable search suggestions + "browser.search.suggest.enabled" = false; + "browser.urlbar.suggest.searches" = false; + # Disable geolocation + "geo.enabled" = false; + # Disable webRTC + "media.peerconnection.enabled" = false; + }; + }; # Font packages for GUI rendering (QEMU GTK display) fonts.packages = with pkgs; [ diff --git a/flake.nix b/flake.nix index 2595944..7af1443 100644 --- a/flake.nix +++ b/flake.nix @@ -10,10 +10,10 @@ }; outputs = - { self - , nixpkgs - , nixos-generators - , + { + self, + nixpkgs, + nixos-generators, }: let system = "x86_64-linux"; @@ -40,8 +40,8 @@ # Common configuration commonConfig = - { isLiveIso ? false - , + { + isLiveIso ? false, }: import ./common.nix { inherit pkgs cloudServerNames isLiveIso; @@ -76,10 +76,11 @@ (commonConfig { isLiveIso = false; }) ( - { config - , pkgs - , lib - , ... + { + config, + pkgs, + lib, + ... }: { boot.loader.grub.enable = false;