diff options
| author | Petri Hienonen <petri.hienonen@gmail.com> | 2025-10-20 08:17:08 +0300 |
|---|---|---|
| committer | Petri Hienonen <petri.hienonen@gmail.com> | 2025-10-20 08:17:08 +0300 |
| commit | d001b25aadeb8dd583cbc3b6c4c26ba5c0055663 (patch) | |
| tree | 858b3c825be85d27d7368f18681cca4cabb3e11d | |
| parent | 384c9986b867caca5a58329b364bf6c82ea29173 (diff) | |
| download | copper-master.tar.zst | |
| -rw-r--r-- | flake.lock | 4 | ||||
| -rw-r--r-- | flake.nix | 89 |
2 files changed, 49 insertions, 44 deletions
@@ -22,13 +22,13 @@ "locked": { "lastModified": 1760878510, "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", - "owner": "NixOS", + "owner": "nixos", "repo": "nixpkgs", "rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -1,8 +1,8 @@ { - description = "Minimal Gio (gioui.org) development environment with Go support"; + description = "GioUI development environment"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; @@ -11,57 +11,62 @@ self, nixpkgs, flake-utils, - ... }: flake-utils.lib.eachDefaultSystem ( system: let - pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; - }; - - gioDeps = with pkgs; [ - go - gopls - git - pkg-config - # X11 + Wayland deps - xorg.libX11 - xorg.libXcursor - xorg.libXrandr - xorg.libXinerama - xorg.libXi - xorg.libXext - libGL - wayland - wayland-protocols - libxkbcommon - # Text rendering - cairo - pango - harfbuzz - freetype - fontconfig - ]; + pkgs = nixpkgs.legacyPackages.${system}; in { devShells.default = pkgs.mkShell { - name = "gio-dev"; - packages = gioDeps; + packages = with pkgs; [ + # Build tools + pkg-config + gcc + go + + # Core graphics and windowing + libGL + wayland + libxkbcommon + + # X11 support (optional but commonly used) + xorg.libX11 + xorg.libXcursor + xorg.libXrandr + xorg.libXi + xorg.libXfixes + xorg.libxcb + + # Font rendering + fontconfig + freetype + + # Vulkan support (optional) + vulkan-headers + vulkan-loader + ]; shellHook = '' - export CGO_ENABLED=1 - export PKG_CONFIG_PATH=${pkgs.lib.makeSearchPath "lib/pkgconfig" gioDeps} - export GIO_USE_WAYLAND=1 - echo "✅ Gio development shell ready." - echo "Run 'go run .' to start your app." + echo "GioUI development environment ready!" + echo "Go version: $(go version)" ''; - }; - apps.default = { - type = "app"; - program = "${pkgs.go}/bin/go run ."; + LD_LIBRARY_PATH = + with pkgs; + lib.makeLibraryPath [ + libGL + wayland + libxkbcommon + xorg.libX11 + xorg.libXcursor + xorg.libXrandr + xorg.libXi + xorg.libXfixes + fontconfig + freetype + vulkan-loader + ]; }; } ); |
