diff --git a/flake.lock b/flake.lock index e2ab6da9..c9b886ef 100644 --- a/flake.lock +++ b/flake.lock @@ -230,6 +230,29 @@ "type": "github" } }, + "nix-formatter-pack": { + "inputs": { + "nixpkgs": [ + "nix-on-droid", + "nixpkgs" + ], + "nmd": "nmd", + "nmt": "nmt" + }, + "locked": { + "lastModified": 1666720474, + "narHash": "sha256-iWojjDS1D19zpeZXbBdjWb9MiKmVVFQCqtJmtTXgPx8=", + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "rev": "14876cc8fe94a3d329964ecb073b4c988c7b61f5", + "type": "github" + }, + "original": { + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "type": "github" + } + }, "nix-index-database": { "inputs": { "nixpkgs": [ @@ -250,6 +273,32 @@ "type": "github" } }, + "nix-on-droid": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nix-formatter-pack": "nix-formatter-pack", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", + "nmd": "nmd_2" + }, + "locked": { + "lastModified": 1694604941, + "narHash": "sha256-KsoRStRs8dNRRMWQhuB3eUOpzQhOc4dcBQB85tEq3wY=", + "owner": "t184256", + "repo": "nix-on-droid", + "rev": "039379abeee67144d4094d80bbdaf183fb2eabe5", + "type": "github" + }, + "original": { + "owner": "t184256", + "repo": "nix-on-droid", + "type": "github" + } + }, "nixgl": { "inputs": { "flake-utils": [ @@ -289,6 +338,22 @@ "type": "github" } }, + "nixpkgs-for-bootstrap": { + "locked": { + "lastModified": 1686921029, + "narHash": "sha256-J1bX9plPCFhTSh6E3TWn9XSxggBh/zDD4xigyaIQBy8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "type": "github" + } + }, "nixpkgs-unstable": { "locked": { "lastModified": 1696879762, @@ -305,6 +370,54 @@ "type": "github" } }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1666190571, + "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", + "owner": "rycee", + "repo": "nmd", + "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmd", + "type": "gitlab" + } + }, + "nmd_2": { + "flake": false, + "locked": { + "lastModified": 1666190571, + "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", + "owner": "rycee", + "repo": "nmd", + "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmd", + "type": "gitlab" + } + }, + "nmt": { + "flake": false, + "locked": { + "lastModified": 1648075362, + "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", + "owner": "rycee", + "repo": "nmt", + "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmt", + "type": "gitlab" + } + }, "nur": { "locked": { "lastModified": 1697074585, @@ -358,6 +471,7 @@ "homeage": "homeage", "kmonad": "kmonad", "nix-index-database": "nix-index-database", + "nix-on-droid": "nix-on-droid", "nixgl": "nixgl", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", diff --git a/flake.nix b/flake.nix index 9925d387..5b5ee017 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,12 @@ inputs.nixpkgs.follows = "nixpkgs-unstable"; }; + nix-on-droid = { + url = "github:t184256/nix-on-droid"; + inputs.home-manager.follows = "home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + pre-commit-hooks = { url = "github:cachix/pre-commit-hooks.nix"; inputs = { @@ -93,6 +99,10 @@ (mkNixos x86_64-linux "nixos-vm") ]; + nixOnDroidConfigurations = listToAttrs [ + (mkNixOnDroid "aarch64-linux" "nix-on-droid") + ]; + apps = mkForEachSystem [ (mkApp "setup" { file = "setup.sh"; diff --git a/home/base/default.nix b/home/base/default.nix index 083be35a..96e91079 100644 --- a/home/base/default.nix +++ b/home/base/default.nix @@ -1,8 +1,8 @@ -{ config, ... }: +{ config, lib, ... }: { home = { - homeDirectory = "/home/${config.home.username}"; + homeDirectory = lib.mkDefault "/home/${config.home.username}"; sessionPath = [ "$HOME/bin" diff --git a/home/roles/mobile/default.nix b/home/roles/mobile/default.nix new file mode 100644 index 00000000..68d8218a --- /dev/null +++ b/home/roles/mobile/default.nix @@ -0,0 +1,29 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.custom.roles.mobile; + username = "nix-on-droid"; + +in + +{ + options = { + custom.roles.mobile = { + enable = mkEnableOption "Mobile"; + }; + }; + + config = mkIf cfg.enable { + home = { + inherit username; + }; + + custom.base.non-nixos = { + enable = true; + installNix = false; + }; + }; +} diff --git a/hosts/nix-on-droid/home-nix-on-droid.nix b/hosts/nix-on-droid/home-nix-on-droid.nix new file mode 100644 index 00000000..d86d25dc --- /dev/null +++ b/hosts/nix-on-droid/home-nix-on-droid.nix @@ -0,0 +1,8 @@ +{ + custom.roles = { + homeage.enable = true; + mobile.enable = true; + }; + + home.stateVersion = "23.05"; +} diff --git a/hosts/nix-on-droid/nix-on-droid.nix b/hosts/nix-on-droid/nix-on-droid.nix new file mode 100644 index 00000000..6f88ab24 --- /dev/null +++ b/hosts/nix-on-droid/nix-on-droid.nix @@ -0,0 +1,46 @@ +{ config, lib, pkgs, homeModules, inputs, ... }: + +let + + mkUserConfigPath = host: "${inputs.self}/hosts/${host}/home-nix-on-droid.nix"; + +in + +{ + environment = { + #etcBackupExtension = ".nod-bak"; + #motd = null; + + packages = with pkgs; [ + git + ]; + }; + + home-manager = { + backupFileExtension = "hm-bak"; + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { inherit inputs; }; + sharedModules = homeModules; + + config = mkUserConfigPath "nix-on-droid"; + }; + + nix.package = pkgs.nix; + + # FIXME: update when released + system.stateVersion = "22.11"; + + terminal.font = + let + fontPackage = pkgs.nerdfonts.override { + fonts = [ "UbuntuMono" ]; + }; + fontPath = "/share/fonts/truetype/NerdFonts/UbuntuMonoNerdFont-Regular.ttf"; + in + fontPackage + fontPath; + + time.timeZone = "Europe/Zurich"; + + user.shell = "${pkgs.zsh}/bin/zsh"; +} diff --git a/lib/builders/mkNixOnDroid.nix b/lib/builders/mkNixOnDroid.nix new file mode 100644 index 00000000..fd200c28 --- /dev/null +++ b/lib/builders/mkNixOnDroid.nix @@ -0,0 +1,33 @@ +{ inputs, system, pkgs, customLib, homeModules, name, ... }: + +let + + inherit (pkgs) lib; + rootPath = inputs.self; + +in + +inputs.nix-on-droid.lib.nixOnDroidConfiguration { + modules = [ + "${rootPath}/hosts/${name}/nix-on-droid.nix" + + { + _file = ./mkNixOnDroid.nix; + + options.lib = lib.mkOption { + type = lib.types.attrsOf lib.types.attrs; + default = { }; + description = '' + This option allows modules to define helper functions, + constants, etc. + ''; + }; + + config.lib.custom = customLib; + } + ]; + + extraSpecialArgs = { + inherit inputs pkgs homeModules; + }; +} diff --git a/lib/default.nix b/lib/default.nix index fda4d4c1..850fbdad 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -78,4 +78,5 @@ in mkGeneric = nameValuePairWrapper; mkHome = simpleWrapper ./builders/mkHome.nix; mkNixos = simpleWrapper ./builders/mkNixos.nix; + mkNixOnDroid = simpleWrapper ./builders/mkNixOnDroid.nix; }