flake.nix 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. {
  2. description = "Kilo Code development environment";
  3. inputs = {
  4. nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
  5. };
  6. outputs = { self, nixpkgs, ... }: let
  7. systems = [ "aarch64-darwin" "x86_64-linux" ];
  8. forAllSystems = nixpkgs.lib.genAttrs systems;
  9. mkDevShell = system: let
  10. pkgs = import nixpkgs { inherit system; };
  11. in pkgs.mkShell {
  12. name = "kilo-code";
  13. packages = with pkgs; [
  14. nodejs_20
  15. corepack_20
  16. libnotify
  17. jetbrains.idea-community
  18. jetbrains.jdk
  19. jdk21
  20. gradle
  21. unzip
  22. # Build tools for native modules
  23. pkg-config
  24. python3
  25. gcc
  26. gnumake
  27. # Libraries
  28. libsecret
  29. # X11 libraries for JetBrains IDEs and native-keymap
  30. xorg.libX11
  31. xorg.libX11.dev
  32. xorg.libXext
  33. xorg.libXi
  34. xorg.libXrender
  35. xorg.libXtst
  36. xorg.libXrandr
  37. xorg.libXinerama
  38. xorg.libXcursor
  39. xorg.libXdamage
  40. xorg.libXfixes
  41. xorg.libXcomposite
  42. xorg.libxkbfile
  43. xorg.libxkbfile.dev
  44. xorg.libxcb
  45. # Additional GUI libraries
  46. freetype
  47. fontconfig
  48. glib
  49. gtk3
  50. cairo
  51. pango
  52. gdk-pixbuf
  53. atk
  54. # JCEF dependencies
  55. nspr
  56. nss
  57. cups
  58. dbus
  59. at-spi2-atk
  60. at-spi2-core
  61. libdrm
  62. mesa
  63. expat
  64. alsa-lib
  65. pulseaudio
  66. ];
  67. # Set library path for dynamic linking
  68. shellHook = ''
  69. export DEVENV="nix"
  70. export JAVA_HOME="${pkgs.jetbrains.jdk}"
  71. export PATH="$JAVA_HOME/bin:$PATH"
  72. export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath [
  73. pkgs.xorg.libX11
  74. pkgs.xorg.libXext
  75. pkgs.xorg.libXi
  76. pkgs.xorg.libXrender
  77. pkgs.xorg.libXtst
  78. pkgs.xorg.libXrandr
  79. pkgs.xorg.libXinerama
  80. pkgs.xorg.libXcursor
  81. pkgs.xorg.libXdamage
  82. pkgs.xorg.libXfixes
  83. pkgs.xorg.libXcomposite
  84. pkgs.xorg.libxkbfile
  85. pkgs.xorg.libxcb
  86. pkgs.freetype
  87. pkgs.fontconfig
  88. pkgs.glib
  89. pkgs.gtk3
  90. pkgs.cairo
  91. pkgs.pango
  92. pkgs.gdk-pixbuf
  93. pkgs.atk
  94. pkgs.libsecret
  95. pkgs.jetbrains.jdk
  96. # JCEF-specific libraries
  97. pkgs.nspr
  98. pkgs.nss
  99. pkgs.cups
  100. pkgs.dbus
  101. pkgs.at-spi2-atk
  102. pkgs.at-spi2-core
  103. pkgs.libdrm
  104. pkgs.mesa
  105. pkgs.expat
  106. pkgs.alsa-lib
  107. pkgs.pulseaudio
  108. ]}:$LD_LIBRARY_PATH"
  109. '';
  110. };
  111. in {
  112. devShells = forAllSystems (system: {
  113. default = mkDevShell system;
  114. });
  115. };
  116. }