hosts: add kled
This commit is contained in:
@@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
perSystem,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = with inputs; [
|
||||||
|
self.nixosModules.desktop
|
||||||
|
self.nixosModules.shared
|
||||||
|
./disk.nix
|
||||||
|
./hardware
|
||||||
|
./misc
|
||||||
|
];
|
||||||
|
|
||||||
|
desktop.dms.enable = true;
|
||||||
|
|
||||||
|
services.displayManager.autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "user";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_6_12;
|
||||||
|
|
||||||
|
environment.systemPackages = [perSystem.cros.cros-ectool];
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swap/swapfile";
|
||||||
|
size = 4 * 1024;
|
||||||
|
priority = 100;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
device = "/swap/hibernate";
|
||||||
|
size = 16 * 1024;
|
||||||
|
priority = 1;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
unexplrd = {
|
||||||
|
host = {
|
||||||
|
id = "31150fae";
|
||||||
|
name = "kled";
|
||||||
|
stateVersion = "25.11";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
laptop.homeRowMods = true;
|
||||||
|
powerSave = true;
|
||||||
|
useIwd = true;
|
||||||
|
vaapi = "intel-media-driver";
|
||||||
|
locale = "uk_UA.UTF-8";
|
||||||
|
timeZone = "Europe/Kyiv";
|
||||||
|
};
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
theme = "ashes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
# inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
disk = "/dev/disk/by-partuuid/33394714-d94d-4085-b020-3fe5d02e3494";
|
||||||
|
luksName = "luks-${config.networking.hostId}";
|
||||||
|
in rec {
|
||||||
|
boot.initrd.luks.devices."${luksName}".device = disk;
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-partuuid/7f1bd772-f3ac-4075-94a7-e1729994c7fc";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = ["fmask=0077" "dmask=0077"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/tmp" = {
|
||||||
|
device = "none";
|
||||||
|
fsType = "tmpfs";
|
||||||
|
options = ["rw" "nosuid" "nodev"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/mapper/${luksName}";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = ["subvol=@nixos-root"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/nix" = {
|
||||||
|
inherit (fileSystems."/") device fsType;
|
||||||
|
options = ["subvol=@nix" "noatime"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/storage" = {
|
||||||
|
inherit (fileSystems."/") device fsType;
|
||||||
|
options = ["subvol=@storage"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/home" = {
|
||||||
|
inherit (fileSystems."/") device fsType;
|
||||||
|
options = ["subvol=@home"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./laptop
|
||||||
|
];
|
||||||
|
services = {
|
||||||
|
logind = {
|
||||||
|
lidSwitch = "ignore";
|
||||||
|
powerKey = "suspend";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,165 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
perSystem,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
ectool = "${perSystem.cros.cros-ectool}/bin/ectool";
|
||||||
|
in {
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"w /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference - - - - balance_performance
|
||||||
|
"
|
||||||
|
"w /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor - - - - performance"
|
||||||
|
];
|
||||||
|
systemd.services.ectool-thermalset = {
|
||||||
|
enable = true;
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
script = ''
|
||||||
|
${ectool} thermalset 0 0 361 371 333 353
|
||||||
|
${ectool} thermalset 1 0 361 371 333 353
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.kanata.enable = lib.mkForce false;
|
||||||
|
services.keyd = {
|
||||||
|
enable = true;
|
||||||
|
keyboards.internal = {
|
||||||
|
ids = [
|
||||||
|
"k:0001:0001"
|
||||||
|
"k:18d1:5044"
|
||||||
|
"k:18d1:5052"
|
||||||
|
"k:0000:0000"
|
||||||
|
"k:18d1:5050"
|
||||||
|
"k:18d1:504c"
|
||||||
|
"k:18d1:503c"
|
||||||
|
"k:18d1:5030"
|
||||||
|
"k:18d1:503d"
|
||||||
|
"k:18d1:505b"
|
||||||
|
"k:18d1:5057"
|
||||||
|
"k:18d1:502b"
|
||||||
|
"k:18d1:5061"
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
main = let
|
||||||
|
# finger = mod;
|
||||||
|
pinky = "alt";
|
||||||
|
ring = "meta";
|
||||||
|
middle = "control";
|
||||||
|
index = "shift";
|
||||||
|
# timeouts
|
||||||
|
idle = "200";
|
||||||
|
hold = "150";
|
||||||
|
# function takes finger and letter
|
||||||
|
homeRowMod = f: l: "lettermod(${f}, ${l}, ${idle}, ${hold})";
|
||||||
|
in {
|
||||||
|
"a" = homeRowMod pinky "a";
|
||||||
|
"s" = homeRowMod ring "s";
|
||||||
|
"d" = homeRowMod middle "d";
|
||||||
|
"f" = homeRowMod index "f";
|
||||||
|
"j" = homeRowMod index "j";
|
||||||
|
"k" = homeRowMod middle "k";
|
||||||
|
"l" = homeRowMod ring "l";
|
||||||
|
";" = homeRowMod pinky ";";
|
||||||
|
f1 = "back";
|
||||||
|
f2 = "forward";
|
||||||
|
f3 = "refresh";
|
||||||
|
f4 = "f11";
|
||||||
|
f5 = "scale";
|
||||||
|
f6 = "brightnessdown";
|
||||||
|
f7 = "brightnessup";
|
||||||
|
f8 = "mute";
|
||||||
|
f9 = "volumedown";
|
||||||
|
f10 = "volumeup";
|
||||||
|
f13 = "coffee"; # lock key reports as XF86Tools
|
||||||
|
back = "back";
|
||||||
|
forward = "forward";
|
||||||
|
refresh = "refresh";
|
||||||
|
zoom = "f11";
|
||||||
|
scale = "scale";
|
||||||
|
brightnessdown = "brightnessdown";
|
||||||
|
brightnessup = "brightnessup";
|
||||||
|
mute = "mute";
|
||||||
|
volumedown = "volumedown";
|
||||||
|
volumeup = "volumeup";
|
||||||
|
};
|
||||||
|
meta = {
|
||||||
|
f1 = "f1";
|
||||||
|
f2 = "f2";
|
||||||
|
f3 = "f3";
|
||||||
|
f4 = "f4";
|
||||||
|
f5 = "f5";
|
||||||
|
f6 = "f6";
|
||||||
|
f7 = "f7";
|
||||||
|
f8 = "f8";
|
||||||
|
f9 = "f9";
|
||||||
|
f10 = "f10";
|
||||||
|
f13 = "f12";
|
||||||
|
back = "f1";
|
||||||
|
forward = "f2";
|
||||||
|
refresh = "f3";
|
||||||
|
zoom = "f4";
|
||||||
|
scale = "f5";
|
||||||
|
brightnessdown = "f6";
|
||||||
|
brightnessup = "f7";
|
||||||
|
mute = "f8";
|
||||||
|
volumedown = "f9";
|
||||||
|
volumeup = "f10";
|
||||||
|
};
|
||||||
|
alt = {
|
||||||
|
backspace = "delete";
|
||||||
|
meta = "capslock";
|
||||||
|
brightnessdown = "kbdillumdown";
|
||||||
|
brightnessup = "kbdillumup";
|
||||||
|
f5 = "print";
|
||||||
|
f6 = "kbdillumdown";
|
||||||
|
f7 = "kbdillumup";
|
||||||
|
scale = "print";
|
||||||
|
};
|
||||||
|
controlalt.backspace = "C-A-delete";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.sensor.iio.enable = true;
|
||||||
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
|
security.wrappers.ectool = lib.mkDefault {
|
||||||
|
setuid = true;
|
||||||
|
owner = "root";
|
||||||
|
group = "root";
|
||||||
|
source = ectool;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options snd_intel_dspcfg dsp_driver=3
|
||||||
|
'';
|
||||||
|
environment = {
|
||||||
|
systemPackages = [pkgs.sof-firmware];
|
||||||
|
sessionVariables.ALSA_CONFIG_UCM2 = lib.mkDefault "${perSystem.cros.alsa-ucm-conf-cros}/share/alsa/ucm2";
|
||||||
|
etc = {
|
||||||
|
"wireplumber/conf.d/51-increase-headroom.lua".text = ''
|
||||||
|
monitor.alsa.rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{
|
||||||
|
node.name = "~alsa_output.*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
actions = {
|
||||||
|
update-props = {
|
||||||
|
api.alsa.headroom = 2048
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# system.replaceDependencies.replacements = [
|
||||||
|
# {
|
||||||
|
# original = pkgs.alsa-ucm-conf;
|
||||||
|
# replacement = perSystem.cros.alsa-ucm-conf-cros;
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./chromebook.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./distributed-build.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (builtins) readFile;
|
||||||
|
inherit (config.networking) hostName;
|
||||||
|
inherit (config.sops) secrets;
|
||||||
|
inherit (inputs) mysecrets;
|
||||||
|
pubHost = readFile "${mysecrets}/ssh/ssh_host_ed25519_dunamis.base64";
|
||||||
|
in {
|
||||||
|
nix = {
|
||||||
|
distributedBuilds = true;
|
||||||
|
buildMachines = [
|
||||||
|
{
|
||||||
|
hostName = "dunamis";
|
||||||
|
maxJobs = 3;
|
||||||
|
protocol = "ssh-ng";
|
||||||
|
publicHostKey = pubHost;
|
||||||
|
speedFactor = 2;
|
||||||
|
sshKey = secrets."ssh-${hostName}-user".path;
|
||||||
|
sshUser = "nix-ssh";
|
||||||
|
supportedFeatures = ["benchmark" "big-parallel" "kvm" "nixos-test"];
|
||||||
|
system = "x86_64-linux";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{flake, ...}: {imports = [flake.modules.users.user];}
|
||||||
Reference in New Issue
Block a user