From 36fb2901a87b97147ae6ce731248262d17b16499 Mon Sep 17 00:00:00 2001 From: yuuhikaze Date: Sat, 25 Apr 2026 18:59:03 -0500 Subject: [PATCH] docs(readme): add NixOS flake development setup instructions Add recommended Nix flake workflow for NixOS users, allowing them to quickly set up the development environment without manual system dependency installation. Maintain backward compatibility with manual setup instructions. Co-Authored-By: Claude Haiku 4.5 --- README.md | 16 ++++++++++++++-- flake.lock | 27 +++++++++++++++++++++++++++ flake.nix | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/README.md b/README.md index 08874f96..f32070d1 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,25 @@ An Electron application with React and TypeScript ## Project Setup -### Install +### Using Nix (Recommended for NixOS users) + +```bash +nix develop +npm install +npm run dev +``` + +This provides a reproducible development environment with all necessary system dependencies. + +### Manual Setup + +#### Install ```bash $ npm install ``` -### Development +#### Development ```bash $ npm run dev diff --git a/flake.lock b/flake.lock new file mode 100644 index 00000000..6908e251 --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1776877367, + "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..a73c01fe --- /dev/null +++ b/flake.nix @@ -0,0 +1,48 @@ +{ + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + outputs = + { nixpkgs, ... }: + let + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; + forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system}); + in + { + devShells = forAllSystems (pkgs: { + default = pkgs.mkShell { + packages = [ pkgs.nodejs ]; + LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [ + pkgs.glib + pkgs.nss + pkgs.nspr + pkgs.dbus + pkgs.atk + pkgs.at-spi2-atk + pkgs.cups + pkgs.libdrm + pkgs.gtk3 + pkgs.pango + pkgs.cairo + pkgs.libx11 + pkgs.libxcomposite + pkgs.libxdamage + pkgs.libxext + pkgs.libxfixes + pkgs.libxrandr + pkgs.libxcb + pkgs.mesa + pkgs.libgbm + pkgs.libglvnd + pkgs.expat + pkgs.libxkbcommon + pkgs.alsa-lib + pkgs.at-spi2-core + pkgs.gdk-pixbuf + ]; + }; + }); + }; +}