Refactored this mess a bit.
This commit is contained in:
parent
db77ece3c3
commit
ff99cfe763
|
@ -8,8 +8,8 @@
|
||||||
inherit (config.style.font) serif sansSerif monospace emoji;
|
inherit (config.style.font) serif sansSerif monospace emoji;
|
||||||
sizes = {
|
sizes = {
|
||||||
inherit (config.style.font.size) terminal desktop;
|
inherit (config.style.font.size) terminal desktop;
|
||||||
popups = config.style.font.size.popup;
|
|
||||||
applications = config.style.font.size.application;
|
applications = config.style.font.size.application;
|
||||||
|
popups = config.style.font.size.popup;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
opacity = {
|
opacity = {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ container, pkgs, util, lib, config, ... } @args: with lib; let
|
{ container, pkgs, util, lib, config, __findFile, ... } @args: with lib; let
|
||||||
cfg = config.container.module.home;
|
cfg = config.container.module.home;
|
||||||
package = (pkgs.callPackage ./homer args);
|
package = (pkgs.callPackage <package/homer> args);
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
container.module.home = {
|
container.module.home = {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ container, pkgsJobber, poetry2nixJobber, lib, config, ... }: with lib; let
|
{ container, pkgsJobber, poetry2nixJobber, lib, config, __findFile, ... }: with lib; let
|
||||||
cfg = config.container.module.jobber;
|
cfg = config.container.module.jobber;
|
||||||
script = import ./jobber { poetry2nix = poetry2nixJobber; pkgs = pkgsJobber; };
|
script = import <package/jobber> { poetry2nix = poetry2nixJobber; pkgs = pkgsJobber; };
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
container.module.jobber = {
|
container.module.jobber = {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, util, container, lib, config, ... } @args: with lib; let
|
{ pkgs, util, container, lib, config, __findFile, ... } @args: with lib; let
|
||||||
cfg = config.container.module.paste;
|
cfg = config.container.module.paste;
|
||||||
package = (pkgs.callPackage ./pastebin args);
|
package = (pkgs.callPackage <package/pastebin> args);
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
container.module.paste = {
|
container.module.paste = {
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
# ipp://192.168.2.237
|
# ipp://192.168.2.237
|
||||||
# Pantum M6500W-Series
|
# Pantum M6500W-Series
|
||||||
{ container, pkgs, lib, config, ... } @args: with lib; let
|
{ container, pkgs, lib, config, __findFile, ... } @args: with lib; let
|
||||||
cfg = config.container.module.print;
|
cfg = config.container.module.print;
|
||||||
package = pkgs.callPackage ./print args;
|
package = pkgs.callPackage <package/print> args;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
container.module.print = {
|
container.module.print = {
|
||||||
|
|
|
@ -238,7 +238,6 @@
|
||||||
# for Live ISO and Android configurations respectively.
|
# for Live ISO and Android configurations respectively.
|
||||||
(x86System "dasha")
|
(x86System "dasha")
|
||||||
(x86System "desktop")
|
(x86System "desktop")
|
||||||
(x86System "fsight")
|
|
||||||
(x86System "home")
|
(x86System "home")
|
||||||
(x86System "laptop")
|
(x86System "laptop")
|
||||||
(x86System "work")
|
(x86System "work")
|
||||||
|
@ -293,7 +292,13 @@
|
||||||
in nixpkgs.lib.foldl' (acc: h: acc // h) {} [
|
in nixpkgs.lib.foldl' (acc: h: acc // h) {} [
|
||||||
x86LinuxRoot
|
x86LinuxRoot
|
||||||
(x86LinuxHome "voronind" [
|
(x86LinuxHome "voronind" [
|
||||||
{ home.hm.packages.common.enable = true; }
|
{
|
||||||
|
home.hm.package = {
|
||||||
|
android.enable = true;
|
||||||
|
core.enable = true;
|
||||||
|
common.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
])
|
])
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ in {
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
time.timeZone = const.timeZone;
|
time.timeZone = const.timeZone;
|
||||||
environment.packages = package.core;
|
environment.packages = package.core ++ package.android;
|
||||||
home-manager.config = stylix // {
|
home-manager.config = stylix // {
|
||||||
imports = [ inputs.stylix.homeManagerModules.stylix ];
|
imports = [ inputs.stylix.homeManagerModules.stylix ];
|
||||||
home = {
|
home = {
|
||||||
|
|
|
@ -19,17 +19,18 @@ in {
|
||||||
default = "/home/${cfg.username}";
|
default = "/home/${cfg.username}";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
};
|
};
|
||||||
packages = mkOption {
|
package = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
options = {
|
options = {
|
||||||
core.enable = mkEnableOption "Core apps.";
|
android.enable = mkEnableOption "Android apks.";
|
||||||
common.enable = mkEnableOption "Common apps.";
|
common.enable = mkEnableOption "Common apps.";
|
||||||
desktop.enable = mkEnableOption "Desktop apps.";
|
core.enable = mkEnableOption "Core apps.";
|
||||||
gaming.enable = mkEnableOption "Gaming apps.";
|
|
||||||
creative.enable = mkEnableOption "Creative apps.";
|
creative.enable = mkEnableOption "Creative apps.";
|
||||||
|
desktop.enable = mkEnableOption "Desktop apps.";
|
||||||
dev.enable = mkEnableOption "Dev apps.";
|
dev.enable = mkEnableOption "Dev apps.";
|
||||||
extra.enable = mkEnableOption "Extra apps.";
|
extra.enable = mkEnableOption "Extra apps.";
|
||||||
|
gaming.enable = mkEnableOption "Gaming apps.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -48,12 +49,13 @@ in {
|
||||||
programs = import ./program args;
|
programs = import ./program args;
|
||||||
dconf.settings = util.catSet (util.ls ./config/dconf) args;
|
dconf.settings = util.catSet (util.ls ./config/dconf) args;
|
||||||
}
|
}
|
||||||
(mkIf cfg.packages.core.enable { home.packages = package.core; })
|
(mkIf cfg.package.android.enable { home.packages = package.android; })
|
||||||
(mkIf cfg.packages.common.enable { home.packages = package.common; })
|
(mkIf cfg.package.common.enable { home.packages = package.common; })
|
||||||
(mkIf cfg.packages.desktop.enable { home.packages = package.desktop; })
|
(mkIf cfg.package.core.enable { home.packages = package.core; })
|
||||||
(mkIf cfg.packages.gaming.enable { home.packages = package.gaming; })
|
(mkIf cfg.package.creative.enable { home.packages = package.creative; })
|
||||||
(mkIf cfg.packages.creative.enable { home.packages = package.creative; })
|
(mkIf cfg.package.desktop.enable { home.packages = package.desktop; })
|
||||||
(mkIf cfg.packages.dev.enable { home.packages = package.dev; })
|
(mkIf cfg.package.dev.enable { home.packages = package.dev; })
|
||||||
(mkIf cfg.packages.extra.enable { home.packages = package.extra; })
|
(mkIf cfg.package.extra.enable { home.packages = package.extra; })
|
||||||
|
(mkIf cfg.package.gaming.enable { home.packages = package.gaming; })
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
{ ... }: {
|
{ ... }: {
|
||||||
fileSystems."/storage/hot" = {
|
fileSystems = {
|
||||||
|
"/storage/hot" = {
|
||||||
device = "/dev/storage/hot";
|
device = "/dev/storage/hot";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "nofail" "noatime" ];
|
options = [ "nofail" "noatime" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/storage/cold" = {
|
"/storage/cold" = {
|
||||||
device = "/dev/storage/cold";
|
device = "/dev/storage/cold";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "nofail" "noatime" ];
|
options = [ "nofail" "noatime" ];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,20 +9,19 @@
|
||||||
module = {
|
module = {
|
||||||
amd.gpu.enable = true;
|
amd.gpu.enable = true;
|
||||||
builder.client.enable = true;
|
builder.client.enable = true;
|
||||||
|
desktop.sway.enable = true;
|
||||||
intel.cpu.enable = true;
|
intel.cpu.enable = true;
|
||||||
print.enable = true;
|
print.enable = true;
|
||||||
strongswan.enable = true;
|
strongswan.enable = true;
|
||||||
tablet.enable = true;
|
tablet.enable = true;
|
||||||
desktop = {
|
package = {
|
||||||
sway.enable = true;
|
|
||||||
app = {
|
|
||||||
common.enable = true;
|
common.enable = true;
|
||||||
desktop.enable = true;
|
core.enable = true;
|
||||||
gaming.enable = true;
|
|
||||||
creative.enable = true;
|
creative.enable = true;
|
||||||
|
desktop.enable = true;
|
||||||
dev.enable = true;
|
dev.enable = true;
|
||||||
extra.enable = true;
|
extra.enable = true;
|
||||||
};
|
gaming.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,21 @@
|
||||||
{ ... }: {
|
{ ... }: {
|
||||||
fileSystems."/storage/hot" = {
|
fileSystems = {
|
||||||
|
"/storage/hot" = {
|
||||||
device = "/dev/storage/hot";
|
device = "/dev/storage/hot";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "noatime" "nofail" ];
|
options = [ "noatime" "nofail" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/storage/cold_1" = {
|
"/storage/cold_1" = {
|
||||||
device = "/dev/storage/cold_1";
|
device = "/dev/storage/cold_1";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "noatime" "noauto" "nofail" ];
|
options = [ "noatime" "noauto" "nofail" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/storage/cold_2" = {
|
"/storage/cold_2" = {
|
||||||
device = "/dev/storage/cold_2";
|
device = "/dev/storage/cold_2";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "noatime" "noauto" "nofail" ];
|
options = [ "noatime" "noauto" "nofail" ];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, ... }: {
|
{ ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
./Filesystem.nix
|
./Filesystem.nix
|
||||||
];
|
];
|
||||||
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
builder.client.enable = true;
|
builder.client.enable = true;
|
||||||
|
desktop.sway.enable = true;
|
||||||
ollama.enable = true;
|
ollama.enable = true;
|
||||||
print.enable = true;
|
print.enable = true;
|
||||||
virtmanager.enable = true;
|
virtmanager.enable = true;
|
||||||
|
@ -16,21 +17,19 @@
|
||||||
cpu.enable = true;
|
cpu.enable = true;
|
||||||
gpu.enable = true;
|
gpu.enable = true;
|
||||||
};
|
};
|
||||||
desktop = {
|
|
||||||
sway.enable = true;
|
|
||||||
app = {
|
|
||||||
common.enable = true;
|
|
||||||
desktop.enable = true;
|
|
||||||
creative.enable = true;
|
|
||||||
dev.enable = true;
|
|
||||||
extra.enable = true;
|
|
||||||
gaming.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
docker = {
|
docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autostart = false;
|
autostart = false;
|
||||||
rootless = false;
|
rootless = false;
|
||||||
};
|
};
|
||||||
|
package = {
|
||||||
|
common.enable = true;
|
||||||
|
core.enable = true;
|
||||||
|
creative.enable = true;
|
||||||
|
desktop.enable = true;
|
||||||
|
dev.enable = true;
|
||||||
|
extra.enable = true;
|
||||||
|
gaming.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ lib, ... }: {
|
|
||||||
# This host is running inside BIOS VM so it needs the Grub.
|
|
||||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = lib.mkForce false;
|
|
||||||
boot.loader.grub.enable = true;
|
|
||||||
boot.loader.grub.device = "/dev/sda";
|
|
||||||
boot.loader.grub.useOSProber = true;
|
|
||||||
|
|
||||||
fileSystems."/" = lib.mkForce {
|
|
||||||
device = "/dev/sda2";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
fileSystems."/boot" = lib.mkForce {
|
|
||||||
device = "/dev/sda1";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
{ lib, ... }: {
|
|
||||||
# Force specific PW for this host.
|
|
||||||
users.users.root.hashedPassword = lib.mkForce "$y$j9T$d4HfwutZr.eNHuLJYRuro/$7swZfgCNS6jEXHFCxsW5um/68jX9BRiiZD1BYcm/gD/";
|
|
||||||
|
|
||||||
# Allow login with PW for others.
|
|
||||||
# services.openssh.settings.PasswordAuthentication = lib.mkForce true;
|
|
||||||
# services.openssh.settings.PermitRootLogin = lib.mkForce "yes";
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ ... }: {
|
|
||||||
imports = [
|
|
||||||
./Grub.nix
|
|
||||||
./Root.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.nixos.enable = true;
|
|
||||||
module.docker = {
|
|
||||||
enable = true;
|
|
||||||
autostart = true;
|
|
||||||
rootless = false;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -77,9 +77,7 @@ in {
|
||||||
systemd.services.backup = util.mkStaticSystemdService {
|
systemd.services.backup = util.mkStaticSystemdService {
|
||||||
enable = true;
|
enable = true;
|
||||||
description = "Home system backup.";
|
description = "Home system backup.";
|
||||||
serviceConfig = {
|
serviceConfig.Type = "oneshot";
|
||||||
Type = "oneshot";
|
|
||||||
};
|
|
||||||
path = with pkgs; [
|
path = with pkgs; [
|
||||||
bashInteractive
|
bashInteractive
|
||||||
curl
|
curl
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ ... }: {
|
{ ... }: {
|
||||||
# TODO: Remove this with Fsight container.
|
# TODO: Remove this with Fsight container. ALSO!!! delete images and everything before that.
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
|
|
||||||
container = {
|
container = {
|
||||||
|
|
|
@ -1,21 +1,23 @@
|
||||||
{ ... }: {
|
{ ... }: {
|
||||||
fileSystems."/storage/cold_1" = {
|
fileSystems = {
|
||||||
|
"/storage/cold_1" = {
|
||||||
device = "/dev/storage/cold_1";
|
device = "/dev/storage/cold_1";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "nofail" "noatime" ];
|
options = [ "nofail" "noatime" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/storage/cold_2" = {
|
"/storage/cold_2" = {
|
||||||
device = "/dev/storage/cold_2";
|
device = "/dev/storage/cold_2";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "nofail" "noatime" ];
|
options = [ "nofail" "noatime" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/storage/hot" = {
|
"/storage/hot" = {
|
||||||
device = "/dev/storage/hot";
|
device = "/dev/storage/hot";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "nofail" "noatime" ];
|
options = [ "nofail" "noatime" ];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
swapDevices = [{
|
swapDevices = [{
|
||||||
device = "/storage/hot/.swapfile";
|
device = "/storage/hot/.swapfile";
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
{ ... }: {
|
{ util, ... }: {
|
||||||
networking.networkmanager.insertNameservers = [
|
networking = {
|
||||||
|
networkmanager.insertNameservers = [
|
||||||
"1.1.1.1"
|
"1.1.1.1"
|
||||||
"8.8.8.8"
|
"8.8.8.8"
|
||||||
];
|
];
|
||||||
networking.extraHosts = ''
|
extraHosts = util.trimTabs ''
|
||||||
10.1.0.2 git.voronind.com
|
10.1.0.2 git.voronind.com
|
||||||
10.1.0.2 iot.voronind.com
|
10.1.0.2 iot.voronind.com
|
||||||
10.1.0.2 pass.voronind.com
|
10.1.0.2 pass.voronind.com
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,17 +14,7 @@
|
||||||
module = {
|
module = {
|
||||||
autoupdate.enable = false;
|
autoupdate.enable = false;
|
||||||
builder.server.enable = true;
|
builder.server.enable = true;
|
||||||
desktop = {
|
desktop.sway.enable = true;
|
||||||
sway.enable = true;
|
|
||||||
app = {
|
|
||||||
common.enable = true;
|
|
||||||
desktop.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
ftpd = {
|
|
||||||
enable = true;
|
|
||||||
storage = "/storage/hot/ftp";
|
|
||||||
};
|
|
||||||
amd = {
|
amd = {
|
||||||
cpu = {
|
cpu = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -32,5 +22,15 @@
|
||||||
};
|
};
|
||||||
gpu.enable = true;
|
gpu.enable = true;
|
||||||
};
|
};
|
||||||
|
ftpd = {
|
||||||
|
enable = true;
|
||||||
|
storage = "/storage/hot/ftp";
|
||||||
|
};
|
||||||
|
package = {
|
||||||
|
android.enable = true;
|
||||||
|
common.enable = true;
|
||||||
|
core.enable = true;
|
||||||
|
desktop.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
builder.client.enable = true;
|
builder.client.enable = true;
|
||||||
|
desktop.sway.enable = true;
|
||||||
print.enable = true;
|
print.enable = true;
|
||||||
strongswan.enable = true;
|
strongswan.enable = true;
|
||||||
tablet.enable = true;
|
tablet.enable = true;
|
||||||
|
@ -19,15 +20,13 @@
|
||||||
cpu.enable = true;
|
cpu.enable = true;
|
||||||
gpu.enable = true;
|
gpu.enable = true;
|
||||||
};
|
};
|
||||||
desktop = {
|
package = {
|
||||||
sway.enable = true;
|
|
||||||
app = {
|
|
||||||
common.enable = true;
|
common.enable = true;
|
||||||
|
core.enable = true;
|
||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
gaming.enable = true;
|
gaming.enable = true;
|
||||||
creative.enable = true;
|
creative.enable = true;
|
||||||
dev.enable = true;
|
dev.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,11 @@
|
||||||
fprintd
|
fprintd
|
||||||
];
|
];
|
||||||
|
|
||||||
services.fprintd.enable = true;
|
services.fprintd = {
|
||||||
services.fprintd.tod.enable = true;
|
enable = true;
|
||||||
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-vfs0090;
|
tod = {
|
||||||
|
enable = true;
|
||||||
|
driver = pkgs.libfprint-2-tod1-vfs0090;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,18 +11,17 @@
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
builder.client.enable = true;
|
builder.client.enable = true;
|
||||||
|
desktop.sway.enable = true;
|
||||||
intel.cpu.enable = true;
|
intel.cpu.enable = true;
|
||||||
powerlimit.thinkpad.enable = true;
|
powerlimit.thinkpad.enable = true;
|
||||||
print.enable = true;
|
print.enable = true;
|
||||||
desktop = {
|
package = {
|
||||||
sway.enable = true;
|
|
||||||
app = {
|
|
||||||
common.enable = true;
|
common.enable = true;
|
||||||
|
core.enable = true;
|
||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
gaming.enable = true;
|
|
||||||
dev.enable = true;
|
dev.enable = true;
|
||||||
extra.enable = true;
|
extra.enable = true;
|
||||||
};
|
gaming.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
{ pkgs, config, lib, __findFile, ... } @args: with lib; let
|
|
||||||
cfg = config.module.desktop.app;
|
|
||||||
package = import <package> args;
|
|
||||||
in {
|
|
||||||
options = {
|
|
||||||
module.desktop.app = {
|
|
||||||
common.enable = mkEnableOption "Common Apps.";
|
|
||||||
desktop.enable = mkEnableOption "Desktop Apps.";
|
|
||||||
gaming.enable = mkEnableOption "Gaming Apps.";
|
|
||||||
creative.enable = mkEnableOption "Creative Apps.";
|
|
||||||
dev.enable = mkEnableOption "Dev Apps.";
|
|
||||||
extra.enable = mkEnableOption "Extra Apps.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
# Common apps.
|
|
||||||
(mkIf cfg.common.enable {
|
|
||||||
xdg.mime.defaultApplications = {
|
|
||||||
# Use `file -i file.txt` to find file mime type.
|
|
||||||
# Use `xdg-mime query default "text/plain"` to find default app.
|
|
||||||
"application/pdf" = "org.gnome.Evince.desktop";
|
|
||||||
"application/vnd.openxmlformats-officedocument.*" = "onlyoffice-desktopeditors.desktop";
|
|
||||||
"audio/*" = "mpv.desktop";
|
|
||||||
"image/*" = "org.gnome.Loupe.desktop";
|
|
||||||
"text/*" = "nvim.desktop";
|
|
||||||
"video/*" = "mpv.desktop";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = package.common;
|
|
||||||
|
|
||||||
services.gvfs.enable = true;
|
|
||||||
})
|
|
||||||
|
|
||||||
# Desktop apps.
|
|
||||||
(mkIf cfg.desktop.enable {
|
|
||||||
environment.systemPackages = package.desktop;
|
|
||||||
})
|
|
||||||
|
|
||||||
# Gaming.
|
|
||||||
(mkIf cfg.gaming.enable {
|
|
||||||
hardware.graphics = let
|
|
||||||
packages = with pkgs; [
|
|
||||||
dxvk
|
|
||||||
gamescope
|
|
||||||
pkgs.mangohud
|
|
||||||
vkd3d
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
extraPackages = packages;
|
|
||||||
extraPackages32 = packages;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.steam.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = package.gaming;
|
|
||||||
})
|
|
||||||
|
|
||||||
# Creative.
|
|
||||||
(mkIf cfg.creative.enable {
|
|
||||||
environment.systemPackages = package.creative;
|
|
||||||
})
|
|
||||||
|
|
||||||
# Development.
|
|
||||||
(mkIf cfg.dev.enable {
|
|
||||||
environment.systemPackages = package.dev;
|
|
||||||
})
|
|
||||||
|
|
||||||
# Extras.
|
|
||||||
(mkIf cfg.extra.enable {
|
|
||||||
environment.systemPackages = package.extra;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -7,7 +7,6 @@ in {
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
module.desktop = {
|
module.desktop = {
|
||||||
app.common.enable = true;
|
|
||||||
dm.enable = true;
|
dm.enable = true;
|
||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
wayland.enable = true;
|
wayland.enable = true;
|
||||||
|
|
|
@ -1,9 +1,25 @@
|
||||||
{ pkgs, __findFile, ... } @args: let
|
{ pkgs, config, lib, __findFile, ... } @args: with lib; let
|
||||||
|
cfg = config.module.package;
|
||||||
package = import <package> args;
|
package = import <package> args;
|
||||||
in {
|
in {
|
||||||
|
options = {
|
||||||
|
module.package = {
|
||||||
|
android.enable = mkEnableOption "Android Apks.";
|
||||||
|
common.enable = mkEnableOption "Common Apps.";
|
||||||
|
core.enable = mkEnableOption "Core apps.";
|
||||||
|
creative.enable = mkEnableOption "Creative Apps.";
|
||||||
|
desktop.enable = mkEnableOption "Desktop Apps.";
|
||||||
|
dev.enable = mkEnableOption "Dev Apps.";
|
||||||
|
extra.enable = mkEnableOption "Extra Apps.";
|
||||||
|
gaming.enable = mkEnableOption "Gaming Apps.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkMerge [
|
||||||
|
# Core apps.
|
||||||
|
(mkIf cfg.core.enable {
|
||||||
environment.systemPackages = package.core;
|
environment.systemPackages = package.core;
|
||||||
|
|
||||||
# Special packages.
|
|
||||||
programs = {
|
programs = {
|
||||||
adb.enable = true;
|
adb.enable = true;
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
|
@ -15,4 +31,68 @@ in {
|
||||||
services = {
|
services = {
|
||||||
udisks2.enable = true;
|
udisks2.enable = true;
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# Common apps.
|
||||||
|
(mkIf cfg.common.enable {
|
||||||
|
xdg.mime.defaultApplications = {
|
||||||
|
# Use `file -i file.txt` to find file mime type.
|
||||||
|
# Use `xdg-mime query default "text/plain"` to find default app.
|
||||||
|
"application/pdf" = "org.gnome.Evince.desktop";
|
||||||
|
"application/vnd.openxmlformats-officedocument.*" = "onlyoffice-desktopeditors.desktop";
|
||||||
|
"audio/*" = "mpv.desktop";
|
||||||
|
"image/*" = "org.gnome.Loupe.desktop";
|
||||||
|
"text/*" = "nvim.desktop";
|
||||||
|
"video/*" = "mpv.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = package.common;
|
||||||
|
|
||||||
|
services.gvfs.enable = true;
|
||||||
|
})
|
||||||
|
|
||||||
|
# Android apps.
|
||||||
|
(mkIf cfg.android.enable {
|
||||||
|
environment.systemPackages = package.android;
|
||||||
|
})
|
||||||
|
|
||||||
|
# Desktop apps.
|
||||||
|
(mkIf cfg.desktop.enable {
|
||||||
|
environment.systemPackages = package.desktop;
|
||||||
|
})
|
||||||
|
|
||||||
|
# Gaming.
|
||||||
|
(mkIf cfg.gaming.enable {
|
||||||
|
hardware.graphics = let
|
||||||
|
packages = with pkgs; [
|
||||||
|
dxvk
|
||||||
|
gamescope
|
||||||
|
pkgs.mangohud
|
||||||
|
vkd3d
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
extraPackages = packages;
|
||||||
|
extraPackages32 = packages;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.steam.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = package.gaming;
|
||||||
|
})
|
||||||
|
|
||||||
|
# Creative.
|
||||||
|
(mkIf cfg.creative.enable {
|
||||||
|
environment.systemPackages = package.creative;
|
||||||
|
})
|
||||||
|
|
||||||
|
# Development.
|
||||||
|
(mkIf cfg.dev.enable {
|
||||||
|
environment.systemPackages = package.dev;
|
||||||
|
})
|
||||||
|
|
||||||
|
# Extras.
|
||||||
|
(mkIf cfg.extra.enable {
|
||||||
|
environment.systemPackages = package.extra;
|
||||||
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@ in {
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
module.desktop = {
|
module.desktop = {
|
||||||
app.common.enable = true;
|
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
brightness.enable = true;
|
brightness.enable = true;
|
||||||
portal.enable = true;
|
portal.enable = true;
|
||||||
|
|
|
@ -3,20 +3,28 @@
|
||||||
android-tools # Android adb tool. Can be used to connect to itself via wireless debugging.
|
android-tools # Android adb tool. Can be used to connect to itself via wireless debugging.
|
||||||
binwalk # Can analyze files for other files inside them.
|
binwalk # Can analyze files for other files inside them.
|
||||||
btop htop # System monitors.
|
btop htop # System monitors.
|
||||||
|
coreutils # UNIX Core utilities.
|
||||||
cryptsetup # Filesystem encryption (LUKS).
|
cryptsetup # Filesystem encryption (LUKS).
|
||||||
curl # CLI http client.
|
curl # CLI http client.
|
||||||
ddrescue testdisk # Apps to recover data from drives.
|
ddrescue testdisk # Apps to recover data from drives.
|
||||||
|
diffutils # Diff tool.
|
||||||
|
dnsutils # NS utilities.
|
||||||
exiftool # Image info.
|
exiftool # Image info.
|
||||||
fastfetch # Systeminfo summary.
|
fastfetch # Systeminfo summary.
|
||||||
ffmpeg # Video/audio converter.
|
ffmpeg # Video/audio converter.
|
||||||
file # Get general info about a file.
|
file # Get general info about a file.
|
||||||
|
findutils # Find tool.
|
||||||
|
gawk # Awk.
|
||||||
gcc # C compiler.
|
gcc # C compiler.
|
||||||
gdu # TUI storage analyzer.
|
gdu # TUI storage analyzer.
|
||||||
git # Version control system.
|
git # Version control system.
|
||||||
|
gnugrep # Grep.
|
||||||
|
gnumake # Make.
|
||||||
|
gnused # Sed.
|
||||||
gnutar gzip xz # Archive and compression tools.
|
gnutar gzip xz # Archive and compression tools.
|
||||||
gparted parted # GUI/CLI disk partition tool.
|
|
||||||
imagemagick # Image converter and transformation tool.
|
imagemagick # Image converter and transformation tool.
|
||||||
inetutils # Things like FTP.
|
inetutils # Things like FTP.
|
||||||
|
iputils # IP tools.
|
||||||
jq # Json parser.
|
jq # Json parser.
|
||||||
lm_sensors # Hardware sensors, like temperature and fan speeds.
|
lm_sensors # Hardware sensors, like temperature and fan speeds.
|
||||||
lshw # Detailed hardware info tool.
|
lshw # Detailed hardware info tool.
|
||||||
|
@ -26,12 +34,12 @@
|
||||||
neovim # Text editor.
|
neovim # Text editor.
|
||||||
nixd # Nix LSP.
|
nixd # Nix LSP.
|
||||||
nmap # Network analyzer.
|
nmap # Network analyzer.
|
||||||
ollama # LLMs.
|
|
||||||
openssh sshfs # Ssh client.
|
openssh sshfs # Ssh client.
|
||||||
parallel # Run programs in parallel.
|
parallel # Run programs in parallel.
|
||||||
|
parted gparted # GUI/CLI disk partition tool.
|
||||||
pv # IO progress bar.
|
pv # IO progress bar.
|
||||||
radare2 # Hex editor.
|
radare2 # Hex editor.
|
||||||
ripgrep # Grep for file search.
|
ripgrep # Better grep.
|
||||||
rsync # File copy tool.
|
rsync # File copy tool.
|
||||||
scanmem # Memory edit tool.
|
scanmem # Memory edit tool.
|
||||||
smartmontools # S.M.A.R.T. tools.
|
smartmontools # S.M.A.R.T. tools.
|
||||||
|
@ -44,16 +52,12 @@
|
||||||
wget # CLI http download tool.
|
wget # CLI http download tool.
|
||||||
wireguard-tools # Tools to work with Wireguard.
|
wireguard-tools # Tools to work with Wireguard.
|
||||||
yazi chafa # CLI file manager.
|
yazi chafa # CLI file manager.
|
||||||
|
yt-dlp # Video downloader.
|
||||||
zapret # FRKN.
|
zapret # FRKN.
|
||||||
zip unzip # Zip archive/unarchive tools.
|
zip unzip # Zip archive/unarchive tools.
|
||||||
|
|
||||||
coreutils dnsutils diffutils findutils utillinux # Common utilities.
|
|
||||||
gawk gnused gnugrep gnumake ripgrep # Common Gnu utils.
|
|
||||||
|
|
||||||
(pkgs.callPackage ./apks {})
|
|
||||||
(pkgs.callPackage ./yamusicdownload {})
|
(pkgs.callPackage ./yamusicdownload {})
|
||||||
# (pkgs.callPackage ./ytdlp {})
|
# (pkgs.callPackage ./ytdlp {})
|
||||||
yt-dlp
|
|
||||||
];
|
];
|
||||||
|
|
||||||
desktop = with pkgs; [
|
desktop = with pkgs; [
|
||||||
|
@ -100,12 +104,19 @@
|
||||||
jetbrains.idea-community
|
jetbrains.idea-community
|
||||||
];
|
];
|
||||||
|
|
||||||
|
android = [
|
||||||
|
(pkgs.callPackage ./apks {})
|
||||||
|
];
|
||||||
|
|
||||||
extra = with pkgs; [
|
extra = with pkgs; [
|
||||||
anilibria-winmaclinux # Anime!
|
anilibria-winmaclinux # Anime!
|
||||||
appimage-run # Tool to run .AppImage files in NixOS.
|
appimage-run # Tool to run .AppImage files in NixOS.
|
||||||
blanket # Sounds generator.
|
blanket # Sounds generator.
|
||||||
calibre # Book library manager.
|
calibre # Book library manager.
|
||||||
|
cbonsai cmatrix # CLI Screensavers.
|
||||||
|
cowsay lolcat # CLI funni.
|
||||||
gnome-font-viewer # Font viewer.
|
gnome-font-viewer # Font viewer.
|
||||||
|
ollama # LLMs.
|
||||||
tor-browser # Privacy browser.
|
tor-browser # Privacy browser.
|
||||||
universal-android-debloater # Debloat Android devices.
|
universal-android-debloater # Debloat Android devices.
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in a new issue