2
0
Dashie 3 сар өмнө
parent
commit
c752e3bf7b
6 өөрчлөгдсөн 207 нэмэгдсэн , 0 устгасан
  1. 5 0
      .gitignore
  2. 48 0
      flake.lock
  3. 59 0
      flake.nix
  4. 40 0
      nix/default.nix
  5. 27 0
      nix/hm.nix
  6. 28 0
      readMe.MD

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
+# nix related files
+.envrc
+.direnv/
+result/
+result

+ 48 - 0
flake.lock

@@ -0,0 +1,48 @@
+{
+  "nodes": {
+    "flake-parts": {
+      "inputs": {
+        "nixpkgs-lib": [
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1743550720,
+        "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
+        "owner": "hercules-ci",
+        "repo": "flake-parts",
+        "rev": "c621e8422220273271f52058f618c94e405bb0f5",
+        "type": "github"
+      },
+      "original": {
+        "owner": "hercules-ci",
+        "repo": "flake-parts",
+        "type": "github"
+      }
+    },
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1746663147,
+        "narHash": "sha256-Ua0drDHawlzNqJnclTJGf87dBmaO/tn7iZ+TCkTRpRc=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "dda3dcd3fe03e991015e9a74b22d35950f264a54",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "flake-parts": "flake-parts",
+        "nixpkgs": "nixpkgs"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}

+ 59 - 0
flake.nix

@@ -0,0 +1,59 @@
+{
+  description = "A GUI for fancontrol with QT and KDE framework 5";
+
+  inputs = {
+    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+    flake-parts = {
+      url = "github:hercules-ci/flake-parts";
+      inputs.nixpkgs-lib.follows = "nixpkgs";
+    };
+  };
+
+  outputs = inputs @ {
+    self,
+    flake-parts,
+    ...
+  }:
+    flake-parts.lib.mkFlake {inherit inputs;} {
+      systems = ["x86_64-linux" "aarch64-linux"];
+
+      perSystem = {
+        self',
+        pkgs,
+        system,
+        ...
+      }: {
+        _module.args.pkgs = import self.inputs.nixpkgs {
+          inherit system;
+        };
+        devShells.default = pkgs.mkShell {
+          inputsFrom = builtins.attrValues self'.packages;
+          packages = with pkgs; [
+            git
+            libgcc
+            cmake
+            extra-cmake-modules
+            gettext
+            libsForQt5.kio
+            libsForQt5.qt5.qtquickcontrols
+            libsForQt5.qt5.qtquickcontrols2
+            libsForQt5.qt5.qtdeclarative
+            libsForQt5.kdeclarative
+            libsForQt5.kcmutils
+            libsForQt5.plasma-framework
+          ];
+        };
+        packages = rec {
+          fancontrol-gui = pkgs.callPackage ./nix/default.nix {stdenv = pkgs.stdenv;};
+          default = fancontrol-gui;
+        };
+      };
+      flake = _: rec {
+        nixosModules.home-manager = homeManagerModules.default;
+        homeManagerModules = rec {
+          fancontrol-gui = import ./nix/hm.nix inputs.self;
+          default = fancontrol-gui;
+        };
+      };
+    };
+}

+ 40 - 0
nix/default.nix

@@ -0,0 +1,40 @@
+{
+  cmake,
+  extra-cmake-modules,
+  lib,
+  libgcc,
+  libsForQt5,
+  stdenv,
+  ...
+}:
+stdenv.mkDerivation rec {
+  pname = "fancontrol-gui";
+  version = "v0.8";
+
+  src = ../.;
+
+  buildInputs = with libsForQt5; [
+    kcmutils
+    kdeclarative
+    kio
+    plasma-framework
+    qt5.qtdeclarative
+    qt5.qtquickcontrols
+    qt5.qtquickcontrols2
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    libgcc
+    libsForQt5.wrapQtAppsHook
+  ];
+
+  meta = with lib; {
+    description = "A GUI for fancontrol with QT and KDE framework 5";
+    homepage = "https://github.com/Maldela/fancontrol-gui";
+    changelog = "https://github.com/Maldela/fancontrol-gui/releases/tag/${version}";
+    license = licenses.gpl2;
+    mainProgram = "fancontrol_gui";
+  };
+}

+ 27 - 0
nix/hm.nix

@@ -0,0 +1,27 @@
+self: {
+  config,
+  pkgs,
+  lib,
+  ...
+}: let
+  cfg = config.programs.fancontrol-gui;
+  defaultPackage = self.packages.${pkgs.stdenv.hostPlatform.system}.default;
+in {
+  options.programs.fancontrol-gui = with lib; {
+    enable = mkEnableOption "fancontrol-gui";
+
+    package = mkOption {
+      type = with types; nullOr package;
+      default = defaultPackage;
+      defaultText = lib.literalExpression ''
+        fancontrol-gui.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;
+  };
+}

+ 28 - 0
readMe.MD

@@ -118,6 +118,15 @@ sudo dnf install git gcc g++ cmake kf5-ki18n-devel kf5-kauth-devel kf5-kconfig-d
 > [!NOTE]  
 > This was tested on `Fedora 33`.
 
+### Nix
+
+This repository offers a nix flake:
+
+```sh
+nix develop
+nix build
+```
+
 # Installation
 
 ```sh
@@ -130,6 +139,25 @@ make -j
 sudo make install
 ```
 
+## Nix
+
+This repository offers a home-manager module or alternatively the package itself.
+
+Add this repository to your inputs.
+```nix
+fancontrol-gui.url = "github:Maldela/fancontrol-gui";
+```
+
+Enable the home-manager module.
+```nix
+inputs.fancontrol-gui.homeManagerModules.default
+```
+
+And add fancontrol-gui to your enabled programs.
+```nix
+programs.fancontrol-gui.enable = true;
+```
+
 # Uninstallation
 
 ```sh