Nix-Vibe public snapshot (squashed history)

This commit is contained in:
2026-09-19 13:54:34 +01:00
commit cff83a473b
118 changed files with 18716 additions and 0 deletions
+208
View File
@@ -0,0 +1,208 @@
# /hosts/nixos/configuration.nix
{ config
, pkgs
, inputs
, lib
, ...
}:
{
imports = [
./hardware-configuration.nix
../../modules/core/common.nix
../../modules/desktop/gui.nix
(import ../../modules/storage/disko.nix {
inherit inputs lib config;
diskoConfigPath = ./disko-config.nix;
})
../../modules/desktop/hyprland.nix
../../modules/desktop/apps/soundux.nix
../../modules/desktop/apps/freeshow.nix
../../modules/desktop/apps/x32edit.nix
../../modules/desktop/apps/mixing-station.nix
../../modules/desktop/apps/opencode.nix
../../modules/core/management.nix
../../modules/hardware/laptop.nix
../../modules/hardware/nvidia.nix
../../modules/hardware/thinkpad-battery-limit.nix
../../modules/hardware/tablet-mode.nix
../../modules/core/known-hosts.nix
../../modules/core/podman.nix
../../modules/core/dev.nix
../../modules/services/paperless.nix
];
sops.secrets = {
"x1carbon/borg-passphrase" = {
mode = "0600";
owner = "root";
};
"x1carbon/borg-ssh-key" = {
mode = "0600";
owner = "root";
};
# Nextcloud CalDAV credentials for the QuickShell calendar popup. Rendered
# to /run/secrets/hp-laptop/nextcloud-cal-env (the default path the
# qs-cal-sync backend expects) — reuse the same secret for both hosts.
"hp-laptop/nextcloud-cal-env" = {
owner = "petere";
group = "users";
mode = "0440";
};
"users/petere-password" = {
neededForUsers = true;
};
"x1carbon/telegram-bot-token" = {
owner = "petere";
group = "users";
mode = "0440";
};
"opencode-api-key" = {
owner = "petere";
group = "users";
mode = "0440";
};
};
#TEMPORARY FIX
# nixpkgs.overlays = [
# (final: prev: {
# pnpm = prev.pnpm // { nodejs-slim = final.nodejs-slim; };
# pnpm_10 = prev.pnpm_10 // { nodejs-slim = final.nodejs-slim; };
# pnpm_11 = prev.pnpm_11 // { nodejs-slim = final.nodejs-slim; };
# })
# ];
services.paperless-service.enable = true;
hardware.sensor.iio.enable = true;
home-manager.users.petere.imports = [
../../home-manager/modules/hyprland.nix
../../home-manager/modules/quickshell-cal.nix
../../home-manager/modules/quickshell-apps.nix
../../home-manager/modules/opencode.nix
../../home-manager/modules/nix-lsp.nix
../../home-manager/modules/matugen.nix
];
home-manager.users.petere.services.quickshell-cal.enable = true;
home-manager.users.petere.services.quickshell-apps = {
enable = true;
apps = [
{
name = "Element";
cmd = "element-desktop";
}
{
name = "Nextcloud";
cmd = "nextcloud";
}
{
name = "Bitwarden";
cmd = "bitwarden";
}
];
};
networking.hostName = "x1carbon";
networking.modemmanager.enable = true;
# Laptop-specific hardware (fingerprint reader, fwupd)
my.hardware.laptop.enable = true;
# Charging cap at 80% via the ThinkPad's native sysfs thresholds
# (charge_control_start/end_threshold). The EC at 76% won't resume charging
# until it drops to/below the resume threshold (75) — expect the level to
# hover between ~76 and ~80 while "on". Despite the name, this is the
# standard ThinkPad behaviour; the QML gear toggle drives this via
# `battery-charge-limit on|off|status`.
my.hardware.thinkpadBatteryLimit.enable = true;
my.hardware.nvidia = {
enable = true;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.legacy_580;
};
my.hardware.tabletMode.enable = true;
programs.steam.enable = true;
services.hardware.bolt.enable = true;
# Establish trust for SSH to richmond-server (borg backup target, now using Backrest).
my.knownHosts.richmondServer = true;
# Borg Backup removed - migrated to Backrest (see hosts/homeserver-1/configuration.nix)
my.users.petere = {
hashedPasswordFile = config.sops.secrets."users/petere-password".path;
subUidStart = 100000;
subGidStart = 100000;
};
networking.firewall = {
enable = true;
allowedTCPPorts = [
9756 # TeleportFling screen/audio streaming
];
allowedUDPPorts = [
9999 # TeleportFling multicast discovery
];
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
} # KDE Connect / GSConnect
{
from = 5960;
to = 6000;
} # NDI streams
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
} # KDE Connect / GSConnect discovery
{
from = 5960;
to = 6000;
} # NDI reliable UDP
];
};
boot.kernelModules = [
"sg"
"v4l2loopback"
];
boot.extraModulePackages = [ pkgs.linuxPackages.v4l2loopback ];
boot.extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
environment.systemPackages = with pkgs; [
openshot-qt
(
(wrapOBS.override {
obs-studio = obs-studio.override { cudaSupport = true; };
})
{
plugins = with obs-studio-plugins; [
distroav
obs-backgroundremoval
obs-teleport
];
}
)
vorta
xournalpp
winbox
steam
lmstudio
lm_sensors
gimp
scribus
ventoy
];
}
+43
View File
@@ -0,0 +1,43 @@
# /hosts/x1carbon/disko-config.nix
# This file will contain your disko configuration for x1carbon.
{
disk = {
nixos = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02"; # for grub MBR
};
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
swap = {
size = "20G";
type = "8200";
content = {
type = "swap";
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
}
+55
View File
@@ -0,0 +1,55 @@
# /hosts/x1carbon/hardware-configuration.nix
# This file will be generated by NixOS during installation or by 'nixos-generate-config'.
# It contains hardware-specific settings for x1carbon.
{ config
, lib
, pkgs
, modulesPath
, ...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
#hardware.ipu6.enable = true;
#hardware.ipu6.platform = "ipu6";
boot.initrd.availableKernelModules = [
"xhci_pci"
"nvme"
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
# fileSystems."/" =
# { device = "/dev/disk/by-uuid/882a76d6-c1ac-4efd-aff8-b56d43ec7ca5";
# fsType = "ext4";
# };
# fileSystems."/boot" =
# { device = "/dev/disk/by-uuid/EF30-EBA7";
# fsType = "vfat";
# options = [ "fmask=0077" "dmask=0077" ];
# };
# swapDevices =
# [ { device = "/dev/disk/by-uuid/1c488737-a2e7-4258-b0f3-bd1d14155d03"; }
# ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}