Migrate to clean package-only structure
- Simplified flake.nix to focus only on packaging Cursor - Removed system configuration files (archived locally) - Updated to clean, reusable flake structure - Added simple update-cursor.sh script - Updated documentation for new structure This migration makes the flake purely focused on providing the Cursor package.
This commit is contained in:
@@ -1,95 +1,58 @@
|
||||
{
|
||||
description = "NixOS configuration with Cursor AppImage";
|
||||
description = "Cursor AppImage package flake";
|
||||
|
||||
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;
|
||||
}
|
||||
];
|
||||
outputs = { self, nixpkgs }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
|
||||
buildCursor = { version, url, sha256 }:
|
||||
let
|
||||
unwrapped = pkgs.appimageTools.wrapType2 {
|
||||
pname = "cursor";
|
||||
inherit version;
|
||||
src = pkgs.fetchurl { inherit url sha256; };
|
||||
|
||||
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 "${version}"
|
||||
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" "$@"
|
||||
'';
|
||||
in
|
||||
{
|
||||
packages.${system} = {
|
||||
default = self.packages.${system}.cursor;
|
||||
cursor = buildCursor {
|
||||
version = "1.5.5";
|
||||
url = "https://downloads.cursor.com/production/823f58d4f60b795a6aefb9955933f3a2f0331d7b/linux/x64/Cursor-1.5.5-x86_64.AppImage";
|
||||
sha256 = "1jqp2k3anlwnd6gb7zi6ax1m7hg0kxncfpcl0s3wwdhfq10w1bvs";
|
||||
};
|
||||
};
|
||||
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;
|
||||
}
|
||||
];
|
||||
|
||||
# Overlay for easy integration into other flakes
|
||||
overlays.default = final: prev: {
|
||||
cursor = self.packages.${system}.cursor;
|
||||
};
|
||||
};
|
||||
|
||||
# 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" "$@"
|
||||
'';
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user