128 lines
3.6 KiB
Nix
128 lines
3.6 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
inputs,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
cec = "${pkgs.v4l-utils}/bin/cec-ctl";
|
|
in
|
|
{
|
|
imports = [
|
|
# Include the results of the hardware scan.
|
|
./hardware-configuration.nix
|
|
./modules/battery.nix
|
|
../../modules/misc/faster-boot-time.nix
|
|
../../modules/misc/kernel.nix
|
|
../../modules/services/ssh.nix
|
|
./disk-config.nix
|
|
];
|
|
|
|
|
|
# after suspend, do `cec-ctl -A | grep cec0 | wc -l`, if >0, do `cec-ctl --standby --to TV`
|
|
# similar on wakeup, if present send `cec-ctl --user-control-pressed ui-cmd=power-on-function --to TV`
|
|
environment.etc."systemd/system-sleep/sleep-turn-tv-off-on.sh".source =
|
|
pkgs.writeShellScript "post-sleep-turn-tv-off.sh" ''
|
|
case $1/$2 in
|
|
pre/*)
|
|
if [ $(${cec} -A | ${pkgs.gnugrep}/bin/grep cec0 | ${pkgs.coreutils}/bin/wc -l) -gt 0 ]; then
|
|
${cec} -C --skip-info
|
|
${cec} --tv --skip-info
|
|
${cec} --standby --skip-info --to TV
|
|
echo "Turning TV off!"
|
|
${pkgs.coreutils}/bin/sleep 2
|
|
fi
|
|
;;
|
|
post/*)
|
|
if [ $(${cec} -A | ${pkgs.gnugrep}/bin/grep cec0 | ${pkgs.coreutils}/bin/wc -l) -gt 0 ]; then
|
|
${cec} --tv --skip-info
|
|
${cec} --skip-info --user-control-pressed ui-cmd=power-on-function --to TV
|
|
echo "Turning TV on!"
|
|
fi
|
|
;;
|
|
esac
|
|
'';
|
|
|
|
custom = {
|
|
cli-tools.enable = true;
|
|
tmpfs.enable = true;
|
|
nix = {
|
|
settings.enable = true;
|
|
};
|
|
hardware = {
|
|
firmware.enable = true;
|
|
ssd.enable = true;
|
|
fingerprint.enable = true;
|
|
};
|
|
graphical = {
|
|
audio.enable = true;
|
|
shared.enable = true;
|
|
plasma.enable = true;
|
|
sddm.enable = true;
|
|
};
|
|
};
|
|
|
|
#todo: extract this
|
|
services.xserver = {
|
|
xkb.layout = config.mainUser.layout;
|
|
xkb.variant = config.mainUser.variant;
|
|
enable = true;
|
|
};
|
|
|
|
services.blueman.enable = true;
|
|
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
|
hardware.bluetooth.powerOnBoot = false; # powers up the default Bluetooth controller on boot
|
|
boot = {
|
|
consoleLogLevel = 3;
|
|
initrd.verbose = false;
|
|
plymouth.enable = true;
|
|
kernelParams = [
|
|
"quiet"
|
|
"splash"
|
|
"boot.shell_on_fail"
|
|
"udev.log_priority=3"
|
|
"rd.systemd.show_status=auto"
|
|
];
|
|
};
|
|
|
|
mainUser.layout = "de";
|
|
mainUser.variant = "";
|
|
console.useXkbConfig = true;
|
|
# Bootloader.
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
networking.hostName = "dell"; # Define your hostname.
|
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
|
|
# Enable networking
|
|
networking.networkmanager.enable = true;
|
|
|
|
#networking.extraHosts =
|
|
#''
|
|
# 82.218.12.28 kopatz.ddns.net
|
|
#'';
|
|
|
|
# Enable touchpad support (enabled default in most desktopManager).
|
|
services.xserver.libinput.enable = true;
|
|
|
|
security.pki.certificates = [
|
|
''
|
|
-----BEGIN CERTIFICATE-----
|
|
MIIBjTCCATKgAwIBAgIRAMVH2+JHZ3wm2fLUlKjTYDswCgYIKoZIzj0EAwIwJDEM
|
|
MAoGA1UEChMDS29wMRQwEgYDVQQDEwtLb3AgUm9vdCBDQTAeFw0yMzEyMDgxNDUx
|
|
MTZaFw0zMzEyMDUxNDUxMTZaMCQxDDAKBgNVBAoTA0tvcDEUMBIGA1UEAxMLS29w
|
|
IFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATdZBOkNynShXipzhuX
|
|
f6dUByD3chNupNWsagYC5AlPRJT9fAeHEIK/bxWkFwRtLBDopWvBu9lHahBgpHc7
|
|
y7rTo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAdBgNV
|
|
HQ4EFgQU9AVtwipW5HDBLfZRH1KZCnIKCfowCgYIKoZIzj0EAwIDSQAwRgIhAMHj
|
|
AipNdhQKIYPvMt/h1uW4xP3NTkitnmshM09+rIasAiEAlSalGddXDkqJBHhPD+Fr
|
|
gpuVkfVkA8gQCXNs5F9TnxA=
|
|
-----END CERTIFICATE-----
|
|
''
|
|
];
|
|
|
|
system.stateVersion = "25.05"; # Did you read the comment?
|
|
}
|