From 580cbd185162385276dd9113903f0705284817f6 Mon Sep 17 00:00:00 2001 From: andromeda Date: Wed, 14 Jan 2026 22:57:40 +0100 Subject: [PATCH] init nix-on-droid --- flake.lock | 159 +++++++++++++++++++++++++ flake.nix | 19 +++ modules/nix-on-droid/home.nix | 165 ++++++++++++++++++++++++++ modules/nix-on-droid/nix-on-droid.nix | 5 + 4 files changed, 348 insertions(+) create mode 100644 modules/nix-on-droid/home.nix create mode 100644 modules/nix-on-droid/nix-on-droid.nix diff --git a/flake.lock b/flake.lock index 91bce37..0335a11 100644 --- a/flake.lock +++ b/flake.lock @@ -385,6 +385,27 @@ "type": "github" } }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "nix-on-droid", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709445365, + "narHash": "sha256-DVv6nd9FQBbMWbOmhq0KVqmlc3y3FMSYl49UXmMcO+0=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "4de84265d7ec7634a69ba75028696d74de9a44a7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "impermanence": { "locked": { "lastModified": 1737831083, @@ -433,6 +454,57 @@ "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-on-droid": { + "inputs": { + "home-manager": "home-manager_3", + "nix-formatter-pack": "nix-formatter-pack", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-docs": "nixpkgs-docs", + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", + "nmd": "nmd" + }, + "locked": { + "lastModified": 1765031149, + "narHash": "sha256-4ZtlnCp4blhsjGnQIxAXDAj7nCJKy7tozoBRtklmwcU=", + "owner": "nix-community", + "repo": "nix-on-droid", + "rev": "55b6449b4582a4ba3ce712543c973360a026db7d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-on-droid", + "type": "github" + } + }, "nix-zulip": { "flake": false, "locked": { @@ -488,6 +560,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_2": { "locked": { "lastModified": 1764242076, @@ -504,6 +608,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" + } + }, "noshell": { "inputs": { "nixpkgs": [ @@ -621,6 +763,7 @@ "disko": "disko", "home-manager": "home-manager_2", "impermanence": "impermanence", + "nix-on-droid": "nix-on-droid", "nix-zulip": "nix-zulip", "nixos-mailserver": "nixos-mailserver", "nixpkgs": "nixpkgs", @@ -631,6 +774,22 @@ "stylix": "stylix" } }, + "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" + } + }, "stylix": { "inputs": { "base16": "base16", diff --git a/flake.nix b/flake.nix index ec6c255..15d4325 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,10 @@ inputs.nixpkgs.follows = "nixpkgs"; }; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nix-on-droid = { + url = "github:nix-community/nix-on-droid"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nix-zulip = { url = "git+https://git.afnix.fr/nix-zulip/nix-zulip"; flake = false; @@ -50,6 +54,7 @@ impermanence, nixos-mailserver, nixpkgs, + nix-on-droid, nix-zulip, noshell, nur, @@ -117,5 +122,19 @@ builtins.mapAttrs (hostname: value: configurationWithHomeManager value) machines; + nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration { + pkgs = import nixpkgs {system = "aarch64-linux";}; + modules = [ + ./modules/nix-on-droid/nix-on-droid.nix + { + home-manager.useGlobalPkgs = true; + home-manager.users."andromeda" = { + imports = [ + ./modules/nix-on-droid/home.nix + ]; + }; + } + ]; + }; }; } diff --git a/modules/nix-on-droid/home.nix b/modules/nix-on-droid/home.nix new file mode 100644 index 0000000..c545105 --- /dev/null +++ b/modules/nix-on-droid/home.nix @@ -0,0 +1,165 @@ +{ + config, + lib, + pkgs, + ... +}: { + home = { + username = "andromeda"; + homeDirectory = "/home/${config.home.username}"; + stateVersion = "26.05"; + packages = [ + pkgs.brush + pkgs.dust + pkgs.fzf + pkgs.glow + pkgs.nix-output-monitor + pkgs.ranger + pkgs.rip2 + pkgs.ripgrep + pkgs.tree + pkgs.zoxide + ]; + }; + programs = { + bash = { + enable = true; + shellAliases = { + neofetch = "fastfetch"; + ls = lib.mkForce "lsd"; + ll = lib.mkForce "lsd -l"; + l = "lsd -la"; + cd = "z"; + gg = "git log --oneline --abbrev-commit --all --graph --decorate --color"; + md = "glow"; + }; + bashrcExtra = '' + PS1="\u@\h:\w$" + eval "$(zoxide init bash)" + ''; + }; + btop = { + enable = true; + settings = { + theme_background = false; + vim_keys = true; + rounded_corners = false; + graph_symbol = "braille"; + update_ms = 150; + proc_sorting = "cpu lazy"; + proc_gradient = false; + proc_left = true; + cpu_single_graph = true; + cpu_bottom = true; + clock_format = "/user@/host:/uptime@%H:%M"; + background_update = true; + mem_graphs = false; + mem_below_net = true; + show_swap = false; + only_physical = true; + show_io_stat = true; + io_mode = false; + io_graph_combined = false; + }; + }; + fastfetch.enable = true; + git = { + enable = true; + settings = { + user = { + name = config.home.username; + email = "${config.home.username}@android"; + }; + init.defaultBranch = "master"; + }; + }; + home-manager.enable = true; + lsd.enable = true; + nvf = { + enable = true; + settings.vim = { + autocomplete.nvim-cmp.enable = false; + formatter.conform-nvim = { + enable = true; + setupOpts.format_on_save = { + lsp_format = "fallback"; + timeout_ms = 5000; + }; + }; + lsp.otter-nvim.enable = true; + git.enable = true; + keymaps = [ + { + key = ""; + mode = ["i" "n" "v" "c"]; + action = ""; + } + { + key = ""; + mode = ["i" "n" "v" "c"]; + action = ""; + } + { + key = ""; + mode = ["i" "n" "v" "c"]; + action = ""; + } + { + key = ""; + mode = ["i" "n" "v" "c"]; + action = ""; + } + { + key = "jj"; + mode = ["i"]; + action = ""; + } + { + key = "kk"; + mode = ["i"]; + action = ""; + } + { + key = "jk"; + mode = ["i"]; + action = ""; + } + { + key = "kj"; + mode = ["i"]; + action = ""; + } + { + key = ""; + mode = ["i"]; + action = ""; + } + ]; + languages = { + nix = { + enable = true; + format.enable = true; + lsp.enable = true; + }; + haskell = { + enable = true; + lsp.enable = true; + }; + }; + lineNumberMode = "relative"; + options = { + tabstop = 2; + shiftwidth = 2; + expandtab = true; + smarttab = true; + foldmethod = "indent"; + number = true; + colorcolumn = "80"; + }; + statusline.lualine.enable = true; + syntaxHighlighting = true; + }; + }; + ssh.enable = true; + }; +} diff --git a/modules/nix-on-droid/nix-on-droid.nix b/modules/nix-on-droid/nix-on-droid.nix new file mode 100644 index 0000000..5e1b9b1 --- /dev/null +++ b/modules/nix-on-droid/nix-on-droid.nix @@ -0,0 +1,5 @@ +{pkgs, ...}: { + environment.packages = [pkgs.git]; + system.stateVersion = "26.05"; + nix.settings.experimentalFeatures = ["nix-command" "flakes"]; +}