plasma
This commit is contained in:
@@ -51,7 +51,6 @@ in
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/etc".neededForBoot = true;
|
||||
"/media/sdcard" = {
|
||||
device = "/dev/mmcblk0p1";
|
||||
fsType = "bcachefs";
|
||||
|
||||
@@ -31,7 +31,10 @@
|
||||
|
||||
bootloader.lanzaboote.enable = true;
|
||||
|
||||
desktop.gnome.enable = true;
|
||||
desktop.gnome = {
|
||||
enable = true;
|
||||
vscodium.enable = true;
|
||||
};
|
||||
|
||||
gaming.enable = true;
|
||||
|
||||
@@ -44,6 +47,7 @@
|
||||
amd = {
|
||||
enable = true;
|
||||
lact.enable = true;
|
||||
coolercontrol.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -61,17 +65,13 @@
|
||||
|
||||
network = {
|
||||
hostName = "allyx";
|
||||
iwd.enable = true;
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
nebula = {
|
||||
enable = true;
|
||||
port = 4242;
|
||||
lighthouses = [ "10.1.1.1" ];
|
||||
staticHostMap = {
|
||||
"10.1.1.1" = [ "mjallen.dev:4242" ];
|
||||
};
|
||||
secretsPrefix = "allyx/nebula";
|
||||
secretsFile = lib.snowfall.fs.get-file "secrets/allyx-secrets.yaml";
|
||||
hostSecretName = "allyx";
|
||||
@@ -79,14 +79,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
programs.coolercontrol.enable = true;
|
||||
|
||||
environment.variables = {
|
||||
GDK_SCALE = "1";
|
||||
EDITOR = "${lib.getExe' pkgs.vscodium "codium"} --wait";
|
||||
VISUAL = "${lib.getExe' pkgs.vscodium "codium"} --wait";
|
||||
};
|
||||
|
||||
services = {
|
||||
handheld-daemon = {
|
||||
enable = true;
|
||||
@@ -132,10 +124,9 @@
|
||||
};
|
||||
systemd = {
|
||||
services = {
|
||||
systemd-networkd-wait-online.enable = lib.mkForce false;
|
||||
power-profiles-daemon.enable = lib.mkForce false;
|
||||
inputplumber.enable = lib.mkForce false;
|
||||
};
|
||||
};
|
||||
networking.networkmanager.wifi.backend = "iwd";
|
||||
|
||||
}
|
||||
|
||||
@@ -37,9 +37,9 @@ in
|
||||
# # Desktop # #
|
||||
# ###################################################
|
||||
|
||||
# COSMIC is enabled for occasional local display access.
|
||||
# Plasma is enabled for occasional local display access.
|
||||
# headless.enable only disables watchdog/emergency mode, not the display server.
|
||||
desktop.cosmic = enabled;
|
||||
desktop.plasma = enabled;
|
||||
|
||||
# ###################################################
|
||||
# # Development # #
|
||||
@@ -285,7 +285,6 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
"/etc".neededForBoot = true;
|
||||
};
|
||||
|
||||
# Ensure Samba share root directories are owned by nix-apps:jallen-nas
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
{
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# # An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
# pkgs,
|
||||
# # You also have access to your flake's inputs.
|
||||
# inputs,
|
||||
|
||||
@@ -40,7 +40,10 @@
|
||||
enable = false;
|
||||
wallpaperSource = "bing";
|
||||
};
|
||||
gnome.enable = true;
|
||||
gnome = {
|
||||
enable = true;
|
||||
vscodium.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
gaming.enable = true;
|
||||
@@ -54,6 +57,7 @@
|
||||
amd = {
|
||||
enable = true;
|
||||
lact.enable = true;
|
||||
coolercontrol.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -71,16 +75,13 @@
|
||||
|
||||
network = {
|
||||
hostName = "matt-nixos";
|
||||
iwd.enable = true;
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
nebula = {
|
||||
enable = true;
|
||||
port = 4242;
|
||||
lighthouses = [ "10.1.1.1" ];
|
||||
staticHostMap = {
|
||||
"10.1.1.1" = [ "mjallen.dev:4242" ];
|
||||
};
|
||||
secretsPrefix = "matt-nixos/nebula";
|
||||
secretsFile = lib.snowfall.fs.get-file "secrets/desktop-secrets.yaml";
|
||||
hostSecretName = "matt-nixos";
|
||||
@@ -88,17 +89,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
programs.coolercontrol.enable = true;
|
||||
systemd.services.systemd-networkd-wait-online.enable = lib.mkForce false;
|
||||
|
||||
environment.variables = {
|
||||
GDK_SCALE = "1";
|
||||
EDITOR = "${lib.getExe' pkgs.vscodium "codium"} --wait";
|
||||
VISUAL = "${lib.getExe' pkgs.vscodium "codium"} --wait";
|
||||
};
|
||||
|
||||
networking.networkmanager.wifi.backend = "iwd";
|
||||
|
||||
# security.wrappers.librepods = {
|
||||
# source = "${pkgs.${namespace}.librepods}/bin/librepods";
|
||||
# owner = "matt";
|
||||
@@ -113,15 +103,13 @@
|
||||
# kernelPackages = lib.mkOverride 90 pkgs.${namespace}.linuxPackages_cachyos-rc-lto-znver4;
|
||||
# };
|
||||
#};
|
||||
"cosmic" = {
|
||||
"plasma" = {
|
||||
configuration = {
|
||||
${namespace} = {
|
||||
sops.enable = true;
|
||||
desktop = {
|
||||
cosmic.enable = lib.mkForce true;
|
||||
hyprland = {
|
||||
enable = lib.mkForce false;
|
||||
};
|
||||
plasma.enable = lib.mkForce true;
|
||||
hyprland.enable = lib.mkForce false;
|
||||
gnome.enable = lib.mkForce false;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -24,7 +24,6 @@ in
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/etc".neededForBoot = true;
|
||||
"/media/matt/data" = {
|
||||
device = "/dev/disk/by-uuid/f851d21e-27b3-4353-aa19-590d244db6e5";
|
||||
fsType = "bcachefs";
|
||||
|
||||
4
systems/x86_64-linux/nuc-nixos/boot.nix
Normal file
4
systems/x86_64-linux/nuc-nixos/boot.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4;
|
||||
}
|
||||
181
systems/x86_64-linux/nuc-nixos/dashboard.nix
Normal file
181
systems/x86_64-linux/nuc-nixos/dashboard.nix
Normal file
@@ -0,0 +1,181 @@
|
||||
# Home Assistant dashboard definitions for nuc-nixos.
|
||||
# Imported by default.nix and passed into the home-assistant module's
|
||||
# `dashboards` option.
|
||||
{ namespace, ... }:
|
||||
{
|
||||
${namespace}.services.home-assistant.dashboards = [
|
||||
{
|
||||
title = "Pets & Air Quality";
|
||||
path = "pets-air";
|
||||
icon = "mdi:paw";
|
||||
cards = [
|
||||
{
|
||||
type = "markdown";
|
||||
title = "🐾 Pets";
|
||||
content = "## Pet Management";
|
||||
}
|
||||
{
|
||||
type = "horizontal-stack";
|
||||
cards = [
|
||||
{
|
||||
type = "entity";
|
||||
entity = "select.joey_smart_feeder_manual_feed_quantity";
|
||||
name = "Joey Feed";
|
||||
}
|
||||
{
|
||||
type = "entity";
|
||||
entity = "select.luci_smart_feeder_manual_feed_quantity";
|
||||
name = "Luci Feed";
|
||||
}
|
||||
{
|
||||
type = "entity";
|
||||
entity = "text.joey_smart_feeder_text_on_display";
|
||||
name = "Joey Display";
|
||||
}
|
||||
{
|
||||
type = "entity";
|
||||
entity = "text.luci_smart_feeder_text_on_display";
|
||||
name = "Luci Display";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "entities";
|
||||
title = "🐱 Litter Robot";
|
||||
show_header_toggle = false;
|
||||
entities = [
|
||||
"vacuum.litter_robot_4_litter_box"
|
||||
{
|
||||
type = "button";
|
||||
entity = "button.garbage_goober_deep";
|
||||
name = "Deep Clean";
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
entity = "button.garbage_goober_pet_area_cleaning";
|
||||
name = "Pet Area";
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
entity = "button.garbage_goober_intensive_sweeping";
|
||||
name = "Intensive";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "markdown";
|
||||
title = "🌬️ Air Quality";
|
||||
content = "## Air Purifiers & Humidity";
|
||||
}
|
||||
{
|
||||
type = "horizontal-stack";
|
||||
cards = [
|
||||
{
|
||||
type = "tile";
|
||||
entity = "fan.living_room_air_purifier";
|
||||
name = "Living Room";
|
||||
icon = "mdi:air-purifier";
|
||||
features = [
|
||||
{
|
||||
type = "fan-speed";
|
||||
speed_count = 3;
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "tile";
|
||||
entity = "fan.bedroom_air_purifier";
|
||||
name = "Bedroom";
|
||||
icon = "mdi:air-purifier";
|
||||
features = [
|
||||
{
|
||||
type = "fan-speed";
|
||||
speed_count = 3;
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "tile";
|
||||
entity = "fan.bedroom_fan";
|
||||
name = "Bedroom Fan";
|
||||
icon = "mdi:fan";
|
||||
features = [
|
||||
{
|
||||
type = "fan-speed";
|
||||
speed_count = 4;
|
||||
presets = [
|
||||
{
|
||||
name = "auto";
|
||||
icon = "mdi:fan-auto";
|
||||
}
|
||||
{
|
||||
name = "low";
|
||||
icon = "mdi:fan-speed-1";
|
||||
}
|
||||
{
|
||||
name = "medium";
|
||||
icon = "mdi:fan-speed-2";
|
||||
}
|
||||
{
|
||||
name = "high";
|
||||
icon = "mdi:fan-speed-3";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "horizontal-stack";
|
||||
cards = [
|
||||
{
|
||||
type = "tile";
|
||||
entity = "humidifier.bedroom_humidifier";
|
||||
name = "Bedroom Humidifier";
|
||||
icon = "mdi:water-percent";
|
||||
features = [
|
||||
{
|
||||
type = "humidifier-toggle";
|
||||
}
|
||||
{
|
||||
type = "humidifier-modes";
|
||||
modes = [
|
||||
{
|
||||
name = "auto";
|
||||
icon = "mdi:refresh-auto";
|
||||
}
|
||||
{
|
||||
name = "low";
|
||||
icon = "mdi:water-percent";
|
||||
}
|
||||
{
|
||||
name = "medium";
|
||||
icon = "mdi:water-percent";
|
||||
}
|
||||
{
|
||||
name = "high";
|
||||
icon = "mdi:water-percent";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "humidifier-target-humidity";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "entities";
|
||||
title = "⚠️ Status";
|
||||
show_header_toggle = false;
|
||||
entities = [
|
||||
"binary_sensor.bedroom_humidifier_low_water"
|
||||
"binary_sensor.bedroom_humidifier_water_tank_lifted"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,34 +1,23 @@
|
||||
{ namespace, ... }:
|
||||
{
|
||||
pkgs,
|
||||
namespace,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./boot.nix
|
||||
./dashboard.nix
|
||||
];
|
||||
|
||||
${namespace} = {
|
||||
sops.enable = true;
|
||||
# ###################################################
|
||||
# # Boot # #
|
||||
# ###################################################
|
||||
|
||||
bootloader.lanzaboote.enable = true;
|
||||
|
||||
# ###################################################
|
||||
# # Hardware # #
|
||||
# ###################################################
|
||||
|
||||
hardware.disko = {
|
||||
enable = true;
|
||||
enableLuks = true;
|
||||
filesystem = "btrfs";
|
||||
# rootDisk = "/dev/loop0";
|
||||
};
|
||||
|
||||
headless.enable = true;
|
||||
|
||||
# ###################################################
|
||||
# # Impermanence # #
|
||||
# ###################################################
|
||||
|
||||
impermanence = {
|
||||
enable = true;
|
||||
extraDirectories = [
|
||||
@@ -41,10 +30,6 @@
|
||||
];
|
||||
};
|
||||
|
||||
# ###################################################
|
||||
# # Network # #
|
||||
# ###################################################
|
||||
|
||||
network = {
|
||||
hostName = "nuc-nixos";
|
||||
ipv4 = {
|
||||
@@ -71,194 +56,11 @@
|
||||
};
|
||||
};
|
||||
|
||||
# ###################################################
|
||||
# # Security # #
|
||||
# ###################################################
|
||||
|
||||
security.tpm.enable = true;
|
||||
|
||||
# ###################################################
|
||||
# # Services # #
|
||||
# ###################################################
|
||||
|
||||
services = {
|
||||
home-assistant = {
|
||||
enable = true;
|
||||
dashboards = [
|
||||
{
|
||||
title = "Pets & Air Quality";
|
||||
path = "pets-air";
|
||||
icon = "mdi:paw";
|
||||
cards = [
|
||||
{
|
||||
type = "markdown";
|
||||
title = "🐾 Pets";
|
||||
content = "## Pet Management";
|
||||
}
|
||||
{
|
||||
type = "horizontal-stack";
|
||||
cards = [
|
||||
{
|
||||
type = "entity";
|
||||
entity = "select.joey_smart_feeder_manual_feed_quantity";
|
||||
name = "Joey Feed";
|
||||
}
|
||||
{
|
||||
type = "entity";
|
||||
entity = "select.luci_smart_feeder_manual_feed_quantity";
|
||||
name = "Luci Feed";
|
||||
}
|
||||
{
|
||||
type = "entity";
|
||||
entity = "text.joey_smart_feeder_text_on_display";
|
||||
name = "Joey Display";
|
||||
}
|
||||
{
|
||||
type = "entity";
|
||||
entity = "text.luci_smart_feeder_text_on_display";
|
||||
name = "Luci Display";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "entities";
|
||||
title = "🐱 Litter Robot";
|
||||
show_header_toggle = false;
|
||||
entities = [
|
||||
"vacuum.litter_robot_4_litter_box"
|
||||
{
|
||||
type = "button";
|
||||
entity = "button.garbage_goober_deep";
|
||||
name = "Deep Clean";
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
entity = "button.garbage_goober_pet_area_cleaning";
|
||||
name = "Pet Area";
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
entity = "button.garbage_goober_intensive_sweeping";
|
||||
name = "Intensive";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "markdown";
|
||||
title = "🌬️ Air Quality";
|
||||
content = "## Air Purifiers & Humidity";
|
||||
}
|
||||
{
|
||||
type = "horizontal-stack";
|
||||
cards = [
|
||||
{
|
||||
type = "tile";
|
||||
entity = "fan.living_room_air_purifier";
|
||||
name = "Living Room";
|
||||
icon = "mdi:air-purifier";
|
||||
features = [
|
||||
{
|
||||
type = "fan-speed";
|
||||
speed_count = 3;
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "tile";
|
||||
entity = "fan.bedroom_air_purifier";
|
||||
name = "Bedroom";
|
||||
icon = "mdi:air-purifier";
|
||||
features = [
|
||||
{
|
||||
type = "fan-speed";
|
||||
speed_count = 3;
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "tile";
|
||||
entity = "fan.bedroom_fan";
|
||||
name = "Bedroom Fan";
|
||||
icon = "mdi:fan";
|
||||
features = [
|
||||
{
|
||||
type = "fan-speed";
|
||||
speed_count = 4;
|
||||
presets = [
|
||||
{
|
||||
name = "auto";
|
||||
icon = "mdi:fan-auto";
|
||||
}
|
||||
{
|
||||
name = "low";
|
||||
icon = "mdi:fan-speed-1";
|
||||
}
|
||||
{
|
||||
name = "medium";
|
||||
icon = "mdi:fan-speed-2";
|
||||
}
|
||||
{
|
||||
name = "high";
|
||||
icon = "mdi:fan-speed-3";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "horizontal-stack";
|
||||
cards = [
|
||||
{
|
||||
type = "tile";
|
||||
entity = "humidifier.bedroom_humidifier";
|
||||
name = "Bedroom Humidifier";
|
||||
icon = "mdi:water-percent";
|
||||
features = [
|
||||
{
|
||||
type = "humidifier-toggle";
|
||||
}
|
||||
{
|
||||
type = "humidifier-modes";
|
||||
modes = [
|
||||
{
|
||||
name = "auto";
|
||||
icon = "mdi:refresh-auto";
|
||||
}
|
||||
{
|
||||
name = "low";
|
||||
icon = "mdi:water-percent";
|
||||
}
|
||||
{
|
||||
name = "medium";
|
||||
icon = "mdi:water-percent";
|
||||
}
|
||||
{
|
||||
name = "high";
|
||||
icon = "mdi:water-percent";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "humidifier-target-humidity";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "entities";
|
||||
title = "⚠️ Status";
|
||||
show_header_toggle = false;
|
||||
entities = [
|
||||
"binary_sensor.bedroom_humidifier_low_water"
|
||||
"binary_sensor.bedroom_humidifier_water_tank_lifted"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
automation = {
|
||||
lightswitch = {
|
||||
living-room-lights = {
|
||||
@@ -309,21 +111,9 @@
|
||||
};
|
||||
};
|
||||
|
||||
# ###################################################
|
||||
# # User # #
|
||||
# ###################################################
|
||||
|
||||
user = {
|
||||
name = "admin";
|
||||
linger = true;
|
||||
};
|
||||
};
|
||||
|
||||
# ###################################################
|
||||
# # Boot # #
|
||||
# ###################################################
|
||||
|
||||
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4;
|
||||
fileSystems."/etc".neededForBoot = true;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user