diff --git a/droid/default.nix b/droid/default.nix new file mode 100644 index 0000000..b9ca858 --- /dev/null +++ b/droid/default.nix @@ -0,0 +1,6 @@ +{ inputs, ... }@flakeContext: +{ + nixOnDroidConfigurations = { + epral = import ./epral.nix flakeContext; # epral (Android via nix-on-droid) + }; +} diff --git a/droid/epral.nix b/droid/epral.nix new file mode 100644 index 0000000..447976d --- /dev/null +++ b/droid/epral.nix @@ -0,0 +1,66 @@ +{ inputs, ... }@flakeContext: +let + # Host: epral (Android device via nix-on-droid, aarch64-linux) + # NOTE: nix-on-droid uses its own module system (class = "nixOnDroid"). + # Only options defined by nix-on-droid are available here: + # environment.*, nix.*, time.*, networking.hosts, user.*, home-manager.*, system.stateVersion + # NixOS-only options (boot.*, services.*, hardware.*, fileSystems.*, ...) do NOT exist here. + nixOnDroidModule = + { + config, + lib, + pkgs, + ... + }: + { + # user.home is read-only and always /data/data/com.termux.nix/files/home + user.userName = "oqyude"; # matches xlib.device.username used by the NixOS hosts + + environment = { + # Base CLI packages + packages = with pkgs; [ + vim + git + ripgrep + htop + file + tmux + ]; + # Backup existing files in /etc instead of failing activation + etcBackupExtension = ".bak"; + }; + + # Set up nix for flakes + nix.extraOptions = '' + experimental-features = nix-command flakes + ''; + + time.timeZone = "Europe/Moscow"; + + # Read the changelog before changing this value. + # nix-on-droid currently supports state versions only up to "24.05". + system.stateVersion = "24.05"; + + # home-manager is built in; point it at this repo's home-manager input + # and keep the config self-contained (repo home.nix depends on NixOS-only xlib.dirs). + # home-manager = { + # backupFileExtension = "hm-bak"; + # useGlobalPkgs = true; + # config = { config, lib, pkgs, ... }: { + # home.stateVersion = "24.05"; + # home.packages = with pkgs; [ ]; + # }; + # }; + }; +in +inputs.nix-on-droid.lib.nixOnDroidConfiguration { + pkgs = import inputs.nixpkgs { + system = "aarch64-linux"; + }; + modules = [ + nixOnDroidModule + ]; + extraSpecialArgs = { + inherit inputs; + }; +} diff --git a/flake.nix b/flake.nix index 8acd5d5..22314c0 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,10 @@ nixpkgs.follows = "nixpkgs"; }; }; + nix-on-droid = { + url = "github:nix-community/nix-on-droid/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; deploy-rs = { url = "github:serokell/deploy-rs"; inputs = { @@ -113,6 +117,7 @@ } // (import ./configurations flakeContext) // (import ./deploy flakeContext) + // (import ./droid flakeContext) // (import ./home flakeContext) // (import ./modules flakeContext) // (import ./overlays flakeContext)