update
This commit is contained in:
Generated
+12
-9
@@ -37,15 +37,16 @@
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764353068,
|
||||
"narHash": "sha256-p8N90Wgb2CHjWyqoXQiwrBXPDzlPlklFy5u6/Pzzdm8=",
|
||||
"lastModified": 1775070981,
|
||||
"narHash": "sha256-UjDb+g38Wj9zCBZAojKQSpi9jPWZfQzcPIxNSq4f6XM=",
|
||||
"owner": "k4lipso",
|
||||
"repo": "gokill",
|
||||
"rev": "5a2b3d9d7e56945a47907bb084e39a557102f829",
|
||||
"rev": "cac9b566a5437ac13187aa964c1d880310f6b12d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "k4lipso",
|
||||
"ref": "demo",
|
||||
"repo": "gokill",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -134,16 +135,18 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1766025857,
|
||||
"narHash": "sha256-Lav5jJazCW4mdg1iHcROpuXqmM94BWJvabLFWaJVJp0=",
|
||||
"owner": "NixOS",
|
||||
"lastModified": 1775036866,
|
||||
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "def3da69945bbe338c373fddad5a1bb49cf199ce",
|
||||
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
inputs = {
|
||||
utils.url = "github:numtide/flake-utils";
|
||||
gokill.url = "github:k4lipso/gokill";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
gokill.url = "github:k4lipso/gokill/demo";
|
||||
nixos-hardware = {
|
||||
url = "github:NixOS/nixos-hardware/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -26,7 +27,7 @@
|
||||
packages.showGokillStatus =
|
||||
let
|
||||
watchGokillStatus = pkgs.writeShellScriptBin "watch-gokill-status" ''
|
||||
${pkgs.procps}/bin/watch -c -t "sudo ${gokillPackage}/bin/gokillctl --db=/etc/gokill status; # sudo ${gokillPackage}/bin/gokillctl --db=/etc/gokill remote status"
|
||||
${pkgs.procps}/bin/watch -c -t "ip -c -4 -br a | grep \"wlan\|enu\"; sudo ${gokillPackage}/bin/gokillctl --db=/etc/gokill status --stages; sudo ${gokillPackage}/bin/gokillctl --db=/etc/gokill remote status --peers"
|
||||
'';
|
||||
in
|
||||
pkgs.writeShellScriptBin "show-gokill-status" ''
|
||||
@@ -35,7 +36,8 @@
|
||||
TARGET_WORKSPACE="1"
|
||||
|
||||
#env DISPLAY=:0 ${pkgs.sudo}/bin/sudo su -c "${pkgs.i3}/bin/i3-msg \"exec $TERMINAL -T 'Status' -e $APP_COMMAND;\"" rpi
|
||||
${pkgs.i3}/bin/i3-msg "exec $TERMINAL -T 'Status' -e $APP_COMMAND; layout tabbed"
|
||||
${pkgs.killall}/bin/killall .xterm-wrapped
|
||||
${pkgs.i3}/bin/i3-msg "exec $TERMINAL -T 'Status' -e $APP_COMMAND;" # layout tabbed
|
||||
'';
|
||||
|
||||
packages.alarmSound = pkgs.writeShellScriptBin "alarm-sound" ''
|
||||
@@ -63,23 +65,25 @@
|
||||
exportPin "531"
|
||||
|
||||
echo "Starting Alert sound!"
|
||||
for i in {1..5}; do
|
||||
echo "Alert Iteration $i of 5"
|
||||
for i in {1..50}; do
|
||||
echo "Alert Iteration $i of 50"
|
||||
setState "531" "1"
|
||||
sleep 1
|
||||
sleep 0.2
|
||||
setState "531" "0"
|
||||
sleep 1
|
||||
sleep 0.2
|
||||
done
|
||||
echo "Finished Alert sound!"
|
||||
'';
|
||||
|
||||
packages.showAlert = pkgs.writeShellScriptBin "show-alert" ''
|
||||
echo "show alert"
|
||||
export DISPLAY=:0
|
||||
echo "call xset"
|
||||
${pkgs.xorg.xset}/bin/xset dpms force on
|
||||
echo "call alert"
|
||||
${self.packages.${system}.alertTest}/bin/alert
|
||||
echo "Starting SM"
|
||||
${pkgs.screen-message}/bin/sm -f black -b \#f30909 "$@" &
|
||||
sleep 10
|
||||
echo "Killing SM"
|
||||
kill $!
|
||||
|
||||
#env DISPLAY=:0 sudo su -c "${pkgs.xorg.xset}/bin/xset dpms force on" rpi
|
||||
#env DISPLAY=:0 sudo su -c "${self.packages.${system}.alertTest}/bin/alert" rpi
|
||||
@@ -125,12 +129,8 @@
|
||||
];
|
||||
|
||||
};
|
||||
in
|
||||
{
|
||||
rpi = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
specialArgs.inputs = inputs;
|
||||
modules = [
|
||||
|
||||
defaultModules = [
|
||||
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
|
||||
inputs.nixos-hardware.nixosModules.raspberry-pi-3
|
||||
inputs.gokill.nixosModules.gokill
|
||||
@@ -154,7 +154,13 @@
|
||||
libraspberrypi
|
||||
raspberrypi-eeprom
|
||||
unclutter
|
||||
inputs.gokill.packages.aarch64-linux.gokill
|
||||
self.packages.aarch64-linux.alertTest
|
||||
htop
|
||||
|
||||
# Camera
|
||||
v4l-utils
|
||||
libv4l
|
||||
];
|
||||
|
||||
sdImage = pkgs.lib.mkForce {
|
||||
@@ -270,6 +276,22 @@
|
||||
];
|
||||
};
|
||||
|
||||
systemd.services.gokill-cleanup-socket = {
|
||||
enable = true;
|
||||
description = "remove gokill socket on boot if it exists";
|
||||
wantedBy = [ "gokill.service" ];
|
||||
unitConfig = {
|
||||
ConditionPathExists = "/etc/gokill/gokill.socket";
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${(pkgs.writeShellScriptBin "rm-gokill-socket" ''
|
||||
echo "removing gokill.socket"
|
||||
rm /etc/gokill/gokill.socket
|
||||
'')}/bin/rm-gokill-socket";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.gokill-status = {
|
||||
enable = true;
|
||||
description = "Open gokill status view at boot";
|
||||
@@ -292,36 +314,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
services.gokill =
|
||||
{
|
||||
enable = true;
|
||||
triggers = [
|
||||
{
|
||||
type = "Timeout";
|
||||
name = "custom timeout";
|
||||
options = {
|
||||
duration = 120;
|
||||
};
|
||||
actions = [
|
||||
{
|
||||
type = "ShellScript";
|
||||
options = {
|
||||
path = "${inputs.self.packages.aarch64-linux.showAlert}/bin/show-alert";
|
||||
};
|
||||
stage = 1;
|
||||
}
|
||||
#{
|
||||
# type = "ShellScript";
|
||||
# options = {
|
||||
# path = "${self.packages.aarch64-linux.alarmSound}/bin/alarm-sound";
|
||||
# };
|
||||
# stage = 1;
|
||||
#}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.displayManager = {
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = "rpi";
|
||||
@@ -362,6 +354,10 @@
|
||||
|
||||
boot.supportedFilesystems = pkgs.lib.mkForce [ "ext4" "vfat" ];
|
||||
boot.kernelPackages = pkgs.linuxKernel.packages.linux_rpi3;
|
||||
#RPI Camera Support
|
||||
boot.kernelModules = [
|
||||
"bcm2835-v4l2"
|
||||
];
|
||||
boot.tmp.cleanOnBoot = true;
|
||||
boot.tmp.useTmpfs = true;
|
||||
|
||||
@@ -385,6 +381,19 @@
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
networking.wireless = {
|
||||
enable = true;
|
||||
networks."ZW public".authProtocols = [ "NONE" ];
|
||||
networks."ZW public legacy".authProtocols = [ "NONE" ];
|
||||
networks."AtlantisPublic".pskRaw = "cc9f903ecfa70d67bc877bd7eb10c876973dcf5b31e3258029ece86eeca3aff5";
|
||||
extraConfig = "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel";
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/var/lib/swapfile";
|
||||
size = 8*1024; # 8 GiB
|
||||
}];
|
||||
|
||||
nixpkgs.hostPlatform = pkgs.lib.mkDefault "aarch64-linux";
|
||||
networking.hostName = "rpi";
|
||||
@@ -392,6 +401,80 @@
|
||||
system.stateVersion = "25.11";
|
||||
})
|
||||
];
|
||||
in
|
||||
{
|
||||
rpi = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
specialArgs.inputs = inputs;
|
||||
modules = defaultModules ++ [
|
||||
{
|
||||
services.gokill =
|
||||
{
|
||||
enable = true;
|
||||
remote.enable = true;
|
||||
triggers = [
|
||||
{
|
||||
type = "Remote";
|
||||
name = "remote";
|
||||
loop = true;
|
||||
options = {
|
||||
group = "39C3";
|
||||
secret = "39C3-Real";
|
||||
testSecret = "39C3-Test";
|
||||
};
|
||||
actions = [
|
||||
{
|
||||
type = "ShellScript";
|
||||
options = {
|
||||
path = "${inputs.self.packages.aarch64-linux.showAlert}/bin/show-alert";
|
||||
args = "ALERT";
|
||||
};
|
||||
stage = 1;
|
||||
}
|
||||
{
|
||||
type = "ShellScript";
|
||||
options = {
|
||||
path = "${self.packages.aarch64-linux.alarmSound}/bin/alarm-sound";
|
||||
};
|
||||
stage = 1;
|
||||
}
|
||||
];
|
||||
}
|
||||
#{
|
||||
# type = "Timeout";
|
||||
# name = "alert";
|
||||
# options = {
|
||||
# duration = 60;
|
||||
# };
|
||||
# actions = [
|
||||
# {
|
||||
# type = "ShellScript";
|
||||
# options = {
|
||||
# path = "${inputs.self.packages.aarch64-linux.showAlert}/bin/show-alert";
|
||||
# args = "ALERT";
|
||||
# };
|
||||
# stage = 1;
|
||||
# }
|
||||
# {
|
||||
# type = "ShellScript";
|
||||
# options = {
|
||||
# path = "${self.packages.aarch64-linux.alarmSound}/bin/alarm-sound";
|
||||
# };
|
||||
# stage = 1;
|
||||
# }
|
||||
# ];
|
||||
#}
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
rpi2 = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
specialArgs.inputs = inputs;
|
||||
modules = defaultModules;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user