| # RPi4 as TV kiosk. |
| |
| { config, pkgs, workspace, ... }: |
| |
| let |
| nixos-hardware = builtins.fetchGit { |
| url = "https://github.com/NixOS/nixos-hardware.git"; |
| rev = "3bf48d3587d3f34f745a19ebc968b002ef5b5c5a"; |
| }; |
| |
| in { |
| imports = [ |
| "${nixos-hardware}/raspberry-pi/4" |
| ]; |
| |
| boot.initrd.availableKernelModules = [ "xhci_pci" "usbhid" ]; |
| boot.initrd.kernelModules = [ ]; |
| boot.kernelModules = [ ]; |
| boot.extraModulePackages = [ ]; |
| boot.loader.grub.enable = false; |
| boot.loader.generic-extlinux-compatible.enable = true; |
| powerManagement.cpuFreqGovernor = "ondemand"; |
| |
| networking.useDHCP = true; |
| |
| swapDevices = [ ]; |
| fileSystems."/" = |
| { device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; |
| fsType = "ext4"; |
| }; |
| |
| networking.domain = "waw.hackerspace.pl"; |
| time.timeZone = "Europe/Warsaw"; |
| |
| services.avahi = { |
| enable = true; |
| nssmdns = true; |
| publish.addresses = true; |
| }; |
| |
| sound.enable = true; |
| services.pipewire = { |
| enable = true; |
| alsa.enable = true; |
| pulse.enable = true; |
| }; |
| |
| services.dbus.enable = true; |
| |
| programs.sway = { |
| enable = true; |
| wrapperFeatures.gtk = true; |
| extraSessionCommands = '' |
| export WLR_LIBINPUT_NO_DEVICES=1 |
| export WLR_NO_HARDWARE_CURSORS=1 |
| ''; |
| }; |
| hardware.raspberry-pi."4".fkms-3d.enable = true; |
| hardware.raspberry-pi."4".poe-hat.enable = true; |
| |
| services.greetd = { |
| enable = true; |
| settings = rec { |
| initial_session = let |
| sway = builtins.elemAt config.services.xserver.displayManager.sessionPackages 0; |
| in { |
| command = "${sway}/bin/sway"; |
| user = "kiosk"; |
| }; |
| default_session = initial_session; |
| }; |
| }; |
| |
| users.users.root = { |
| openssh.authorizedKeys.keys = [ |
| "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG599UildOrAq+LIOQjKqtGMwjgjIxozI1jtQQRKHtCP q3k@mimeomia" |
| "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFhaCaC/CVYv6hphqmEdKaPrIn+Q946+myvL9SSnzFZk vuko@eagle" |
| "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICTR292kx/2CNuWYIsZ6gykQ036aBGrmheIuZa6S1D2x implr@thonk" |
| "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGfIRe1nH6vwjQTjqHNnkKAdr1VYqGEeQnqInmf3A6UN ar@khas" |
| "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQb3YQoiYFZLKwvHYKbu1bMqzNeDCAszQhAe1+QI5SLDOotclyY/vFmOReZOsmyMFl71G2d7d+FbYNusUnNNjTxRYQ021tVc+RkMdLJaORRURmQfEFEKbai6QSFTwErXzuoIzyEPK0lbsQuGgqT9WaVnRzHJ2Q/4+qQbxAS34PuR5NqEkmn4G6LMo3OyJ5mwPkCj9lsqz4BcxRaMWFO3mNcwGDfSW+sqgc3E8N6LKrTpZq3ke7xacpQmcG5DU9VO+2QVPdltl9jWbs3gXjmF92YRNOuKPVfAOZBBsp8JOznfx8s9wDgs7RwPmDpjIAJEyoABqW5hlXfqRbTnfnMvuR informatic@InformaticPC" |
| "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDVQI/uYdp3km0NBSK7s80VAw7k6zH2Y5hYg1fkPfTjN7/hPCvyuIvSYYNdb6APWevUcw5+1Mpv0YMc+GOFCsJEXnSAcppNhZTPM6ic6HeaIHEC5QBv6qMWbCNLf5M9ZqYdBHEIeCYg0VGJMzgkSor7sk3gEwnKgCMaJ0Bmqv++qtBOLKhCgUn3KTORAn2BAtkXEe8ASfkdWWPMoq20eshsV26h4N4C2bvAgm7ucFtziOtp7TpGY5L8snv7twAeriMkifLbF7J3vy+l6qYBb990HkRadAHAYtt0viPEjTzkFlTubxMPqrmFh4xK8HdKawAw8KFy0SYBqQnKU9oiZ5biyLJvFzaLn+YJL4BcM3A8DRvdeaHiD4PnEJh8bWHCBER5hhGYcNZhA+qBxPYXFjYEiAfsXxD1AYNVep6lpnPtK0vvcPKSxr5eLBM8ZoSofKtA0Xa+7ySuAnzWSdy9EspLNzA8TSFUhQcsZmsUE1cPeLoS2+8I9QFDwQbyPAwWKpfCkLaWd1cK4J1KPn6XzH8iARifX4F/oAEzmfYz5yXrGJQV6HhNAntKXt8dsZhME3kYVgHB/8Ls8PRwAe/9N92JR+DjdDvGKLoPf3BqOq4fq6JcrUT6FPRtGCz0bl4Cgnsb+UY1d2Ue2I7Wcpuqgv5HLY0beTE6CSEfDNmPad/EPw== cz3" |
| ]; |
| }; |
| users.groups.kiosk = {}; |
| users.users.kiosk = { |
| isNormalUser = true; |
| group = "kiosk"; |
| extraGroups = [ "users" "lp" "dialout" "tty" ]; |
| }; |
| |
| environment.systemPackages = with pkgs; [ |
| (let |
| config = pkgs.writeText "config.lua" '' |
| return { |
| displayTime = 2, |
| transitionTime = 0.5, |
| showProgress = true, |
| nodes = { |
| {'nodes.weather', displayTime = 10}, |
| {'nodes.newdash', displayTime = 10}, |
| {'nodes.misery', displayTime = 10}, |
| }, |
| environment = os.getenv('ENV') or 'prod', |
| renderWidth = 1280, |
| renderHeight = 720, |
| } |
| ''; |
| in pkgs.writeScriptBin "signage-wrapped" '' |
| #!/usr/bin/env bash |
| SIGNAGE_CONFIG=${config} ${workspace.hswaw.signage.prod}/bin/signage |
| '') |
| firefox foot wayvnc |
| vim rxvt-unicode-unwrapped.terminfo |
| |
| alacritty foot |
| wayland glib dracula-theme gnome3.adwaita-icon-theme |
| swaylock swayidle grim slurp wl-clipboard bemenu mako |
| ]; |
| |
| services.openssh.enable = true; |
| |
| system.stateVersion = "22.05"; # Did you read the comment? |
| } |