Files
cursor-nixos-flake/flake.nix
T
2025-08-21 15:36:11 +10:00

95 lines
2.8 KiB
Nix

{
description = "NixOS configuration with Cursor AppImage";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager }: {
nixosConfigurations = {
cursor-system = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.user = import ./home.nix;
}
];
};
test-system = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./test-configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.user = import ./test-home.nix;
}
];
};
};
# Expose the Cursor package directly (build it explicitly instead of relying on list indices)
packages.x86_64-linux.cursor =
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
cursorVersion = "1.5.1";
unwrapped = pkgs.appimageTools.wrapType2 {
pname = "cursor";
version = cursorVersion;
src = pkgs.fetchurl {
url = "https://downloads.cursor.com/production/99e3b1b4d8796e167e72823eadc66ac2d51fd40c/linux/x64/Cursor-1.5.1-x86_64.AppImage";
sha256 = "0lj34g0dq561qc6h8ab8bmkp59dz0rvxbrag105pzcy7jdaxa0nn";
};
extraPkgs = p: with p; [
glib
gtk3
cairo
pango
atk
gdk-pixbuf
xorg.libX11
xorg.libXcomposite
xorg.libXcursor
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
nss
nspr
dbus
at-spi2-atk
at-spi2-core
mesa
alsa-lib
fuse
libxkbcommon
xorg.libxkbfile
];
};
in
pkgs.writeShellScriptBin "cursor" ''
#!${pkgs.bash}/bin/bash
if [[ "$1" == "--version" || "$1" == "-v" ]]; then
echo "${cursorVersion}"
exit 0
fi
export CURSOR_DISABLE_UPDATE="1"
export CURSOR_SKIP_UPDATE_CHECK="1"
export XDG_CACHE_HOME="$(mktemp -d -t cursor-xdg-cache-XXXXXX)"
export CURSOR_CACHE_DIR="$(mktemp -d -t cursor-cache-XXXXXX)"
exec "${unwrapped}/bin/cursor" "$@"
'';
};
}