mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-04-03 20:42:01 +02:00
nix: use flake
This commit is contained in:
parent
84660083f9
commit
397c48ae43
1
.direnv/flake-profile
Symbolic link
1
.direnv/flake-profile
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
flake-profile-1-link
|
1
.direnv/flake-profile-1-link
Symbolic link
1
.direnv/flake-profile-1-link
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/nix/store/a7q30l1dy9h81iddq6ysf67616mbjfv2-nix-shell-env
|
114
flake.lock
Normal file
114
flake.lock
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715865404,
|
||||||
|
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705309234,
|
||||||
|
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1716137900,
|
||||||
|
"narHash": "sha256-sowPU+tLQv8GlqtVtsXioTKeaQvlMz/pefcdwg8MvfM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6c0b7a92c30122196a761b440ac0d46d3d9954f1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1706487304,
|
||||||
|
"narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "90f456026d284c22b3e3497be980b2e47d0b28ac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1716171463,
|
||||||
|
"narHash": "sha256-lc7wOh5BjYUoxdhcPkeUY8BmuL2qtRaHlW1403RW48E=",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
61
flake.nix
Normal file
61
flake.nix
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
description = "A wip universal Linux settings application.";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
flake-parts = {
|
||||||
|
url = "github:hercules-ci/flake-parts";
|
||||||
|
inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
rust-overlay = {
|
||||||
|
url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = inputs @ { self, flake-parts, ... }:
|
||||||
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
|
systems = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ config
|
||||||
|
, self'
|
||||||
|
, inputs'
|
||||||
|
, pkgs
|
||||||
|
, system
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
_module.args.pkgs = import self.inputs.nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [
|
||||||
|
(import
|
||||||
|
inputs.rust-overlay
|
||||||
|
)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
inputsFrom = builtins.attrValues self'.packages;
|
||||||
|
packages = with pkgs; [
|
||||||
|
(rust-bin.selectLatestNightlyWith
|
||||||
|
(toolchain: toolchain.default))
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
packages =
|
||||||
|
let
|
||||||
|
lockFile = ./Cargo.lock;
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
reset = pkgs.callPackage ./nix/default.nix { inherit inputs lockFile; };
|
||||||
|
default = reset;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
flake = _: rec {
|
||||||
|
nixosModules.home-manager = homeManagerModules.default;
|
||||||
|
homeManagerModules = rec {
|
||||||
|
reset = import ./nix/hm.nix inputs.self;
|
||||||
|
default = reset;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
58
nix/default.nix
Normal file
58
nix/default.nix
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
{ rustPlatform
|
||||||
|
, rust-bin
|
||||||
|
, pulseaudio
|
||||||
|
, dbus
|
||||||
|
, gdk-pixbuf
|
||||||
|
, gnome
|
||||||
|
, pkg-config
|
||||||
|
, wrapGAppsHook4
|
||||||
|
, gtk4
|
||||||
|
, libadwaita
|
||||||
|
, lib
|
||||||
|
, lockFile
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cargoToml = builtins.fromTOML (builtins.readFile ../Cargo.toml);
|
||||||
|
in
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = cargoToml.package.name;
|
||||||
|
version = cargoToml.package.version;
|
||||||
|
|
||||||
|
src = ../.;
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
gtk4
|
||||||
|
libadwaita
|
||||||
|
pulseaudio
|
||||||
|
dbus
|
||||||
|
gdk-pixbuf
|
||||||
|
gnome.adwaita-icon-theme
|
||||||
|
];
|
||||||
|
|
||||||
|
cargoLock = {
|
||||||
|
inherit lockFile;
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkg-config
|
||||||
|
wrapGAppsHook4
|
||||||
|
(rust-bin.selectLatestNightlyWith
|
||||||
|
(toolchain: toolchain.default))
|
||||||
|
];
|
||||||
|
copyLibs = true;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
install -D --mode=444 $src/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||||
|
install -D --mode=444 $src/src/resources/icons/ReSet.svg $out/share/pixmaps/ReSet.svg
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A wip universal Linux settings application.";
|
||||||
|
homepage = "https://github.com/Xetibo/ReSet";
|
||||||
|
changelog = "https://github.com/Xetibo/ReSet/releases/tag/${version}";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = with maintainers; [ DashieTM ];
|
||||||
|
mainProgram = "reset";
|
||||||
|
};
|
||||||
|
}
|
30
nix/hm.nix
Normal file
30
nix/hm.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
self: { config
|
||||||
|
, pkgs
|
||||||
|
, lib
|
||||||
|
, hm
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.programs.reset;
|
||||||
|
defaultPackage = self.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
meta.maintainers = with lib.maintainers; [ DashieTM ];
|
||||||
|
options.programs.reset = with lib; {
|
||||||
|
enable = mkEnableOption "reset";
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = with types; nullOr package;
|
||||||
|
default = defaultPackage;
|
||||||
|
defaultText = lib.literalExpression ''
|
||||||
|
reset.packages.''${pkgs.stdenv.hostPlatform.system}.default
|
||||||
|
'';
|
||||||
|
description = mdDoc ''
|
||||||
|
Package to run
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home.packages = lib.optional (cfg.package != null) cfg.package;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue