fix(droid): get build to work again
All checks were successful
Discord / discord commits (push) Has been skipped
All checks were successful
Discord / discord commits (push) Has been skipped
This commit is contained in:
parent
097df2b8be
commit
fd1ae4fa32
8 changed files with 174 additions and 132 deletions
|
@ -3,11 +3,11 @@
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
inherit (lib) attrValues concatStringsSep;
|
||||||
|
in {
|
||||||
imports = [./nix-on-droid.nix];
|
imports = [./nix-on-droid.nix];
|
||||||
|
|
||||||
vars.mainUser = "nix-on-droid";
|
|
||||||
|
|
||||||
environment.variables.FLAKE = "/data/data/com.termux.nix/files/home/.nix";
|
environment.variables.FLAKE = "/data/data/com.termux.nix/files/home/.nix";
|
||||||
|
|
||||||
terminal.font = "${(pkgs.nerdfonts.override {
|
terminal.font = "${(pkgs.nerdfonts.override {
|
||||||
|
@ -19,7 +19,8 @@
|
||||||
environment.packages = [
|
environment.packages = [
|
||||||
(pkgs.writeShellApplication {
|
(pkgs.writeShellApplication {
|
||||||
name = "switch";
|
name = "switch";
|
||||||
runtimeInputs = builtins.attrValues {
|
|
||||||
|
runtimeInputs = attrValues {
|
||||||
inherit
|
inherit
|
||||||
(pkgs)
|
(pkgs)
|
||||||
coreutils
|
coreutils
|
||||||
|
@ -27,10 +28,11 @@
|
||||||
nvd
|
nvd
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
oldProfile=$(realpath /nix/var/nix/profiles/per-user/nix-on-droid/profile)
|
oldProfile=$(realpath /nix/var/nix/profiles/per-user/nix-on-droid/profile)
|
||||||
|
|
||||||
nix-on-droid ${lib.concatStringsSep " " [
|
nix-on-droid ${concatStringsSep " " [
|
||||||
"switch"
|
"switch"
|
||||||
"--flake ${config.environment.variables.FLAKE}"
|
"--flake ${config.environment.variables.FLAKE}"
|
||||||
"--builders ssh-ng://matt@100.64.0.7"
|
"--builders ssh-ng://matt@100.64.0.7"
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
# FIXME: eval is broken
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
self,
|
self,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
../../common/vars
|
self.nixosModules.base-droid
|
||||||
../../common/modules/global.nix
|
{
|
||||||
../../common/packages.nix
|
roles.base = {
|
||||||
|
enable = true;
|
||||||
|
user = "nix-on-droid";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
self.nixosModules.tmux
|
self.nixosModules.tmux
|
||||||
{programs.tmux.enableCustomConf = true;}
|
{programs.tmux.enableCustomConf = true;}
|
||||||
|
|
22
nixosModules/base/default-droid.nix
Normal file
22
nixosModules/base/default-droid.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
self: {lib, ...}: let
|
||||||
|
inherit (lib) mkOption types;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
(import ./common-nix self)
|
||||||
|
(import ./packages self)
|
||||||
|
];
|
||||||
|
|
||||||
|
options.roles.base = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# For accurate stack trace
|
||||||
|
_file = ./default.nix;
|
||||||
|
}
|
|
@ -33,7 +33,7 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf (cfg.enable) {
|
config = mkIf cfg.enable {
|
||||||
environment.variables.FLAKE = mkDefault "/home/${cfg.user}/.nix";
|
environment.variables.FLAKE = mkDefault "/home/${cfg.user}/.nix";
|
||||||
|
|
||||||
programs.tmux.enableCustomConf = true;
|
programs.tmux.enableCustomConf = true;
|
||||||
|
|
|
@ -1,45 +1,55 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
fonts = {
|
config,
|
||||||
fontconfig = {
|
lib,
|
||||||
enable = true;
|
pkgs,
|
||||||
defaultFonts = {
|
...
|
||||||
emoji = ["Noto Color Emoji"];
|
}: let
|
||||||
monospace = ["JetBrainsMono Nerd Font"];
|
inherit (lib) attrValues mkIf;
|
||||||
sansSerif = ["Noto Nerd Font"];
|
|
||||||
serif = ["Noto Nerd Font"];
|
cfg = config.roles.base;
|
||||||
|
in
|
||||||
|
mkIf cfg.enable {
|
||||||
|
fonts = {
|
||||||
|
fontconfig = {
|
||||||
|
enable = true;
|
||||||
|
defaultFonts = {
|
||||||
|
emoji = ["Noto Color Emoji"];
|
||||||
|
monospace = ["JetBrainsMono Nerd Font"];
|
||||||
|
sansSerif = ["Noto Nerd Font"];
|
||||||
|
serif = ["Noto Nerd Font"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
packages =
|
||||||
|
[
|
||||||
|
(pkgs.nerdfonts.override {
|
||||||
|
fonts = [
|
||||||
|
"JetBrainsMono"
|
||||||
|
"Go-Mono"
|
||||||
|
"Iosevka"
|
||||||
|
"NerdFontsSymbolsOnly"
|
||||||
|
"SpaceMono"
|
||||||
|
"Ubuntu"
|
||||||
|
"Noto"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
]
|
||||||
|
++ (attrValues {
|
||||||
|
inherit
|
||||||
|
(pkgs)
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts-emoji
|
||||||
|
liberation_ttf
|
||||||
|
font-awesome
|
||||||
|
meslo-lgs-nf
|
||||||
|
jetbrains-mono
|
||||||
|
ubuntu_font_family
|
||||||
|
;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
packages =
|
# Select internationalisation properties.
|
||||||
[
|
i18n.defaultLocale = "en_CA.UTF-8";
|
||||||
(pkgs.nerdfonts.override {
|
console.useXkbConfig = true;
|
||||||
fonts = [
|
}
|
||||||
"JetBrainsMono"
|
|
||||||
"Go-Mono"
|
|
||||||
"Iosevka"
|
|
||||||
"NerdFontsSymbolsOnly"
|
|
||||||
"SpaceMono"
|
|
||||||
"Ubuntu"
|
|
||||||
"Noto"
|
|
||||||
];
|
|
||||||
})
|
|
||||||
]
|
|
||||||
++ (builtins.attrValues {
|
|
||||||
inherit
|
|
||||||
(pkgs)
|
|
||||||
noto-fonts
|
|
||||||
noto-fonts-cjk-sans
|
|
||||||
noto-fonts-emoji
|
|
||||||
liberation_ttf
|
|
||||||
font-awesome
|
|
||||||
meslo-lgs-nf
|
|
||||||
jetbrains-mono
|
|
||||||
ubuntu_font_family
|
|
||||||
;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n.defaultLocale = "en_CA.UTF-8";
|
|
||||||
console.useXkbConfig = true;
|
|
||||||
}
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) concatStringsSep getName;
|
inherit (lib) concatStringsSep getName mkIf;
|
||||||
|
|
||||||
baseCfg = config.roles.base;
|
baseCfg = config.roles.base;
|
||||||
cfg = config.services.locate;
|
cfg = config.services.locate;
|
||||||
|
@ -23,59 +23,60 @@
|
||||||
${updatedb} -o ${database} --prunefs "${pruneFS}" \
|
${updatedb} -o ${database} --prunefs "${pruneFS}" \
|
||||||
--prunepaths "${prunePaths}" --prunenames "${pruneNames}"
|
--prunepaths "${prunePaths}" --prunenames "${pruneNames}"
|
||||||
'';
|
'';
|
||||||
in {
|
in
|
||||||
users.users.${baseCfg.user}.extraGroups = [
|
mkIf (baseCfg.enable) {
|
||||||
locateGroup
|
users.users.${baseCfg.user}.extraGroups = [
|
||||||
];
|
locateGroup
|
||||||
|
];
|
||||||
|
|
||||||
# TODO: add timer
|
# TODO: add timer
|
||||||
systemd.services.locate = {
|
systemd.services.locate = {
|
||||||
wantedBy = ["default.target"];
|
wantedBy = ["default.target"];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = baseCfg.user;
|
User = baseCfg.user;
|
||||||
Group = locateGroup;
|
Group = locateGroup;
|
||||||
StateDirectory = "locate";
|
StateDirectory = "locate";
|
||||||
StateDirectoryMode = "0770";
|
StateDirectoryMode = "0770";
|
||||||
ExecStart = updatedbBin;
|
ExecStart = updatedbBin;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.${baseCfg.user}.programs.bash.shellAliases = {
|
home-manager.users.${baseCfg.user}.programs.bash.shellAliases = {
|
||||||
locate = "${pkgs.writeShellScriptBin "lct" ''
|
locate = "${pkgs.writeShellScriptBin "lct" ''
|
||||||
exec ${locate} -d ${database} "$@" 2> >(grep -v "/var/cache/locatedb")
|
exec ${locate} -d ${database} "$@" 2> >(grep -v "/var/cache/locatedb")
|
||||||
''}/bin/lct";
|
''}/bin/lct";
|
||||||
|
|
||||||
updatedb = updatedbBin;
|
updatedb = updatedbBin;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.locate = {
|
services.locate = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.mlocate;
|
package = pkgs.mlocate;
|
||||||
localuser = null;
|
localuser = null;
|
||||||
interval = "never";
|
interval = "never";
|
||||||
|
|
||||||
prunePaths = [
|
prunePaths = [
|
||||||
"/var/lib/flatpak"
|
"/var/lib/flatpak"
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
"/tmp"
|
"/tmp"
|
||||||
"/var/tmp"
|
"/var/tmp"
|
||||||
"/var/cache"
|
"/var/cache"
|
||||||
"/var/lock"
|
"/var/lock"
|
||||||
"/var/run"
|
"/var/run"
|
||||||
"/var/spool"
|
"/var/spool"
|
||||||
"/nix/var/log/nix"
|
"/nix/var/log/nix"
|
||||||
];
|
];
|
||||||
|
|
||||||
pruneNames = [
|
pruneNames = [
|
||||||
"node_modules"
|
"node_modules"
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
".bzr"
|
".bzr"
|
||||||
".cache"
|
".cache"
|
||||||
".git"
|
".git"
|
||||||
".hg"
|
".hg"
|
||||||
".svn"
|
".svn"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) foldl isList mergeAttrsWithFunc optionals unique;
|
inherit (lib) foldl isList mergeAttrsWithFunc mkIf optionals unique;
|
||||||
|
|
||||||
|
cfg = config.roles.base;
|
||||||
|
|
||||||
mergeAttrsList = list:
|
mergeAttrsList = list:
|
||||||
foldl (mergeAttrsWithFunc (a: b:
|
foldl (mergeAttrsWithFunc (a: b:
|
||||||
|
@ -12,35 +14,36 @@
|
||||||
then unique (a ++ b)
|
then unique (a ++ b)
|
||||||
else b)) {}
|
else b)) {}
|
||||||
list;
|
list;
|
||||||
in {
|
in
|
||||||
environment.systemPackages = [
|
mkIf cfg.enable {
|
||||||
(pkgs.writeShellApplication {
|
environment.systemPackages = [
|
||||||
name = "rebuild-no-cache";
|
(pkgs.writeShellApplication {
|
||||||
runtimeInputs = [config.programs.nh.package];
|
name = "rebuild-no-cache";
|
||||||
text = ''
|
runtimeInputs = [config.programs.nh.package];
|
||||||
exec nh os switch -- --option binary-caches "https://cache.nixos.org" "$@"
|
text = ''
|
||||||
'';
|
exec nh os switch -- --option binary-caches "https://cache.nixos.org" "$@"
|
||||||
})
|
'';
|
||||||
];
|
})
|
||||||
|
];
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
settings = let
|
settings = let
|
||||||
mkSubstituterConf = url: key: {
|
mkSubstituterConf = url: key: {
|
||||||
substituters = [url];
|
substituters = [url];
|
||||||
trusted-public-keys = optionals (key != null) [key];
|
trusted-public-keys = optionals (key != null) [key];
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
mergeAttrsList ([
|
mergeAttrsList ([
|
||||||
(mkSubstituterConf "https://cache.nixos.org" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=")
|
(mkSubstituterConf "https://cache.nixos.org" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=")
|
||||||
(mkSubstituterConf "https://hyprland.cachix.org" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=")
|
(mkSubstituterConf "https://hyprland.cachix.org" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=")
|
||||||
(mkSubstituterConf "https://nix-gaming.cachix.org" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=")
|
(mkSubstituterConf "https://nix-gaming.cachix.org" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=")
|
||||||
(mkSubstituterConf "https://nixpkgs-wayland.cachix.org" "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=")
|
(mkSubstituterConf "https://nixpkgs-wayland.cachix.org" "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=")
|
||||||
(mkSubstituterConf "https://nix-community.cachix.org" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=")
|
(mkSubstituterConf "https://nix-community.cachix.org" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=")
|
||||||
(mkSubstituterConf "https://viperml.cachix.org" "viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8=")
|
(mkSubstituterConf "https://viperml.cachix.org" "viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8=")
|
||||||
(mkSubstituterConf "https://cuda-maintainers.cachix.org" "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=")
|
(mkSubstituterConf "https://cuda-maintainers.cachix.org" "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=")
|
||||||
]
|
]
|
||||||
++ optionals (!config.services.nix-serve.enable) [
|
++ optionals (!config.services.nix-serve.enable) [
|
||||||
(mkSubstituterConf "https://cache.nelim.org" "cache.nelim.org:JmFqkUdH11EA9EZOFAGVHuRYp7EbsdJDHvTQzG2pPyY=")
|
(mkSubstituterConf "https://cache.nelim.org" "cache.nelim.org:JmFqkUdH11EA9EZOFAGVHuRYp7EbsdJDHvTQzG2pPyY=")
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
self: {
|
self: {
|
||||||
base = import ./base self;
|
base = import ./base self;
|
||||||
|
base-droid = import ./base/default-droid.nix self;
|
||||||
borgbackup = import ./borgbackup;
|
borgbackup = import ./borgbackup;
|
||||||
desktop = import ./desktop self;
|
desktop = import ./desktop self;
|
||||||
docker = import ./docker self.inputs.khepri;
|
docker = import ./docker self.inputs.khepri;
|
||||||
|
|
Loading…
Reference in a new issue