mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2026-01-10 03:32:54 +00:00
update system
This commit is contained in:
108
overlays/asztal/default.nix
Normal file
108
overlays/asztal/default.nix
Normal file
@@ -0,0 +1,108 @@
|
||||
{
|
||||
writeShellScript,
|
||||
ags,
|
||||
matugen,
|
||||
hyprland,
|
||||
stdenv,
|
||||
cage,
|
||||
swww,
|
||||
esbuild,
|
||||
dart-sass,
|
||||
fd,
|
||||
fzf,
|
||||
brightnessctl,
|
||||
gbmonctl,
|
||||
kitty,
|
||||
accountsservice,
|
||||
slurp,
|
||||
wf-recorder,
|
||||
wl-clipboard,
|
||||
wayshot,
|
||||
swappy,
|
||||
hyprpicker,
|
||||
pavucontrol,
|
||||
networkmanager,
|
||||
gtk3,
|
||||
which,
|
||||
}:
|
||||
let
|
||||
name = "asztal";
|
||||
|
||||
agsPackage = ags.override { extraPackages = [ accountsservice ]; };
|
||||
|
||||
dependencies = [
|
||||
which
|
||||
dart-sass
|
||||
fd
|
||||
fzf
|
||||
brightnessctl
|
||||
kitty
|
||||
gbmonctl
|
||||
swww
|
||||
matugen
|
||||
hyprland
|
||||
slurp
|
||||
wf-recorder
|
||||
wl-clipboard
|
||||
wayshot
|
||||
swappy
|
||||
hyprpicker
|
||||
pavucontrol
|
||||
networkmanager
|
||||
gtk3
|
||||
];
|
||||
|
||||
addBins = list: builtins.concatStringsSep ":" (builtins.map (p: "${p}/bin") list);
|
||||
|
||||
greeter = writeShellScript "greeter" ''
|
||||
export PATH=$PATH:${addBins dependencies}
|
||||
${cage}/bin/cage -ds -m last ${agsPackage}/bin/ags -- -c ${config}/greeter.js
|
||||
'';
|
||||
|
||||
desktop = writeShellScript name ''
|
||||
export PATH=$PATH:${addBins dependencies}
|
||||
${agsPackage}/bin/ags -b ${name} -c ${config}/config.js $@
|
||||
'';
|
||||
|
||||
config = stdenv.mkDerivation {
|
||||
inherit name;
|
||||
src = ./.;
|
||||
|
||||
buildPhase = ''
|
||||
${esbuild}/bin/esbuild \
|
||||
--bundle ./main.ts \
|
||||
--outfile=main.js \
|
||||
--format=esm \
|
||||
--external:resource://\* \
|
||||
--external:gi://\* \
|
||||
|
||||
${esbuild}/bin/esbuild \
|
||||
--bundle ./greeter/greeter.ts \
|
||||
--outfile=greeter.js \
|
||||
--format=esm \
|
||||
--external:resource://\* \
|
||||
--external:gi://\* \
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r assets $out
|
||||
cp -r style $out
|
||||
cp -r greeter $out
|
||||
cp -r widget $out
|
||||
cp -f main.js $out/config.js
|
||||
cp -f greeter.js $out/greeter.js
|
||||
'';
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit name;
|
||||
src = config;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -r . $out
|
||||
cp ${desktop} $out/bin/${name}
|
||||
cp ${greeter} $out/bin/greeter
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user