big refactor

This commit is contained in:
Asaki Yuki 2026-04-09 10:36:32 +07:00
commit 76d68230f6
81 changed files with 3065 additions and 0 deletions

27
packages/bun.nix Executable file
View file

@ -0,0 +1,27 @@
{ pkgs, ... }:
pkgs.stdenv.mkDerivation rec {
pname = "bun";
version = "1.3.10";
src = pkgs.fetchzip {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64-baseline.zip";
hash = "sha256-ZWTs4ApH0BsATxrE1DSuqCETIrNZZxdG8xtN0NinNBw=";
};
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
cp bun $out/bin/
chmod +x $out/bin/bun
'';
meta = with pkgs.lib; {
description = "Incredibly fast JavaScript runtime, bundler, transpiler and package manager all in one";
homepage = "https://bun.sh";
license = with licenses; [
mit
lgpl21Only
];
};
}

View file

@ -0,0 +1,48 @@
{ pkgs, ... }:
let
RELEASE_VERSION = "20260208";
PACKAGE_VERSION = "0.1.5";
in
pkgs.stdenv.mkDerivation rec {
pname = "cage-xtmapper";
version = PACKAGE_VERSION;
src = pkgs.fetchurl {
url = "https://github.com/Xtr126/cage-xtmapper/releases/download/v${RELEASE_VERSION}/cage-xtmapper-v${PACKAGE_VERSION}.tar";
hash = "sha256-ZmdltOQInGbCBpf/e8D2sB9Rjt4wqd8wwuSFvryHfFA=";
};
nativeBuildInputs = [ pkgs.autoPatchelfHook ];
buildInputs = with pkgs; [
wayland
libxkbcommon
pixman
libdrm
libGL
mesa
vulkan-loader
udev
seatd
libxcb-render-util
];
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
tar xvf $src
cp usr/local/bin/cage_xtmapper $out/bin/
cp usr/local/bin/cage_xtmapper.sh $out/bin/
chmod +x $out/bin/cage_xtmapper
chmod +x $out/bin/cage_xtmapper.sh
'';
meta = with pkgs.lib; {
description = "cage-xtmapper input mapping tool";
homepage = "https://github.com/Xtr126/cage-xtmapper";
license = licenses.mit;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,48 @@
{ pkgs, ... }:
let
RELEASE_VERSION = "20260208";
PACKAGE_VERSION = "0.2.0";
in
pkgs.stdenv.mkDerivation rec {
pname = "cage-xtmapper";
version = PACKAGE_VERSION;
src = pkgs.fetchurl {
url = "https://github.com/Xtr126/cage-xtmapper/releases/download/v${RELEASE_VERSION}/cage-xtmapper-v${PACKAGE_VERSION}.tar";
hash = "sha256-F1C3KnTzTO1vEouixqO1xnsGmufRyAk+BiRlypNq4kQ=";
};
nativeBuildInputs = [ pkgs.autoPatchelfHook ];
buildInputs = with pkgs; [
wayland
libxkbcommon
pixman
libdrm
libGL
mesa
vulkan-loader
udev
seatd
libxcb-render-util
];
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
tar xvf $src
cp usr/local/bin/cage_xtmapper $out/bin/
cp usr/local/bin/cage_xtmapper.sh $out/bin/
chmod +x $out/bin/cage_xtmapper
chmod +x $out/bin/cage_xtmapper.sh
'';
meta = with pkgs.lib; {
description = "cage-xtmapper input mapping tool";
homepage = "https://github.com/Xtr126/cage-xtmapper";
license = licenses.mit;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,16 @@
{ lib, pkgs, ... }:
pkgs.stdenv.mkDerivation {
pname = "catppuccin-obs";
version = "main";
src = pkgs.fetchzip {
url = "https://static.asakiyuki.com/nixos/catppuccin-obs.zip";
sha256 = "sha256-Uk4a0HKaeyQilgBiPsuAWQubk1yZdyirNcfhYJEL+lQ=";
};
buildCommand = ''
mkdir -p $out
cp -r $src/themes/* $out/
'';
}

View file

@ -0,0 +1,31 @@
{
cursors ? "aemeath",
size ? 48,
}:
let
_b = name: url: hash: { inherit name url hash; };
_q = name: hash: { ${name} = _b name "https://static.asakiyuki.com/cursors/linux/${name}.tar.gz" hash; };
cursors-data = (
_q "castorice" "sha256-nqAC+Itr+TXLGG8zYDBoBve+MeRckds5BM23DrsCTMM="
// _q "aemeath" "sha256-0eEsUks5MwW4g5Xau24SgchX+LD9Ra3azAH0KL9JzQw="
// _q "elysia" "sha256-mjDHklWrX5Pp/vejRQiMk0VA6afY04HXGyGD0PcopdI="
// _q "cartethyia" "sha256-jYIDoX+rfUjw6LXrqE4y8j5IL0vByrrRkgRuz08Zy6U="
).${cursors};
in
{ pkgs, ... }:
{
gtk.enable = true;
x11.enable = true;
name = cursors-data.name;
size = size;
package = pkgs.runCommand "moveUp" { } ''
mkdir -p $out/share/icons
ln -s ${
pkgs.fetchzip {
url = cursors-data.url;
hash = cursors-data.hash;
}
} $out/share/icons/${cursors-data.name}
'';
}

7
packages/default.nix Normal file
View file

@ -0,0 +1,7 @@
{ ... }@inputs:
{
bun = import ./bun.nix;
cage-xtmapper = { version ? "0.2.0" }: import ./cage-xtmapper-${version}.nix;
catppuccin-obs = import ./catppuccin-obs.nix;
cursors = { name ? "aemeath", size ? 48 }: (import ./custom-cursors.nix { cursors = name; size = size; });
}