diff --git a/flake.nix b/flake.nix index 20c4698..15bcbf3 100644 --- a/flake.nix +++ b/flake.nix @@ -6,7 +6,7 @@ # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/10/17 18:15:24 by tomoron #+# #+# # -# Updated: 2025/09/05 18:37:36 by tomoron ### ########.fr # +# Updated: 2025/09/06 00:58:57 by tomoron ### ########.fr # # # # **************************************************************************** # @@ -16,10 +16,12 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; catppuccin.url = "github:catppuccin/nix"; + sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -44,7 +46,7 @@ osConfig = {flakeName, extraModules ? []}: nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; flakeName = flakeName; }; modules = nixpkgs.lib.concatLists [ - [./osConfigs/global.nix ./osConfigs/hosts/${flakeName}.nix catppuccin.nixosModules.catppuccin] + [./osConfigs/os.nix ./osConfigs/hosts/${flakeName}.nix catppuccin.nixosModules.catppuccin] extraModules ]; }; @@ -65,7 +67,8 @@ in { - nixosConfigurations = { server = osConfig {flakeName = "server";}; + nixosConfigurations = { + server = osConfig {flakeName = "server";}; vbox = osConfig {flakeName = "vbox";}; laptop = osConfig {flakeName = "laptop"; extraModules = [ nixos-hardware.nixosModules.asus-zephyrus-ga401 ];}; desktop = osConfig {flakeName = "desktop";}; @@ -76,7 +79,6 @@ modules = [ (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix") ./osConfigs/hosts/iso.nix - inputs.home-manager.nixosModules.default ]; }; }; @@ -89,5 +91,6 @@ desktop = homeConfig { flakeName = "desktop"; }; server = homeConfig { flakeName = "server"; }; }; + }; } diff --git a/homeConfigs/modules/vim.nix b/homeConfigs/modules/vim.nix index 7256d7b..af40dc6 100644 --- a/homeConfigs/modules/vim.nix +++ b/homeConfigs/modules/vim.nix @@ -28,7 +28,6 @@ autocmd BufWinLeave *.* mkview autocmd BufWinEnter *.* silent! loadview set tabstop=4 - set shiftwidth=4 set scrolloff=10 set preserveindent map :bnext diff --git a/osConfigs/global/boot.nix b/osConfigs/global/boot.nix new file mode 100644 index 0000000..73798cf --- /dev/null +++ b/osConfigs/global/boot.nix @@ -0,0 +1,29 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# boot.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/05 23:37:58 by tomoron #+# #+# # +# Updated: 2025/09/06 00:56:38 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +{lib, pkgs, ... } : + +{ + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; + + boot.loader = { + systemd-boot.enable = true; + systemd-boot.memtest86.enable = true; + efi.canTouchEfiVariables = true; + timeout = 1; + }; + + services.journald.extraConfig = '' + SystemMaxUse=100M + SystemMaxFileSize=50M + ''; +} diff --git a/osConfigs/global/nix.nix b/osConfigs/global/nix.nix new file mode 100644 index 0000000..e15d002 --- /dev/null +++ b/osConfigs/global/nix.nix @@ -0,0 +1,18 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# nix.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/05 23:42:17 by tomoron #+# #+# # +# Updated: 2025/09/05 23:42:20 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +{ ... }: + +{ + nix.settings.experimental-features = ["nix-command" "flakes"]; + nixpkgs.config.allowUnfree = true; +} diff --git a/osConfigs/global.nix b/osConfigs/global/other.nix similarity index 50% rename from osConfigs/global.nix rename to osConfigs/global/other.nix index bbe4e9e..f8c6e76 100644 --- a/osConfigs/global.nix +++ b/osConfigs/global/other.nix @@ -1,74 +1,35 @@ # **************************************************************************** # # # # ::: :::::::: # -# global.nix :+: :+: :+: # +# other.nix :+: :+: :+: # # +:+ +:+ +:+ # # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2025/02/09 01:43:46 by tomoron #+# #+# # -# Updated: 2025/09/02 17:30:10 by tomoron ### ########.fr # +# Updated: 2025/09/06 00:51:46 by tomoron ### ########.fr # # # # **************************************************************************** # -{ lib, pkgs, flakeName, ... }: +{ lib, ... }: { - imports = lib.concatLists [[ - ./hardware-configuration.nix - ./packages.nix - ] - (lib.fileset.toList ./modules) - ]; - - nix.settings.experimental-features = ["nix-command" "flakes"]; - nixpkgs.config.allowUnfree = true; - - boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; - - boot.loader = { - systemd-boot.enable = true; - systemd-boot.memtest86.enable = true; - efi.canTouchEfiVariables = true; - timeout = 1; - }; - + networking.hostName = lib.mkDefault "unnamed-nixos"; networking.networkmanager.enable = lib.mkDefault true; + programs.fuse.enable = true; + time.timeZone = "Europe/Paris"; services.xserver.enable = lib.mkDefault true; services.xserver.displayManager.startx.enable = true; + programs.hyprland.enable = lib.mkDefault true; + services.pipewire = { enable = true; pulse.enable = true; }; - users.users.tom = { - isNormalUser = true; - extraGroups = [ - "wheel" # can sudo - "docker" # can use docker - "libvirtd" # can use libvirtd - "dialout" # can use serial devices - "wireshark" # can use wireshask - ]; - initialPassword = "password"; - }; - - virtualisation.docker.enable = true; - virtualisation.docker.enableOnBoot = lib.mkDefault false; - - programs.hyprland.enable = lib.mkDefault true; - - system.stateVersion = "24.05"; - environment.etc.nixosFlakeName.text = "${flakeName}"; - - services.journald.extraConfig = '' - SystemMaxUse=100M - SystemMaxFileSize=50M - ''; - hardware.logitech.wireless.enable = true; hardware.logitech.wireless.enableGraphical = true; } diff --git a/osConfigs/global/packages.nix b/osConfigs/global/packages.nix new file mode 100644 index 0000000..e0d24fb --- /dev/null +++ b/osConfigs/global/packages.nix @@ -0,0 +1,25 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# packages.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/06 00:57:21 by tomoron #+# #+# # +# Updated: 2025/09/06 00:57:26 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + home-manager + vim + pciutils + usbutils + ntfs3g + cryptsetup + acpi + ]; +} diff --git a/osConfigs/global/user.nix b/osConfigs/global/user.nix new file mode 100644 index 0000000..0221599 --- /dev/null +++ b/osConfigs/global/user.nix @@ -0,0 +1,28 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# user.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/05 23:42:18 by tomoron #+# #+# # +# Updated: 2025/09/06 00:57:32 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +{ ... }: + +{ + users.users.tom = { + isNormalUser = true; + extraGroups = [ + "wheel" # can sudo + "docker" # can use docker + "libvirtd" # can use libvirtd + "dialout" # can use serial devices + "wireshark" # can use wireshask + ]; + + initialPassword = "password"; + }; +} diff --git a/osConfigs/hosts/desktop.nix b/osConfigs/hosts/desktop.nix index dbe79a1..fd10166 100644 --- a/osConfigs/hosts/desktop.nix +++ b/osConfigs/hosts/desktop.nix @@ -1,11 +1,22 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# desktop.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/06 00:57:04 by tomoron #+# #+# # +# Updated: 2025/09/06 00:57:05 by tomoron ### ########.fr # +# # +# **************************************************************************** # + { config, lib, inputs, pkgs, ... }: { boot.kernelParams = [ "nvidia-drm-modset=1" ]; environment.systemPackages = with pkgs; [ - cudatoolkit - lm_sensors + lm_sensors # can be user (and global) ]; networking.hostName = "nixos-fixe"; @@ -16,14 +27,14 @@ mods.displayManager.enable = true; hardware.nvidia = { - package = config.boot.kernelPackages.nvidiaPackages.beta; - open = true; + package = config.boot.kernelPackages.nvidiaPackages.beta; + open = true; - prime.nvidiaBusId = "PCI:1:0:0"; - prime.intelBusId = "PCI:0:2:0"; - prime.sync.enable = true; + prime.nvidiaBusId = "PCI:1:0:0"; + prime.intelBusId = "PCI:0:2:0"; + prime.sync.enable = true; - modesetting.enable = true; + modesetting.enable = true; }; services.openssh.enable = true; diff --git a/osConfigs/hosts/iso.nix b/osConfigs/hosts/iso.nix index 98a7b8c..f6fd741 100644 --- a/osConfigs/hosts/iso.nix +++ b/osConfigs/hosts/iso.nix @@ -1,8 +1,20 @@ -{lib, inputs, pkgs, ... }: +# **************************************************************************** # +# # +# ::: :::::::: # +# iso.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/06 00:57:02 by tomoron #+# #+# # +# Updated: 2025/09/06 00:57:03 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +{lib, ... }: { imports = [ - ../packages.nix + ../global/packages.nix ]; users.users.tom = { @@ -13,13 +25,4 @@ services.getty.autologinUser = lib.mkForce "tom"; services.getty.helpLine = lib.mkForce ""; -# programs.hyprland.enable = true; - -# home-manager.extraSpecialArgs = { inherit inputs; inherit pkgs; isOs = true;}; -# home-manager.users.tom = { -# imports = [ -# ../../homeConfigs/home.nix -# ../../homeConfigs/hosts/iso.nix -# ]; -# }; } diff --git a/osConfigs/hosts/laptop.nix b/osConfigs/hosts/laptop.nix index 1ae9ec2..f7af43b 100644 --- a/osConfigs/hosts/laptop.nix +++ b/osConfigs/hosts/laptop.nix @@ -1,3 +1,15 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# laptop.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/06 00:56:57 by tomoron #+# #+# # +# Updated: 2025/09/06 01:11:42 by tomoron ### ########.fr # +# # +# **************************************************************************** # + { config, pkgs, ... }: { @@ -5,26 +17,25 @@ services.udev.packages = [ pkgs.yubikey-personalization ]; boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ]; boot.initrd.luks.devices.cryptroot = { - device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f"; - allowDiscards = true; - #set up initial : https://wiki.nixos.org/wiki/Yubikey_based_Full_Disk_Encryption_(FDE)_on_NixOS - yubikey = { - twoFactor = false; - keyLength = 64; - saltLength = 32; - storage = { - device = "/dev/disk/by-uuid/BA5C-F216"; - path = "/default"; - }; - }; + device = "/dev/disk/by-uuid/a4593b01-069d-4a5d-a550-74a762b89b3f"; + allowDiscards = true; + #set up initial : https://wiki.nixos.org/wiki/Yubikey_based_Full_Disk_Encryption_(FDE)_on_NixOS + yubikey = { + twoFactor = false; + keyLength = 64; + saltLength = 32; + storage = { + device = "/dev/disk/by-uuid/BA5C-F216"; + path = "/default"; + }; + }; }; - programs.fuse.enable = true; - - boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; + boot.blacklistedKernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" ]; #speeds up startup mods.displayManager.enable = true; - mods.virtualManager.enable = false; + mods.virtualHost.enable = false; + mods.yubikey.pam.enable = true; networking.firewall.enable = false; networking.hostName = "patate-douce"; @@ -33,61 +44,46 @@ specialisation.vfio_ready.configuration = { boot.kernel.sysctl."vm.nr_hugepages" = 5120; - boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ]; - boot.kernelModules = [ "kvmfr" ]; - boot.extraModprobeConfig = '' - options kvmfr static_size_mb=128 - blacklist xpad - ''; - virtualisation.libvirtd.qemu.verbatimConfig = '' - cgroup_device_acl = [ - "/dev/kvmfr0", "/dev/null", "/dev/full", "/dev/zero", - "/dev/random", "/dev/urandom", - "/dev/ptmx", "/dev/kvm", - "/dev/rtc","/dev/hpet", - "/dev/input/by-id/[some_mouse_device]-event-mouse", - "/dev/input/by-id/[some_keyboard_device]-event-kbd" - ] - ''; - services.udev.extraRules = '' - SUBSYSTEM=="kvmfr", OWNER="tom", GROUP="kvm", MODE="0660" - ''; - environment.systemPackages = with pkgs; [ looking-glass-client ]; + boot.extraModulePackages = with config.boot.kernelPackages; [ kvmfr ]; + boot.kernelModules = [ "kvmfr" ]; + boot.extraModprobeConfig = '' + options kvmfr static_size_mb=128 + blacklist xpad + ''; + virtualisation.libvirtd.qemu.verbatimConfig = '' + cgroup_device_acl = [ + "/dev/kvmfr0", "/dev/null", "/dev/full", "/dev/zero", + "/dev/random", "/dev/urandom", + "/dev/ptmx", "/dev/kvm", + "/dev/rtc","/dev/hpet", + "/dev/input/by-id/[some_mouse_device]-event-mouse", + "/dev/input/by-id/[some_keyboard_device]-event-kbd" + ] + ''; + services.udev.extraRules = '' + SUBSYSTEM=="kvmfr", OWNER="tom", GROUP="kvm", MODE="0660" + ''; + environment.systemPackages = with pkgs; [ looking-glass-client ]; }; - programs.virt-manager.enable = true; - virtualisation.libvirtd.enable = true; - virtualisation.libvirtd.qemu.runAsRoot = true; - virtualisation.libvirtd.qemu.vhostUserPackages = [ pkgs.virtiofsd ]; - networking.dhcpcd.enable = false; systemd.network.enable = true; networking.useNetworkd = true; - environment.systemPackages = with pkgs; [ - acpi - tlp - fprintd - ]; - - hardware.nvidia.prime.offload = { - enable = true; - enableOffloadCmd = true; - }; - - services.libinput.enable = true; - services.libinput.touchpad.clickMethod = "clickfinger"; - services.libinput.touchpad.tapping = false; - hardware.bluetooth.enable = true; - #power management - powerManagement.enable = true; - powerManagement.cpuFreqGovernor = "powersave"; + environment.systemPackages = with pkgs; [ + acpi # can be user (global) + ]; + + + mods.touchpad.enable = true; + + mods.powerSave.enable = true; services.asusd = { enable = true; - enableUserService = true; + enableUserService = true; }; services.supergfxd.enable = true; @@ -101,21 +97,21 @@ hotplug_type = "None"; }; - services.upower.enable = true; - programs.wireshark.enable = true; programs.wireshark.usbmon.enable = true; - programs.alvr.enable = true; - programs.alvr.openFirewall = true; - - services.usbmuxd.enable = true; + mods.docker.enable = true; + mods.gayming.enable = true; + mods.nvidia.enable = true; + mods.nvidia.prime = true; + +# services.usbmuxd.enable = true; #hangs when shutting down # boot.plymouth = { # enable = true; -# theme = "ycontre-glow"; -# themePackages = [ -# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux -# ]; +# theme = "ycontre-glow"; +# themePackages = [ +# inputs.plymouth-theme-ycontre-glow.defaultPackage.x86_64-linux +# ]; # }; } diff --git a/osConfigs/hosts/server.nix b/osConfigs/hosts/server.nix index 32187b8..97b5092 100644 --- a/osConfigs/hosts/server.nix +++ b/osConfigs/hosts/server.nix @@ -1,99 +1,75 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# server.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/06 00:57:09 by tomoron #+# #+# # +# Updated: 2025/09/06 01:26:26 by tomoron ### ########.fr # +# # +# **************************************************************************** # -{ config, lib, inputs, pkgs, ... }: +{ config, pkgs, ... }: -{ - imports = [ - ../modules/game.nix - ../modules/vboxHost.nix - ../modules/nvidia.nix +let + ports = [ + 22 #git ssh + 80 443 #http server + 5000 #frigate + 8083 137 138 139 445 548 3702 5357 #prob some samba shit + 24454 #minecraft voice chat + 25565 # minecraft server ]; + portRanges = [ + {from = 47950; to = 49000;} #moonlight (wolf) + ]; +in +{ boot.kernelPackages = pkgs.linuxPackages; - boot.extraModulePackages = [ config.boot.kernelPackages.gasket ]; + boot.extraModulePackages = [ + config.boot.kernelPackages.gasket #driver for google coral edge tpu + ]; - networking.hostName = "server"; services.openssh.enable = true; services.openssh.settings.PasswordAuthentication = false; services.openssh.ports = [ 1880 ]; - services.xserver.videoDrivers = [ "nvidia" ]; - boot.extraModprobeConfig = '' options amdgpu virtual_display=1 - ''; - - environment.systemPackages = with pkgs; [ - zfs - nvidia-docker - libnvidia-container - screen - ]; - + ''; #create dummy display to be able to start x11 boot.supportedFilesystems = [ "zfs" ]; -# services.cron.enable = false; -# services.cron.systemCronJobs = [ -# # m h dom m dow -# # https://crontab.guru <3 -# ]; - - networking.firewall.allowedTCPPorts = [ - 22 #git ssh - 80 443 #http server - 5000 #frigate - 8083 137 138 139 445 548 3702 5357 #prob some samba shit - 24454 #minecraft voice chat - 25565 # minecraft server - ]; - networking.firewall.allowedUDPPorts = [ - 22 #git ssh - 80 443 #http server - 5000 #frigate - 8083 137 138 139 445 548 3702 5357 #prob some samba shit - 24454 #minecraft voice chat - 25565 # minecraft server - ]; - - networking.firewall.allowedUDPPortRanges = [ - {from = 47950; to = 49000;} - ]; - networking.firewall.allowedTCPPortRanges = [ - {from = 47950; to = 49000;} + environment.systemPackages = with pkgs; [ + zfs + screen #can be user (and global) ]; networking = { + hostName = "server"; + interfaces.eth0.ipv4.addresses = [ { address = "192.168.1.24"; - prefixLength = 24; - } ]; - defaultGateway.address = "192.168.1.254"; - defaultGateway.interface = "eth0"; - nameservers = ["8.8.8.8" "8.8.4.4" "1.1.1.1"]; - hostId = "68290da7"; - }; - virtualisation.docker = { - liveRestore = false; - enableOnBoot = true; -# daemon.settings = { -# runtimes.nvidia.path = "${pkgs.nvidia-docker}/bin/nvidia-container-runtime"; -# exec-opts = ["native.cgroupdriver=cgroupfs"]; -# }; + prefixLength = 24; + } + ]; + defaultGateway.address = "192.168.1.254"; + defaultGateway.interface = "eth0"; + nameservers = ["8.8.8.8" "8.8.4.4" "1.1.1.1"]; + hostId = "68290da7"; + firewall.allowedTCPPorts = ports; + firewall.allowedUDPPorts = ports; + firewall.allowedUDPPortRanges = portRanges; + firewall.allowedTCPPortRanges = portRanges; }; services.fail2ban.enable = true; - services.fail2ban.bantime = "2h"; + services.fail2ban.bantime = "5h"; - hardware.nvidia-container-toolkit.enable = true; - - hardware.nvidia = { - package = config.boot.kernelPackages.nvidiaPackages.beta; - open = true; - -# prime.nvidiaBusId = "PCI:1:0:0"; -# prime.amdgpuBusId = "PCI:13:0:0"; -# prime.sync.enable = true; - -# modesetting.enable = true; + mods.docker = { + enable = true; + boot = true; }; } diff --git a/osConfigs/hosts/vbox.nix b/osConfigs/hosts/vbox.nix index c5f7e65..af5b6ad 100644 --- a/osConfigs/hosts/vbox.nix +++ b/osConfigs/hosts/vbox.nix @@ -1,9 +1,18 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# vbox.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/06 00:56:42 by tomoron #+# #+# # +# Updated: 2025/09/06 00:56:52 by tomoron ### ########.fr # +# # +# **************************************************************************** # + { ... }: { virtualisation.virtualbox.guest.enable = true; - mods.nvidia-graphics.enable = false; - mods.virtualManager.enable = false; - mods.gayming.enable = false; } diff --git a/osConfigs/modules/displayManager.nix b/osConfigs/modules/displayManager.nix index aa78d14..73c3f4d 100644 --- a/osConfigs/modules/displayManager.nix +++ b/osConfigs/modules/displayManager.nix @@ -1,24 +1,36 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# displayManager.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# 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; + }; }; } diff --git a/osConfigs/modules/docker.nix b/osConfigs/modules/docker.nix new file mode 100644 index 0000000..0d43783 --- /dev/null +++ b/osConfigs/modules/docker.nix @@ -0,0 +1,36 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# docker.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# 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; + }; + }; +} diff --git a/osConfigs/modules/game.nix b/osConfigs/modules/game.nix index 8caf089..aa3f0aa 100644 --- a/osConfigs/modules/game.nix +++ b/osConfigs/modules/game.nix @@ -1,10 +1,22 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# game.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# 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 { diff --git a/osConfigs/modules/nvidia.nix b/osConfigs/modules/nvidia.nix index 5e9dd1c..e5af4dc 100644 --- a/osConfigs/modules/nvidia.nix +++ b/osConfigs/modules/nvidia.nix @@ -1,19 +1,65 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# nvidia.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# 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"]; }; diff --git a/osConfigs/modules/powerSave.nix b/osConfigs/modules/powerSave.nix new file mode 100644 index 0000000..7a4bef1 --- /dev/null +++ b/osConfigs/modules/powerSave.nix @@ -0,0 +1,31 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# powerSave.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# 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; + }; +} diff --git a/osConfigs/modules/touchpad.nix b/osConfigs/modules/touchpad.nix new file mode 100644 index 0000000..b259905 --- /dev/null +++ b/osConfigs/modules/touchpad.nix @@ -0,0 +1,29 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# touchpad.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# 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; + }; +} diff --git a/osConfigs/modules/vboxHost.nix b/osConfigs/modules/vboxHost.nix deleted file mode 100644 index ef6ce7f..0000000 --- a/osConfigs/modules/vboxHost.nix +++ /dev/null @@ -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 ]; - }; -} diff --git a/osConfigs/modules/virtualHost.nix b/osConfigs/modules/virtualHost.nix new file mode 100644 index 0000000..71d2361 --- /dev/null +++ b/osConfigs/modules/virtualHost.nix @@ -0,0 +1,31 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# virtualHost.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# 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 ]; + }; +} diff --git a/osConfigs/modules/yubikey.nix b/osConfigs/modules/yubikey.nix index d454a62..24c0e80 100644 --- a/osConfigs/modules/yubikey.nix +++ b/osConfigs/modules/yubikey.nix @@ -1,20 +1,32 @@ -{ config, lib, inputs, pkgs, ... }: +# **************************************************************************** # +# # +# ::: :::::::: # +# yubikey.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# 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 + ]; }; } diff --git a/osConfigs/os.nix b/osConfigs/os.nix new file mode 100644 index 0000000..da3bba1 --- /dev/null +++ b/osConfigs/os.nix @@ -0,0 +1,24 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# os.nix :+: :+: :+: # +# +:+ +:+ +:+ # +# By: tomoron +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2025/09/06 00:56:36 by tomoron #+# #+# # +# Updated: 2025/09/06 00:56:37 by tomoron ### ########.fr # +# # +# **************************************************************************** # + +{ lib, flakeName, ... }: + +{ + imports = lib.concatLists [ + [ ./hardware-configuration.nix ] + (lib.fileset.toList ./global) + (lib.fileset.toList ./modules) + ]; + + system.stateVersion = "25.05"; + environment.etc.nixosFlakeName.text = "${flakeName}"; +} diff --git a/osConfigs/packages.nix b/osConfigs/packages.nix deleted file mode 100644 index 17ca8fb..0000000 --- a/osConfigs/packages.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, ... }: - -{ - environment.systemPackages = with pkgs; [ - home-manager - vim - pciutils - usbutils - ntfs3g - cryptsetup - acpi - yubico-pam - ]; -}