| # TV next to acr1. Raspberry Pi 4 with PoE hat. |
| # |
| # This is an aarch64 machine. You'll probably have to use a remote builder to |
| # cross compile for it. See //ops/README.md for information about how to set |
| # that up. |
| |
| { config, pkgs, ... }: |
| |
| let |
| nixos-hardware = builtins.fetchGit { |
| url = "https://github.com/NixOS/nixos-hardware.git"; |
| rev = "3bf48d3587d3f34f745a19ebc968b002ef5b5c5a"; |
| }; |
| |
| in { |
| imports = |
| [ # Include the results of the hardware scan. |
| ./hardware-configuration.nix |
| "${nixos-hardware}/raspberry-pi/4" |
| ]; |
| |
| boot.loader.grub.enable = false; |
| boot.loader.generic-extlinux-compatible.enable = true; |
| |
| networking.hostName = "tv1"; |
| networking.domain = "waw.hackerspace.pl"; |
| time.timeZone = "Europe/Warsaw"; |
| |
| nixpkgs.overlays = [ |
| (self: super: { |
| signage = self.callPackage ./signage.nix {}; |
| }) |
| ]; |
| |
| # Enable sound. |
| 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} ${signage}/bin/signage |
| '') |
| firefox foot wayvnc |
| vim rxvt-unicode-unwrapped.terminfo |
| |
| alacritty |
| 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? |
| |
| } |
| |