flake experiments, add steamdeck hosts file
Some checks are pending
Flake.lock / build (push) Waiting to run

This commit is contained in:
Mohamed Chrayed 2024-08-16 22:25:25 +02:00
parent 8d4a7bd815
commit 6075aec39a
2 changed files with 67 additions and 64 deletions

View File

@ -1,6 +1,6 @@
{ {
description = "Moe.OS"; description = "Moe.OS";
# Define Inputs
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs.url = "nixpkgs/nixos-unstable";
home-manager = { home-manager = {
@ -14,21 +14,13 @@
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
}; };
# Define Outputs, import Modules
outputs = outputs = { nixpkgs, home-manager, jovian, plasma-manager, ... }:
{
nixpkgs,
home-manager,
jovian,
plasma-manager,
...
}:
let let
# Define system globally since I have no aarch devices
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
lib = nixpkgs.lib; lib = nixpkgs.lib;
# NixOS Modules for all hosts
systemModules = [ systemModules = [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
./modules/system/apps-shell ./modules/system/apps-shell
@ -43,31 +35,22 @@
./modules/system/upgrades ./modules/system/upgrades
./modules/system/users ./modules/system/users
]; ];
# Home Manager Modules for all hosts
userModules = [ userModules = [
./modules/user/git ./modules/user/git
./modules/user/homeversion ./modules/user/homeversion
]; ];
in in {
{
nixosConfigurations = { nixosConfigurations = {
# Workstation config workstation = let
# user and hostName variable inside hostConfig so we can call it in other modules
workstation =
let
user = "mo"; user = "mo";
hostName = "workstation"; hostName = "workstation";
in in
lib.nixosSystem { lib.nixosSystem {
specialArgs = {
inherit systemModules;
inherit userModules;
inherit system; inherit system;
inherit user; specialArgs = {
inherit hostName; inherit systemModules userModules user hostName;
}; };
system = system;
# Device specific NixOS Modules
modules = systemModules ++ [ modules = systemModules ++ [
jovian.nixosModules.jovian jovian.nixosModules.jovian
./hosts/${hostName} ./hosts/${hostName}
@ -80,33 +63,23 @@
./modules/system/plasma ./modules/system/plasma
./modules/system/steam ./modules/system/steam
{ {
# Device specific Home Manager Modules
home-manager.users.${user}.imports = userModules ++ [ home-manager.users.${user}.imports = userModules ++ [
./modules/user/plasma ./modules/user/plasma
]; ];
# Issue with Plasma Manager, has to be imported in a special way
home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ]; home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ];
} }
]; ];
}; };
};
# Steamdeck config steamdeck = let
# user and hostName variable inside hostConfig so we can call it in other modules
steamdeck =
let
user = "deck"; user = "deck";
hostName = "steamdeck"; hostName = "steamdeck";
in in
lib.nixosSystem { lib.nixosSystem {
specialArgs = {
inherit systemModules;
inherit userModules;
inherit system; inherit system;
inherit user; specialArgs = {
inherit hostName; inherit systemModules userModules user hostName;
}; };
system = system;
# Device specific NixOS Modules
modules = systemModules ++ [ modules = systemModules ++ [
jovian.nixosModules.jovian jovian.nixosModules.jovian
./hosts/${hostName} ./hosts/${hostName}
@ -118,14 +91,20 @@
./modules/system/plasma ./modules/system/plasma
./modules/system/steam ./modules/system/steam
{ {
# Device specific Home Manager Modules
home-manager.users.${user}.imports = userModules ++ [ home-manager.users.${user}.imports = userModules ++ [
./modules/user/plasma ./modules/user/plasma
]; ];
# Issue with Plasma Manager, has to be imported in a special way
home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ]; home-manager.sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ];
} }
] ++ lib.optional (!lib.hasAttr "system.build.isoImage" pkgs.nixos) [
{
# Define ISO only if it hasn't been defined yet
system.build.isoImage = pkgs.nixos.install {
modules = [ ./hosts/${hostName} ];
};
}
]; ];
}; };
}; };
};
} }

View File

@ -0,0 +1,24 @@
{ ... }:
{
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-partlabel/root";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-partlabel/EFI";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ {
device = "/var/lib/swapfile";
size = 16*1024;
}];
}