refactor os configurations
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m10s
All checks were successful
Build iso when a new version is pushed / test (push) Successful in 2m10s
This commit is contained in:
@ -1,24 +1,36 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# displayManager.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:47:16 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 00:56:38 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{config, lib, ... }:
|
||||
|
||||
{
|
||||
options.mods.displayManager.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable the display manager";
|
||||
description = "enable the ly display manager";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.displayManager.enable {
|
||||
services.displayManager.enable = true;
|
||||
services.displayManager.ly.enable = true;
|
||||
services.displayManager.ly.settings =
|
||||
{
|
||||
animation = "doom";
|
||||
min_refresh_delta = 50;
|
||||
bigclock = "en";
|
||||
sleep_cmd = "systemctl sleep";
|
||||
asterisk = "A";
|
||||
auth_fails= 3;
|
||||
};
|
||||
services.displayManager.enable = true;
|
||||
services.displayManager.ly.enable = true;
|
||||
services.displayManager.ly.settings =
|
||||
{
|
||||
animation = "doom";
|
||||
min_refresh_delta = 50;
|
||||
bigclock = "en";
|
||||
sleep_cmd = "systemctl sleep";
|
||||
asterisk = "A";
|
||||
auth_fails= 3;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
36
osConfigs/modules/docker.nix
Normal file
36
osConfigs/modules/docker.nix
Normal file
@ -0,0 +1,36 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# docker.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:10:58 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 01:06:23 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.mods.docker = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable docker";
|
||||
};
|
||||
boot = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "start docker with the system (if false, trigered by docker.socket)";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.docker.enable {
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
liveRestore = false;
|
||||
enableOnBoot = config.mods.docker.boot;
|
||||
};
|
||||
};
|
||||
}
|
@ -1,10 +1,22 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# game.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:47:09 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/05 23:54:57 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{config, lib, ... }:
|
||||
|
||||
{
|
||||
options.mods.gayming.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "enable games on the host";
|
||||
default = false;
|
||||
description = "enable steam and other";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.gayming.enable {
|
||||
|
@ -1,19 +1,65 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# nvidia.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 01:12:34 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ config, lib, inputs, pkgs, ... }:
|
||||
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.mods.nvidia-graphics.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "enable my nvidia graphics settings";
|
||||
options.mods.nvidia = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable nvidia drivers";
|
||||
};
|
||||
beta = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "use beta version of the drivers";
|
||||
};
|
||||
open = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "use beta version of the drivers";
|
||||
};
|
||||
containerToolkit = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable the nvidia container toolkit (gpu in docker)";
|
||||
};
|
||||
prime = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable nvidia prime offload (saves battery)";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.nvidia-graphics.enable {
|
||||
config = lib.mkIf config.mods.nvidia.enable {
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
package = lib.mkIf config.mods.nvidia.beta config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
open = config.mods.nvidia.open;
|
||||
|
||||
prime.offload = lib.mkIf config.mods.nvidia.prime {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
};
|
||||
|
||||
hardware.nvidia-container-toolkit.enable = config.mods.nvidia.containerToolkit;
|
||||
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
};
|
||||
|
||||
|
31
osConfigs/modules/powerSave.nix
Normal file
31
osConfigs/modules/powerSave.nix
Normal file
@ -0,0 +1,31 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# powerSave.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:45:04 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 01:02:29 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.mods.powerSave = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable services and settings to save power";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.powerSave.enable {
|
||||
services.tlp.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.cpuFreqGovernor = "powersave";
|
||||
services.upower.enable = true;
|
||||
mods.nvidia.prime = true;
|
||||
};
|
||||
}
|
29
osConfigs/modules/touchpad.nix
Normal file
29
osConfigs/modules/touchpad.nix
Normal file
@ -0,0 +1,29 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# touchpad.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/06 00:39:41 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 01:02:41 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.mods.touchpad = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable touchpad support";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.touchpad.enable {
|
||||
services.libinput.enable = true;
|
||||
services.libinput.touchpad.clickMethod = "clickfinger";
|
||||
services.libinput.touchpad.tapping = false;
|
||||
};
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{ config, lib, inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.mods.virtualManager.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "enable virtual manager as host";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.virtualManager.enable {
|
||||
programs.virt-manager.enable = true;
|
||||
virtualisation.libvirtd.enable = true;
|
||||
virtualisation.libvirtd.qemu.runAsRoot = true;
|
||||
virtualisation.libvirtd.qemu.vhostUserPackages = [ pkgs.virtiofsd ];
|
||||
virtualisation.spiceUSBRedirection.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [ spice-gtk ];
|
||||
};
|
||||
}
|
31
osConfigs/modules/virtualHost.nix
Normal file
31
osConfigs/modules/virtualHost.nix
Normal file
@ -0,0 +1,31 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# virtualHost.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:47:19 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 01:03:07 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.mods.virtualHost.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "enable virtual manager as host";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.virtualHost.enable {
|
||||
programs.virt-manager.enable = true;
|
||||
virtualisation.libvirtd.enable = true;
|
||||
virtualisation.libvirtd.qemu.runAsRoot = true;
|
||||
virtualisation.libvirtd.qemu.vhostUserPackages = [ pkgs.virtiofsd ];
|
||||
virtualisation.spiceUSBRedirection.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [ spice-gtk ];
|
||||
};
|
||||
}
|
@ -1,20 +1,32 @@
|
||||
{ config, lib, inputs, pkgs, ... }:
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# yubikey.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/09/05 23:47:20 by tomoron #+# #+# #
|
||||
# Updated: 2025/09/06 01:03:54 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.mods.yubikey = {
|
||||
options.mods.yubikey.pam = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "enable yubikey";
|
||||
};
|
||||
default = false;
|
||||
description = "enable yubikey pam module\nuse `ykpamcfg` to configure";
|
||||
};
|
||||
|
||||
id = lib.mkOption {
|
||||
type = lib.str;
|
||||
description = "yubikey id";
|
||||
};
|
||||
id = lib.mkOption {
|
||||
type = lib.str;
|
||||
description = "id of the yubikey written under connector";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.yubikey.enable {
|
||||
config = lib.mkIf config.mods.yubikey.pam.enable {
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
@ -22,8 +34,12 @@
|
||||
|
||||
security.pam.yubico = {
|
||||
enable = true;
|
||||
id = config.mods.yubikey.id;
|
||||
id = config.mods.yubikey.pam.id;
|
||||
mode = "challenge-response";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
yubico-pam
|
||||
];
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user