made some progress
This commit is contained in:
parent
c8f6c4d818
commit
21f6f37911
35 changed files with 1176 additions and 44 deletions
95
flake.lock
generated
95
flake.lock
generated
|
@ -191,6 +191,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_4": {
|
"flake-compat_4": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650374568,
|
||||||
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
|
@ -262,6 +278,25 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils-plus": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715533576,
|
||||||
|
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
|
@ -316,6 +351,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_5": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694529238,
|
||||||
|
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flux": {
|
"flux": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
@ -871,6 +924,7 @@
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"nvf": "nvf",
|
"nvf": "nvf",
|
||||||
"plasma-manager": "plasma-manager",
|
"plasma-manager": "plasma-manager",
|
||||||
|
"snowfall-lib": "snowfall-lib",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
|
@ -893,6 +947,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"snowfall-lib": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_4",
|
||||||
|
"flake-utils-plus": "flake-utils-plus",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736130495,
|
||||||
|
"narHash": "sha256-4i9nAJEZFv7vZMmrE0YG55I3Ggrtfo5/T07JEpEZ/RM=",
|
||||||
|
"owner": "snowfallorg",
|
||||||
|
"repo": "lib",
|
||||||
|
"rev": "02d941739f98a09e81f3d2d9b3ab08918958beac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "snowfallorg",
|
||||||
|
"repo": "lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_7"
|
||||||
|
@ -918,14 +994,14 @@
|
||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-compat": "flake-compat_4",
|
"flake-compat": "flake-compat_5",
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"nixpkgs": "nixpkgs_8",
|
"nixpkgs": "nixpkgs_8",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems_6",
|
"systems": "systems_7",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
|
@ -1036,6 +1112,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tinted-foot": {
|
"tinted-foot": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
59
flake.nix
59
flake.nix
|
@ -58,48 +58,23 @@
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
namespace = "sneeuwvlok";
|
channels-config = {
|
||||||
|
allowUnfree = true;
|
||||||
meta = {
|
|
||||||
name = "sneeuwvlok";
|
|
||||||
title = "Sneeuwvlok";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
snowfall = {
|
||||||
|
namespace = "sneeuwvlok";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
name = "sneeuwvlok";
|
||||||
|
title = "Sneeuwvlok";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
overlays = with inputs; [
|
||||||
|
fenix.overlays.default
|
||||||
|
nix-minecraft.overlay
|
||||||
|
flux.overlays.default
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# outputs = inputs @ { self, nixpkgs, nix-minecraft, flux, ... }:
|
|
||||||
# let
|
|
||||||
# inherit (lib.my) readNixosModules mapHosts;
|
|
||||||
|
|
||||||
# system = "x86_64-linux";
|
|
||||||
|
|
||||||
# mkPkgs = pkgs: extraOverlays:
|
|
||||||
# import pkgs {
|
|
||||||
# inherit system;
|
|
||||||
# config.allowUnfree = true;
|
|
||||||
# overlays = extraOverlays ++ (lib.attrValues self.overlays);
|
|
||||||
# };
|
|
||||||
# pkgs = mkPkgs nixpkgs [self.overlays.default nix-minecraft.overlay flux.overlays.default];
|
|
||||||
|
|
||||||
# lib = nixpkgs.lib.extend (final: prev: {
|
|
||||||
# my = import ./lib {
|
|
||||||
# inherit pkgs inputs;
|
|
||||||
|
|
||||||
# lib = final;
|
|
||||||
# };
|
|
||||||
# });
|
|
||||||
# in
|
|
||||||
# {
|
|
||||||
# lib = lib.my;
|
|
||||||
|
|
||||||
# overlays = {
|
|
||||||
# default = final: prev: {
|
|
||||||
# my = self.packages.${system};
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
# packages."${system}" = lib.my.mapModules ./packages (p: pkgs.callPackage p { inherit inputs; });
|
|
||||||
|
|
||||||
# nixosModules = readNixosModules ./modules import;
|
|
||||||
# nixosConfigurations = mapHosts ./hosts {};
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
|
|
6
homes/user-configurations/chris.nix
Normal file
6
homes/user-configurations/chris.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
userName = "Chris Kruining";
|
||||||
|
userEmail = "chris@kruining.eu";
|
||||||
|
};
|
||||||
|
}
|
11
homes/x86_64-linux/chris@manwe/default.nix
Normal file
11
homes/x86_64-linux/chris@manwe/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
sneeuwvlok = {
|
||||||
|
series = {
|
||||||
|
media.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
73
modules/home/desktop/plasma/default.nix
Normal file
73
modules/home/desktop/plasma/default.nix
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{ config, lib, namespace, osConfig ? {}, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.desktop.plasma;
|
||||||
|
osCfg = osConfig.${namespace}.desktop.plasma or { enable = false; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.desktop.plasma = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf osCfg.enable {
|
||||||
|
programs.plasma = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
immutableByDefault = true;
|
||||||
|
windows.allowWindowsToRememberPositions = true;
|
||||||
|
|
||||||
|
session = {
|
||||||
|
general.askForConfirmationOnLogout = false;
|
||||||
|
sessionRestore.restoreOpenApplicationsOnLogin = "onLastLogout";
|
||||||
|
};
|
||||||
|
|
||||||
|
workspace = {
|
||||||
|
clickItemTo = "select";
|
||||||
|
colorScheme = "EverforestDark";
|
||||||
|
wallpaper = config.stylix.image;
|
||||||
|
};
|
||||||
|
|
||||||
|
spectacle.shortcuts = {
|
||||||
|
captureRectangularRegion = "Meta+Shift+S";
|
||||||
|
};
|
||||||
|
|
||||||
|
kscreenlocker = {
|
||||||
|
autoLock = false;
|
||||||
|
lockOnResume = false;
|
||||||
|
lockOnStartup = false;
|
||||||
|
|
||||||
|
appearance = {
|
||||||
|
alwaysShowClock = true;
|
||||||
|
showMediaControls = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
configFile = {
|
||||||
|
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
|
||||||
|
|
||||||
|
kdeglobals = {
|
||||||
|
General = {
|
||||||
|
# enable font antialiasing
|
||||||
|
XftAntialias = true;
|
||||||
|
XftHintStyle = "hintslight";
|
||||||
|
XftSubPixel = "rgb";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
kwalletrc = {
|
||||||
|
Wallet.Enabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
plasmarc = {
|
||||||
|
General = {
|
||||||
|
RaiseMaximumVolume = true;
|
||||||
|
VolumeStep = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
kcminputrc = {
|
||||||
|
Keyboard.NumLock.value = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
122
modules/home/desktop/plasma/panels.nix
Normal file
122
modules/home/desktop/plasma/panels.nix
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
{ config, lib, namespace, osConfig ? {}, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.desktop.plasma;
|
||||||
|
osCfg = osConfig.${namespace}.desktop.plasma or { enable = false; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.desktop.plasma = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf osCfg.enable {
|
||||||
|
programs.plasma.panels = [
|
||||||
|
{
|
||||||
|
location = "bottom";
|
||||||
|
floating = true;
|
||||||
|
lengthMode = "fill";
|
||||||
|
height = 42;
|
||||||
|
hiding = "none";
|
||||||
|
screen = "all";
|
||||||
|
widgets = [
|
||||||
|
{
|
||||||
|
panelSpacer = {
|
||||||
|
expanding = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
kickoff = {
|
||||||
|
applicationsDisplayMode = "list";
|
||||||
|
compactDisplayStyle = false;
|
||||||
|
favoritesDisplayMode = "grid";
|
||||||
|
sortAlphabetically = true;
|
||||||
|
showButtonsFor = {
|
||||||
|
custom = [
|
||||||
|
"shutdown"
|
||||||
|
"reboot"
|
||||||
|
"logout"
|
||||||
|
"lock-screen"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
showActionButtonCaptions = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
iconTasks = {
|
||||||
|
appearance = {
|
||||||
|
fill = false;
|
||||||
|
highlightWindows = true;
|
||||||
|
iconSpacing = "medium";
|
||||||
|
indicateAudioStreams = true;
|
||||||
|
rows = {
|
||||||
|
multirowView = "never";
|
||||||
|
maximum = null;
|
||||||
|
};
|
||||||
|
showTooltips = true;
|
||||||
|
};
|
||||||
|
behavior = {
|
||||||
|
grouping = {
|
||||||
|
clickAction = "showPresentWindowsEffect";
|
||||||
|
method = "byProgramName";
|
||||||
|
};
|
||||||
|
minimizeActiveTaskOnClick = true;
|
||||||
|
newTasksAppearOn = "right";
|
||||||
|
showTasks = {
|
||||||
|
onlyInCurrentActivity = true;
|
||||||
|
onlyInCurrentDesktop = true;
|
||||||
|
onlyMinimized = false;
|
||||||
|
onlyInCurrentScreen = false;
|
||||||
|
};
|
||||||
|
sortingMethod = "manually";
|
||||||
|
unhideOnAttentionNeeded = true;
|
||||||
|
wheel = {
|
||||||
|
ignoreMinimizedTasks = true;
|
||||||
|
switchBetweenTasks = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
launchers = [
|
||||||
|
"preferred://filemanager"
|
||||||
|
"preferred://browser"
|
||||||
|
"preferred://terminalemulator"
|
||||||
|
"preferred://email"
|
||||||
|
"applications:vesktop.desktop"
|
||||||
|
"applications:steam.desktop"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
panelSpacer = {
|
||||||
|
expanding = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
systemTray = {
|
||||||
|
icons = {
|
||||||
|
scaleToFit = true;
|
||||||
|
spacing = "small";
|
||||||
|
};
|
||||||
|
items = {
|
||||||
|
hidden = [
|
||||||
|
"org.kde.plasma.brightness"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
pin = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
digitalClock = {
|
||||||
|
date = {
|
||||||
|
enable = true;
|
||||||
|
format = "shortDate";
|
||||||
|
position = "belowTime";
|
||||||
|
};
|
||||||
|
time = {
|
||||||
|
format = "24h";
|
||||||
|
showSeconds = "onlyInTooltip";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
50
modules/home/desktop/plasma/power.nix
Normal file
50
modules/home/desktop/plasma/power.nix
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
{ config, lib, namespace, osConfig ? {}, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.${namespace}.desktop.plasma;
|
||||||
|
osCfg = osConfig.${namespace}.desktop.plasma or { enable = false; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.desktop.plasma = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf osCfg.enable {
|
||||||
|
programs.plasma.powerdevil = {
|
||||||
|
AC = {
|
||||||
|
powerButtonAction = "shutDown";
|
||||||
|
whenLaptopLidClosed = "doNothing";
|
||||||
|
|
||||||
|
autoSuspend.action = "nothing";
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
|
turnOffDisplay = {
|
||||||
|
idleTimeout = "never";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
battery = {
|
||||||
|
powerButtonAction = "shutDown";
|
||||||
|
whenLaptopLidClosed = "doNothing";
|
||||||
|
|
||||||
|
autoSuspend.action = "nothing";
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
|
turnOffDisplay = {
|
||||||
|
idleTimeout = "never";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lowBattery = {
|
||||||
|
powerButtonAction = "shutDown";
|
||||||
|
whenLaptopLidClosed = "doNothing";
|
||||||
|
|
||||||
|
autoSuspend.action = "nothing";
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
|
turnOffDisplay = {
|
||||||
|
idleTimeout = "never";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
81
modules/nixos/boot/default.nix
Normal file
81
modules/nixos/boot/default.nix
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
{ lib, namespace, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkMerge mkDefault mkEnableOption;
|
||||||
|
inherit (lib.types) enum;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.boot;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.${namespace}.boot = {
|
||||||
|
type = mkOption {
|
||||||
|
type = enum [ "bios" "uefi" ];
|
||||||
|
default = "uefi";
|
||||||
|
};
|
||||||
|
|
||||||
|
quiet = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
animated = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkMerge [
|
||||||
|
({
|
||||||
|
boot.loader.grub.enable = mkDefault true;
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.type == "bios" {
|
||||||
|
boot.loader.grub.efiSupport = false;
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.type == "uefi" {
|
||||||
|
boot.loader = {
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
grub = {
|
||||||
|
efiSupport = true;
|
||||||
|
efiInstallAsRemovable = mkDefault false;
|
||||||
|
device = "nodev"; # INFO: https://discourse.nixos.org/t/question-about-grub-and-nodev
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.quiet {
|
||||||
|
boot = {
|
||||||
|
consoleLogLevel = 0;
|
||||||
|
|
||||||
|
initrd = {
|
||||||
|
systemd.enable = true;
|
||||||
|
verbose = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
kernelParams = [
|
||||||
|
"quiet"
|
||||||
|
"loglevel=3"
|
||||||
|
"systemd.show_status=auto"
|
||||||
|
"udev.log_level=3"
|
||||||
|
"rd.udev.log_level=3"
|
||||||
|
"vt.global_cursor_default=0"
|
||||||
|
];
|
||||||
|
|
||||||
|
loader.timeout = mkDefault 0;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.animated {
|
||||||
|
boot.plymouth = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
theme = mkDefault "pixels";
|
||||||
|
themePackages = with pkgs; [
|
||||||
|
(adi1090x-plymouth-themes.override {
|
||||||
|
selected_themes = [ "pixels" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
42
modules/nixos/default.nix
Normal file
42
modules/nixos/default.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkOption mkMerge attrNames filterAttrs;
|
||||||
|
inherit (lib.types) nullOr enum;
|
||||||
|
|
||||||
|
cfg = config.${namespace};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace} = {
|
||||||
|
preset = mkOption {
|
||||||
|
type = nullOr enum [ "server" "desktop" ];
|
||||||
|
default = null;
|
||||||
|
example = "desktop";
|
||||||
|
description = "Which defaults profile to start with";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkMerge [
|
||||||
|
(mkIf cfg.preset == "desktop" {
|
||||||
|
"${namespace}" = mkDefault {
|
||||||
|
hardware.has = {
|
||||||
|
audio = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
quiet = true;
|
||||||
|
animated = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
desktop.use = "kde";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf cfg.preset == "desktop" {
|
||||||
|
"${namespace}" = mkDefault {
|
||||||
|
services = {
|
||||||
|
ssh.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
37
modules/nixos/desktop/default.nix
Normal file
37
modules/nixos/desktop/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ lib, config, namespace, ... }:let
|
||||||
|
inherit (lib) mkOption mkMerge attrNames filterAttrs;
|
||||||
|
inherit (lib.types) nullOr enum bool;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.desktop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.desktop = {
|
||||||
|
use = mkOption {
|
||||||
|
type = nullOr enum (attrNames (filterAttrs (n: type == "directory") (readDir ./.)));
|
||||||
|
default = null;
|
||||||
|
example = "plasma";
|
||||||
|
description = "Which desktop to enable";
|
||||||
|
};
|
||||||
|
|
||||||
|
autoLogin = mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "Enable plasma's auto login feature.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkMerge [
|
||||||
|
(mkIf cfg.desktop != null {
|
||||||
|
"${namespace}".desktop.${cfg.use}.enable = true;
|
||||||
|
|
||||||
|
services.displayManager = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
autoLogin = mkIf cfg.autoLogin {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
27
modules/nixos/desktop/gamescope/default.nix
Normal file
27
modules/nixos/desktop/gamescope/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ lib, config, namespace, inputs, ... }:let
|
||||||
|
inherit (lib) mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.desktop.gamescope;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ inputs.jovian.nixosModules.default ];
|
||||||
|
|
||||||
|
options.${namespace}.desktop.gamescope = {
|
||||||
|
enable = mkEnableOption "Enable Steamdeck ui";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
"${namespace}".desktop.kde.enable = true;
|
||||||
|
|
||||||
|
jovian = {
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
user = "chris";
|
||||||
|
updater.splash = "steamos";
|
||||||
|
desktopSession = "plasma";
|
||||||
|
};
|
||||||
|
steamos.useSteamOSConfig = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
14
modules/nixos/desktop/gnome/default.nix
Normal file
14
modules/nixos/desktop/gnome/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{ lib, config, namespace, ... }:let
|
||||||
|
inherit (lib) mkEnableOption mkOption;
|
||||||
|
inherit (lib.types) bool;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.desktop.gnome;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.desktop.gnome = {
|
||||||
|
enable = mkEnableOption "Enable Gnome";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
};
|
||||||
|
}
|
30
modules/nixos/desktop/plasma/default.nix
Normal file
30
modules/nixos/desktop/plasma/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ lib, config, namespace, ... }:let
|
||||||
|
inherit (lib) mkEnableOption mkOption;
|
||||||
|
inherit (lib.types) bool;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.desktop.plasma;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.desktop.plasma = {
|
||||||
|
enable = mkEnableOption "Enable KDE Plasma";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.plasma6.excludePackages = with pkgs.kdePackages; [ konsole kate ghostwriter oxygen ];
|
||||||
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
xserver.enable = false;
|
||||||
|
|
||||||
|
desktopManager.plasma6.enable = true;
|
||||||
|
|
||||||
|
displayManager = {
|
||||||
|
defaultSession = "plasma";
|
||||||
|
sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
30
modules/nixos/hardware/audio/default.nix
Normal file
30
modules/nixos/hardware/audio/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ pkgs, lib, namespace, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.hardware.has.audio;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.${namespace}.hardware.has.audio = mkEnableOption "Enable bluetooth";
|
||||||
|
|
||||||
|
config = mkIf cfg {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
sof-firmware
|
||||||
|
];
|
||||||
|
|
||||||
|
# https://wiki.nixos.org/wiki/PipeWire
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
services.pulseaudio.enable = false;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
|
||||||
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
25
modules/nixos/hardware/bluetooth/default.nix
Normal file
25
modules/nixos/hardware/bluetooth/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{ lib, namespace, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.hardware.has.bluetooth;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.${namespace}.hardware.has.bluetooth = mkEnableOption "Enable bluetooth";
|
||||||
|
|
||||||
|
config = mkIf cfg {
|
||||||
|
hardware.bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.pipewire.wireplumber.extraConfig.bluetoothEnhancements = {
|
||||||
|
"monitor.bluez.properties" = {
|
||||||
|
"bluez5.enable-sbc-xq" = true;
|
||||||
|
"bluez5.enable-msbc" = true;
|
||||||
|
"bluez5.enable-hw-volume" = true;
|
||||||
|
"bluez5.roles" = [ "hsp_hs" "hsp_ag" "hfp_hf" "hfp_ag" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
29
modules/nixos/hardware/gpu/amd.nix
Normal file
29
modules/nixos/hardware/gpu/amd.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ pkgs, lib, namespace, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.hardware.has.gpu.amd;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.${namespace}.hardware.has.gpu.amd = mkEnableOption "Enable AMD gpu configuration";
|
||||||
|
|
||||||
|
config = mkIf cfg {
|
||||||
|
services.xserver.videoDrivers = [ "amd" ];
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
amdgpu = {
|
||||||
|
amdvlk = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
initrd.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
31
modules/nixos/hardware/gpu/nvidia.nix
Normal file
31
modules/nixos/hardware/gpu/nvidia.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{ pkgs, lib, namespace, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.hardware.has.gpu.nvidia;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.${namespace}.hardware.has.gpu.nvidia = mkEnableOption "Enable NVidia gpu configuration";
|
||||||
|
|
||||||
|
config = mkIf cfg {
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
open = false;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
powerManagement = {
|
||||||
|
enable = true;
|
||||||
|
finegrained = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
42
modules/nixos/nix/default.nix
Normal file
42
modules/nixos/nix/default.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{ pkgs, lib, namespace, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.nix;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.${namespace}.nix = {
|
||||||
|
enable = mkEnableOption "Enable nix command";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.git.enable = true;
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
package = pkgs.nixVersions.latest;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
allowed-users = [ "@wheel" ];
|
||||||
|
trusted-users = [ "@wheel" ];
|
||||||
|
|
||||||
|
auto-optimise-store = true;
|
||||||
|
connect-timeout = 5;
|
||||||
|
http-connections = 50;
|
||||||
|
log-lines = 50; # more log lines in case of error
|
||||||
|
min-free = 1 * (1024 * 1024 * 1024); # GiB # start garbage collector
|
||||||
|
max-free = 50 * (1024 * 1024 * 1024); # GiB # until
|
||||||
|
warn-dirty = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "monthly";
|
||||||
|
options = "--delete-older-than 45d";
|
||||||
|
};
|
||||||
|
|
||||||
|
# disable nix-channel, we use flakes instead.
|
||||||
|
channel.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
153
modules/nixos/services/media/default.nix
Normal file
153
modules/nixos/services/media/default.nix
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
{ lib, namespace, config, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.services.media;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config.${namespace}.services.media = {
|
||||||
|
enable = mkEnableOption "Enable media services";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
#=========================================================================
|
||||||
|
# Dependencies
|
||||||
|
#=========================================================================
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
podman-tui
|
||||||
|
jellyfin
|
||||||
|
jellyfin-web
|
||||||
|
jellyfin-ffmpeg
|
||||||
|
jellyseerr
|
||||||
|
mediainfo
|
||||||
|
id3v2
|
||||||
|
yt-dlp
|
||||||
|
];
|
||||||
|
|
||||||
|
# need to permit these outdated packages until servarr finally upgrades at some point...
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"dotnet-sdk-6.0.428"
|
||||||
|
"aspnetcore-runtime-6.0.36"
|
||||||
|
];
|
||||||
|
|
||||||
|
#=========================================================================
|
||||||
|
# Prepare system
|
||||||
|
#=========================================================================
|
||||||
|
users = {
|
||||||
|
users.${user} = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = group;
|
||||||
|
};
|
||||||
|
groups.${group} = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${directory}/series' 0700 ${user} ${group} - -"
|
||||||
|
"d '${directory}/movies' 0700 ${user} ${group} - -"
|
||||||
|
"d '${directory}/music' 0700 ${user} ${group} - -"
|
||||||
|
"d '${directory}/qbittorrent' 0700 ${user} ${group} - -"
|
||||||
|
"d '${directory}/sabnzbd' 0700 ${user} ${group} - -"
|
||||||
|
"d '${directory}/reiverr/config' 0700 ${user} ${group} - -"
|
||||||
|
"d '${directory}/downloads/incomplete' 0700 ${user} ${group} - -"
|
||||||
|
"d '${directory}/downloads/done' 0700 ${user} ${group} - -"
|
||||||
|
];
|
||||||
|
|
||||||
|
#=========================================================================
|
||||||
|
# Services
|
||||||
|
#=========================================================================
|
||||||
|
services = let
|
||||||
|
serviceConf = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
user = user;
|
||||||
|
group = group;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
jellyfin = serviceConf;
|
||||||
|
radarr = serviceConf;
|
||||||
|
sonarr = serviceConf;
|
||||||
|
bazarr = serviceConf;
|
||||||
|
lidarr = serviceConf;
|
||||||
|
|
||||||
|
lanraragi = {
|
||||||
|
enable = true;
|
||||||
|
port = 6969;
|
||||||
|
};
|
||||||
|
|
||||||
|
jellyseerr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
prowlarr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
qbittorrent = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
dataDir = "${directory}/qbittorrent";
|
||||||
|
port = 5000;
|
||||||
|
|
||||||
|
user = user;
|
||||||
|
group = group;
|
||||||
|
};
|
||||||
|
|
||||||
|
sabnzbd = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
configFile = "${directory}/sabnzbd/config.ini";
|
||||||
|
|
||||||
|
user = user;
|
||||||
|
group = group;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.jellyfin.serviceConfig.killSignal = lib.mkForce "SIGKILL";
|
||||||
|
|
||||||
|
modules.virtualisation.podman.enable = true;
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
oci-containers = {
|
||||||
|
backend = "podman";
|
||||||
|
|
||||||
|
containers = {
|
||||||
|
flaresolverr = {
|
||||||
|
image = "flaresolverr/flaresolverr";
|
||||||
|
autoStart = true;
|
||||||
|
ports = [ "127.0.0.1:8191:8191" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
reiverr = {
|
||||||
|
image = "ghcr.io/aleksilassila/reiverr:v2.2.0";
|
||||||
|
autoStart = true;
|
||||||
|
ports = [ "127.0.0.1:9494:9494" ];
|
||||||
|
volumes = [ "${directory}/reiverr/config:/config" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#=========================================================================
|
||||||
|
# Hosting
|
||||||
|
#=========================================================================
|
||||||
|
services = {
|
||||||
|
caddy = {
|
||||||
|
enable = true;
|
||||||
|
virtualHosts = {
|
||||||
|
"media.kruining.eu".extraConfig = ''
|
||||||
|
import auth
|
||||||
|
|
||||||
|
reverse_proxy http://127.0.0.1:9494
|
||||||
|
'';
|
||||||
|
"jellyfin.kruining.eu".extraConfig = ''
|
||||||
|
reverse_proxy http://127.0.0.1:8096
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 443 6969 ];
|
||||||
|
};
|
||||||
|
}
|
20
systems/x86_64-linux/manwe/default.nix
Normal file
20
systems/x86_64-linux/manwe/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ ... }:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./disks.nix
|
||||||
|
./hardware.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
sneeuwvlok = {
|
||||||
|
preset = "desktop";
|
||||||
|
|
||||||
|
hardware.has = {
|
||||||
|
gpu.amd = true;
|
||||||
|
bluetooth = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
}
|
42
systems/x86_64-linux/manwe/disks.nix
Normal file
42
systems/x86_64-linux/manwe/disks.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.modules) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# TODO :: Implement disko at some point
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/0ddf001a-5679-482e-b254-04a1b9094794"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.supportedFilesystems = [ "nfs" ];
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = { device = "/dev/disk/by-uuid/8c4eaf57-fdb2-4c4c-bcc0-74e85a1c7985";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/C842-316A";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/home/chris/games" = {
|
||||||
|
device = "/dev/disk/by-label/games";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO :: Reformat the disk to ext4
|
||||||
|
"/home/chris/data" = {
|
||||||
|
device = "/dev/disk/by-label/Data";
|
||||||
|
fsType = "ntfs-3g";
|
||||||
|
options = [ "rw" "uid=chris" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/home/chris/media" = {
|
||||||
|
device = "ulmo:/";
|
||||||
|
fsType = "nfs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
systems/x86_64-linux/manwe/hardware.nix
Normal file
18
systems/x86_64-linux/manwe/hardware.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, system, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.modules) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
initrd.kernelModules = [ ];
|
||||||
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
kernelParams = [];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = mkDefault system;
|
||||||
|
hardware.cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
17
systems/x86_64-linux/orome/default.nix
Normal file
17
systems/x86_64-linux/orome/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ ... }:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./disks.nix
|
||||||
|
./hardware.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
sneeuwvlok = {
|
||||||
|
preset = "desktop";
|
||||||
|
|
||||||
|
bluetooth.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
}
|
23
systems/x86_64-linux/orome/disks.nix
Normal file
23
systems/x86_64-linux/orome/disks.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.modules) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# TODO :: Implement disko at some point
|
||||||
|
|
||||||
|
swapDevices = [];
|
||||||
|
|
||||||
|
boot.supportedFilesystems = [ "nfs" ];
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = { device = "/dev/disk/by-uuid/e60745c9-b3ea-4aeb-9c5c-b67ef1730826";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/42B3-C767";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
systems/x86_64-linux/orome/hardware.nix
Normal file
18
systems/x86_64-linux/orome/hardware.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, system, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.modules) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||||
|
initrd.kernelModules = [ ];
|
||||||
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
kernelParams = [];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = mkDefault system;
|
||||||
|
hardware.cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
16
systems/x86_64-linux/tulkas/default.nix
Normal file
16
systems/x86_64-linux/tulkas/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ ... }:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./disks.nix
|
||||||
|
./hardware.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
sneeuwvlok = {
|
||||||
|
preset = "desktop";
|
||||||
|
desktop.use = "gamescope";
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
}
|
23
systems/x86_64-linux/tulkas/disks.nix
Normal file
23
systems/x86_64-linux/tulkas/disks.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.modules) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# TODO :: Implement disko at some point
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/beddca5c-1ecc-4a46-9fc5-fd918eed8f2a"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/aa438c4c-d193-436b-91ca-c386c0688265";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/89B8-0702";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
systems/x86_64-linux/tulkas/hardware.nix
Normal file
18
systems/x86_64-linux/tulkas/hardware.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, system, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.modules) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||||
|
initrd.kernelModules = [ ];
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
kernelParams = [];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = mkDefault system;
|
||||||
|
hardware.cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
19
systems/x86_64-linux/ulmo/default.nix
Normal file
19
systems/x86_64-linux/ulmo/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ ... }:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./disks.nix
|
||||||
|
./hardware.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
sneeuwvlok = {
|
||||||
|
preset = "server";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
media.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
}
|
31
systems/x86_64-linux/ulmo/disks.nix
Normal file
31
systems/x86_64-linux/ulmo/disks.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.modules) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# TODO :: Implement disko at some point
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/0ddf001a-5679-482e-b254-04a1b9094794"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.supportedFilesystems = [ "nfs" ];
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/dd518f17-61c9-4831-b1bd-e1cc2af292aa";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/0A56-EBFE";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/var/media" = {
|
||||||
|
device = "/dev/disk/by-label/data";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
systems/x86_64-linux/ulmo/hardware.nix
Normal file
18
systems/x86_64-linux/ulmo/hardware.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, system, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib.modules) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
|
initrd.kernelModules = [ ];
|
||||||
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
kernelParams = [];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = mkDefault system;
|
||||||
|
hardware.cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue