Split modules to option and config.
This commit is contained in:
parent
d1095f4252
commit
ee98cdf6f0
|
@ -6,8 +6,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.amd.compute;
|
cfg = config.module.amd.compute;
|
||||||
in {
|
in {
|
||||||
options.module.amd.compute.enable = lib.mkEnableOption "the AMD Rocm support i.e. for Blender.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
nixpkgs.config.rocmSupport = true;
|
nixpkgs.config.rocmSupport = true;
|
||||||
systemd.tmpfiles.rules = [ "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" ];
|
systemd.tmpfiles.rules = [ "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" ];
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.amd.cpu;
|
cfg = config.module.amd.cpu;
|
||||||
|
@ -10,11 +9,6 @@
|
||||||
disableCmd = "1";
|
disableCmd = "1";
|
||||||
enableCmd = "0";
|
enableCmd = "0";
|
||||||
in {
|
in {
|
||||||
options.module.amd.cpu = {
|
|
||||||
enable = lib.mkEnableOption "the AMD Cpu support.";
|
|
||||||
powersave = lib.mkEnableOption "the AMD Cpu powersave.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||||
{
|
{
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
|
@ -1,13 +1,10 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.amd.gpu;
|
cfg = config.module.amd.gpu;
|
||||||
in {
|
in {
|
||||||
options.module.amd.gpu.enable = lib.mkEnableOption "the AMD Gpu support.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.variables.AMD_VULKAN_ICD = "RADV";
|
environment.variables.AMD_VULKAN_ICD = "RADV";
|
||||||
boot.initrd.kernelModules = [
|
boot.initrd.kernelModules = [
|
|
@ -13,10 +13,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.autoupdate;
|
cfg = config.module.autoupdate;
|
||||||
in {
|
in {
|
||||||
options.module.autoupdate = {
|
|
||||||
enable = lib.mkEnableOption "the system auto-updates.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
|
@ -5,8 +5,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.bluetooth;
|
cfg = config.module.bluetooth;
|
||||||
in {
|
in {
|
||||||
options.module.bluetooth.enable = lib.mkEnableOption "the bluetooth support.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
|
@ -5,8 +5,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.brightness;
|
cfg = config.module.brightness;
|
||||||
in {
|
in {
|
||||||
options.module.brightness.enable = lib.mkEnableOption "the brightness control.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.light.enable = true;
|
programs.light.enable = true;
|
||||||
};
|
};
|
|
@ -5,8 +5,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.dm;
|
cfg = config.module.dm;
|
||||||
in {
|
in {
|
||||||
options.module.dm.enable = lib.mkEnableOption "the display manager.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
|
@ -6,10 +6,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.distrobox;
|
cfg = config.module.distrobox;
|
||||||
in {
|
in {
|
||||||
options.module.distrobox = {
|
|
||||||
enable = lib.mkEnableOption "the distrobox.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
# Distrobox works best with Podman, so enable it here.
|
# Distrobox works best with Podman, so enable it here.
|
||||||
module.podman.enable = true;
|
module.podman.enable = true;
|
|
@ -5,18 +5,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.docker;
|
cfg = config.module.docker;
|
||||||
in {
|
in {
|
||||||
options.module.docker = {
|
|
||||||
enable = lib.mkEnableOption "the docker.";
|
|
||||||
rootless = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
type = lib.types.bool;
|
|
||||||
};
|
|
||||||
autostart = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
type = lib.types.bool;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||||
{
|
{
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
|
@ -1,21 +1,11 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
util,
|
util,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.ftpd;
|
cfg = config.module.ftpd;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.module.ftpd = {
|
|
||||||
enable = lib.mkEnableOption "the FTP server";
|
|
||||||
storage = lib.mkOption {
|
|
||||||
default = null;
|
|
||||||
type = lib.types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.vsftpd = {
|
services.vsftpd = {
|
||||||
enable = true;
|
enable = true;
|
|
@ -7,8 +7,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.gnome;
|
cfg = config.module.gnome;
|
||||||
in {
|
in {
|
||||||
options.module.gnome.enable = lib.mkEnableOption "the Gnome DE.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
module = {
|
module = {
|
||||||
dm.enable = true;
|
dm.enable = true;
|
|
@ -2,7 +2,6 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.intel.cpu;
|
cfg = config.module.intel.cpu;
|
||||||
|
@ -11,11 +10,6 @@
|
||||||
disableCmd = "0";
|
disableCmd = "0";
|
||||||
enableCmd = "1";
|
enableCmd = "1";
|
||||||
in {
|
in {
|
||||||
options.module.intel.cpu = {
|
|
||||||
enable = lib.mkEnableOption "the support for Intel CPUs";
|
|
||||||
powersave = lib.mkEnableOption "the Intel CPU powersave.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||||
{
|
{
|
||||||
boot.kernelModules = [
|
boot.kernelModules = [
|
|
@ -1,28 +1,11 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
pkgsUnstable,
|
pkgsUnstable,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.kernel;
|
cfg = config.module.kernel;
|
||||||
in {
|
in {
|
||||||
options.module.kernel = {
|
|
||||||
enable = lib.mkEnableOption "the kernel tweaks.";
|
|
||||||
hardening = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
type = lib.types.bool;
|
|
||||||
};
|
|
||||||
hotspotTtlBypass = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
type = lib.types.bool;
|
|
||||||
};
|
|
||||||
latest = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
type = lib.types.bool;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||||
{
|
{
|
||||||
boot.kernel.sysctl = {
|
boot.kernel.sysctl = {
|
|
@ -6,10 +6,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.keyd;
|
cfg = config.module.keyd;
|
||||||
in {
|
in {
|
||||||
options.module.keyd = {
|
|
||||||
enable = lib.mkEnableOption "the keyboard remaps.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
keyd
|
keyd
|
|
@ -8,18 +8,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.ollama;
|
cfg = config.module.ollama;
|
||||||
in {
|
in {
|
||||||
options.module.ollama = {
|
|
||||||
enable = lib.mkEnableOption "the local LLM server.";
|
|
||||||
models = lib.mkOption {
|
|
||||||
default = [ cfg.primaryModel ];
|
|
||||||
type = with lib.types; listOf str;
|
|
||||||
};
|
|
||||||
primaryModel = lib.mkOption {
|
|
||||||
default = "llama3.2";
|
|
||||||
type = lib.types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
# Specify default model.
|
# Specify default model.
|
||||||
environment.variables.OLLAMA_MODEL = cfg.primaryModel;
|
environment.variables.OLLAMA_MODEL = cfg.primaryModel;
|
|
@ -8,16 +8,6 @@
|
||||||
cfg = config.module.package;
|
cfg = config.module.package;
|
||||||
package = import <package> args;
|
package = import <package> args;
|
||||||
in {
|
in {
|
||||||
options.module.package = {
|
|
||||||
common.enable = lib.mkEnableOption "Common Apps.";
|
|
||||||
core.enable = lib.mkEnableOption "Core apps.";
|
|
||||||
creative.enable = lib.mkEnableOption "Creative Apps.";
|
|
||||||
desktop.enable = lib.mkEnableOption "Desktop Apps.";
|
|
||||||
dev.enable = lib.mkEnableOption "Dev Apps.";
|
|
||||||
extra.enable = lib.mkEnableOption "Extra Apps.";
|
|
||||||
gaming.enable = lib.mkEnableOption "Gaming Apps.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
# Core apps.
|
# Core apps.
|
||||||
(lib.mkIf cfg.core.enable {
|
(lib.mkIf cfg.core.enable {
|
|
@ -5,10 +5,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.podman;
|
cfg = config.module.podman;
|
||||||
in {
|
in {
|
||||||
options.module.podman = {
|
|
||||||
enable = lib.mkEnableOption "the OCI Podman.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
virtualisation.podman = {
|
virtualisation.podman = {
|
||||||
enable = true;
|
enable = true;
|
|
@ -7,8 +7,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.polkit;
|
cfg = config.module.polkit;
|
||||||
in {
|
in {
|
||||||
options.module.polkit.enable = lib.mkEnableOption "the polkit.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
systemd = {
|
systemd = {
|
|
@ -7,8 +7,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.portal;
|
cfg = config.module.portal;
|
||||||
in {
|
in {
|
||||||
options.module.portal.enable = lib.mkEnableOption "the portals.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
|
@ -39,26 +39,6 @@
|
||||||
''${@}
|
''${@}
|
||||||
'');
|
'');
|
||||||
in {
|
in {
|
||||||
options.module.powerlimit.thinkpad = {
|
|
||||||
enable = lib.mkEnableOption "the powerlimit service";
|
|
||||||
onMin = lib.mkOption {
|
|
||||||
default = 40;
|
|
||||||
type = lib.types.int;
|
|
||||||
};
|
|
||||||
onMax = lib.mkOption {
|
|
||||||
default = 80;
|
|
||||||
type = lib.types.int;
|
|
||||||
};
|
|
||||||
offMin = lib.mkOption {
|
|
||||||
default = 90;
|
|
||||||
type = lib.types.int;
|
|
||||||
};
|
|
||||||
offMax = lib.mkOption {
|
|
||||||
default = 95;
|
|
||||||
type = lib.types.int;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
script
|
script
|
|
@ -33,24 +33,6 @@
|
||||||
''${@}
|
''${@}
|
||||||
'');
|
'');
|
||||||
in {
|
in {
|
||||||
options.module.powersave = {
|
|
||||||
enable = lib.mkEnableOption "the powersave";
|
|
||||||
cpu.boost = {
|
|
||||||
disableCmd = lib.mkOption {
|
|
||||||
default = null;
|
|
||||||
type = lib.types.str;
|
|
||||||
};
|
|
||||||
enableCmd = lib.mkOption {
|
|
||||||
default = null;
|
|
||||||
type = lib.types.str;
|
|
||||||
};
|
|
||||||
controlFile = lib.mkOption {
|
|
||||||
default = null;
|
|
||||||
type = lib.types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
script
|
script
|
|
@ -1,14 +1,11 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
util,
|
util,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.print;
|
cfg = config.module.print;
|
||||||
in {
|
in {
|
||||||
options.module.print.enable = lib.mkEnableOption "the support for printers.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.printing = {
|
services.printing = {
|
||||||
enable = true;
|
enable = true;
|
|
@ -6,8 +6,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.realtime;
|
cfg = config.module.realtime;
|
||||||
in {
|
in {
|
||||||
options.module.realtime.enable = lib.mkEnableOption "the realtime access.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
security.pam.loginLimits = [{
|
security.pam.loginLimits = [{
|
||||||
domain = "@users";
|
domain = "@users";
|
|
@ -9,11 +9,6 @@
|
||||||
serverKeyPath = "/root/.nixbuilder";
|
serverKeyPath = "/root/.nixbuilder";
|
||||||
serverSshPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFqr7zKGOy/2bbAQCD85Ol+NoGGtvdMbSy3jGb98jM+f"; # Use ssh-keyscan.
|
serverSshPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFqr7zKGOy/2bbAQCD85Ol+NoGGtvdMbSy3jGb98jM+f"; # Use ssh-keyscan.
|
||||||
in {
|
in {
|
||||||
options.module.builder = {
|
|
||||||
server.enable = lib.mkEnableOption "the builder server.";
|
|
||||||
client.enable = lib.mkEnableOption "the builder client.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf cfg.server.enable {
|
(lib.mkIf cfg.server.enable {
|
||||||
# Service that generates new key on boot if not present.
|
# Service that generates new key on boot if not present.
|
|
@ -5,8 +5,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.sound;
|
cfg = config.module.sound;
|
||||||
in {
|
in {
|
||||||
options.module.sound.enable = lib.mkEnableOption "the sound.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
|
@ -6,14 +6,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.sway;
|
cfg = config.module.sway;
|
||||||
in {
|
in {
|
||||||
options.module.sway = {
|
|
||||||
enable = lib.mkEnableOption "the Sway WM.";
|
|
||||||
extraConfig = lib.mkOption {
|
|
||||||
default = "";
|
|
||||||
type = lib.types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.gnome.gnome-keyring.enable = lib.mkForce false;
|
services.gnome.gnome-keyring.enable = lib.mkForce false;
|
||||||
environment.variables.XDG_CURRENT_DESKTOP = "sway";
|
environment.variables.XDG_CURRENT_DESKTOP = "sway";
|
|
@ -5,8 +5,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.tablet;
|
cfg = config.module.tablet;
|
||||||
in {
|
in {
|
||||||
options.module.tablet.enable = lib.mkEnableOption "the support for tables.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
hardware.opentabletdriver.enable = true;
|
hardware.opentabletdriver.enable = true;
|
||||||
systemd.user.services.opentabletdriver.wantedBy = [
|
systemd.user.services.opentabletdriver.wantedBy = [
|
|
@ -6,8 +6,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.virtmanager;
|
cfg = config.module.virtmanager;
|
||||||
in {
|
in {
|
||||||
options.module.virtmanager.enable = lib.mkEnableOption "the VM support.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
|
@ -6,8 +6,6 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.waybar;
|
cfg = config.module.waybar;
|
||||||
in {
|
in {
|
||||||
options.module.waybar.enable = lib.mkEnableOption "the Waybar.";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
waybar
|
waybar
|
|
@ -1,13 +1,10 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.module.wayland;
|
cfg = config.module.wayland;
|
||||||
in {
|
in {
|
||||||
options.module.wayland.enable = lib.mkEnableOption "the wayland.";
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
programs.xwayland.enable = true;
|
programs.xwayland.enable = true;
|
||||||
environment = {
|
environment = {
|
14
flake.nix
14
flake.nix
|
@ -70,7 +70,7 @@
|
||||||
);
|
);
|
||||||
|
|
||||||
devShells = let
|
devShells = let
|
||||||
lib = nixpkgs.lib;
|
# lib = nixpkgs.lib;
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
in {
|
in {
|
||||||
|
@ -106,7 +106,8 @@
|
||||||
]
|
]
|
||||||
++ (self.findFiles ./container)
|
++ (self.findFiles ./container)
|
||||||
++ (self.findFiles ./host/${system}/${hostname})
|
++ (self.findFiles ./host/${system}/${hostname})
|
||||||
++ (self.findFiles ./module)
|
++ (self.findFiles ./option)
|
||||||
|
++ (self.findFiles ./config)
|
||||||
++ (self.findFiles ./overlay)
|
++ (self.findFiles ./overlay)
|
||||||
++ (self.findFiles ./system)
|
++ (self.findFiles ./system)
|
||||||
;
|
;
|
||||||
|
@ -134,7 +135,7 @@
|
||||||
);
|
);
|
||||||
|
|
||||||
nixOnDroidConfigurations.default = let
|
nixOnDroidConfigurations.default = let
|
||||||
config = self.nixOnDroidConfigurations.default.config;
|
# config = self.nixOnDroidConfigurations.default.config;
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
pkgs = nixpkgs.legacyPackages.${system}.pkgs;
|
pkgs = nixpkgs.legacyPackages.${system}.pkgs;
|
||||||
pkgsMaster = nixpkgsMaster.legacyPackages.${system}.pkgs;
|
pkgsMaster = nixpkgsMaster.legacyPackages.${system}.pkgs;
|
||||||
|
@ -143,12 +144,13 @@
|
||||||
in nix-on-droid.lib.nixOnDroidConfiguration {
|
in nix-on-droid.lib.nixOnDroidConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [
|
modules = [
|
||||||
(import ./module/Style.nix { inherit (config.home-manager) config; inherit (self) __findFile; inherit lib pkgs; })
|
|
||||||
{ home.android.enable = true; }
|
{ home.android.enable = true; }
|
||||||
{ home-manager.config.stylix.autoEnable = lib.mkForce false; }
|
{ home-manager.config.stylix.autoEnable = lib.mkForce false; }
|
||||||
./home/Android.nix
|
./home/Android.nix
|
||||||
./module/Wallpaper.nix
|
]
|
||||||
];
|
++ (self.findFiles ./option)
|
||||||
|
++ (self.findFiles ./overlay)
|
||||||
|
;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs self pkgsMaster pkgsUnstable;
|
inherit inputs self pkgsMaster pkgsUnstable;
|
||||||
inherit (self) const __findFile;
|
inherit (self) const __findFile;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
borderSize = toString config.module.style.window.border;
|
borderSize = toString config.module.style.window.border;
|
||||||
dpiAware = if (config.module.dpi.aware or false) then "yes" else "no";
|
dpiAware = if config.module.dpi.aware then "yes" else "no";
|
||||||
fontStep = 1;
|
fontStep = 1;
|
||||||
in {
|
in {
|
||||||
file = (pkgs.formats.iniWithGlobalSection { }).generate "FootConfig" {
|
file = (pkgs.formats.iniWithGlobalSection { }).generate "FootConfig" {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
dpiAware = if (config.module.dpi.aware or false) then "yes" else "no";
|
dpiAware = if config.module.dpi.aware then "yes" else "no";
|
||||||
in {
|
in {
|
||||||
file = (pkgs.formats.ini { }).generate "FuzzelConfig" {
|
file = (pkgs.formats.ini { }).generate "FuzzelConfig" {
|
||||||
main = {
|
main = {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
}: {
|
}: {
|
||||||
text = ''
|
text = ''
|
||||||
require("gen").setup {
|
require("gen").setup {
|
||||||
model = "${config.module.ollama.primaryModel or ""}"
|
model = "${config.module.ollama.primaryModel}"
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,6 @@ in {
|
||||||
include /etc/sway/config.d/*
|
include /etc/sway/config.d/*
|
||||||
'')
|
'')
|
||||||
+ swayRc
|
+ swayRc
|
||||||
+ config.module.sway.extraConfig or ""
|
+ config.module.sway.extraConfig
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,8 +36,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
input type:keyboard {
|
input type:keyboard {
|
||||||
xkb_layout ${config.module.keyboard.layouts or ""}
|
xkb_layout ${config.module.keyboard.layouts}
|
||||||
xkb_options ${config.module.keyboard.options or ""}
|
xkb_options ${config.module.keyboard.options}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Hide mouse cursor after a period of inactivity.
|
# Hide mouse cursor after a period of inactivity.
|
||||||
|
|
|
@ -146,8 +146,8 @@ in {
|
||||||
temperature = {
|
temperature = {
|
||||||
critical-threshold = 80;
|
critical-threshold = 80;
|
||||||
format = "{temperatureC}°C";
|
format = "{temperatureC}°C";
|
||||||
hwmon-path-abs = "${config.module.hwmon.path or ""}";
|
hwmon-path-abs = "${config.module.hwmon.path}";
|
||||||
input-filename = "${config.module.hwmon.file or ""}";
|
input-filename = "${config.module.hwmon.file}";
|
||||||
interval = refreshInterval;
|
interval = refreshInterval;
|
||||||
on-click = "foot -e bash -c btop";
|
on-click = "foot -e bash -c btop";
|
||||||
on-click-right = "powersave toggle";
|
on-click-right = "powersave toggle";
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.module.dpi;
|
|
||||||
in {
|
|
||||||
options.module.dpi = {
|
|
||||||
aware = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
type = lib.types.bool;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
115
module/Style.nix
115
module/Style.nix
|
@ -1,115 +0,0 @@
|
||||||
{
|
|
||||||
__findFile,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.module.style;
|
|
||||||
|
|
||||||
mkTypeOption = default: type: lib.mkOption { inherit default type; };
|
|
||||||
mkFloatOption = default: mkTypeOption default lib.types.float;
|
|
||||||
mkIntOption = default: mkTypeOption default lib.types.int;
|
|
||||||
mkPkgOption = default: mkTypeOption default lib.types.package;
|
|
||||||
mkStrOption = default: mkTypeOption default lib.types.str;
|
|
||||||
in {
|
|
||||||
options.module.style = {
|
|
||||||
color = {
|
|
||||||
accent = mkStrOption config.lib.stylix.colors.base0A;
|
|
||||||
heading = mkStrOption config.lib.stylix.colors.base0D;
|
|
||||||
hl = mkStrOption config.lib.stylix.colors.base03;
|
|
||||||
keyword = mkStrOption config.lib.stylix.colors.base0E;
|
|
||||||
link = mkStrOption config.lib.stylix.colors.base09;
|
|
||||||
misc = mkStrOption config.lib.stylix.colors.base0F;
|
|
||||||
negative = mkStrOption config.lib.stylix.colors.base08;
|
|
||||||
neutral = mkStrOption config.lib.stylix.colors.base0C;
|
|
||||||
positive = mkStrOption config.lib.stylix.colors.base0B;
|
|
||||||
selection = mkStrOption config.lib.stylix.colors.base02;
|
|
||||||
bg = {
|
|
||||||
dark = mkStrOption config.lib.stylix.colors.base00;
|
|
||||||
light = mkStrOption config.lib.stylix.colors.base07;
|
|
||||||
regular = mkStrOption config.lib.stylix.colors.base01;
|
|
||||||
};
|
|
||||||
fg = {
|
|
||||||
dark = mkStrOption config.lib.stylix.colors.base04;
|
|
||||||
light = mkStrOption config.lib.stylix.colors.base06;
|
|
||||||
regular = mkStrOption config.lib.stylix.colors.base05;
|
|
||||||
};
|
|
||||||
|
|
||||||
accent-r = mkStrOption config.lib.stylix.colors.base0A-rgb-r;
|
|
||||||
accent-g = mkStrOption config.lib.stylix.colors.base0A-rgb-g;
|
|
||||||
accent-b = mkStrOption config.lib.stylix.colors.base0A-rgb-b;
|
|
||||||
|
|
||||||
bg-r = mkStrOption config.lib.stylix.colors.base00-rgb-r;
|
|
||||||
bg-g = mkStrOption config.lib.stylix.colors.base00-rgb-g;
|
|
||||||
bg-b = mkStrOption config.lib.stylix.colors.base00-rgb-b;
|
|
||||||
|
|
||||||
border = mkStrOption config.lib.stylix.colors.base01;
|
|
||||||
border-r = mkStrOption config.lib.stylix.colors.base01-rgb-r;
|
|
||||||
border-g = mkStrOption config.lib.stylix.colors.base01-rgb-g;
|
|
||||||
border-b = mkStrOption config.lib.stylix.colors.base01-rgb-b;
|
|
||||||
|
|
||||||
fg-r = mkStrOption config.lib.stylix.colors.base06-rgb-r;
|
|
||||||
fg-g = mkStrOption config.lib.stylix.colors.base06-rgb-g;
|
|
||||||
fg-b = mkStrOption config.lib.stylix.colors.base06-rgb-b;
|
|
||||||
|
|
||||||
negative-r = mkStrOption config.lib.stylix.colors.base08-rgb-r;
|
|
||||||
negative-g = mkStrOption config.lib.stylix.colors.base08-rgb-g;
|
|
||||||
negative-b = mkStrOption config.lib.stylix.colors.base08-rgb-b;
|
|
||||||
|
|
||||||
neutral-r = mkStrOption config.lib.stylix.colors.base0C-rgb-r;
|
|
||||||
neutral-g = mkStrOption config.lib.stylix.colors.base0C-rgb-g;
|
|
||||||
neutral-b = mkStrOption config.lib.stylix.colors.base0C-rgb-b;
|
|
||||||
|
|
||||||
positive-r = mkStrOption config.lib.stylix.colors.base0B-rgb-r;
|
|
||||||
positive-g = mkStrOption config.lib.stylix.colors.base0B-rgb-g;
|
|
||||||
positive-b = mkStrOption config.lib.stylix.colors.base0B-rgb-b;
|
|
||||||
|
|
||||||
transparent = mkStrOption "ffffff00";
|
|
||||||
};
|
|
||||||
|
|
||||||
cursor = {
|
|
||||||
name = mkStrOption "phinger-cursors-light";
|
|
||||||
package = mkPkgOption pkgs.phinger-cursors;
|
|
||||||
size = mkIntOption 24;
|
|
||||||
};
|
|
||||||
|
|
||||||
font = {
|
|
||||||
emoji = {
|
|
||||||
name = mkStrOption "Noto Color Emoji";
|
|
||||||
package = mkPkgOption pkgs.noto-fonts-emoji;
|
|
||||||
};
|
|
||||||
monospace = {
|
|
||||||
name = mkStrOption "Terminess Nerd Font Mono";
|
|
||||||
package = mkPkgOption (pkgs.nerdfonts.override { fonts = [ "Terminus" ]; });
|
|
||||||
};
|
|
||||||
sansSerif = {
|
|
||||||
name = mkStrOption "SF Pro Display";
|
|
||||||
package = mkPkgOption (pkgs.callPackage <package/applefont> { });
|
|
||||||
};
|
|
||||||
serif = {
|
|
||||||
name = mkStrOption "SF Pro Display";
|
|
||||||
package = mkPkgOption (pkgs.callPackage <package/applefont> { });
|
|
||||||
};
|
|
||||||
size = {
|
|
||||||
application = mkIntOption 12;
|
|
||||||
desktop = mkIntOption 14;
|
|
||||||
popup = mkIntOption 12;
|
|
||||||
terminal = mkIntOption 14;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
opacity = {
|
|
||||||
application = mkFloatOption 0.85;
|
|
||||||
desktop = mkFloatOption 0.85;
|
|
||||||
hex = mkStrOption "D9";
|
|
||||||
popup = mkFloatOption 0.85;
|
|
||||||
terminal = mkFloatOption 0.85;
|
|
||||||
};
|
|
||||||
|
|
||||||
window = {
|
|
||||||
border = mkIntOption 4;
|
|
||||||
gap = mkIntOption 8;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
6
option/AmdCompute.nix
Normal file
6
option/AmdCompute.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.amd.compute.enable = lib.mkEnableOption "the AMD Rocm support i.e. for Blender.";
|
||||||
|
}
|
9
option/AmdCpu.nix
Normal file
9
option/AmdCpu.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.amd.cpu = {
|
||||||
|
enable = lib.mkEnableOption "the AMD Cpu support.";
|
||||||
|
powersave = lib.mkEnableOption "the AMD Cpu powersave.";
|
||||||
|
};
|
||||||
|
}
|
6
option/AmdGpu.nix
Normal file
6
option/AmdGpu.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.amd.gpu.enable = lib.mkEnableOption "the AMD Gpu support.";
|
||||||
|
}
|
6
option/AutoUpdateSigned.nix
Normal file
6
option/AutoUpdateSigned.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.autoupdate.enable = lib.mkEnableOption "the system auto-updates.";
|
||||||
|
}
|
6
option/Bluetooth.nix
Normal file
6
option/Bluetooth.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.bluetooth.enable = lib.mkEnableOption "the bluetooth support.";
|
||||||
|
}
|
6
option/Brightness.nix
Normal file
6
option/Brightness.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.brightness.enable = lib.mkEnableOption "the brightness control.";
|
||||||
|
}
|
6
option/DisplayManager.nix
Normal file
6
option/DisplayManager.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.dm.enable = lib.mkEnableOption "the display manager.";
|
||||||
|
}
|
6
option/Distrobox.nix
Normal file
6
option/Distrobox.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.distrobox.enable = lib.mkEnableOption "the distrobox.";
|
||||||
|
}
|
16
option/Docker.nix
Normal file
16
option/Docker.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.docker = {
|
||||||
|
enable = lib.mkEnableOption "the docker.";
|
||||||
|
rootless = lib.mkOption {
|
||||||
|
default = false;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
autostart = lib.mkOption {
|
||||||
|
default = false;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
10
option/Dpi.nix
Normal file
10
option/Dpi.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Screen density configuration.
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.dpi.aware = lib.mkOption {
|
||||||
|
default = false;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
}
|
12
option/Ftpd.nix
Normal file
12
option/Ftpd.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.ftpd = {
|
||||||
|
enable = lib.mkEnableOption "the FTP server";
|
||||||
|
storage = lib.mkOption {
|
||||||
|
default = null;
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
option/Gnome.nix
Normal file
6
option/Gnome.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.gnome.enable = lib.mkEnableOption "the Gnome DE.";
|
||||||
|
}
|
|
@ -1,10 +1,8 @@
|
||||||
|
# Hardware monitor configuration.
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
cfg = config.module.hwmon;
|
|
||||||
in {
|
|
||||||
options.module.hwmon = {
|
options.module.hwmon = {
|
||||||
path = lib.mkOption {
|
path = lib.mkOption {
|
||||||
default = "";
|
default = "";
|
9
option/IntelCpu.nix
Normal file
9
option/IntelCpu.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.intel.cpu = {
|
||||||
|
enable = lib.mkEnableOption "the support for Intel CPUs.";
|
||||||
|
powersave = lib.mkEnableOption "the Intel CPU powersave.";
|
||||||
|
};
|
||||||
|
}
|
20
option/Kernel.nix
Normal file
20
option/Kernel.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.kernel = {
|
||||||
|
enable = lib.mkEnableOption "the kernel tweaks.";
|
||||||
|
hardening = lib.mkOption {
|
||||||
|
default = false;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
hotspotTtlBypass = lib.mkOption {
|
||||||
|
default = false;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
latest = lib.mkOption {
|
||||||
|
default = false;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,10 +1,8 @@
|
||||||
|
# Keyboard configuration.
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
cfg = config.module.keyboard;
|
|
||||||
in {
|
|
||||||
options.module.keyboard = {
|
options.module.keyboard = {
|
||||||
layouts = lib.mkOption {
|
layouts = lib.mkOption {
|
||||||
default = "us,ru";
|
default = "us,ru";
|
6
option/Keyd.nix
Normal file
6
option/Keyd.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.keyd.enable = lib.mkEnableOption "the keyboard remaps.";
|
||||||
|
}
|
19
option/Ollama.nix
Normal file
19
option/Ollama.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.module.ollama;
|
||||||
|
in {
|
||||||
|
options.module.ollama = {
|
||||||
|
enable = lib.mkEnableOption "the local LLM server.";
|
||||||
|
models = lib.mkOption {
|
||||||
|
default = [ cfg.primaryModel ];
|
||||||
|
type = with lib.types; listOf str;
|
||||||
|
};
|
||||||
|
primaryModel = lib.mkOption {
|
||||||
|
default = "llama3.2";
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
14
option/Package.nix
Normal file
14
option/Package.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.package = {
|
||||||
|
common.enable = lib.mkEnableOption "Common Apps.";
|
||||||
|
core.enable = lib.mkEnableOption "Core apps.";
|
||||||
|
creative.enable = lib.mkEnableOption "Creative Apps.";
|
||||||
|
desktop.enable = lib.mkEnableOption "Desktop Apps.";
|
||||||
|
dev.enable = lib.mkEnableOption "Dev Apps.";
|
||||||
|
extra.enable = lib.mkEnableOption "Extra Apps.";
|
||||||
|
gaming.enable = lib.mkEnableOption "Gaming Apps.";
|
||||||
|
};
|
||||||
|
}
|
6
option/Podman.nix
Normal file
6
option/Podman.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.podman.enable = lib.mkEnableOption "the OCI Podman.";
|
||||||
|
}
|
6
option/Polkit.nix
Normal file
6
option/Polkit.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.polkit.enable = lib.mkEnableOption "the polkit.";
|
||||||
|
}
|
6
option/Portal.nix
Normal file
6
option/Portal.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.portal.enable = lib.mkEnableOption "the portals.";
|
||||||
|
}
|
24
option/PowerlimitThinkpad.nix
Normal file
24
option/PowerlimitThinkpad.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.powerlimit.thinkpad = {
|
||||||
|
enable = lib.mkEnableOption "the powerlimit service";
|
||||||
|
onMin = lib.mkOption {
|
||||||
|
default = 40;
|
||||||
|
type = lib.types.int;
|
||||||
|
};
|
||||||
|
onMax = lib.mkOption {
|
||||||
|
default = 80;
|
||||||
|
type = lib.types.int;
|
||||||
|
};
|
||||||
|
offMin = lib.mkOption {
|
||||||
|
default = 90;
|
||||||
|
type = lib.types.int;
|
||||||
|
};
|
||||||
|
offMax = lib.mkOption {
|
||||||
|
default = 95;
|
||||||
|
type = lib.types.int;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
22
option/Powersave.nix
Normal file
22
option/Powersave.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.powersave = {
|
||||||
|
enable = lib.mkEnableOption "the powersave";
|
||||||
|
cpu.boost = {
|
||||||
|
disableCmd = lib.mkOption {
|
||||||
|
default = null;
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
enableCmd = lib.mkOption {
|
||||||
|
default = null;
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
controlFile = lib.mkOption {
|
||||||
|
default = null;
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
option/Print.nix
Normal file
6
option/Print.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.print.enable = lib.mkEnableOption "the support for printers.";
|
||||||
|
}
|
6
option/Realtime.nix
Normal file
6
option/Realtime.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.realtime.enable = lib.mkEnableOption "the realtime access.";
|
||||||
|
}
|
9
option/RemoteBuild.nix
Normal file
9
option/RemoteBuild.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.builder = {
|
||||||
|
server.enable = lib.mkEnableOption "the builder server.";
|
||||||
|
client.enable = lib.mkEnableOption "the builder client.";
|
||||||
|
};
|
||||||
|
}
|
6
option/Sound.nix
Normal file
6
option/Sound.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.sound.enable = lib.mkEnableOption "the sound.";
|
||||||
|
}
|
117
option/Style.nix
Normal file
117
option/Style.nix
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
# Styling like colors, fonts, cursor etc.
|
||||||
|
{
|
||||||
|
__findFile,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.module.style;
|
||||||
|
stylix = config.lib.stylix or config.home-manager.config.lib.stylix;
|
||||||
|
|
||||||
|
mkTypeOption = default: type: lib.mkOption { inherit default type; };
|
||||||
|
mkFloatOption = default: mkTypeOption default lib.types.float;
|
||||||
|
mkIntOption = default: mkTypeOption default lib.types.int;
|
||||||
|
mkPkgOption = default: mkTypeOption default lib.types.package;
|
||||||
|
mkStrOption = default: mkTypeOption default lib.types.str;
|
||||||
|
in {
|
||||||
|
options.module.style = {
|
||||||
|
color = {
|
||||||
|
accent = mkStrOption stylix.colors.base0A;
|
||||||
|
heading = mkStrOption stylix.colors.base0D;
|
||||||
|
hl = mkStrOption stylix.colors.base03;
|
||||||
|
keyword = mkStrOption stylix.colors.base0E;
|
||||||
|
link = mkStrOption stylix.colors.base09;
|
||||||
|
misc = mkStrOption stylix.colors.base0F;
|
||||||
|
negative = mkStrOption stylix.colors.base08;
|
||||||
|
neutral = mkStrOption stylix.colors.base0C;
|
||||||
|
positive = mkStrOption stylix.colors.base0B;
|
||||||
|
selection = mkStrOption stylix.colors.base02;
|
||||||
|
bg = {
|
||||||
|
dark = mkStrOption stylix.colors.base00;
|
||||||
|
light = mkStrOption stylix.colors.base07;
|
||||||
|
regular = mkStrOption stylix.colors.base01;
|
||||||
|
};
|
||||||
|
fg = {
|
||||||
|
dark = mkStrOption stylix.colors.base04;
|
||||||
|
light = mkStrOption stylix.colors.base06;
|
||||||
|
regular = mkStrOption stylix.colors.base05;
|
||||||
|
};
|
||||||
|
|
||||||
|
accent-r = mkStrOption stylix.colors.base0A-rgb-r;
|
||||||
|
accent-g = mkStrOption stylix.colors.base0A-rgb-g;
|
||||||
|
accent-b = mkStrOption stylix.colors.base0A-rgb-b;
|
||||||
|
|
||||||
|
bg-r = mkStrOption stylix.colors.base00-rgb-r;
|
||||||
|
bg-g = mkStrOption stylix.colors.base00-rgb-g;
|
||||||
|
bg-b = mkStrOption stylix.colors.base00-rgb-b;
|
||||||
|
|
||||||
|
border = mkStrOption stylix.colors.base01;
|
||||||
|
border-r = mkStrOption stylix.colors.base01-rgb-r;
|
||||||
|
border-g = mkStrOption stylix.colors.base01-rgb-g;
|
||||||
|
border-b = mkStrOption stylix.colors.base01-rgb-b;
|
||||||
|
|
||||||
|
fg-r = mkStrOption stylix.colors.base06-rgb-r;
|
||||||
|
fg-g = mkStrOption stylix.colors.base06-rgb-g;
|
||||||
|
fg-b = mkStrOption stylix.colors.base06-rgb-b;
|
||||||
|
|
||||||
|
negative-r = mkStrOption stylix.colors.base08-rgb-r;
|
||||||
|
negative-g = mkStrOption stylix.colors.base08-rgb-g;
|
||||||
|
negative-b = mkStrOption stylix.colors.base08-rgb-b;
|
||||||
|
|
||||||
|
neutral-r = mkStrOption stylix.colors.base0C-rgb-r;
|
||||||
|
neutral-g = mkStrOption stylix.colors.base0C-rgb-g;
|
||||||
|
neutral-b = mkStrOption stylix.colors.base0C-rgb-b;
|
||||||
|
|
||||||
|
positive-r = mkStrOption stylix.colors.base0B-rgb-r;
|
||||||
|
positive-g = mkStrOption stylix.colors.base0B-rgb-g;
|
||||||
|
positive-b = mkStrOption stylix.colors.base0B-rgb-b;
|
||||||
|
|
||||||
|
transparent = mkStrOption "ffffff00";
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
name = mkStrOption "phinger-cursors-light";
|
||||||
|
package = mkPkgOption pkgs.phinger-cursors;
|
||||||
|
size = mkIntOption 24;
|
||||||
|
};
|
||||||
|
|
||||||
|
font = {
|
||||||
|
emoji = {
|
||||||
|
name = mkStrOption "Noto Color Emoji";
|
||||||
|
package = mkPkgOption pkgs.noto-fonts-emoji;
|
||||||
|
};
|
||||||
|
monospace = {
|
||||||
|
name = mkStrOption "Terminess Nerd Font Mono";
|
||||||
|
package = mkPkgOption (pkgs.nerdfonts.override { fonts = [ "Terminus" ]; });
|
||||||
|
};
|
||||||
|
sansSerif = {
|
||||||
|
name = mkStrOption "SF Pro Display";
|
||||||
|
package = mkPkgOption (pkgs.callPackage <package/applefont> { });
|
||||||
|
};
|
||||||
|
serif = {
|
||||||
|
name = mkStrOption "SF Pro Display";
|
||||||
|
package = mkPkgOption (pkgs.callPackage <package/applefont> { });
|
||||||
|
};
|
||||||
|
size = {
|
||||||
|
application = mkIntOption 12;
|
||||||
|
desktop = mkIntOption 14;
|
||||||
|
popup = mkIntOption 12;
|
||||||
|
terminal = mkIntOption 14;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
opacity = {
|
||||||
|
application = mkFloatOption 0.85;
|
||||||
|
desktop = mkFloatOption 0.85;
|
||||||
|
hex = mkStrOption "D9";
|
||||||
|
popup = mkFloatOption 0.85;
|
||||||
|
terminal = mkFloatOption 0.85;
|
||||||
|
};
|
||||||
|
|
||||||
|
window = {
|
||||||
|
border = mkIntOption 4;
|
||||||
|
gap = mkIntOption 8;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
12
option/Sway.nix
Normal file
12
option/Sway.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.sway = {
|
||||||
|
enable = lib.mkEnableOption "the Sway WM.";
|
||||||
|
extraConfig = lib.mkOption {
|
||||||
|
default = "";
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
6
option/Tablet.nix
Normal file
6
option/Tablet.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.tablet.enable = lib.mkEnableOption "the support for tables.";
|
||||||
|
}
|
6
option/VirtManager.nix
Normal file
6
option/VirtManager.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.virtmanager.enable = lib.mkEnableOption "the VM support.";
|
||||||
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
|
# Download the wallpaper here.
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
6
option/Waybar.nix
Normal file
6
option/Waybar.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.waybar.enable = lib.mkEnableOption "the Waybar.";
|
||||||
|
}
|
6
option/Wayland.nix
Normal file
6
option/Wayland.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
options.module.wayland.enable = lib.mkEnableOption "the wayland.";
|
||||||
|
}
|
Loading…
Reference in a new issue