termux setup

This commit is contained in:
2026-08-06 22:57:19 +03:00
parent 1856f9e4fd
commit af90756661
7 changed files with 102 additions and 82 deletions
+6
View File
@@ -9,4 +9,10 @@
sapphira = import ./server.nix flakeContext; # sapphira
wsl = import ./wsl.nix flakeContext; # wsl
};
nixOnDroidConfigurations = {
epral = import ./mobile.nix flakeContext; # epral (Android via nix-on-droid)
# Alias so a plain `nix-on-droid switch` from a local clone
# (~/.config/nix-on-droid) picks up the device config without `#epral`.
default = import ./mobile.nix flakeContext;
};
}
+19 -13
View File
@@ -18,7 +18,7 @@ let
}:
{
imports = [
inputs.self.nixosModules.default # base defaultModule (termux-trimmed)
inputs.self.nixosModules.strict
];
xlib.device = {
@@ -44,25 +44,26 @@ let
nano
# Some common stuff that people expect to have
openssh
treefmt
git
procps
psmisc # provides killall (attr `killall` was removed from nixpkgs)
bzip2
diffutils
findutils
util-linux # renamed from utillinux
tzdata
hostname
man
git
gnugrep
gnupg
gnused
gnutar
bzip2
gzip
zip
hostname
man
ncurses
openssh
procps
psmisc # provides killall (attr `killall` was removed from nixpkgs)
treefmt
tzdata
unzip
util-linux # renamed from utillinux
zip
];
# Backup etc files instead of failing to activate generation if a file already exists in /etc
@@ -71,12 +72,17 @@ let
# Shared userspace home-manager config (same cozy shell as on NixOS hosts).
# nix-on-droid forces home.username / home.homeDirectory from user.*,
# so the strict module must not set them.
# xlib is injected via home-manager.extraSpecialArgs (the HM submodule
# does not inherit the nix-on-droid module args).
home-manager = {
useGlobalPkgs = true;
backupFileExtension = "hm-bak";
extraSpecialArgs = {
inherit xlib;
};
config = { ... }: {
imports = [
../home/shared/strict.nix
../home/termux.nix
];
home.stateVersion = "24.05";
};
-9
View File
@@ -1,9 +0,0 @@
{ inputs, ... }@flakeContext:
{
nixOnDroidConfigurations = {
epral = import ./epral.nix flakeContext; # epral (Android via nix-on-droid)
# Alias so a plain `nix-on-droid switch` from a local clone
# (~/.config/nix-on-droid) picks up the device config without `#epral`.
default = import ./epral.nix flakeContext;
};
}
-1
View File
@@ -120,7 +120,6 @@
}
// (import ./configurations flakeContext)
// (import ./deploy flakeContext)
// (import ./droid flakeContext)
// (import ./home flakeContext)
// (import ./modules flakeContext)
// (import ./overlays flakeContext)
+8 -6
View File
@@ -2,6 +2,7 @@
config,
lib,
pkgs,
xlib,
...
}:
# Shared "strict" home-manager module.
@@ -17,7 +18,8 @@
# (which stay NixOS-only for now). When this module is wired into NixOS hosts
# via sharedModules, deduplicate those files.
{
home.packages = with pkgs; [
home = {
packages = with pkgs; [
# Lazy (alias lc)
lazycli
@@ -45,18 +47,16 @@
# Monitoring
htop
];
home.sessionVariables = {
sessionVariables = {
TUCKR_HOME = "$HOME/Storage/dotfiles";
EDITOR = "fresh";
};
home.file.".nanorc".text = ''
file.".nanorc".text = ''
set nowrap
set tabstospaces
set tabsize 2
'';
};
programs = {
# ---- Shell: zsh ----
zsh = {
@@ -90,6 +90,7 @@
lg = "lazygit";
lc = "lazycli";
gp = "git pull";
ns = "nix-on-droid switch --flake ~/.config/nix-on-droid#${xlib.device.hostname}";
gp-ns = "gp && ns";
gc = "git add . && git commit -m 'dev: автокоммит $(date +'%Y-%m-%d %H:%M:%S')'";
y = "yazi";
@@ -97,6 +98,7 @@
beet-path-library = "realpath --relative-to='${config.home.homeDirectory}/.config/beets/My' .";
z-proxy = "export ALL_PROXY=socks5://localhost:10808";
zh-proxy = "export HTTPS_PROXY=http://localhost:10808 && export HTTP_PROXY=http://localhost:10808";
nix-dir = "cd ~/.config/nix-on-droid";
# beets
beet-ima = "beet im ./ -A";
+28 -12
View File
@@ -12,15 +12,11 @@ let
# NixOS-only modules. termux runs nix-on-droid (its own module system,
# class = "nixOnDroid"): options like services.*, users.*, sops.*, disko.*
# and nixpkgs.overlays (flake assertion) do not exist there.
imports =
with inputs;
[
./options.nix
(./. + "/${deviceType}") # specific modules
]
++ lib.optionals (deviceType != "termux") [
imports = with inputs; [
./essentials
./options.nix
./users.nix
(./. + "/${deviceType}")
home-manager.nixosModules.home-manager # home-manager module
# nix-index-database.nixosModules.nix-index # nix-index module
@@ -29,12 +25,9 @@ let
self.homeConfigurations.default.nixosModule # default homeConfigurations
disko.nixosModules.disko # disko module
];
# nix-on-droid asserts that nixpkgs.* stays unset in flake mode.
nixpkgs.overlays = lib.mkIf (deviceType != "termux") (
with inputs; [
nixpkgs.overlays = with inputs; [
self.nixosOverlays.default
]
);
];
_module.args = {
inputs = inputs;
xlib = config.xlib;
@@ -57,6 +50,28 @@ let
sops-nix.nixosModules.sops # sops module
];
_module.args = {
inputs = inputs;
xlib = config.xlib;
};
};
strictModule =
{
config,
deviceType,
lib,
xlib,
...
}:
{
imports = with inputs; [
# ./essentials
# ./users.nix
./options.nix
(./. + "/${deviceType}")
# sops-nix.nixosModules.sops
];
_module.args = {
inputs = inputs;
xlib = config.xlib;
@@ -67,5 +82,6 @@ in
nixosModules = {
default = defaultModule;
public = publicModule;
strict = strictModule;
};
}