blob: 9e103c466ad1bdfc4430dc506221be8363b55f4c [file] [log] [blame]
Serge Bazanski5ac5e4b2022-07-06 00:31:35 +02001# TV next to acr1. Raspberry Pi 4 with PoE hat.
2#
3# This is an aarch64 machine. You'll probably have to use a remote builder to
4# cross compile for it. See //ops/README.md for information about how to set
5# that up.
6
7{ config, pkgs, ... }:
8
9let
10 nixos-hardware = builtins.fetchGit {
11 url = "https://github.com/NixOS/nixos-hardware.git";
12 rev = "3bf48d3587d3f34f745a19ebc968b002ef5b5c5a";
13 };
14
15in {
16 imports =
17 [ # Include the results of the hardware scan.
18 ./hardware-configuration.nix
19 "${nixos-hardware}/raspberry-pi/4"
20 ];
21
22 boot.loader.grub.enable = false;
23 boot.loader.generic-extlinux-compatible.enable = true;
24
25 networking.hostName = "tv1";
26 networking.domain = "waw.hackerspace.pl";
27 time.timeZone = "Europe/Warsaw";
28
29 nixpkgs.overlays = [
30 (self: super: {
31 signage = self.callPackage ./signage.nix {};
32 })
33 ];
34
35 # Enable sound.
36 sound.enable = true;
37 services.pipewire = {
38 enable = true;
39 alsa.enable = true;
40 pulse.enable = true;
41 };
42
43 services.dbus.enable = true;
44
45 programs.sway = {
46 enable = true;
47 wrapperFeatures.gtk = true;
48 extraSessionCommands = ''
49 export WLR_LIBINPUT_NO_DEVICES=1
50 export WLR_NO_HARDWARE_CURSORS=1
51 '';
52 };
53 hardware.raspberry-pi."4".fkms-3d.enable = true;
54 hardware.raspberry-pi."4".poe-hat.enable = true;
55
56 services.greetd = {
57 enable = true;
58 settings = rec {
59 initial_session = let
60 sway = builtins.elemAt config.services.xserver.displayManager.sessionPackages 0;
61 in {
62 command = "${sway}/bin/sway";
63 user = "kiosk";
64 };
65 default_session = initial_session;
66 };
67 };
68
69
70 users.users.root = {
71 openssh.authorizedKeys.keys = [
72 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG599UildOrAq+LIOQjKqtGMwjgjIxozI1jtQQRKHtCP q3k@mimeomia"
73 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFhaCaC/CVYv6hphqmEdKaPrIn+Q946+myvL9SSnzFZk vuko@eagle"
74 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICTR292kx/2CNuWYIsZ6gykQ036aBGrmheIuZa6S1D2x implr@thonk"
75 "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGfIRe1nH6vwjQTjqHNnkKAdr1VYqGEeQnqInmf3A6UN ar@khas"
76 "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQb3YQoiYFZLKwvHYKbu1bMqzNeDCAszQhAe1+QI5SLDOotclyY/vFmOReZOsmyMFl71G2d7d+FbYNusUnNNjTxRYQ021tVc+RkMdLJaORRURmQfEFEKbai6QSFTwErXzuoIzyEPK0lbsQuGgqT9WaVnRzHJ2Q/4+qQbxAS34PuR5NqEkmn4G6LMo3OyJ5mwPkCj9lsqz4BcxRaMWFO3mNcwGDfSW+sqgc3E8N6LKrTpZq3ke7xacpQmcG5DU9VO+2QVPdltl9jWbs3gXjmF92YRNOuKPVfAOZBBsp8JOznfx8s9wDgs7RwPmDpjIAJEyoABqW5hlXfqRbTnfnMvuR informatic@InformaticPC"
77 "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDVQI/uYdp3km0NBSK7s80VAw7k6zH2Y5hYg1fkPfTjN7/hPCvyuIvSYYNdb6APWevUcw5+1Mpv0YMc+GOFCsJEXnSAcppNhZTPM6ic6HeaIHEC5QBv6qMWbCNLf5M9ZqYdBHEIeCYg0VGJMzgkSor7sk3gEwnKgCMaJ0Bmqv++qtBOLKhCgUn3KTORAn2BAtkXEe8ASfkdWWPMoq20eshsV26h4N4C2bvAgm7ucFtziOtp7TpGY5L8snv7twAeriMkifLbF7J3vy+l6qYBb990HkRadAHAYtt0viPEjTzkFlTubxMPqrmFh4xK8HdKawAw8KFy0SYBqQnKU9oiZ5biyLJvFzaLn+YJL4BcM3A8DRvdeaHiD4PnEJh8bWHCBER5hhGYcNZhA+qBxPYXFjYEiAfsXxD1AYNVep6lpnPtK0vvcPKSxr5eLBM8ZoSofKtA0Xa+7ySuAnzWSdy9EspLNzA8TSFUhQcsZmsUE1cPeLoS2+8I9QFDwQbyPAwWKpfCkLaWd1cK4J1KPn6XzH8iARifX4F/oAEzmfYz5yXrGJQV6HhNAntKXt8dsZhME3kYVgHB/8Ls8PRwAe/9N92JR+DjdDvGKLoPf3BqOq4fq6JcrUT6FPRtGCz0bl4Cgnsb+UY1d2Ue2I7Wcpuqgv5HLY0beTE6CSEfDNmPad/EPw== cz3"
78 ];
79 };
80 users.groups.kiosk = {};
81 users.users.kiosk = {
82 isNormalUser = true;
83 group = "kiosk";
84 extraGroups = [ "users" "lp" "dialout" "tty" ];
85 };
86
87 environment.systemPackages = with pkgs; [
88 (let
89 config = pkgs.writeText "config.lua" ''
90 return {
91 displayTime = 2,
92 transitionTime = 0.5,
93 showProgress = true,
94 nodes = {
95 {'nodes.weather', displayTime = 10},
96 {'nodes.newdash', displayTime = 10},
97 {'nodes.misery', displayTime = 10},
98 },
99 environment = os.getenv('ENV') or 'prod',
100 renderWidth = 1280,
101 renderHeight = 720,
102 }
103 '';
104 in pkgs.writeScriptBin "signage-wrapped" ''
105 #!/usr/bin/env bash
106 SIGNAGE_CONFIG=${config} ${signage}/bin/signage
107 '')
108 firefox foot wayvnc
109 vim rxvt-unicode-unwrapped.terminfo
110
111 alacritty
112 wayland glib dracula-theme gnome3.adwaita-icon-theme
113 swaylock swayidle grim slurp wl-clipboard bemenu mako
114 ];
115
116 services.openssh.enable = true;
117
118 system.stateVersion = "22.05"; # Did you read the comment?
119
120}
121