diff --git a/flake.lock b/flake.lock index a714aff..d23a8ad 100644 --- a/flake.lock +++ b/flake.lock @@ -548,11 +548,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1776522593, - "narHash": "sha256-HqQ8XQGv14TehBKL1IXF28wvbC6OCoHWvTOI/IdCA/8=", + "lastModified": 1776893458, + "narHash": "sha256-/oT77s8xQGAr80mWV+zcRixZMOqU6AJBloC97xuGY34=", "ref": "refs/heads/main", - "rev": "d821500db7375ebb346aaa17c80dc25214165584", - "revCount": 479, + "rev": "2c370afe8ed3ea4c198f65246a32a8809c246fd6", + "revCount": 524, "type": "git", "url": "https://git.berlin.ccc.de/vinzenz/nova-shell" }, diff --git a/nixosConfigurations/damocles/android-dev.nix b/nixosConfigurations/damocles/android-dev.nix new file mode 100644 index 0000000..ea5432c --- /dev/null +++ b/nixosConfigurations/damocles/android-dev.nix @@ -0,0 +1,43 @@ +{ pkgs, ... }: +let + androidComposition = pkgs.androidenv.composeAndroidPackages { + buildToolsVersions = [ "36.1.0" ]; + platformVersions = [ "35" ]; + includeNDK = false; + includeEmulator = false; + includeSystemImages = false; + }; + androidSdk = androidComposition.androidsdk; +in +{ + nixpkgs.config.android_sdk.accept_license = true; + + allowedUnfreePackages = [ + "android-sdk-cmdline-tools" + "android-sdk-platform-tools" + "android-sdk-tools" + "android-sdk-build-tools" + "android-sdk-platforms" + + # wtf + "platform-tools" + "tools" + "build-tools" + "cmdline-tools" + "platforms" + "cmake" # android sdk repackage + ]; + + environment.systemPackages = with pkgs; [ + androidSdk + gradle + kotlin + jdk21 + ]; + + environment.variables = { + ANDROID_HOME = "${androidSdk}/libexec/android-sdk"; + ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; + JAVA_HOME = "${pkgs.jdk21}"; + }; +} diff --git a/nixosConfigurations/damocles/default.nix b/nixosConfigurations/damocles/default.nix index 786a1b8..a91e131 100644 --- a/nixosConfigurations/damocles/default.nix +++ b/nixosConfigurations/damocles/default.nix @@ -1,5 +1,7 @@ { pkgs, self, ... }: { + imports = [ ./android-dev.nix ]; + nixpkgs.overlays = [ self.overlays.unstable-packages ]; boot.isContainer = true; @@ -21,4 +23,12 @@ }; security.sudo.wheelNeedsPassword = false; + + programs.nix-ld = { + enable = true; + libraries = with pkgs; [ + stdenv.cc.cc.lib + zlib + ]; + }; } diff --git a/nixosModules/global-settings-desktop.nix b/nixosModules/global-settings-desktop.nix index 5f8bbf7..bf23ef7 100644 --- a/nixosModules/global-settings-desktop.nix +++ b/nixosModules/global-settings-desktop.nix @@ -35,21 +35,25 @@ extraSpecialArgs = specialArgs; useGlobalPkgs = true; useUserPackages = true; + users = home-manager-users; + sharedModules = [ + { home.stateVersion = "22.11"; } + # keep-sorted start + self.homeModules.git + self.homeModules.gnome-extensions + self.homeModules.nano + self.homeModules.templates + self.homeModules.zsh-basics + # keep-sorted end + ]; }; time.timeZone = "Europe/Berlin"; - home-manager.sharedModules = [ - { home.stateVersion = "22.11"; } - # keep-sorted start - self.homeModules.git - self.homeModules.gnome-extensions - self.homeModules.nano - self.homeModules.templates - self.homeModules.zsh-basics - # keep-sorted end - ]; - - home-manager.users = home-manager-users; + # on desktops, keep the device useable interactively during expensive builds + nix = { + daemonCPUSchedPolicy = "idle"; + daemonIOSchedClass = "idle"; + }; }; }