Add modular configurations for the four GTK applications

This commit is contained in:
2026-01-23 13:38:51 -05:00
parent cf87988f6c
commit 53c3ce281b
7 changed files with 106 additions and 26 deletions

View File

@@ -1,2 +0,0 @@
{ pkgs, cargo_nix }:
cargo_nix.workspaceMembers.cyberpunk-splash.build

32
dashboard/default.nix Normal file
View File

@@ -0,0 +1,32 @@
{ pkgs }:
let
cargoOverrides =
pkgs:
pkgs.buildRustCrate.override {
defaultCrateOverrides = pkgs.defaultCrateOverrides // {
libadwaita-sys = attrs: {
nativeBuildInputs = [
pkgs.pkg-config
pkgs.libadwaita
];
};
dashboard = attrs: {
nativeBuildInputs = [
pkgs.pkg-config
pkgs.wrapGAppsHook4
];
postInstall = ''
ls -l
install -Dt $out/share/applications resources/dashboard.desktop
'';
};
};
};
cargo_nix = pkgs.callPackage ../Cargo.nix {
nixpkgs = pkgs;
buildRustCrateForPkgs = cargoOverrides;
};
in
cargo_nix.workspaceMembers.dashboard.build

View File

@@ -1,3 +1,5 @@
use std::{fs, process::Command};
fn main() {
glib_build_tools::compile_resources(
&["resources"],

View File

@@ -0,0 +1,37 @@
{ pkgs }:
let
cargoOverrides =
pkgs:
pkgs.buildRustCrate.override {
defaultCrateOverrides = pkgs.defaultCrateOverrides // {
libadwaita-sys = attrs: {
nativeBuildInputs = [
pkgs.pkg-config
pkgs.libadwaita
];
};
fitnesstrax = attrs: {
nativeBuildInputs = [
pkgs.pkg-config
pkgs.wrapGAppsHook4
];
postInstall = ''
install -Dt $out/share/applications resources/fitnesstrax.desktop
install -Dt $out/gsettings-schemas/${attrs.crateName}-${attrs.version}/glib-2.0/schemas resources/com.luminescent-dreams.${attrs.crateName}.gschema.xml
glib-compile-schemas $out/gsettings-schemas/${attrs.crateName}-${attrs.version}/glib-2.0/schemas
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : $out/gsettings-schemas/${attrs.crateName}-${attrs.version}
)
'';
};
};
};
cargo_nix = pkgs.callPackage ../../Cargo.nix {
nixpkgs = pkgs;
buildRustCrateForPkgs = cargoOverrides;
};
in
cargo_nix.workspaceMembers.fitnesstrax.build

View File

@@ -1,14 +0,0 @@
{ gtkNativeInputs }:
attrs: {
nativeBuildInputs = gtkNativeInputs;
postInstall = ''
install -Dt $out/share/applications resources/fitnesstrax.desktop
install -Dt $out/gsettings-schemas/${attrs.crateName}-${attrs.version}/glib-2.0/schemas resources/com.luminescent-dreams.fitnesstrax.gschema.xml
glib-compile-schemas $out/gsettings-schemas/${attrs.crateName}-${attrs.version}/glib-2.0/schemas
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : $out/gsettings-schemas/${attrs.crateName}-${attrs.version}
)
'';
}

View File

@@ -6,11 +6,18 @@
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
outputs =
{
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
in {
in
{
devShell = pkgs.mkShell {
name = "luminescent-dreams-shell";
@@ -27,6 +34,7 @@
sqlite
go-task
rustup
nixfmt
llvmPackages.lld # Add the lld linker
];
@@ -36,11 +44,28 @@
'';
};
packages = let
cargo_nix = pkgs.callPackage ./Cargo.nix { inherit nixpkgs; };
cyberpunk-splash = import ./cyberpunk-splash { inherit pkgs cargo_nix; };
in {
cyberpunk-splash = cyberpunk-splash;
};
});
packages =
let
cargo_nix = pkgs.callPackage ./Cargo.nix {
inherit nixpkgs;
};
in
rec {
cyberpunk-splash = cargo_nix.workspaceMembers.cyberpunk-splash.build;
dashboard = import ./dashboard { inherit pkgs; };
fitnesstrax = import ./fitnesstrax/app { inherit pkgs; };
l10n-db = cargo_nix.workspaceMembers.l10n-db.build;
default = pkgs.symlinkJoin {
name = "luminescent-dreams-apps";
paths = [
cyberpunk-splash
dashboard
fitnesstrax
l10n-db
];
};
};
}
);
}