This commit is contained in:
mjallen18
2025-09-03 18:37:49 -05:00
parent c4911b9d5f
commit bb96cf2406
7 changed files with 98 additions and 93 deletions

50
flake.lock generated
View File

@@ -86,11 +86,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1756606761,
"narHash": "sha256-lcHMwq0LVcS1mP9o0pq00Von8PsXMsFPPo3ZXGWa7DU=",
"lastModified": 1756909345,
"narHash": "sha256-dSz08uK6NlgGxfo7F7E8rBB3lAROWdncOFTH/lZLVFI=",
"owner": "chaotic-cx",
"repo": "nyx",
"rev": "9e9e58125b4ba190658235106858f9733b25a1b4",
"rev": "478969e9fcd639751841009415df6178044cb6e2",
"type": "github"
},
"original": {
@@ -541,11 +541,11 @@
]
},
"locked": {
"lastModified": 1756842514,
"narHash": "sha256-XbtRMewPGJwTNhBC4pnBu3w/xT1XejvB0HfohC2Kga8=",
"lastModified": 1756903364,
"narHash": "sha256-vZh/YH2D7oDFek10r0TbGn3qJrqGv69sSP+oF8PFDqQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "30fc1b532645a21e157b6e33e3f8b4c154f86382",
"rev": "6159629d05a0e92bb7fb7211e74106ae1d552401",
"type": "github"
},
"original": {
@@ -557,11 +557,11 @@
"homebrew-cask": {
"flake": false,
"locked": {
"lastModified": 1756852744,
"narHash": "sha256-U9kI3DUaBthraFDPyoaPASZCwa4beIbPioKZqk/fRE0=",
"lastModified": 1756940093,
"narHash": "sha256-ZqBSV6Frrfkt/Jihm1HkvK1Rps6O84iTDGnCtoMF+qE=",
"owner": "homebrew",
"repo": "homebrew-cask",
"rev": "e08060d99e6e06d7d0d233439b2139d2f971d1a1",
"rev": "92af92ac999d6e2d625ce18d94ef10a8da1f11ef",
"type": "github"
},
"original": {
@@ -573,11 +573,11 @@
"homebrew-core": {
"flake": false,
"locked": {
"lastModified": 1756853188,
"narHash": "sha256-lZnraCsn+6bILvM5Tv9WXGdZeTVzbwViOKB3086fw0w=",
"lastModified": 1756940164,
"narHash": "sha256-hZTYCvvIDOD8Q/i+GeXc9SU/rDlfnWRqrDkn6TYr/NE=",
"owner": "homebrew",
"repo": "homebrew-core",
"rev": "44c6c6065d93f93e90a66ddc2bfcd37746e9546b",
"rev": "4f9ff02b276599d0d6fb34c876bf33fe919abe0d",
"type": "github"
},
"original": {
@@ -820,11 +820,11 @@
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1756778240,
"narHash": "sha256-fEN9e5eTYTYiLWDgIm0LpfBZ/IKEmP+BvmDtg2HeHUY=",
"lastModified": 1756864266,
"narHash": "sha256-2X1atbNXhevmp7+RZ9AC6Uafh8dXdMl88ao41OjXKg8=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "88023dda65dbb10c52aa03b39a0426024ad8e543",
"rev": "0fa39712a6079f2b5ad4beb36f388e875acc359f",
"type": "github"
},
"original": {
@@ -874,11 +874,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1756750488,
"narHash": "sha256-e4ZAu2sjOtGpvbdS5zo+Va5FUUkAnizl4wb0/JlIL2I=",
"lastModified": 1756925795,
"narHash": "sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "47eb4856cfd01eaeaa7bb5944a0f27db8fb9b94a",
"rev": "ba6fab29768007e9f2657014a6e134637100c57d",
"type": "github"
},
"original": {
@@ -999,11 +999,11 @@
},
"nixpkgs-stable_3": {
"locked": {
"lastModified": 1756754095,
"narHash": "sha256-9Rsn9XEWINExosFkKEqdp8EI6Mujr1gmQiyrEcts2ls=",
"lastModified": 1756886854,
"narHash": "sha256-6tooT142NLcFjt24Gi4B0G1pgWLvfw7y93sYEfSHlLI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7c815e513adbf03c9098b2bd230c1e0525c8a7f9",
"rev": "0e6684e6c5755325f801bda1751a8a4038145d7d",
"type": "github"
},
"original": {
@@ -1111,11 +1111,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1756542300,
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
"owner": "NixOS",
"lastModified": 1756896242,
"narHash": "sha256-fokvf0dI+4frI1QbrN7bGsHfK5V+kx/cgSVJPb4yr8k=",
"owner": "PedroHLC",
"repo": "nixpkgs",
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
"rev": "ca9bf1d602372d663b797031a860faeacbb898b6",
"type": "github"
},
"original": {

View File

@@ -255,7 +255,7 @@
allowUnfree = true;
permittedInsecurePackages = [
# ...
# "libsoup-2.74.3"
"libsoup-2.74.3"
# "libxml2-2.13.8"
"qtwebengine-5.15.19"
];

View File

@@ -165,7 +165,7 @@ in
"remote"
"remote_calendar"
"remote_rpi_gpio"
"roborock"
# "roborock" # currently broken
"samsungtv"
"schedule"
"script"
@@ -255,8 +255,9 @@ in
zigbee2mqtt-networkmap
];
# use postgresql instead of sqlite
# extraPackages =
# ps: with ps; [
extraPackages =
ps: with ps; [
pkgs.${namespace}.python-roborock
# # Core functionality
# aiohttp
# aiodns
@@ -304,7 +305,7 @@ in
# # System integrations
# psutil # System monitoring
# psycopg2
psycopg2
# numpy
# hassil
# pyturbojpeg
@@ -353,7 +354,7 @@ in
# pysmartthings
# wakeonlan
# ephem
# ];
];
config = {
# Includes dependencies for a basic setup

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
...
}:
python3Packages.buildPythonPackage rec {
pname = "python-roborock";
version = "2.39.0";
pyproject = true;
disabled = python3Packages.pythonOlder "3.11";
src = fetchFromGitHub {
owner = "humbertogontijo";
repo = "python-roborock";
tag = "v${version}";
hash = "sha256-V0zuUlJ0wPpxOKtY7ydbJ7mhWT5xGSLv19csmpWCO1Q=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "poetry-core==1.8.0" "poetry-core"
'';
pythonRelaxDeps = [ "pycryptodome" ];
build-system = with python3Packages; [ poetry-core ];
dependencies = with python3Packages; [
aiohttp
aiomqtt
async-timeout
click
construct
dacite
paho-mqtt
pycryptodome
pyrate-limiter
vacuum-map-parser-roborock
pyshark
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ pycryptodomex ];
nativeCheckInputs = with python3Packages; [
aioresponses
freezegun
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "roborock" ];
meta = with lib; {
description = "Python library & console tool for controlling Roborock vacuum";
homepage = "https://github.com/humbertogontijo/python-roborock";
changelog = "https://github.com/humbertogontijo/python-roborock/blob/${src.tag}/CHANGELOG.md";
license = licenses.gpl3Only;
maintainers = with maintainers; [ fab ];
mainProgram = "roborock";
};
}

View File

@@ -26,6 +26,8 @@
./hardware-configuration.nix
./sops.nix
./services/lsfg-vk
./services/ratbagd
./services/restic
];
${namespace} = {

View File

@@ -1,13 +0,0 @@
{ lib, ... }:
{
services.btrfs = {
autoScrub.enable = lib.mkDefault true;
autoScrub.fileSystems = lib.mkDefault [
"/nix"
"/root"
"/etc"
"/var/log"
"/home"
];
};
}

View File

@@ -1,49 +0,0 @@
{ ... }:
{
services.keyd = {
enable = false;
keyboards = {
default = {
ids = [ "*" ];
settings = {
main = {
# Use ⌘ key (leftmeta) to activate macOS-like layer
leftmeta = "layer(meta_mac)";
};
meta_mac = {
# Tab switching
tab = "swapm(app_switch_state, M-tab)";
"`" = "A-f6";
# App shortcuts
c = "C-insert"; # Copy
v = "S-insert"; # Paste
x = "S-delete"; # Cut
"1" = "A-1";
"2" = "A-2";
"3" = "A-3";
"4" = "A-4";
"5" = "A-5";
"6" = "A-6";
"7" = "A-7";
"8" = "A-8";
"9" = "A-9";
# Move to line start/end
left = "home";
right = "end";
};
app_switch_state = {
tab = "M-tab";
right = "M-tab";
"`" = "M-S-tab";
left = "M-S-tab";
};
};
};
};
};
}