{ pkgs , inputs , const , style , util , key , secret , ... } @args: let # Path where Termux stores user data. homePath = "/data/data/com.termux.nix/files/home"; # Android modules. environment = import ./Environment.nix args; git = import ./Git.nix args; package = import ./Package.nix args; termux = import ./Termux.nix args; # External modules. bash = import ../module/common/bash args; nvim = import ../module/common/nvim args; ssh = import ../module/common/ssh args; tmux = import ../module/common/tmux args; yazi = import ../user/common/yazi args; in { # Configure system. time.timeZone = const.timeZone; nix.settings = { experimental-features = [ "nix-command " "flakes" ]; }; # Install packages. environment.packages = package.list; home-manager.config = { home = { # Release version. stateVersion = const.droidStateVersion; # Environment variables. sessionVariables = environment.variables; # Where to put config files. file = { ".dotfiles".source = inputs.self; ".ssh/config".text = ssh.config; ".termux/_font.ttf".source = termux.font; ".termux/_colors.properties".text = termux.colors; ".config/yazi/init.lua".source = yazi.init; ".config/yazi/keymap.toml".source = yazi.keymap; ".config/yazi/theme.toml".source = yazi.theme; ".config/yazi/yazi.toml".source = yazi.yazi; }; }; # Special app configuration. programs = { bash = { enable = true; bashrcExtra = bash.config + termux.initScript; }; tmux = { enable = true; extraConfig = tmux.config; }; git = { enable = true; extraConfig = git.config; }; neovim = { enable = true; extraConfig = nvim.config; }; gpg = { enable = true; inherit (secret.crypto) publicKeys; }; }; }; }