diff --git a/flake.lock b/flake.lock index 5536f45..0ad954e 100644 --- a/flake.lock +++ b/flake.lock @@ -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": { diff --git a/flake.nix b/flake.nix index 9d4604f..8be422c 100644 --- a/flake.nix +++ b/flake.nix @@ -255,7 +255,7 @@ allowUnfree = true; permittedInsecurePackages = [ # ... - # "libsoup-2.74.3" + "libsoup-2.74.3" # "libxml2-2.13.8" "qtwebengine-5.15.19" ]; diff --git a/modules/nixos/homeassistant/services/homeassistant/default.nix b/modules/nixos/homeassistant/services/homeassistant/default.nix index b464b68..4814e08 100644 --- a/modules/nixos/homeassistant/services/homeassistant/default.nix +++ b/modules/nixos/homeassistant/services/homeassistant/default.nix @@ -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 diff --git a/packages/python/python-roborock/default.nix b/packages/python/python-roborock/default.nix new file mode 100644 index 0000000..8e5faa4 --- /dev/null +++ b/packages/python/python-roborock/default.nix @@ -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"; + }; +} \ No newline at end of file diff --git a/systems/x86_64-linux/matt-nixos/default.nix b/systems/x86_64-linux/matt-nixos/default.nix index 33ab0ff..59ddf1c 100644 --- a/systems/x86_64-linux/matt-nixos/default.nix +++ b/systems/x86_64-linux/matt-nixos/default.nix @@ -26,6 +26,8 @@ ./hardware-configuration.nix ./sops.nix ./services/lsfg-vk + ./services/ratbagd + ./services/restic ]; ${namespace} = { diff --git a/systems/x86_64-linux/matt-nixos/services/btrfs/default.nix b/systems/x86_64-linux/matt-nixos/services/btrfs/default.nix deleted file mode 100644 index f94e228..0000000 --- a/systems/x86_64-linux/matt-nixos/services/btrfs/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ lib, ... }: -{ - services.btrfs = { - autoScrub.enable = lib.mkDefault true; - autoScrub.fileSystems = lib.mkDefault [ - "/nix" - "/root" - "/etc" - "/var/log" - "/home" - ]; - }; -} diff --git a/systems/x86_64-linux/matt-nixos/services/keyd/default.nix b/systems/x86_64-linux/matt-nixos/services/keyd/default.nix deleted file mode 100644 index 0985bb5..0000000 --- a/systems/x86_64-linux/matt-nixos/services/keyd/default.nix +++ /dev/null @@ -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"; - }; - }; - }; - }; - }; -}