added modules for qFlipper, ChameleonUltraGUI, and AngryOxide
ChameleonUltraGUI and AngryOxide also had derivations written to package them
This commit is contained in:
parent
c626227f55
commit
3bc320cc6a
12 changed files with 1082 additions and 3 deletions
2
NEW_TODO
Normal file
2
NEW_TODO
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
- [ ] True using `gitHashes` argument instead of patching?
|
||||
|
||||
|
|
@ -459,6 +459,8 @@ in {
|
|||
fish.enable = true;
|
||||
|
||||
bash = {
|
||||
completion.enable = true;
|
||||
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ in {
|
|||
networkmanager.enable = true;
|
||||
firewall.allowedTCPPorts = [
|
||||
22 # sshd
|
||||
]
|
||||
];
|
||||
};
|
||||
|
||||
users = {
|
||||
|
|
@ -80,5 +80,8 @@ in {
|
|||
];
|
||||
|
||||
programs = {
|
||||
bash = {
|
||||
completion.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
home-manager = builtins.fetchTarball {
|
||||
|
|
@ -16,6 +15,10 @@ in {
|
|||
|
||||
../modules/steam.nix
|
||||
../modules/obsidian.nix
|
||||
|
||||
../modules/angryoxide.nix
|
||||
../modules/flipperzero.nix
|
||||
../modules/chameleonultragui.nix
|
||||
];
|
||||
|
||||
programs.spicetify = let
|
||||
|
|
@ -230,6 +233,8 @@ in {
|
|||
doggo
|
||||
tldr
|
||||
btop
|
||||
eza
|
||||
ripgrep
|
||||
|
||||
# TODO: once upgraded past Nix-24.07 this line won't be necessary (I think)
|
||||
# helix will support nixd by default
|
||||
|
|
@ -241,6 +246,7 @@ in {
|
|||
git-filter-repo
|
||||
brightnessctl
|
||||
acpi
|
||||
upower
|
||||
vim
|
||||
powertop
|
||||
gcc
|
||||
|
|
@ -270,6 +276,8 @@ in {
|
|||
# cause it isn't POSIX compliant, so instead Bash is my login and
|
||||
# will just exec fish (^-^)
|
||||
bash = {
|
||||
completion.enable = true;
|
||||
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
|
|
|
|||
5
hosts/modules/angryoxide.nix
Normal file
5
hosts/modules/angryoxide.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(callPackage ../packages/angryoxide {})
|
||||
];
|
||||
}
|
||||
5
hosts/modules/chameleonultragui.nix
Normal file
5
hosts/modules/chameleonultragui.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(callPackage ../packages/chameleonultragui {})
|
||||
];
|
||||
}
|
||||
6
hosts/modules/flipperzero.nix
Normal file
6
hosts/modules/flipperzero.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# flipper zero desktop app
|
||||
qflipper
|
||||
];
|
||||
}
|
||||
|
|
@ -273,6 +273,8 @@ in {
|
|||
# cause it isn't POSIX compliant, so instead Bash is my login and
|
||||
# will just exec fish (^-^)
|
||||
bash = {
|
||||
completion.enable = true;
|
||||
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
|
|
|
|||
5
hosts/packages/README
Normal file
5
hosts/packages/README
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
This directory (`hosts/packages`) contains custom package derivations, and differs
|
||||
from `hosts/modules/` which contains importable modules for my nixdots.
|
||||
|
||||
Often each package I write will have a corresponding module that simply
|
||||
calls `pkgs.callPackage` to install the derivation to the system environment.
|
||||
84
hosts/packages/angryoxide/default.nix
Normal file
84
hosts/packages/angryoxide/default.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
# shared/global properties
|
||||
angryoxide-owner = "Ragnt";
|
||||
angryoxide-pname = "AngryOxide";
|
||||
angryoxide-version = "0.8.32";
|
||||
angryoxide-meta = {
|
||||
homepage = "https://github.com/${angryoxide-owner}/${angryoxide-pname}";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = [lib.maintainers.emileclarkb];
|
||||
};
|
||||
|
||||
# "Vendored LibWifi used in AngryOxide"
|
||||
angryoxide-libwifi-src = pkgs.fetchFromGitHub {
|
||||
owner = angryoxide-owner;
|
||||
repo = "libwifi";
|
||||
# this specific revision is requested (by rev "e1352..." of AngryOxide)
|
||||
rev = "71268e1898ad88b8b5d709e186836db417b33e81";
|
||||
sha256 = "0af9y7bvr3rban6bslsd9smrvibfp1b7d4nfw7wkdxfp49kx6zyr";
|
||||
};
|
||||
|
||||
# Using `mkDerivation` not `buildRustPackage` because
|
||||
# AngryOxide uses Git submodules for a patched version of "LibWifi",
|
||||
# and these aren't moved into `/build/source/libs/` for the `buildPhase`.
|
||||
# Simply fix right? Well no I can't override `buildPhase`...
|
||||
angryoxide-src = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "${angryoxide-pname}-source";
|
||||
version = angryoxide-version;
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Ragnt";
|
||||
repo = pname;
|
||||
rev = "e1352c8aad370efa8db69d175686e4353c6002bd";
|
||||
sha256 = "07nhvy7kp7z4y0fdslv56pw7kz6idcpma42f4hyilrmazjbbjmja";
|
||||
# clone git submodules (needed for the rust workspace libs)
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
# ensure $out and /libwifi paths exist
|
||||
mkdir -p $out/libs/libwifi
|
||||
# copy only the necessary source files
|
||||
cp Cargo.toml Cargo.lock $out/
|
||||
cp -r $src/.cargo $src/assets $src/completions $src/libs $src/src $out/
|
||||
# ensure libwifi submodule is copied to the build environment
|
||||
cp -r ${angryoxide-libwifi-src}/. $out/libs/libwifi/
|
||||
'';
|
||||
|
||||
installPhase = let
|
||||
# SOURCE
|
||||
completionScriptBash = "completions/bash_angry_oxide_completions";
|
||||
# DESTINATION
|
||||
completionDirBash = "$out/share/bash-completion/completions";
|
||||
in ''
|
||||
# mkdir -p $out/bin
|
||||
#mkdir $out/bin
|
||||
#cp target/release/angryoxide $out/bin
|
||||
|
||||
# add bash completions
|
||||
#mkdir -p ${completionDirBash}
|
||||
#cp ${completionScriptBash} ${completionDirBash}/angryoxide
|
||||
'';
|
||||
|
||||
meta =
|
||||
{
|
||||
description = "AngryOxide's source files isolated by (@emileclarkb) into a separate Nix derivation.";
|
||||
}
|
||||
// angryoxide-meta;
|
||||
};
|
||||
in
|
||||
pkgs.rustPackages.rustPlatform.buildRustPackage {
|
||||
pname = angryoxide-pname;
|
||||
version = angryoxide-version;
|
||||
src = angryoxide-src;
|
||||
cargoHash = "sha256-Dxo1iLxl+wn2qAZh3+bf2n00MPE2LlG5boB6iJC/CDA=";
|
||||
meta =
|
||||
{
|
||||
description = "802.11 Attack Tool";
|
||||
}
|
||||
// angryoxide-meta;
|
||||
}
|
||||
483
hosts/packages/chameleonultragui/default.nix
Normal file
483
hosts/packages/chameleonultragui/default.nix
Normal file
|
|
@ -0,0 +1,483 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
makeDesktopItem,
|
||||
copyDesktopItems,
|
||||
...
|
||||
}:
|
||||
# ChameleonUltraGUI requires flutter sdk >3.0.0
|
||||
pkgs.flutter324.buildFlutterApplication
|
||||
rec {
|
||||
pname = "ChameleonUltraGUI";
|
||||
version = "1.1.2";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "GameTec-live";
|
||||
repo = "ChameleonUltraGUI";
|
||||
sha256 = "1mb6wkqk6vaamrhflfhsgp5gvqiw2qkvmy7j65abcx7sn5990i27";
|
||||
rev = "11424abaccb4a010fcbeab9799ae8f675d8afe99";
|
||||
};
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = pname;
|
||||
desktopName = pname;
|
||||
genericName = pname;
|
||||
|
||||
icon = "chameleonultragui";
|
||||
comment = meta.description;
|
||||
|
||||
exec = "chameleonultragui %u";
|
||||
type = "Application";
|
||||
terminal = false;
|
||||
|
||||
categories = ["Utility"];
|
||||
keywords = [
|
||||
"Flutter"
|
||||
"share"
|
||||
"files"
|
||||
"chameleon"
|
||||
"chameleonultra"
|
||||
"chameleonlite"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
# path to application within fetched sources
|
||||
sourceRoot = "source/chameleonultragui";
|
||||
|
||||
buildInputs = [
|
||||
pkgs.imagemagick # creating mipmaps for share/icons
|
||||
pkgs.yj # converting pubspec.lock yaml->json
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
buildArguments = ["--release"];
|
||||
|
||||
# source files compile with Flutter >3.29.0 but this
|
||||
# derivation uses 3.24.0 (so we patch for compatability)
|
||||
postPatch = let
|
||||
argbPatch = ''
|
||||
--- general.dart.old 2025-05-11 15:59:51.812132078 +1000
|
||||
+++ general.dart 2025-05-11 15:58:14.755856407 +1000
|
||||
@@ -211,7 +211,7 @@
|
||||
}
|
||||
|
||||
String colorToHex(Color color) {
|
||||
- return '#\''${color.toARGB32().toRadixString(16).padLeft(8, '0').substring(2)}';
|
||||
+ return '#\''${color.value.toRadixString(16).padLeft(8, '0').substring(2)}';
|
||||
}
|
||||
|
||||
Color hexToColor(String hex) {
|
||||
'';
|
||||
in ''
|
||||
# patch source files using Color.toARGB32 method (not defined in Flutter 3.24)
|
||||
argbPatch="${argbPatch}"
|
||||
patch lib/helpers/general.dart <(echo "$argbPatch")
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# create mipmaps of desktop logo
|
||||
logoOriginal="assets/logo-color-desktop.png"
|
||||
for i in 16 32 64 128 256 512; do
|
||||
res="$i"x"$i"
|
||||
d="$out"/share/icons/hicolor/"$res"/apps
|
||||
mkdir -p $d
|
||||
${pkgs.imagemagick}/bin/magick $logoOriginal -resize $res $d/chameleonultragui.png
|
||||
done
|
||||
'';
|
||||
|
||||
# Nix doesn't natively have a fromYAML function (so I made this instead)
|
||||
pubspecLock = let
|
||||
appRoot = "${src}/chameleonultragui";
|
||||
|
||||
# when generating patch files use -u flag and then
|
||||
# make sure to escape all " characters for Nix string
|
||||
pubspecLockPatch = ''
|
||||
--- pubspec.lock.bak2025-05-10 15:42:44.287730979 +1000
|
||||
+++ pubspec.lock2025-05-10 15:41:23.778480048 +1000
|
||||
@@ -5,18 +5,23 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _fe_analyzer_shared
|
||||
- sha256: dc27559385e905ad30838356c5f5d574014ba39872d732111cd07ac0beff4c57
|
||||
+ sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"80.0.0\"
|
||||
+ version: \"72.0.0\"
|
||||
+ _macros:
|
||||
+ dependency: transitive
|
||||
+ description: dart
|
||||
+ source: sdk
|
||||
+ version: \"0.3.2\"
|
||||
analyzer:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: analyzer
|
||||
- sha256: \"192d1c5b944e7e53b24b5586db760db934b177d4147c42fbca8c8c5f1eb8d11e\"
|
||||
+ sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"7.3.0\"
|
||||
+ version: \"6.7.0\"
|
||||
archive:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -37,26 +42,26 @@
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
name: async
|
||||
- sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
|
||||
+ sha256: \"947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"2.12.0\"
|
||||
+ version: \"2.11.0\"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
- sha256: \"8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea\"
|
||||
+ sha256: \"6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"2.1.2\"
|
||||
+ version: \"2.1.1\"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
- sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
|
||||
+ sha256: \"04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.4.0\"
|
||||
+ version: \"1.3.0\"
|
||||
checked_yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -77,18 +82,18 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
- sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
|
||||
+ sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.1.2\"
|
||||
+ version: \"1.1.1\"
|
||||
collection:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
name: collection
|
||||
- sha256: \"2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76\"
|
||||
+ sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.19.1\"
|
||||
+ version: \"1.18.0\"
|
||||
convert:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -157,10 +162,10 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
- sha256: \"6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc\"
|
||||
+ sha256: \"511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.3.2\"
|
||||
+ version: \"1.3.1\"
|
||||
ffi:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -196,11 +201,10 @@
|
||||
file_saver:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
- path: \".\"
|
||||
- ref: fix-windows
|
||||
- resolved-ref: \"3038d74d5560dcca528423fffd745abf31eb88ae\"
|
||||
- url: \"https://github.com/Foxushka/file_saver.git\"
|
||||
- source: git
|
||||
+ name: file_saver
|
||||
+ sha256: \"017a127de686af2d2fbbd64afea97052d95f2a0f87d19d25b87e097407bf9c1e\"
|
||||
+ url: \"https://pub.dev\"
|
||||
+ source: hosted
|
||||
version: \"0.2.14\"
|
||||
fixnum:
|
||||
dependency: transitive
|
||||
@@ -234,11 +238,10 @@
|
||||
flutter_libserialport:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
- path: \".\"
|
||||
- ref: main
|
||||
- resolved-ref: \"6740aae075505a220a98492910b090824efc7910\"
|
||||
- url: \"https://github.com/NeariX67/flutter_libserialport.git\"
|
||||
- source: git
|
||||
+ name: flutter_libserialport
|
||||
+ sha256: d193b5ac819db6540d20cc8d20d9f5ec9e3396edb4d2c4a23c97863fa9132336
|
||||
+ url: \"https://pub.dev\"
|
||||
+ source: hosted
|
||||
version: \"0.5.0\"
|
||||
flutter_lints:
|
||||
dependency: \"direct dev\"
|
||||
@@ -347,18 +350,18 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
- sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
|
||||
+ sha256: \"3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"10.0.8\"
|
||||
+ version: \"10.0.5\"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
- sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
||||
+ sha256: \"932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"3.0.9\"
|
||||
+ version: \"3.0.5\"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -399,14 +402,22 @@
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
version: \"1.3.0\"
|
||||
+ macros:
|
||||
+ dependency: transitive
|
||||
+ description:
|
||||
+ name: macros
|
||||
+ sha256: \"0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536\"
|
||||
+ url: \"https://pub.dev\"
|
||||
+ source: hosted
|
||||
+ version: \"0.1.2-main.4\"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
- sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
|
||||
+ sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"0.12.17\"
|
||||
+ version: \"0.12.16+1\"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -419,10 +430,10 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
- sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
|
||||
+ sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.16.0\"
|
||||
+ version: \"1.15.0\"
|
||||
mobile_scanner:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -467,10 +478,10 @@
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
name: path
|
||||
- sha256: \"75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5\"
|
||||
+ sha256: \"087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.9.1\"
|
||||
+ version: \"1.9.0\"
|
||||
path_provider:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -723,15 +734,15 @@
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
- version: \"0.0.0\"
|
||||
+ version: \"0.0.99\"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
- sha256: \"254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c\"
|
||||
+ sha256: \"53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.10.1\"
|
||||
+ version: \"1.10.0\"
|
||||
sprintf:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -744,42 +755,42 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
- sha256: \"8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1\"
|
||||
+ sha256: \"73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.12.1\"
|
||||
+ version: \"1.11.1\"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
- sha256: \"969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d\"
|
||||
+ sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"2.1.4\"
|
||||
+ version: \"2.1.2\"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
- sha256: \"921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43\"
|
||||
+ sha256: \"556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.4.1\"
|
||||
+ version: \"1.2.0\"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
- sha256: \"7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e\"
|
||||
+ sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.2.2\"
|
||||
+ version: \"1.2.1\"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
- sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
||||
+ sha256: \"5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"0.7.4\"
|
||||
+ version: \"0.7.2\"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -855,12 +866,11 @@
|
||||
usb_serial:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
- path: \".\"
|
||||
- ref: fix-usbserial
|
||||
- resolved-ref: \"9fcbacc92bec19ea02d33a40d9f39e45d19cf637\"
|
||||
- url: \"https://github.com/Foxushka/usbserial.git\"
|
||||
- source: git
|
||||
- version: \"0.5.1\"
|
||||
+ name: usb_serial
|
||||
+ sha256: a605a600e34e7f28d4e80851ca3999ef747e42e406138887b8a88b8c382a8b07
|
||||
+ url: \"https://pub.dev\"
|
||||
+ source: hosted
|
||||
+ version: \"0.5.2\"
|
||||
uuid:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -881,10 +891,10 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
- sha256: \"0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14\"
|
||||
+ sha256: \"5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"14.3.1\"
|
||||
+ version: \"14.2.5\"
|
||||
wakelock_plus:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -958,5 +968,5 @@
|
||||
source: hosted
|
||||
version: \"2.2.1\"
|
||||
sdks:
|
||||
- dart: \">=3.7.0-0 <4.0.0\"
|
||||
+ dart: \">=3.5.0 <4.0.0\"
|
||||
flutter: \">=3.24.0\"
|
||||
'';
|
||||
in
|
||||
builtins.fromJSON
|
||||
(
|
||||
builtins.readFile (pkgs.runCommand "${pname}-buildenv" {
|
||||
inputs = [
|
||||
# DEBUG (both lines commented)
|
||||
#pkgs.flutter324 # ChameleonUltraGUI requires sdk >3.0.0
|
||||
#pkgs.yj
|
||||
];
|
||||
} ''
|
||||
# copy source files to a temporary path to rebuild the lockfile
|
||||
buildPath=$(mktemp -d)
|
||||
cp -r "${appRoot}/." "$buildPath/"
|
||||
|
||||
outPubspecLock="$buildPath/pubspec.lock"
|
||||
# MUST define variables to use multiline Nix string in bash scripting
|
||||
pubspecLockPatch="${pubspecLockPatch}"
|
||||
|
||||
# apply the pubspec.yaml patch and regenerate lock file
|
||||
# (create a temporary home directory for flutter to play in)
|
||||
#(cd $buildPath && chmod -R +w . \
|
||||
# && patch ./pubspec.yaml <(echo "$pubspecYamlPatch") \
|
||||
# && export HOME=$(mktemp -d) \
|
||||
# && flutter --disable-analytics \
|
||||
# && flutter config --no-cli-animations \
|
||||
# && ${pkgs.flutter}/bin/flutter pub get)
|
||||
|
||||
# patch the lockfile
|
||||
chmod +w $outPubspecLock
|
||||
patch $outPubspecLock <(echo "$pubspecLockPatch")
|
||||
|
||||
# convert new lockfile to json and return
|
||||
${pkgs.yj}/bin/yj < "$buildPath/pubspec.lock" > $out
|
||||
'')
|
||||
);
|
||||
|
||||
# TODO: try this instead of patching
|
||||
# gitHashes = {
|
||||
# dartssh2 = "sha256-2pypKwurziwGLZYuGaxlS2lzN3UvJp3bRTvvYYxEqRI=";
|
||||
# hotkey_manager_linux = "sha256-aO0h94YZvgV/ggVupNw8GjyZsnXrq3qTHRDtuhNv3oI=";
|
||||
# system_info2 = "sha256-fly7E2vG+bQ/+QGzXk+DYba73RZccltdW2LpZGDKX60=";
|
||||
# tray_menu = "sha256-riiAiBEms+9ARog8i+MR1fto1Yqx+gwbBWyNbNq6VTM=";
|
||||
# window_size = "sha256-71PqQzf+qY23hTJvcm0Oye8tng3Asr42E2vfF1nBmVA=";
|
||||
# xterm = "sha256-h8vIonTPUVnNqZPk/A4ZV7EYCMyM0rrErL9ZOMe4ZBE=";
|
||||
# };
|
||||
|
||||
meta = with lib; {
|
||||
description = "A GUI for the Chameleon Ultra written in Flutter for crossplatform";
|
||||
homepage = "https://github.com/GameTec-live/ChameleonUltraGUI";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [maintainers.emileclarkb];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
# find /nix/store -type f -print 2>/dev/null | rg "share/applications"
|
||||
# NOTE: this command will show that there the desktop file was generated
|
||||
# at some point. just not anymore??
|
||||
# NOTE2: read over ~/workshop/packaging/nixpkgs-24.11/pkgs/build-support/make-desktopitem/default.nix
|
||||
# and see exactly how makeDesktopItem is defined!
|
||||
# perhaps the item is added to the build environment but not the output?
|
||||
# NOTE: see how it builds derivations for the desktop and makes the desktop items?
|
||||
# (every time I build it does actually make the desktop items)
|
||||
# HOWEVER I just dont think they're being copied over...
|
||||
# /nix/store/4hqs6dkxqngi6wi95dmizbvmgm7l5cf0-ChameleonUltraGUI.desktop/share/applications/ChameleonUltraGUI.desktop
|
||||
# /nix/store/869gy031lf243k0x9ir7gmrsfksipca1-ChameleonUltraGUI.desktop/share/applications/ChameleonUltraGUI.desktop
|
||||
# /nix/store/adqq7slakkhpjc4hln19jd6p22cc9ci6-ChameleonUltraGUI.desktop/share/applications/ChameleonUltraGUI.desktop
|
||||
# /nix/store/x9fa3na0is70h4ya4dbfsivk4m3mab57-ChameleonUltraGUI.desktop/share/applications/ChameleonUltraGUI.desktop
|
||||
|
||||
474
hosts/packages/chameleonultragui/default.nix.bak1
Normal file
474
hosts/packages/chameleonultragui/default.nix.bak1
Normal file
|
|
@ -0,0 +1,474 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
# ChameleonUltraGUI requires flutter sdk >3.0.0
|
||||
pkgs.flutter324.buildFlutterApplication
|
||||
(self: {
|
||||
pname = "ChameleonUltraGUI";
|
||||
version = "1.1.2";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "GameTec-live";
|
||||
repo = "ChameleonUltraGUI";
|
||||
sha256 = "1mb6wkqk6vaamrhflfhsgp5gvqiw2qkvmy7j65abcx7sn5990i27";
|
||||
rev = "11424abaccb4a010fcbeab9799ae8f675d8afe99";
|
||||
};
|
||||
|
||||
desktopItems = [
|
||||
(pkgs.makeDesktopItem {
|
||||
name = self.pname;
|
||||
desktopName = "Chameleon Ultra GUI";
|
||||
icon = self.pname;
|
||||
comment = self.meta.description;
|
||||
|
||||
exec = "chameleonultragui";
|
||||
terminal = false;
|
||||
|
||||
categories = [
|
||||
"Utility"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
# path to application within fetched sources
|
||||
sourceRoot = "source/chameleonultragui";
|
||||
|
||||
buildInputs = [
|
||||
pkgs.imagemagick # creating mipmaps for share/icons
|
||||
pkgs.yj # converting pubspec.lock yaml->json
|
||||
];
|
||||
|
||||
buildArguments = ["--release"];
|
||||
|
||||
# source files compile with Flutter >3.29.0 but this
|
||||
# derivation uses 3.24.0 (so we patch for compatability)
|
||||
postPatch = let
|
||||
argbPatch = ''
|
||||
--- general.dart.old 2025-05-11 15:59:51.812132078 +1000
|
||||
+++ general.dart 2025-05-11 15:58:14.755856407 +1000
|
||||
@@ -211,7 +211,7 @@
|
||||
}
|
||||
|
||||
String colorToHex(Color color) {
|
||||
- return '#\''${color.toARGB32().toRadixString(16).padLeft(8, '0').substring(2)}';
|
||||
+ return '#\''${color.value.toRadixString(16).padLeft(8, '0').substring(2)}';
|
||||
}
|
||||
|
||||
Color hexToColor(String hex) {
|
||||
'';
|
||||
in ''
|
||||
# patch source files using Color.toARGB32 method (not defined in Flutter 3.24)
|
||||
argbPatch="${argbPatch}"
|
||||
patch lib/helpers/general.dart <(echo "$argbPatch")
|
||||
'';
|
||||
|
||||
# installPhase = ''
|
||||
# runHook preInstall
|
||||
|
||||
# # create mipmaps of desktop logo
|
||||
# logoOriginal="assets/logo-color-desktop.png"
|
||||
# for i in 16 32 64 128 256 512; do
|
||||
# res="$i"x"$i"
|
||||
# logoOut="$out"/share/icons/hicolor/"$res"/apps
|
||||
# mkdir -p $logoOut
|
||||
# ${pkgs.imagemagick}/bin/magick $logoOriginal -resize $res $logoOut/${pname}.png
|
||||
# done
|
||||
|
||||
# runHook postInstall
|
||||
# '';
|
||||
|
||||
# Nix doesn't natively have a fromYAML function (so I made this instead)
|
||||
pubspecLock = let
|
||||
appRoot = "${self.src}/chameleonultragui";
|
||||
|
||||
# when generating patch files use -u flag and then
|
||||
# make sure to escape all " characters for Nix string
|
||||
pubspecLockPatch = ''
|
||||
--- pubspec.lock.bak2025-05-10 15:42:44.287730979 +1000
|
||||
+++ pubspec.lock2025-05-10 15:41:23.778480048 +1000
|
||||
@@ -5,18 +5,23 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _fe_analyzer_shared
|
||||
- sha256: dc27559385e905ad30838356c5f5d574014ba39872d732111cd07ac0beff4c57
|
||||
+ sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"80.0.0\"
|
||||
+ version: \"72.0.0\"
|
||||
+ _macros:
|
||||
+ dependency: transitive
|
||||
+ description: dart
|
||||
+ source: sdk
|
||||
+ version: \"0.3.2\"
|
||||
analyzer:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: analyzer
|
||||
- sha256: \"192d1c5b944e7e53b24b5586db760db934b177d4147c42fbca8c8c5f1eb8d11e\"
|
||||
+ sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"7.3.0\"
|
||||
+ version: \"6.7.0\"
|
||||
archive:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -37,26 +42,26 @@
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
name: async
|
||||
- sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
|
||||
+ sha256: \"947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"2.12.0\"
|
||||
+ version: \"2.11.0\"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: boolean_selector
|
||||
- sha256: \"8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea\"
|
||||
+ sha256: \"6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"2.1.2\"
|
||||
+ version: \"2.1.1\"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
- sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
|
||||
+ sha256: \"04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.4.0\"
|
||||
+ version: \"1.3.0\"
|
||||
checked_yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -77,18 +82,18 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
- sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
|
||||
+ sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.1.2\"
|
||||
+ version: \"1.1.1\"
|
||||
collection:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
name: collection
|
||||
- sha256: \"2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76\"
|
||||
+ sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.19.1\"
|
||||
+ version: \"1.18.0\"
|
||||
convert:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -157,10 +162,10 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
- sha256: \"6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc\"
|
||||
+ sha256: \"511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.3.2\"
|
||||
+ version: \"1.3.1\"
|
||||
ffi:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -196,11 +201,10 @@
|
||||
file_saver:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
- path: \".\"
|
||||
- ref: fix-windows
|
||||
- resolved-ref: \"3038d74d5560dcca528423fffd745abf31eb88ae\"
|
||||
- url: \"https://github.com/Foxushka/file_saver.git\"
|
||||
- source: git
|
||||
+ name: file_saver
|
||||
+ sha256: \"017a127de686af2d2fbbd64afea97052d95f2a0f87d19d25b87e097407bf9c1e\"
|
||||
+ url: \"https://pub.dev\"
|
||||
+ source: hosted
|
||||
version: \"0.2.14\"
|
||||
fixnum:
|
||||
dependency: transitive
|
||||
@@ -234,11 +238,10 @@
|
||||
flutter_libserialport:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
- path: \".\"
|
||||
- ref: main
|
||||
- resolved-ref: \"6740aae075505a220a98492910b090824efc7910\"
|
||||
- url: \"https://github.com/NeariX67/flutter_libserialport.git\"
|
||||
- source: git
|
||||
+ name: flutter_libserialport
|
||||
+ sha256: d193b5ac819db6540d20cc8d20d9f5ec9e3396edb4d2c4a23c97863fa9132336
|
||||
+ url: \"https://pub.dev\"
|
||||
+ source: hosted
|
||||
version: \"0.5.0\"
|
||||
flutter_lints:
|
||||
dependency: \"direct dev\"
|
||||
@@ -347,18 +350,18 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
- sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
|
||||
+ sha256: \"3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"10.0.8\"
|
||||
+ version: \"10.0.5\"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
- sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
|
||||
+ sha256: \"932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"3.0.9\"
|
||||
+ version: \"3.0.5\"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -399,14 +402,22 @@
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
version: \"1.3.0\"
|
||||
+ macros:
|
||||
+ dependency: transitive
|
||||
+ description:
|
||||
+ name: macros
|
||||
+ sha256: \"0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536\"
|
||||
+ url: \"https://pub.dev\"
|
||||
+ source: hosted
|
||||
+ version: \"0.1.2-main.4\"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: matcher
|
||||
- sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
|
||||
+ sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"0.12.17\"
|
||||
+ version: \"0.12.16+1\"
|
||||
material_color_utilities:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -419,10 +430,10 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
- sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
|
||||
+ sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.16.0\"
|
||||
+ version: \"1.15.0\"
|
||||
mobile_scanner:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -467,10 +478,10 @@
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
name: path
|
||||
- sha256: \"75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5\"
|
||||
+ sha256: \"087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.9.1\"
|
||||
+ version: \"1.9.0\"
|
||||
path_provider:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -723,15 +734,15 @@
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
- version: \"0.0.0\"
|
||||
+ version: \"0.0.99\"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
- sha256: \"254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c\"
|
||||
+ sha256: \"53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.10.1\"
|
||||
+ version: \"1.10.0\"
|
||||
sprintf:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -744,42 +755,42 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
- sha256: \"8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1\"
|
||||
+ sha256: \"73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.12.1\"
|
||||
+ version: \"1.11.1\"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
- sha256: \"969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d\"
|
||||
+ sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"2.1.4\"
|
||||
+ version: \"2.1.2\"
|
||||
string_scanner:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: string_scanner
|
||||
- sha256: \"921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43\"
|
||||
+ sha256: \"556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.4.1\"
|
||||
+ version: \"1.2.0\"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
- sha256: \"7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e\"
|
||||
+ sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"1.2.2\"
|
||||
+ version: \"1.2.1\"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
- sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
|
||||
+ sha256: \"5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"0.7.4\"
|
||||
+ version: \"0.7.2\"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -855,12 +866,11 @@
|
||||
usb_serial:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
- path: \".\"
|
||||
- ref: fix-usbserial
|
||||
- resolved-ref: \"9fcbacc92bec19ea02d33a40d9f39e45d19cf637\"
|
||||
- url: \"https://github.com/Foxushka/usbserial.git\"
|
||||
- source: git
|
||||
- version: \"0.5.1\"
|
||||
+ name: usb_serial
|
||||
+ sha256: a605a600e34e7f28d4e80851ca3999ef747e42e406138887b8a88b8c382a8b07
|
||||
+ url: \"https://pub.dev\"
|
||||
+ source: hosted
|
||||
+ version: \"0.5.2\"
|
||||
uuid:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -881,10 +891,10 @@
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
- sha256: \"0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14\"
|
||||
+ sha256: \"5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d\"
|
||||
url: \"https://pub.dev\"
|
||||
source: hosted
|
||||
- version: \"14.3.1\"
|
||||
+ version: \"14.2.5\"
|
||||
wakelock_plus:
|
||||
dependency: \"direct main\"
|
||||
description:
|
||||
@@ -958,5 +968,5 @@
|
||||
source: hosted
|
||||
version: \"2.2.1\"
|
||||
sdks:
|
||||
- dart: \">=3.7.0-0 <4.0.0\"
|
||||
+ dart: \">=3.5.0 <4.0.0\"
|
||||
flutter: \">=3.24.0\"
|
||||
'';
|
||||
in
|
||||
builtins.fromJSON
|
||||
(
|
||||
builtins.readFile (pkgs.runCommand "${self.pname}-buildenv" {
|
||||
inputs = [
|
||||
# DEBUG (both lines commented)
|
||||
#pkgs.flutter324 # ChameleonUltraGUI requires sdk >3.0.0
|
||||
#pkgs.yj
|
||||
];
|
||||
} ''
|
||||
# copy source files to a temporary path to rebuild the lockfile
|
||||
buildPath=$(mktemp -d)
|
||||
cp -r "${appRoot}/." "$buildPath/"
|
||||
|
||||
outPubspecLock="$buildPath/pubspec.lock"
|
||||
# MUST define variables to use multiline Nix string in bash scripting
|
||||
pubspecLockPatch="${pubspecLockPatch}"
|
||||
|
||||
# apply the pubspec.yaml patch and regenerate lock file
|
||||
# (create a temporary home directory for flutter to play in)
|
||||
#(cd $buildPath && chmod -R +w . \
|
||||
# && patch ./pubspec.yaml <(echo "$pubspecYamlPatch") \
|
||||
# && export HOME=$(mktemp -d) \
|
||||
# && flutter --disable-analytics \
|
||||
# && flutter config --no-cli-animations \
|
||||
# && ${pkgs.flutter}/bin/flutter pub get)
|
||||
|
||||
# patch the lockfile
|
||||
chmod +w $outPubspecLock
|
||||
patch $outPubspecLock <(echo "$pubspecLockPatch")
|
||||
|
||||
# convert new lockfile to json and return
|
||||
${pkgs.yj}/bin/yj < "$buildPath/pubspec.lock" > $out
|
||||
'')
|
||||
);
|
||||
|
||||
# TODO: try this instead of patching
|
||||
# gitHashes = {
|
||||
# dartssh2 = "sha256-2pypKwurziwGLZYuGaxlS2lzN3UvJp3bRTvvYYxEqRI=";
|
||||
# hotkey_manager_linux = "sha256-aO0h94YZvgV/ggVupNw8GjyZsnXrq3qTHRDtuhNv3oI=";
|
||||
# system_info2 = "sha256-fly7E2vG+bQ/+QGzXk+DYba73RZccltdW2LpZGDKX60=";
|
||||
# tray_menu = "sha256-riiAiBEms+9ARog8i+MR1fto1Yqx+gwbBWyNbNq6VTM=";
|
||||
# window_size = "sha256-71PqQzf+qY23hTJvcm0Oye8tng3Asr42E2vfF1nBmVA=";
|
||||
# xterm = "sha256-h8vIonTPUVnNqZPk/A4ZV7EYCMyM0rrErL9ZOMe4ZBE=";
|
||||
# };
|
||||
|
||||
meta = with lib; {
|
||||
description = "A GUI for the Chameleon Ultra written in Flutter for crossplatform";
|
||||
homepage = "https://github.com/GameTec-live/ChameleonUltraGUI";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [maintainers.emileclarkb];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
||||
.overrideAttrs (
|
||||
previousAttrs: {
|
||||
installPhase =
|
||||
previousAttrs.installPhase
|
||||
+ ''
|
||||
# create mipmaps of desktop logo
|
||||
logoOriginal="assets/logo-color-desktop.png"
|
||||
for i in 16 32 64 128 256 512; do
|
||||
res="$i"x"$i"
|
||||
logoOut="$out"/share/icons/hicolor/"$res"/apps
|
||||
mkdir -p $logoOut
|
||||
${pkgs.imagemagick}/bin/magick $logoOriginal -resize $res $logoOut/${previousAttrs.pname}.png
|
||||
done
|
||||
'';
|
||||
}
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue