Add Logitech support

This commit is contained in:
2025-12-26 02:35:27 +01:00
parent 9efb59a966
commit d9b9d82231
7 changed files with 220 additions and 31 deletions

View File

@@ -191,6 +191,10 @@
]; ];
}; };
amdgpu.opencl.enable = true; # ROCM amdgpu.opencl.enable = true; # ROCM
logitech.wireless = {
enable = true;
enableGraphical = true;
};
}; };
# QT stuff # QT stuff

112
flake.lock generated
View File

@@ -7,24 +7,23 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1766316793, "path": "./flakes/czkawka-master",
"narHash": "sha256-ztYm8+juiptYvtU6V4FDj/k9CFD/OIIz7O5BdJfGVSs=",
"path": "/etc/nixos/flakes/czkawka-master",
"type": "path" "type": "path"
}, },
"original": { "original": {
"path": "/etc/nixos/flakes/czkawka-master", "path": "./flakes/czkawka-master",
"type": "path" "type": "path"
} },
"parent": []
}, },
"czkawka-src": { "czkawka-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764796329, "lastModified": 1766584193,
"narHash": "sha256-legzp0mmNgKz9dw7rpnkAXXYjW3BFur8e+W7289bHI8=", "narHash": "sha256-XmdV0/lc4JvnIoSxf7PtQZlHHZo3ghgGfJ0tWbhYuAQ=",
"owner": "qarmin", "owner": "qarmin",
"repo": "czkawka", "repo": "czkawka",
"rev": "6296b06f3a6798f07f78cd771ed95d75639f7bbb", "rev": "dcec058b682f803ff70b03959cc67b146837b2a3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -56,6 +55,24 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"naersk": { "naersk": {
"inputs": { "inputs": {
"fenix": "fenix", "fenix": "fenix",
@@ -95,11 +112,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1766070988, "lastModified": 1766651565,
"narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=", "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c6245e83d836d0433170a16eb185cefe0572f8b8", "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -111,11 +128,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1766254170, "lastModified": 1766687550,
"narHash": "sha256-Svhx9lHB3wvxDu9UtxilofG3PZqKvfwUzarSIvuGO5g=", "narHash": "sha256-FGuhrdRvxp3DZfRZfA+1mKZIpgTU9Xboq1jVphKm9Go=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cab52b36dca5a5a368f05bd03fca0b543b5b9a3e", "rev": "a3a2ddee4adfb361bdfe2e915c7e85c2e71cfc5f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -125,11 +142,28 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": {
"locked": {
"lastModified": 1766651565,
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"czkawka-master": "czkawka-master", "czkawka-master": "czkawka-master",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2",
"solaar-master": "solaar-master"
} }
}, },
"rust-analyzer-src": { "rust-analyzer-src": {
@@ -148,6 +182,54 @@
"repo": "rust-analyzer", "repo": "rust-analyzer",
"type": "github" "type": "github"
} }
},
"solaar-master": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_3",
"solaar-src": "solaar-src"
},
"locked": {
"path": "./flakes/solaar-master",
"type": "path"
},
"original": {
"path": "./flakes/solaar-master",
"type": "path"
},
"parent": []
},
"solaar-src": {
"flake": false,
"locked": {
"lastModified": 1766581864,
"narHash": "sha256-T07YtSuo+R8Bsvl+lCQC7/gpXKwch8hTp9fJlbuAHVE=",
"owner": "pwr-Solaar",
"repo": "Solaar",
"rev": "c87730f1ebfbd7ce4956c672a1a3227dc0694042",
"type": "github"
},
"original": {
"owner": "pwr-Solaar",
"ref": "master",
"repo": "Solaar",
"type": "github"
}
},
"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", "root": "root",

View File

@@ -7,14 +7,27 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
czkawka-master.url = "path:/etc/nixos/flakes/czkawka-master"; czkawka-master.url = "path:./flakes/czkawka-master";
solaar-master.url = "path:./flakes/solaar-master";
}; };
outputs = { self, nixpkgs, nix-flatpak, czkawka-master, ... }: { outputs =
{
self,
nixpkgs,
nix-flatpak,
czkawka-master,
solaar-master,
...
}:
{
nixosConfigurations = { nixosConfigurations = {
epiquev2 = nixpkgs.lib.nixosSystem { epiquev2 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit czkawka-master; }; specialArgs = {
inherit czkawka-master;
inherit solaar-master;
};
modules = [ modules = [
./configuration.nix ./configuration.nix
nix-flatpak.nixosModules.nix-flatpak nix-flatpak.nixosModules.nix-flatpak

View File

@@ -17,7 +17,13 @@
}; };
}; };
outputs = { self, nixpkgs, czkawka-src, naersk }: outputs =
{
self,
nixpkgs,
czkawka-src,
naersk,
}:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
@@ -42,7 +48,8 @@
# Optional: libadwaita if the master branch has switched to it # Optional: libadwaita if the master branch has switched to it
]; ];
in { in
{
packages.${system}.default = naersk-lib.buildPackage { packages.${system}.default = naersk-lib.buildPackage {
pname = "czkawka"; pname = "czkawka";
version = "master"; version = "master";

View File

@@ -0,0 +1,77 @@
{
description = "Solaar built from GitHub master branch";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
# This input automatically tracks the latest commit on master
solaar-src = {
url = "github:pwr-Solaar/Solaar/master";
flake = false;
};
};
outputs =
{
self,
nixpkgs,
flake-utils,
solaar-src,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
pythonPackages = pkgs.python3Packages;
in
{
packages.default = pythonPackages.buildPythonApplication rec {
pname = "solaar";
version = "master-${solaar-src.shortRev or "dirty"}";
src = solaar-src;
# --- FIX STARTS HERE ---
# 1. Enable pyproject format
pyproject = true;
# 2. Add build tools (setuptools/wheel) to nativeBuildInputs
nativeBuildInputs =
with pkgs;
[
gobject-introspection
wrapGAppsHook3
pkg-config
]
++ (with pythonPackages; [
setuptools
wheel
]);
# --- FIX ENDS HERE ---
propagatedBuildInputs = with pythonPackages; [
pyudev
psutil
xlib
pyyaml
evdev
dbus-python
pygobject3
typing-extensions
pkgs.gtk3
pkgs.libnotify
pkgs.libayatana-appindicator
];
postInstall = ''
install -Dm644 rules.d/42-logitech-unify-permissions.rules \
$out/lib/udev/rules.d/42-logitech-unify-permissions.rules
'';
doCheck = false;
};
}
);
}

View File

@@ -38,6 +38,7 @@
undecorate undecorate
user-themes user-themes
window-is-ready-remover window-is-ready-remover
solaar-extension
]; ];
}; };
} }

View File

@@ -3,6 +3,7 @@
pkgs, pkgs,
lib, lib,
czkawka-master, czkawka-master,
solaar-master,
... ...
}: }:
@@ -104,6 +105,10 @@
rocmPackages.rocm-smi rocmPackages.rocm-smi
rocmPackages.rocminfo rocmPackages.rocminfo
rquickshare rquickshare
saber
# solaar
solaar-master.packages.${pkgs.system}.default
logitech-udev-rules
scrcpy scrcpy
screen screen
seafile-client seafile-client