To use these options, edit the config file in
~/.config/nixpkgs/nix-on-droid.nix or in case of a flake setup,
set the modules value in the nixOnDroidConfiguration
call:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
nix-on-droid = {
url = "github:nix-community/nix-on-droid/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nix-on-droid }: {
nixOnDroidConfigurations.deviceName = nix-on-droid.lib.nixOnDroidConfiguration {
modules = [ ./nix-on-droid.nix ];
};
};
}
android-integration.am.enableProvide an am (activity manager) command.
Is not guaranteed to be a real deal, could be of limited compatibility
with real am (like termux-am).
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
android-integration.termux-open.enableProvide a termux-open command
that opens files or urls in external apps
(uses com.termux.app.TermuxOpenReceiver).
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
android-integration.termux-open-url.enableProvide a termux-open-url command
that opens files or urls in external apps
(uses android.intent.action.VIEW).
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
android-integration.termux-reload-settings.enableProvide a termux-reload-settings command
which applies changes to font, colorscheme or terminal
without the need to close all the sessions.
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
android-integration.termux-setup-storage.enableProvide a termux-setup-storage command
that makes the app request storage permission,
and then creates a $HOME/storage directory with symlinks to storage.
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
android-integration.termux-wake-lock.enableProvide a termux-wake-lock command
that tones down Android power saving measures.
This is the same action that's available from the notification.
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
android-integration.termux-wake-unlock.enableProvide a termux-wake-unlock command
that undoes the effect of the termux-wake-lock one.
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
android-integration.unsupported.enableProvide several more unsupported and untested commands. For testing and for brave souls only.
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
android-integration.xdg-open.enableProvide an xdg-open alias to termux-open command.
Type: boolean
Default: false
Example: "true"
Declared by:
<nix-on-droid/modules/environment/android-integration.nix>
|
build.activationActivation scripts for the Nix-on-Droid environment.
Any script should respect the DRY_RUN
variable, if it is set then no actual action should be taken.
The variable DRY_RUN_CMD is set to
echo if dry run is enabled. Thus, many cases you
can use the idiom $DRY_RUN_CMD rm -rf /.
Any script block should also respect the
VERBOSE variable, and if set print
information on standard out that may be useful for debugging
any issue that may arise. The variable
VERBOSE_ARG is set to
--verbose if verbose output is enabled.
The variable VERBOSE_ECHO is set to
echo if verbose output is enabled, otherwise
falling back to true. So it can be used like
$VERBOSE_ECHO "any message".
Type: attribute set
Default: { }
Declared by:
<nix-on-droid/modules/build/activation.nix>
|
build.activationAfterActivation scripts for the Nix-on-Droid environment that need to be run last.
Any script should respect the DRY_RUN
variable, if it is set then no actual action should be taken.
The variable DRY_RUN_CMD is set to
echo if dry run is enabled. Thus, many cases you
can use the idiom $DRY_RUN_CMD rm -rf /.
Any script block should also respect the
VERBOSE variable, and if set print
information on standard out that may be useful for debugging
any issue that may arise. The variable
VERBOSE_ARG is set to
--verbose if verbose output is enabled.
The variable VERBOSE_ECHO is set to
echo if verbose output is enabled, otherwise
falling back to true. So it can be used like
$VERBOSE_ECHO "any message".
Type: attribute set
Default: { }
Declared by:
<nix-on-droid/modules/build/activation.nix>
|
build.activationBeforeActivation scripts for the Nix-on-Droid environment that need to be run first.
Any script should respect the DRY_RUN
variable, if it is set then no actual action should be taken.
The variable DRY_RUN_CMD is set to
echo if dry run is enabled. Thus, many cases you
can use the idiom $DRY_RUN_CMD rm -rf /.
Any script block should also respect the
VERBOSE variable, and if set print
information on standard out that may be useful for debugging
any issue that may arise. The variable
VERBOSE_ARG is set to
--verbose if verbose output is enabled.
The variable VERBOSE_ECHO is set to
echo if verbose output is enabled, otherwise
falling back to true. So it can be used like
$VERBOSE_ECHO "any message".
Type: attribute set
Default: { }
Declared by:
<nix-on-droid/modules/build/activation.nix>
|
build.extraProotOptionsExtra options passed to proot, e.g., extra bind mounts.
Type: list of string
Default: [ ]
Declared by:
<nix-on-droid/modules/build/config.nix>
|
environment.packagesList of packages to be installed as user packages.
Type: list of package
Default: [ ]
Declared by:
<nix-on-droid/modules/environment/path.nix>
|
environment.binShPath to /bin/sh executable.
Type: string (read only)
Declared by:
<nix-on-droid/modules/environment/links.nix>
|
environment.etcSet of files that have to be linked in /etc.
Type: attribute set of (submodule)
Default: { }
Example:
{
example-configuration-file = {
source = "/nix/store/.../etc/dir/file.conf.example";
};
"default/useradd".text = "GROUP=100 ...";
}
Declared by:
<nix-on-droid/modules/environment/etc>
|
environment.etc.<name>.enableWhether this /etc file should be generated. This
option allows specific /etc files to be disabled.
Type: boolean
Default: true
Declared by:
<nix-on-droid/modules/environment/etc>
|
environment.etc.<name>.sourcePath of the source file.
Type: path
Declared by:
<nix-on-droid/modules/environment/etc>
|
environment.etc.<name>.targetName of symlink (relative to /etc).
Defaults to the attribute name.
Type: string
Declared by:
<nix-on-droid/modules/environment/etc>
|
environment.etc.<name>.textText of the file.
Type: null or strings concatenated with "\n"
Default: null
Declared by:
<nix-on-droid/modules/environment/etc>
|
environment.etcBackupExtensionBackup file extension.
If a file in /etc already exists and is not managed
by Nix-on-Droid, the activation fails because we do not overwrite unknown
files. When an extension is provided through this option, the original
file will be moved in respect of the backup extension and the activation
executes successfully.
Type: null or string
Default: null
Example: ".bak"
Declared by:
<nix-on-droid/modules/environment/etc>
|
environment.extraOutputsToInstallList of additional package outputs to be installed as user packages.
Type: list of string
Default: [ ]
Example:
[ "doc" "info" "devdoc" ]
Declared by:
<nix-on-droid/modules/environment/path.nix>
|
environment.motdText to show on every new shell created by Nix-on-Droid.
Type: null or strings concatenated with "\n"
Default:
'' Welcome to Nix-on-Droid! If nothing works, open an issue at https://github.com/nix-community/nix-on-droid/issues or try the rescue shell. ''
Declared by:
<nix-on-droid/modules/environment/session-init.nix>
|
environment.sessionVariablesEnvironment variables to always set at login.
The values may refer to other environment variables using
POSIX.2 style variable references. For example, a variable
parameter may be referenced as
$parameter or ${parameter}. A
default value foo may be given as per
${parameter:-foo} and, similarly, an alternate
value bar can be given as per
${parameter:+bar}.
Note, these variables may be set in any order so no session variable may have a runtime dependency on another session variable. In particular code like
environment.sessionVariables = {
FOO = "Hello";
BAR = "$FOO World!";
};
may not work as expected. If you need to reference another session variable, then do so inside Nix instead. The above example then becomes
environment.sessionVariables = {
FOO = "Hello";
BAR = "${config.environment.sessionVariables.FOO} World!";
};
Type: attribute set
Default: { }
Example:
{
EDITOR = "emacs";
GS_OPTIONS = "-sPAPERSIZE=a4";
}Declared by:
<nix-on-droid/modules/environment/session-init.nix>
|
environment.usrBinEnvPath to /usr/bin/env executable.
Type: string (read only)
Declared by:
<nix-on-droid/modules/environment/links.nix>
|
home-manager.backupFileExtensionOn activation move existing files by appending the given file extension rather than exiting with an error.
Type: null or string
Default: null
Example: "backup"
Declared by:
<nix-on-droid/modules/home-manager.nix>
|
home-manager.configHome Manager configuration, see https://nix-community.github.io/home-manager/options.html.
Type: null or (submodule)
Default: null
Declared by:
<nix-on-droid/modules/home-manager.nix>
|
home-manager.extraSpecialArgsExtra specialArgs passed to Home Manager. This
option can be used to pass additional arguments to all modules.
Type: attribute set
Default: { }
Example: { inherit emacs-overlay; }
Declared by:
<nix-on-droid/modules/home-manager.nix>
|
home-manager.sharedModulesExtra modules.
Type: list of raw value
Default: [ ]
Example: [ { home.packages = [ nixpkgs-fmt ]; } ]
Declared by:
<nix-on-droid/modules/home-manager.nix>
|
home-manager.useGlobalPkgsWhether to enable using the system configuration's pkgs
argument in Home Manager. This disables the Home Manager
options nixpkgs.*
.
Type: boolean
Default: false
Example: true
Declared by:
<nix-on-droid/modules/home-manager.nix>
|
home-manager.useUserPackagesWhether to enable installation of user packages through the
environment.packages option.
.
Type: boolean
Default: false
Example: true
Declared by:
<nix-on-droid/modules/home-manager.nix>
|
networking.extraHostsAdditional verbatim entries to be appended to /etc/hosts.
For adding hosts from derivation results, use networking.hostFiles instead.
Type: strings concatenated with "\n"
Default: ""
Example: "192.168.0.1 lanlocalhost"
Declared by:
<nix-on-droid/modules/environment/networking.nix>
|
networking.hostFilesFiles that should be concatenated together to form /etc/hosts.
Type: list of path
Default: Hosts from networking.hosts and networking.extraHosts
Example: [ "${pkgs.my-blocklist-package}/share/my-blocklist/hosts" ]
Declared by:
<nix-on-droid/modules/environment/networking.nix>
|
networking.hostsLocally defined maps of hostnames to IP addresses.
Type: attribute set of list of string
Default: { }
Example:
{
"127.0.0.1" = [ "foo.bar.baz" ];
"192.168.0.2" = [ "fileserver.local" "nameserver.local" ];
};
Declared by:
<nix-on-droid/modules/environment/networking.nix>
|
nix.packageThis option specifies the Nix package instance to use throughout the system.
Type: package
Default: pkgs.nix
Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.extraOptionsExtra config to be appended to /etc/nix/nix.conf.
Type: strings concatenated with "\n"
Default: ""
Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.nixPathThe default Nix expression search path, used by the Nix
evaluator to look up paths enclosed in angle brackets
(e.g. <nixpkgs>).
Type: list of string
Default: [ ]
Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.registryA system-wide flake registry.
Type: attribute set of (submodule)
Default: { }
Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.registry.<name>.exactWhether the from reference needs to match exactly. If set,
a from reference like nixpkgs does not
match with a reference like nixpkgs/nixos-20.03.
Type: boolean
Default: true
Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.registry.<name>.flakeThe flake input from is rewritten to.
Type: null or (attribute set)
Default: null
Example: nixpkgs
Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.registry.<name>.fromThe flake reference to be rewritten.
Type: attribute set of (string or signed integer or boolean or package)
Example:
{
id = "nixpkgs";
type = "indirect";
}Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.registry.<name>.toThe flake reference from is rewritten to.
Type: attribute set of (string or signed integer or boolean or package)
Example:
{
owner = "my-org";
repo = "my-nixpkgs";
type = "github";
}Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.substitutersA list of URLs of substituters. The official NixOS and Nix-on-Droid substituters are added by default.
Type: list of string
Default: [ ]
Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nix.trustedPublicKeysA list of public keys. When paths are copied from another Nix store (such as a binary cache), they must be signed with one of these keys. The official NixOS and Nix-on-Droid public keys are added by default.
Type: list of string
Default: [ ]
Declared by:
<nix-on-droid/modules/environment/nix.nix>
|
nixpkgs.configThe configuration of the Nix Packages collection. (For details, see the Nixpkgs documentation.) It allows you to set package configuration options.
If null, then configuration is taken from
the fallback location, for example,
~/.config/nixpkgs/config.nix.
Note, this option will not apply outside your Nix-on-Droid configuration like when installing manually through nix-env or in your Home Manager config.
If you want to apply it both inside Home Manager and outside you need to include something like
{ pkgs, config, ...}:
{
# for Nix-on-Droid
nixpkgs.config = import ./nixpkgs-config.nix;
# for Home Manager
home-manager.config.nixpkgs.config = import ./nixpkgs-config.nix;
# -or-
home-manager.config =
{ pkgs, ... }:
{
# for Home Manager
nixpkgs.config = import ./nixpkgs-config.nix;
# for commands like nix-env
xdg.configFile."nixpkgs/config.nix".source = ./nixpkgs-config.nix;
};
}
in your Nix-on-Droid configuration.
Type: null or (nixpkgs config)
Default: null
Example:
{
allowBroken = true;
}Declared by:
<nix-on-droid/modules/nixpkgs/options.nix>
|
nixpkgs.overlaysList of overlays to use with the Nix Packages collection. (For details, see the Nixpkgs documentation.) It allows you to override packages globally. This is a function that takes as an argument the original Nixpkgs. The first argument should be used for finding dependencies, and the second should be used for overriding recipes.
If null, then the overlays are taken from
the fallback location, for example,
~/.config/nixpkgs/overlays.
Like nixpkgs.config this option only
applies within the Nix-on-Droid configuration. See
nixpkgs.config for a suggested setup that
works both internally for Nix-on-Droid or Home Manager and
externally.
Type: null or (list of (nixpkgs overlay))
Default: null
Example:
[ (self: super: {
openssh = super.openssh.override {
hpnSupport = true;
withKerberos = true;
kerberos = self.libkrb5;
};
};
) ]
Declared by:
<nix-on-droid/modules/nixpkgs/options.nix>
|
system.stateVersionIt is occasionally necessary for Nix-on-Droid to change configuration defaults in a way that is incompatible with stateful data. This could, for example, include switching the default data format or location of a file.
The state version indicates which default settings are in effect and will therefore help avoid breaking program configurations. Switching to a higher state version typically requires performing some manual steps, such as data conversion or moving files.
Type: one of "19.09", "20.03", "20.09", "21.05", "21.11", "22.05", "22.11", "23.05", "23.11", "24.05"
Declared by:
<nix-on-droid/modules/version.nix>
|
terminal.colorsColorscheme used for the terminal. Acceptable attribute names are: `background`, `foreground`, `cursor` and `color0`-`color15`.
Type: lazy attribute set of string
Default: { }
Example:
{
background = "#000000";
foreground = "#FFFFFF";
cursor = "#FFFFFF";
}
Declared by:
<nix-on-droid/modules/terminal.nix>
|
terminal.fontFont used for the terminal.
Type: null or path
Default: null
Example: "${pkgs.terminus_font_ttf}/share/fonts/truetype/TerminusTTF.ttf"
Declared by:
<nix-on-droid/modules/terminal.nix>
|
time.timeZoneThe time zone used when displaying times and dates. See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for a comprehensive list of possible values for this setting. If null, the timezone will default to UTC.
Type: null or string without spaces
Default: null
Example: "America/New_York"
Declared by:
<nix-on-droid/modules/time.nix>
|
user.gidGid. This value should not be set manually except you know what you are doing.
Type: signed integer
Default: "$(id -g)"
Declared by:
<nix-on-droid/modules/user.nix>
|
user.groupGroup name.
Type: string
Default: "nix-on-droid"
Declared by:
<nix-on-droid/modules/user.nix>
|
user.homePath to home directory.
Type: path (read only)
Declared by:
<nix-on-droid/modules/user.nix>
|
user.shellPath to login shell.
Type: path
Default: ${pkgs.bashInteractive}/bin/bash
Declared by:
<nix-on-droid/modules/user.nix>
|
user.uidUid. This value should not be set manually except you know what you are doing.
Type: signed integer
Default: "$(id -u)"
Declared by:
<nix-on-droid/modules/user.nix>
|
user.userNameUser name.
Type: string
Default: "nix-on-droid"
Declared by:
<nix-on-droid/modules/user.nix>
|