From 14c7d85a576eada9023a01f91ffccdf3f3f65cad Mon Sep 17 00:00:00 2001 From: Aleksandr Lebedev Date: Mon, 6 Jan 2025 18:58:09 +0100 Subject: [PATCH] Added nix on droid --- README.md | 20 ++-- flake.lock | 152 +++++++++++++++++++++++++++-- flake.nix | 15 ++- nixos/configuration.nix | 3 + nixos/home.nix | 2 +- nixos/hosts/android/default.nix | 13 +++ nixos/hosts/android/home.nix | 6 ++ nixos/modules/hyprland/default.nix | 1 + nixos/modules/nixvim/default.nix | 1 + 9 files changed, 195 insertions(+), 18 deletions(-) create mode 100644 nixos/hosts/android/default.nix create mode 100644 nixos/hosts/android/home.nix diff --git a/README.md b/README.md index 30c747d..a1cbe15 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,32 @@ # NixOS Config Apply cloned config -~~~ +```bash sudo nixos-rebuild switch --flake ~/nixos-config#kylekrein-homepc -~~~ +``` Rebuild system -~~~ +```bash nh os switch -~~~ +``` Generate hardware report -~~~ +```bash sudo nix run \ --option experimental-features "nix-command flakes" \ --option extra-substituters https://numtide.cachix.org \ --option extra-trusted-public-keys numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE= \ github:numtide/nixos-facter -- -o facter.json -~~~ +``` ## Install system Assuming that you're in nixos installer -~~~ +```bash sudo nix --extra-experimental-features "flakes nix-command" run github:nix-community/disko -- --mode zap_create_mount --flake github:KyleKrein/nixos-config#kylekrein-homepc -~~~ +``` Copy sops age keys to `/persist/sops/age/keys.txt` or to `/var/lib/sops/age/keys.txt` if not using impermanence -~~~ +```bash sudo mkdir /mnt/tmp && TMPDIR=/mnt/tmp sudo nixos-install --flake github:KyleKrein/nixos-config#kylekrein-homepc --no-root-passwd && sudo rm -rf /mnt/tmp -~~~ +``` diff --git a/flake.lock b/flake.lock index 9893456..4bee2c3 100644 --- a/flake.lock +++ b/flake.lock @@ -772,6 +772,32 @@ "type": "github" } }, + "nix-formatter-pack": { + "inputs": { + "nixpkgs": [ + "nix-on-droid", + "nixpkgs" + ], + "nmd": [ + "nix-on-droid", + "nmd" + ], + "nmt": "nmt" + }, + "locked": { + "lastModified": 1705252799, + "narHash": "sha256-HgSTREh7VoXjGgNDwKQUYcYo13rPkltW7IitHrTPA5c=", + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "rev": "2de39dedd79aab14c01b9e2934842051a160ffa5", + "type": "github" + }, + "original": { + "owner": "Gerschtli", + "repo": "nix-formatter-pack", + "type": "github" + } + }, "nix-gaming": { "inputs": { "flake-parts": "flake-parts", @@ -792,6 +818,33 @@ "type": "github" } }, + "nix-on-droid": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nix-formatter-pack": "nix-formatter-pack", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-docs": "nixpkgs-docs", + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", + "nmd": "nmd" + }, + "locked": { + "lastModified": 1725658585, + "narHash": "sha256-P29z4Gt89n5ps1U7+qmIrj0BuRXGZQSIaOe2+tsPgfw=", + "owner": "nix-community", + "repo": "nix-on-droid", + "rev": "5d88ff2519e4952f8d22472b52c531bb5f1635fc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-on-droid", + "type": "github" + } + }, "nixos-facter-modules": { "locked": { "lastModified": 1734596637, @@ -823,6 +876,38 @@ "type": "github" } }, + "nixpkgs-docs": { + "locked": { + "lastModified": 1705957679, + "narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9a333eaa80901efe01df07eade2c16d183761fa3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-for-bootstrap": { + "locked": { + "lastModified": 1720244366, + "narHash": "sha256-WrDV0FPMVd2Sq9hkR5LNHudS3OSMmUrs90JUTN+MXpA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40", + "type": "github" + } + }, "nixpkgs-lib": { "locked": { "lastModified": 1733096140, @@ -946,11 +1031,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1735802549, - "narHash": "sha256-aS03+IGLexQt5HL+tLZqSko6Jpxa+eozqcide/pab34=", + "lastModified": 1735934313, + "narHash": "sha256-l7P53BL86pnpyQunMGuNtIvDM3IN3pjHuIYyxd7RZ7Y=", "owner": "nix-community", "repo": "nixvim", - "rev": "3285bbda0aa0151c3b1914758e6950dfb554962f", + "rev": "93b5fb04783b58afa691977dcbb90b58483b3d82", "type": "github" }, "original": { @@ -959,6 +1044,44 @@ "type": "github" } }, + "nmd": { + "inputs": { + "nixpkgs": [ + "nix-on-droid", + "nixpkgs-docs" + ], + "scss-reset": "scss-reset" + }, + "locked": { + "lastModified": 1705050560, + "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", + "owner": "~rycee", + "repo": "nmd", + "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3", + "type": "sourcehut" + }, + "original": { + "owner": "~rycee", + "repo": "nmd", + "type": "sourcehut" + } + }, + "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" + } + }, "nuschtosSearch": { "inputs": { "flake-utils": "flake-utils", @@ -1015,6 +1138,7 @@ "impermanence": "impermanence", "nix-darwin": "nix-darwin", "nix-gaming": "nix-gaming", + "nix-on-droid": "nix-on-droid", "nixos-facter-modules": "nixos-facter-modules", "nixpkgs": "nixpkgs_4", "nixvim": "nixvim", @@ -1038,6 +1162,22 @@ "type": "github" } }, + "scss-reset": { + "flake": false, + "locked": { + "lastModified": 1631450058, + "narHash": "sha256-muDlZJPtXDIGevSEWkicPP0HQ6VtucbkMNygpGlBEUM=", + "owner": "andreymatin", + "repo": "scss-reset", + "rev": "0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91", + "type": "github" + }, + "original": { + "owner": "andreymatin", + "repo": "scss-reset", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": "nixpkgs_5" @@ -1073,11 +1213,11 @@ "tinted-tmux": "tinted-tmux" }, "locked": { - "lastModified": 1735864066, - "narHash": "sha256-V1JmPXW3vmxCuvf+IItGlLgBH8rolUahCMFyglxy19s=", + "lastModified": 1735933801, + "narHash": "sha256-SbkFaIYzfoasvu6GN5fdlaltrcEtUcoPsTRulWNkH7E=", "owner": "danth", "repo": "stylix", - "rev": "0ce2a52decf36d815065f8cda06586ed59ed3ef7", + "rev": "e0a41d3a2562ce1b43cad8560333673d04b111b8", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 9352907..075e83c 100644 --- a/flake.nix +++ b/flake.nix @@ -36,7 +36,12 @@ url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; - }; + nix-on-droid = { + url = "github:nix-community/nix-on-droid"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; + }; outputs = { self, nixpkgs, ... }@inputs: let @@ -54,6 +59,14 @@ first-nixos-install = "1729112485"; #stat -c %W / in { + nixOnDroidConfigurations.default = inputs.nix-on-droid.lib.nixOnDroidConfiguration { + pkgs = import nixpkgs { system = "aarch64-linux"; overlays = [ inputs.nix-on-droid.overlays.default ]; }; + modules = [ ./nixos/hosts/android ]; + home-manager-path = inputs.home-manager.outPath; + extraSpecialArgs = { + inherit first-nixos-install; + }; + }; darwinConfigurations = { "kylekrein-air" = inputs.nix-darwin.lib.darwinSystem { specialArgs = { inherit self; }; diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 0ef23b7..971fd87 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -120,6 +120,9 @@ #background; loginBackground = false; }) + joplin-desktop + kdenlive + super-productivity helvum killall nix-output-monitor diff --git a/nixos/home.nix b/nixos/home.nix index 7a6e376..c414841 100644 --- a/nixos/home.nix +++ b/nixos/home.nix @@ -10,7 +10,7 @@ ./modules/tmux/home.nix ] ++ lib.optional (hwconfig.useImpermanence) (import ./modules/impermanence/home.nix { inherit username; inherit inputs; } ) ++ lib.optional (config.programs.hyprland.enable) ./modules/hyprland/home.nix - ++ lib.optional (builtins.pathExists ./homes/${username}) ./homes/${username}; + ++ lib.optional (builtins.pathExists ./homes/${username}) (import ./homes/${username} { inherit username; }); # Home Manager needs a bit of information about you and the paths it should # manage. home.username = username; diff --git a/nixos/hosts/android/default.nix b/nixos/hosts/android/default.nix new file mode 100644 index 0000000..ca290f2 --- /dev/null +++ b/nixos/hosts/android/default.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: + +{ + environment.packages = with pkgs;[ + neovim + git + fastfetch + ]; + + home-manager.config = (import home.nix); + + system.stateVersion = "24.05"; +} diff --git a/nixos/hosts/android/home.nix b/nixos/hosts/android/home.nix new file mode 100644 index 0000000..1c5ff9c --- /dev/null +++ b/nixos/hosts/android/home.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: +{ + imports = [ + ../../modules/nixvim + ]; +} diff --git a/nixos/modules/hyprland/default.nix b/nixos/modules/hyprland/default.nix index 7b29eb6..fcea5b8 100644 --- a/nixos/modules/hyprland/default.nix +++ b/nixos/modules/hyprland/default.nix @@ -11,6 +11,7 @@ #libsForQt5.kio-extras #extra protocols support (sftp, fish and more) kdePackages.kio-fuse #to mount remote filesystems via FUSE kdePackages.kio-extras #extra protocols support (sftp, fish and more) + kdePackages.kio-admin waybar swaynotificationcenter libnotify diff --git a/nixos/modules/nixvim/default.nix b/nixos/modules/nixvim/default.nix index e65145c..4437e68 100644 --- a/nixos/modules/nixvim/default.nix +++ b/nixos/modules/nixvim/default.nix @@ -8,6 +8,7 @@ enable = true; colorschemes.catppuccin.enable = true; plugins = { + markview.enable = true; tmux-navigator = { enable = true; };