Repository navigation
Expand file tree
/
Copy pathflake.nix
More file actions
84 lines (78 loc) · 2.62 KB
/
Copy pathflake.nix
File metadata and controls
84 lines (78 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
{
description = "Development environment for I2P Portal App";
inputs = {
nixpkgs.url = "github:Nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
android_sdk.accept_license = true;
};
};
androidSdk = pkgs.androidenv.composeAndroidPackages {
buildToolsVersions = [ "34.0.0" "35.0.0" ];
platformVersions = [ "34" "35" ];
abiVersions = [ "armeabi-v7a" "arm64-v8a" "x86_64" ];
includeNDK = true;
ndkVersions = [ "26.1.10909125" ];
useGoogleAPIs = true;
useGoogleTVAddOns = false;
includeEmulator = true;
includeSystemImages = true;
systemImageTypes = [ "google_apis" "google_apis_playstore" ];
};
in
{
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
androidSdk.androidsdk
claude-code
# fyne
gh
go
gradle
jdk17
libglvnd
libx11
libxcb
libxcursor
libxi
libxinerama
libxkbcommon
libxrandr
libxxf86vm
mesa
pkg-config
vscode
vulkan-headers
vulkan-loader
wayland
wayland-protocols
];
shellHook = ''
# Local npm prefix to avoid sudo
export NPM_CONFIG_PREFIX="$PWD/.npm-global"
export PATH="$NPM_CONFIG_PREFIX/bin:$PATH"
# Android Environment
export ANDROID_HOME="${androidSdk.androidsdk}/libexec/android-sdk"
export ANDROID_SDK_ROOT="${androidSdk.androidsdk}/libexec/android-sdk"
export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.1.10909125"
export ANDROID_AVD_HOME="$HOME/.config/.android/avd"
export JAVA_HOME="${pkgs.jdk17.home}"
# OpenGL / Skiko (Compose Desktop) — NixOS doesn't put libGL on the
# default library path, so set it explicitly from the mesa package.
export LD_LIBRARY_PATH="${pkgs.mesa}/lib:${pkgs.libglvnd}/lib:${pkgs.vulkan-loader}/lib:$LD_LIBRARY_PATH"
# Personal environment for Claude Code
export CLAUDE_CONFIG_DIR=~/.claude-personal
# Prompt
export PS1="\[\e[1;32m\][nix-shell:\w]$\[\e[m\] "
'';
};
}
);
}