feat: setup pico8.

This commit is contained in:
CronyAkatsuki 2026-05-28 08:33:44 +02:00
parent 3e86945f58
commit 4b1273232f
5 changed files with 77 additions and 0 deletions

14
flake.lock generated
View file

@ -2130,6 +2130,19 @@
"type": "github"
}
},
"pico-8": {
"flake": false,
"locked": {
"lastModified": 1779821912,
"narHash": "sha256-3hecWV+H4lieQNOU2+XnClDqAKajbhrU+CWEhfrPX2k=",
"path": "/home/crony/downs/pico-8_0.2.7_amd64.zip",
"type": "path"
},
"original": {
"path": "/home/crony/downs/pico-8_0.2.7_amd64.zip",
"type": "path"
}
},
"pre-commit": {
"inputs": {
"flake-compat": "flake-compat_8",
@ -2323,6 +2336,7 @@
"nix-on-droid": "nix-on-droid",
"nixpkgs": "nixpkgs_8",
"note": "note",
"pico-8": "pico-8",
"proton-cachyos": "proton-cachyos",
"pyprland": "pyprland",
"secrets": "secrets",

View file

@ -167,6 +167,12 @@
url = "github:Daaboulex/cachyos-settings-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
# Pico 8 zip file
pico-8 = {
url = "path:/home/crony/downs/pico-8_0.2.7_amd64.zip";
flake = false;
};
};
outputs = {

View file

@ -54,6 +54,7 @@
crony.lnxlink.enable = true;
crony.yazi.enable = true;
crony.obs-studio.enable = true;
crony.pico8.enable = true;
# DO NOT CHANGE ALSO
home.stateVersion = "26.05"; # Please read the comment before changing.

View file

@ -22,6 +22,7 @@
./emacs.nix
./zen-browser.nix
./lnxlink.nix
./pico-8.nix
];
crony.river.enable = lib.mkDefault false;
@ -46,4 +47,5 @@
crony.emacs.enable = lib.mkDefault false;
crony.zen-browser.enable = lib.mkDefault false;
crony.lnxlink.enable = lib.mkDefault false;
crony.pico8.enable = lib.mkDefault false;
}

View file

@ -0,0 +1,54 @@
{
inputs,
pkgs,
lib,
config,
...
}: {
options.crony.pico8 = with lib; {
enable = mkEnableOption "Enable pico-8 and install from inputs.pico-8-src";
};
config = lib.mkIf config.crony.pico8.enable {
home.packages = let
pico-8-files = pkgs.stdenv.mkDerivation {
name = "pico-8-files";
src = inputs.pico-8;
nativeBuildInputs = with pkgs; [unzip];
unpackCmd = "unzip $curSrc";
installPhase = ''
mkdir -p $out
cp ./pico8 ./pico8.dat ./lexaloffle-pico8.png $out
'';
};
pico-8-bin-wrapped = pkgs.buildFHSEnv {
name = "pico-8";
targetPkgs = pkgs: (with pkgs; [
libX11
libXext
libXcursor
libXinerama
libXi
libXrandr
libXScrnSaver
libXxf86vm
libxcb
libXrender
libXfixes
libXau
libXdmcp
alsa-lib
udev
wget
]);
runScript = ''bash -c "${pico-8-files}/pico8"'';
};
pico8DesktopItem = pkgs.makeDesktopItem {
name = "pico-8";
desktopName = "PICO-8";
exec = "${pico-8-bin-wrapped}/bin/pico-8";
icon = "${pico-8-files}/lexaloffle-pico8.png";
};
in [pico-8-bin-wrapped pico8DesktopItem];
};
}