diff --git a/flake.lock b/flake.lock index 5d64be7..b92ef8e 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "aphorme_launcher": { "flake": false, "locked": { - "lastModified": 1719922896, - "narHash": "sha256-mOtCz42NFQn+0xPF3gBX4WHfo5UEClSsJ/tF8RdFQkY=", + "lastModified": 1713530567, + "narHash": "sha256-p1ZIMMDyQWVzoeyHb3sbeV6XQwbIDoQwJU8ynI8hGUI=", "owner": "Iaphetes", "repo": "aphorme_launcher", - "rev": "c7c7ce9f91a31cced181fa501a2cad3c68035def", + "rev": "abc42c3d9e98dfd2c910cf348110232ff25129b4", "type": "github" }, "original": { @@ -20,11 +20,11 @@ "ath11k-firmware": { "flake": false, "locked": { - "lastModified": 1729352325, - "narHash": "sha256-U2rdpaKV09mLDIt7MNdbolE8HBzXawXoo7uo3HY5gBk=", + "lastModified": 1720482684, + "narHash": "sha256-p6ifwtRNUOyQ2FN2VhSXS6dcrvrtiFZawu/iVXQ4uR0=", "ref": "refs/heads/main", - "rev": "4c8ae2fb2b78d5b0bebed63fe8b0f348f9fbc33e", - "revCount": 160, + "rev": "bb527dcebac835c47ed4f5428a7687769fa9b1b2", + "revCount": 152, "type": "git", "url": "https://git.codelinaro.org/clo/ath-firmware/ath11k-firmware.git" }, @@ -43,11 +43,11 @@ "stable": "stable" }, "locked": { - "lastModified": 1728263678, - "narHash": "sha256-gyUVsPAWY9AgVKjrNPoowrIr5BvK4gI0UkDXvv8iSxA=", + "lastModified": 1711386353, + "narHash": "sha256-gWEpb8Hybnoqb4O4tmpohGZk6+aerAbJpywKcFIiMlg=", "owner": "zhaofengli", "repo": "colmena", - "rev": "b0a62f234fae02a006123e661ff70e62af16106b", + "rev": "cd65ef7a25cdc75052fbd04b120aeb066c3881db", "type": "github" }, "original": { @@ -57,12 +57,17 @@ } }, "crane": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1730060262, - "narHash": "sha256-RMgSVkZ9H03sxC+Vh4jxtLTCzSjPq18UWpiM0gq6shQ=", + "lastModified": 1720226507, + "narHash": "sha256-yHVvNsgrpyNTXZBEokL8uyB2J6gB1wEx0KOJzoeZi1A=", "owner": "ipetkov", "repo": "crane", - "rev": "498d9f122c413ee1154e8131ace5a35a80d8fa76", + "rev": "0aed560c5c0a61c9385bddff471a13036203e11c", "type": "github" }, "original": { @@ -79,11 +84,11 @@ ] }, "locked": { - "lastModified": 1727359191, - "narHash": "sha256-5PltTychnExFwzpEnY3WhOywaMV/M6NxYI/y3oXuUtw=", + "lastModified": 1718008439, + "narHash": "sha256-nlh/2uD5p2SAdkn6Zuey20yaR5FFWvhL3poapDGNE4Y=", "owner": "nix-community", "repo": "disko", - "rev": "67dc29be3036cc888f0b9d4f0a788ee0f6768700", + "rev": "c1cfbfad7cb45f0c177b35b59ba67d1b5fc7ca82", "type": "github" }, "original": { @@ -118,11 +123,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1730442928, - "narHash": "sha256-U1DWb5c3EfkA7pqx5V1H4AWRA+EaE6UJ0lIRvK1RxgM=", + "lastModified": 1713421495, + "narHash": "sha256-5vVF9W1tJT+WdfpWAEG76KywktKDAW/71mVmNHEHjac=", "owner": "nix-community", "repo": "fenix", - "rev": "87b4d20f896c99018dde4702a9c6157b516f2a76", + "rev": "fd47b1f9404fae02a4f38bd9f4b12bad7833c96b", "type": "github" }, "original": { @@ -165,11 +170,11 @@ }, "flake-compat_3": { "locked": { - "lastModified": 1717312683, - "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", + "lastModified": 1688025799, + "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", "owner": "nix-community", "repo": "flake-compat", - "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", + "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", "type": "github" }, "original": { @@ -183,11 +188,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1727826117, - "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", "type": "github" }, "original": { @@ -204,11 +209,11 @@ ] }, "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -226,11 +231,11 @@ ] }, "locked": { - "lastModified": 1722555600, - "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", "type": "github" }, "original": { @@ -277,11 +282,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -310,11 +315,11 @@ }, "get-flake": { "locked": { - "lastModified": 1714237590, - "narHash": "sha256-9gtHdGbzFHaR20xORN8IYd67ROWS+1nqQ5CsPf9MD8I=", + "lastModified": 1694475786, + "narHash": "sha256-s5wDmPooMUNIAAsxxCMMh9g68AueGg63DYk2hVZJbc8=", "owner": "ursi", "repo": "get-flake", - "rev": "a6c57417d1b857b8be53aba4095869a0f438c502", + "rev": "ac54750e3b95dab6ec0726d77f440efe6045bec1", "type": "github" }, "original": { @@ -326,11 +331,11 @@ "jay": { "flake": false, "locked": { - "lastModified": 1730371037, - "narHash": "sha256-oMVScShS67LZz3BeZTABDQWHv8hZqBXuj+ng14OIr9E=", + "lastModified": 1713529603, + "narHash": "sha256-PjHxMABsAbQ6ZkjsmdREQ5D4CTtxCF1aRlyEqKsXMls=", "owner": "mahkoh", "repo": "jay", - "rev": "f36993eb6eea000f386fbf5bfa3d08dac1bd43c1", + "rev": "670588fe4dc5ea1051e34d51c99282f6c8c4d2b2", "type": "github" }, "original": { @@ -345,11 +350,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1730031145, - "narHash": "sha256-GZz0LGkeduajnF7zUuPu5evNyoOATcSsRZCkG1OqiwY=", + "lastModified": 1713105314, + "narHash": "sha256-X3URKbcgIy4UaQGrsy3DmY5x+fePQ5IYaa76YewoUE0=", "owner": "nix-community", "repo": "lib-aggregate", - "rev": "7d235f23a84b54c39b1579b68b13e1ff83f5b1ad", + "rev": "f347ed9a1cab12c27541ed4d173e2f2d5c9bc0bb", "type": "github" }, "original": { @@ -378,11 +383,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1730389079, - "narHash": "sha256-g/CJ/KKe5MGsVx1oCBl0F9aCdcNSDeOw8H7e5QDGa2c=", + "lastModified": 1705242886, + "narHash": "sha256-TLj334vRwFtSym3m+NnKcNCnKKPNoTC/TDZL40vmOso=", "owner": "nix-community", "repo": "nix-eval-jobs", - "rev": "7f9159a16584ee86eed077c8a73e845690b7d513", + "rev": "6b03a93296faf174b97546fd573c8b379f523a8d", "type": "github" }, "original": { @@ -400,11 +405,11 @@ ] }, "locked": { - "lastModified": 1720066371, - "narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=", + "lastModified": 1701208414, + "narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=", "owner": "nix-community", "repo": "nix-github-actions", - "rev": "622f829f5fe69310a866c8a6cd07e747c44ef820", + "rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734", "type": "github" }, "original": { @@ -420,11 +425,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1730426202, - "narHash": "sha256-swwKpE3lrdvcSh6Hjyf/eSe/zPnsZgeVlSl+B4yBpeo=", + "lastModified": 1729216050, + "narHash": "sha256-eVfbrE7JnaxFeGndHjTGGxuFoqZ6+/CjS2qfvV1HsXg=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "96dcbddd24edc60ad47f41bb2a73e06099eba4af", + "rev": "4dfd7581aaf0f25d3b7695a10dcfb1dfe4ebb953", "type": "github" }, "original": { @@ -445,11 +450,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1729496181, - "narHash": "sha256-LrCxIU6laEf4JD1QtOBNr+PASY6CbNPpUrjLIUizt+Y=", + "lastModified": 1718803059, + "narHash": "sha256-MYvDgSPWdF0hP6vzOhpqY+2a66ZLELFj+MUP5S/+dBY=", "owner": "numtide", "repo": "nixos-anywhere", - "rev": "51d347d35caec995d36d1450cb5bb183318c7fb7", + "rev": "ce18c086d8ca143d43ab20b3db20ab1e3e62c519", "type": "github" }, "original": { @@ -471,11 +476,11 @@ ] }, "locked": { - "lastModified": 1727367213, - "narHash": "sha256-7O4pi8MmcJpA0nYUQkdolvKGyu6zNjf2gFYD1Q0xppc=", + "lastModified": 1717994219, + "narHash": "sha256-ueTu01bYU5QXdL77psMkApYHpk339xNHg/M7ZzP3uPI=", "owner": "nix-community", "repo": "nixos-images", - "rev": "3e7978bab153f39f3fc329ad346d35a8871420f7", + "rev": "e2fd329c3a39a90bb43e1e2cf47c180ed57831bf", "type": "github" }, "original": { @@ -486,11 +491,11 @@ }, "nixos-stable": { "locked": { - "lastModified": 1727264057, - "narHash": "sha256-KQPI8CTTnB9CrJ7LrmLC4VWbKZfljEPBXOFGZFRpxao=", + "lastModified": 1717696253, + "narHash": "sha256-1+ua0ggXlYYPLTmMl3YeYYsBXDSCqT+Gw3u6l4gvMhA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "759537f06e6999e141588ff1c9be7f3a5c060106", + "rev": "9b5328b7f761a7bbdc0e332ac4cf076a3eedb89b", "type": "github" }, "original": { @@ -550,11 +555,11 @@ }, "nixpkgs-2311": { "locked": { - "lastModified": 1720535198, - "narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=", + "lastModified": 1713344939, + "narHash": "sha256-jpHkAt0sG2/J7ueKnG7VvLLkBYUMQbXQ2L8OBpVG53s=", "owner": "nixos", "repo": "nixpkgs", - "rev": "205fd4226592cc83fd4c0885a3e4c9c400efabb5", + "rev": "e402c3eb6d88384ca6c52ef1c53e61bdc9b84ddd", "type": "github" }, "original": { @@ -566,11 +571,11 @@ }, "nixpkgs-2405": { "locked": { - "lastModified": 1730327045, - "narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=", + "lastModified": 1717144377, + "narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "080166c15633801df010977d9d7474b4a6c549d7", + "rev": "805a384895c696f802a9bf5bf4720f37385df547", "type": "github" }, "original": { @@ -598,23 +603,29 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1727825735, - "narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz" + "dir": "lib", + "lastModified": 1711703276, + "narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d8fe5e6c92d0d190646fb9f1056741a229980089", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz" + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1729990941, - "narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=", + "lastModified": 1713055793, + "narHash": "sha256-vIrZQykYW32RnlI2lT/gCcB59BOIqqrAmPirBdiirrc=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "7d68864343650322045894951602d6e82b5296d7", + "rev": "361d8a4f443bbfab20bd6d222f9022b8c6665906", "type": "github" }, "original": { @@ -625,27 +636,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1729973466, - "narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=", + "lastModified": 1713434076, + "narHash": "sha256-+/p5edwlkqKZc6GDAQl+92Hoe1f3NNbUF9uj+X9H3pU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cd3e8833d70618c4eea8df06f95b364b016d4950", + "rev": "8494ae076b7878d61a7d2d25e89a847fe8f8364c", "type": "github" }, "original": { "owner": "NixOS", - "ref": "release-24.05", + "ref": "release-23.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1730200266, - "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", + "lastModified": 1713297878, + "narHash": "sha256-hOkzkhLT59wR8VaMbh1ESjtZLbGi+XNaBN6h49SPqEc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", + "rev": "66adc1e47f8784803f2deb6cacd5e07264ec2d5c", "type": "github" }, "original": { @@ -657,11 +668,11 @@ }, "nixpkgs-vscodium": { "locked": { - "lastModified": 1730200266, - "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", + "lastModified": 1713297878, + "narHash": "sha256-hOkzkhLT59wR8VaMbh1ESjtZLbGi+XNaBN6h49SPqEc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", + "rev": "66adc1e47f8784803f2deb6cacd5e07264ec2d5c", "type": "github" }, "original": { @@ -679,11 +690,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1730425081, - "narHash": "sha256-c8JK1Zuc9QjfLfbnAEtB3uHz5pd+RMgMiR263TEtwAs=", + "lastModified": 1713543674, + "narHash": "sha256-vQPF8Y36O99EuS0aVIZDlO9SuwlXzGfzQGNKeaBTFxg=", "owner": "nix-community", "repo": "nixpkgs-wayland", - "rev": "968d7a95604a2ec252ce9912199dfa9ec6410ff0", + "rev": "ee21b656ea43b305c8f7e25ab2994aec375083eb", "type": "github" }, "original": { @@ -694,11 +705,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1723221148, - "narHash": "sha256-7pjpeQlZUNQ4eeVntytU3jkw9dFK3k1Htgk2iuXjaD8=", + "lastModified": 1703134684, + "narHash": "sha256-SQmng1EnBFLzS7WSRyPM9HgmZP2kLJcPAz+Ug/nug6o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "154bcb95ad51bc257c2ce4043a725de6ca700ef6", + "rev": "d6863cbcbbb80e71cecfc03356db1cda38919523", "type": "github" }, "original": { @@ -710,11 +721,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1730200266, - "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", + "lastModified": 1713297878, + "narHash": "sha256-hOkzkhLT59wR8VaMbh1ESjtZLbGi+XNaBN6h49SPqEc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", + "rev": "66adc1e47f8784803f2deb6cacd5e07264ec2d5c", "type": "github" }, "original": { @@ -727,11 +738,11 @@ "ofi-pass": { "flake": false, "locked": { - "lastModified": 1723412133, - "narHash": "sha256-rOVbz4v1+DHPJMvRtxdOFWdOHlaxI7G2vm0bgEV/0Cg=", + "lastModified": 1691863924, + "narHash": "sha256-Vkm3QXjkLIu0RnM0w+upzAF9M7atKBPYqiV7f+eBKJY=", "owner": "sereinity", "repo": "ofi-pass", - "rev": "2b6aa6a3fc0504e63df4ac3449e0065a1a4d19d0", + "rev": "b20bd3440686429b113821c51a68b799675d5bb0", "type": "github" }, "original": { @@ -810,6 +821,7 @@ "nixpkgs-2211" ], "rperf": "rperf", + "salut": "salut", "sops-nix": "sops-nix", "srvos": "srvos", "x13s-bt-firmware": "x13s-bt-firmware", @@ -835,11 +847,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1730386175, - "narHash": "sha256-0Uq+/B8eu7pw8B8pxuGdFYKjcVLwNMcHfDxU9sXh7rg=", + "lastModified": 1713373173, + "narHash": "sha256-octd9BFY9G/Gbr4KfwK4itZp4Lx+qvJeRRcYnN+dEH8=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "0ba893e1a00d92557ac91efb771d72eee36ca687", + "rev": "46702ffc1a02a2ac153f1d1ce619ec917af8f3a6", "type": "github" }, "original": { @@ -849,6 +861,22 @@ "type": "github" } }, + "salut": { + "flake": false, + "locked": { + "lastModified": 1671283721, + "narHash": "sha256-W0lhhImSXtYJDeMbxyEioYu/Bh7ZclwR1/5DzNbxM8o=", + "owner": "snakedye", + "repo": "salut", + "rev": "aa57c4d190812908a9c32cd49cff14390c6dfdcb", + "type": "gitlab" + }, + "original": { + "owner": "snakedye", + "repo": "salut", + "type": "gitlab" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -857,11 +885,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1729999681, - "narHash": "sha256-qm0uCtM9bg97LeJTKQ8dqV/FvqRN+ompyW4GIJruLuw=", + "lastModified": 1713532771, + "narHash": "sha256-vfKxhYVMzG2tg48/1rewBoSLCrKIjQsG1j7Nm/Y2gf4=", "owner": "Mic92", "repo": "sops-nix", - "rev": "1666d16426abe79af5c47b7c0efa82fd31bf4c56", + "rev": "a929a011a09db735abc45a8a45d1ff7fdee62755", "type": "github" }, "original": { @@ -877,11 +905,11 @@ ] }, "locked": { - "lastModified": 1730335989, - "narHash": "sha256-hG7H+EcNZfNa5tsUzMX+NBYpG4viCTvfRp5t7ZUnKW8=", + "lastModified": 1713533513, + "narHash": "sha256-nv5GmWaGryyZU8ihQIYLZWasqaXTZKGTjsypG0TRw9Q=", "owner": "numtide", "repo": "srvos", - "rev": "b80b3ffabd20e39b579f45a33e638bbb1b297b60", + "rev": "d8945920cb8e98dc737d1fc2d42607f5916c34cf", "type": "github" }, "original": { @@ -892,16 +920,16 @@ }, "stable": { "locked": { - "lastModified": 1724316499, - "narHash": "sha256-Qb9MhKBUTCfWg/wqqaxt89Xfi6qTD3XpTzQ9eXi3JmE=", + "lastModified": 1696039360, + "narHash": "sha256-g7nIUV4uq1TOVeVIDEZLb005suTWCUjSY0zYOlSBsyE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "797f7dc49e0bc7fab4b57c021cdf68f595e47841", + "rev": "32dcb45f66c0487e92db8303a798ebc548cadedc", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.05", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } @@ -959,11 +987,11 @@ ] }, "locked": { - "lastModified": 1727252110, - "narHash": "sha256-3O7RWiXpvqBcCl84Mvqa8dXudZ1Bol1ubNdSmQt7nF4=", + "lastModified": 1717850719, + "narHash": "sha256-npYqVg+Wk4oxnWrnVG7416fpfrlRhp/lQ6wQ4DHI8YE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "1bff2ba6ec22bc90e9ad3f7e94cca0d37870afa3", + "rev": "4fc1c45a5f50169f9f29f6a98a438fb910b834ed", "type": "github" }, "original": { @@ -981,11 +1009,11 @@ ] }, "locked": { - "lastModified": 1723303070, - "narHash": "sha256-krGNVA30yptyRonohQ+i9cnK+CfCpedg6z3qzqVJcTs=", + "lastModified": 1702979157, + "narHash": "sha256-RnFBbLbpqtn4AoJGXKevQMCGhra4h6G2MPcuTSZZQ+g=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "14c092e0326de759e16b37535161b3cb9770cea3", + "rev": "2961375283668d867e64129c22af532de8e77734", "type": "github" }, "original": { @@ -1014,11 +1042,11 @@ ] }, "locked": { - "lastModified": 1725018627, - "narHash": "sha256-uBEU/aKl9jlJ8vIK556TaqSBEHx6/t6AE4fbt/AoRfA=", + "lastModified": 1710356110, + "narHash": "sha256-dLYYHNiimcY5WMOnYs9zHVKdjqoPhdFhbEJa2h5hel0=", "owner": "l4l", "repo": "yofi", - "rev": "09901e75cbdf2147553ab888adde480e57baa0d1", + "rev": "0d7af4653fa8f119a4aee0b7981edc88a6c7e892", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1b33c04..f6c7b3c 100644 --- a/flake.nix +++ b/flake.nix @@ -73,6 +73,11 @@ flake = false; }; + salut = { + url = "gitlab:snakedye/salut"; + flake = false; + }; + prs = { # https://gitlab.com/timvisee/prs/-/merge_requests/42/ # $ find "$(dirname $(readlink $(which prs)))/.." -name "_prs" @@ -230,8 +235,32 @@ dcpj4110dwDriver = dcpj4110dw.driver; dcpj4110dwCupswrapper = dcpj4110dw.cupswrapper; + # broken as of 2023-04-27 because it doesn't load without a config + # aphorme_launcher = craneLib.buildPackage {src = inputs.aphorme_launcher;}; + # yofi = inputs'.yofi.packages.default; + # ofi-pass = craneLibOfiPass.buildPackage {src = inputs.ofi-pass;}; + inherit (inputs'.colmena.packages) colmena; + # jay = pkgs.callPackage (self + /nix/pkgs/jay.nix) { + # src = inputs.jay; + # rustPlatform = pkgs.makeRustPlatform { + # cargo = inputs'.fenix.packages.stable.toolchain; + # rustc = inputs'.fenix.packages.stable.toolchain; + # }; + # }; + + salut = craneLib.buildPackage { + src = inputs.salut; + nativeBuildInputs = [ + pkgs.pkg-config + ]; + buildInputs = [ + pkgs.libxkbcommon + pkgs.fontconfig + ]; + }; + prs = pkgs.callPackage ({ @@ -300,6 +329,12 @@ ssh root@${self.colmena.sj-vps-htz0.deployment.targetHost} -L 8385:syncthing.containers:8384 ''; + logseq = + pkgs.callPackage ./nix/pkgs/logseq + (lib.attrsets.optionalAttrs pkgs.stdenv.isAarch64 { + overrideSrc = self.inputs.logseq_0_10_9_aarch64_appimage; + }); + rperf = craneLib.buildPackage { src = inputs.rperf; nativeBuildInputs = [ @@ -335,5 +370,9 @@ }; in (all // {default = all.develop;}); }; + + flake.nixosModules = { + # thinkpad-x13s = { pkgs, config, lib, options, ... } @ args: (import ./nix/os/modules/hardware.thinkpad-x13s.nix (args // { inherit self; })); + }; }); } diff --git a/nix/home-manager/configuration/graphical-fullblown.nix b/nix/home-manager/configuration/graphical-fullblown.nix index 5798fac..e498f29 100644 --- a/nix/home-manager/configuration/graphical-fullblown.nix +++ b/nix/home-manager/configuration/graphical-fullblown.nix @@ -50,17 +50,6 @@ in { "electron-27.3.11" ]; - nixpkgs.config.allowUnfree = [ - "electron-28.3.3" - "electron-27.3.11" - ]; - - # nixpkgs.config.allowUnfreePredicate = pkg: - # builtins.elem (lib.getName pkg) [ - # "smartgithg" - # "electron-27.3.11" - # ]; - home.packages = [] ++ (with pkgs; [ @@ -120,7 +109,7 @@ in { aspellDicts.de # skypeforlinux # pkgsUnstable.jitsi-meet-electron - thunderbird-128 + thunderbird-115 # betterbird # FIXME: depends on insecure openssl 1.1.1t @@ -129,6 +118,8 @@ in { # TODO: remove or reuse this depending on whether waydroid signal works pkgsUnstable.signal-desktop + # gnome.cheese + # Virtualization virt-manager @@ -145,8 +136,6 @@ in { yt-dlp (writeShellScriptBin "youtube-dl-audio" "${yt-dlp}/bin/yt-dlp --extract-audio --audio-format best --audio-quality 9 \${@:?}") libwebcam - libcamera - snapshot # Network Tools tcpdump @@ -211,7 +200,7 @@ in { # dex coreutils lsof - xdg-utils + xdg_utils xdg-user-dirs dconf picocom @@ -240,26 +229,14 @@ in { # libretro.snes9x2010 # retroarchFull - ( - pkgs.logseq.overrideAttrs ( - attrs: - lib.attrsets.recursiveUpdate - attrs - ( - lib.attrsets.optionalAttrs pkgs.stdenv.isAarch64 { - src = repoFlake.inputs.logseq_0_10_9_aarch64_appimage; - meta.platforms = ["aarch64-linux"]; - } - ) - ) - ) - - # ( - # pkgsUnstable.callPackage (repoFlake + "/nix/pkgs/logseq") - # (lib.attrsets.optionalAttrs pkgs.stdenv.isAarch64 { - # overrideSrc = repoFlake.inputs.logseq_0_10_9_aarch64_appimage; - # }) - # ) + packages'.logseq + # (pkgs.runCommand "logseq-wrapper" + # { + # nativeBuildInputs = [ pkgs.makeWrapper ]; + # } '' + # makeWrapper ${pkgs.logseq}/bin/logseq $out/bin/logseq \ + # --set NIXOS_OZONE_WL "" + # '') ]) ++ (lib.lists.optionals (!pkgs.stdenv.targetPlatform.isAarch64) [ ]) diff --git a/nix/home-manager/profiles/common.nix b/nix/home-manager/profiles/common.nix index d5b0c7e..2f5b051 100644 --- a/nix/home-manager/profiles/common.nix +++ b/nix/home-manager/profiles/common.nix @@ -13,27 +13,9 @@ nixpkgs.config = { allowBroken = false; allowUnfree = true; - allowUnsupportedSystem = true; - - allowInsecurePredicate = pkg: - builtins.elem (lib.getName pkg) [ - "electron-28.3.3" - "electron-27.3.11" - "electron" - ]; permittedInsecurePackages = [ - "electron-28.3.3" - "electron-27.3.11" - "electron" ]; - - allowUnfreePredicate = pkg: - builtins.elem (lib.getName pkg) [ - "obsidian" - "vivaldi" - "aspell-dict-en-science" - ]; }; home.keyboard = { diff --git a/nix/home-manager/profiles/sway-desktop.nix b/nix/home-manager/profiles/sway-desktop.nix index 8cfe85a..1acf089 100644 --- a/nix/home-manager/profiles/sway-desktop.nix +++ b/nix/home-manager/profiles/sway-desktop.nix @@ -33,8 +33,22 @@ in { imports = [ ../profiles/wayland-desktop.nix ../programs/waybar.nix + # ../programs/salut.nix ]; + # TODO: autostart + # environment.loginShellInit = '' + # if [[ "$(tty)" == /dev/tty1 ]]; then + # echo starting sway.. + # exec sway + # fi + # ''; + + services = { + # TODO: doesn't work with 2 screens + # flameshot.enable = true; + }; + services.dunst = { enable = true; }; @@ -59,6 +73,7 @@ in { pkgs.ttf_bitstream_vera pkgs.noto-fonts + pkgs.noto-fonts-cjk pkgs.noto-fonts-cjk-sans pkgs.noto-fonts-cjk-serif pkgs.noto-fonts-emoji @@ -73,12 +88,12 @@ in { pkgs.dina-font pkgs.monoid pkgs.hermit - ### found on colemickens' repo + # found on colemickens' repo pkgs.gelasio # metric-compatible with Georgia pkgs.powerline-symbols pkgs.iosevka-comfy.comfy-fixed - ## experimental stuff + # experimental stuff pkgs.fuzzel ]; diff --git a/nix/home-manager/programs/firefox.nix b/nix/home-manager/programs/firefox.nix index 993cbc4..05beab4 100644 --- a/nix/home-manager/programs/firefox.nix +++ b/nix/home-manager/programs/firefox.nix @@ -1,9 +1,6 @@ {pkgs, ...}: { - programs.librewolf = {enable = false;}; - programs.firefox = { - enable = true; - package = pkgs.firefox-esr-128; - }; + programs.librewolf = {enable = true;}; + programs.firefox = {enable = true;}; # home.file.".mozilla/native-messaging-hosts/passff.json".source = "${pkgs.passff-host}/share/passff-host/passff.json"; } diff --git a/nix/home-manager/programs/libreoffice.nix b/nix/home-manager/programs/libreoffice.nix index 17d0a24..f5921e2 100644 --- a/nix/home-manager/programs/libreoffice.nix +++ b/nix/home-manager/programs/libreoffice.nix @@ -1,3 +1,3 @@ {pkgs, ...}: { - home.packages = [pkgs.libreoffice]; + home.packages = with pkgs; [libreoffice-fresh]; } diff --git a/nix/os/containers/mycelium/configuration.nix b/nix/os/containers/mycelium/configuration.nix new file mode 100644 index 0000000..e69de29 diff --git a/nix/os/containers/mycelium/flake.nix b/nix/os/containers/mycelium/flake.nix index fa8340a..c139c0e 100644 --- a/nix/os/containers/mycelium/flake.nix +++ b/nix/os/containers/mycelium/flake.nix @@ -159,16 +159,17 @@ ''); systemd.services.testing-credentials = { + description = "testing credentials"; wantedBy = ["multi-user.target"]; path = [pkgs.coreutils]; serviceConfig = { - # SyslogIdentifier = "testing-credentials"; - # StateDirectory = "testing-credentials"; - # DynamicUser = true; + SyslogIdentifier = "testing-credential"; + StateDirectory = "testing-credentials"; + DynamicUser = true; # User = "tc"; # ProtectHome = true; - # ProtectSystem = true; + ProtectSystem = true; # LoadCredential = [ # "mycelium-keyfile:${self.nixosConfigurations.default.config.services.mycelium.keyFile}" # "hosts:/etc/hosts" @@ -240,7 +241,6 @@ # this is read by the `/init` script and prevents various incompatible commands like mount, etc. # the value of this doesn't seem to matter as long as it's not an empty string. "container=nerd" - "SYSTEMD_LOG_LEVEL=debug" ]; volumes = { # "/var/lib/private/mycelium/key.bin" = {}; diff --git a/nix/os/devices/steveej-x13s/configuration.nix b/nix/os/devices/steveej-x13s/configuration.nix index 831f1f0..81ddf3c 100644 --- a/nix/os/devices/steveej-x13s/configuration.nix +++ b/nix/os/devices/steveej-x13s/configuration.nix @@ -10,7 +10,12 @@ packages', ... }: { - nixpkgs.overlays = [nodeFlake.overlays.default]; + nixpkgs.overlays = [ + (final: previous: { + # inherit (nodeFlake.inputs.nixpkgs-systemd256.legacyPackages.${system}) systemd systemdMinimal; + # inherit (nodeFlake.inputs.nixpkgs-unstable.legacyPackages.${system}) libcamera libcamera-qcam; + }) + ]; nixos-x13s = { enable = true; @@ -109,44 +114,27 @@ protocol = "ssh-ng"; systems = [ "x86_64-linux" + # "aarch64-linux" ]; supportedFeatures = [ "big-parallel" "kvm" - "nixos-test" ]; maxJobs = 16; } - { - hostName = "aarch64-linux-builder-0.infra.holochain.org"; - sshUser = "nix-remote-builder"; - sshKey = config.sops.secrets.builder-private-key.path; - protocol = "ssh-ng"; - systems = [ - "aarch64-linux" - ]; - supportedFeatures = [ - "big-parallel" - "kvm" - "nixos-test" - ]; - maxJobs = 4; - } - { hostName = "x64-linux-dev-01.dev.infra.holochain.org"; sshUser = "nix-remote-builder"; sshKey = config.sops.secrets.builder-private-key.path; protocol = "ssh-ng"; systems = [ - # "x86_64-linux" - "aarch64-linux" + "x86_64-linux" + # "aarch64-linux" ]; supportedFeatures = [ "big-parallel" "kvm" - "nixos-test" ]; maxJobs = 0; } @@ -211,14 +199,12 @@ ../../../home-manager/configuration/graphical-fullblown.nix ]; - nixpkgs.overlays = [nodeFlake.overlays.default]; - home.sessionVariables = {}; home.packages = with pkgs; [ ]; - # TODO(upstream): currently unsupported on x13s + # TODO: currently unsupported services.gammastep.enable = true; }; @@ -253,6 +239,14 @@ virtualisation.containers.enable = true; virtualisation.podman.enable = true; + nix.settings.substituters = [ + "https://nixos-x13s.cachix.org" + ]; + + nix.settings.trusted-public-keys = [ + "nixos-x13s.cachix.org-1:SzroHbidolBD3Sf6UusXp12YZ+a5ynWv0RtYF0btFos=" + ]; + steveej.holo-zerotier = { enable = true; autostart = false; @@ -264,6 +258,4 @@ programs.adb.enable = true; nix.settings.sandbox = lib.mkForce "relaxed"; - - systemd.user.services.wireplumber.environment.LIBCAMERA_IPA_PROXY_PATH = "${pkgs.libcamera}/libexec/libcamera"; } diff --git a/nix/os/devices/steveej-x13s/flake.lock b/nix/os/devices/steveej-x13s/flake.lock index 5425600..66da2af 100644 --- a/nix/os/devices/steveej-x13s/flake.lock +++ b/nix/os/devices/steveej-x13s/flake.lock @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1730190761, - "narHash": "sha256-o5m5WzvY6cGIDupuOvjgNSS8AN6yP2iI9MtUC6q/uos=", + "lastModified": 1725377834, + "narHash": "sha256-tqoAO8oT6zEUDXte98cvA1saU9+1dLJQe3pMKLXv8ps=", "owner": "nix-community", "repo": "disko", - "rev": "3979285062d6781525cded0f6c4ff92e71376b55", + "rev": "e55f9a8678adc02024a4877c2a403e3f6daf24fe", "type": "github" }, "original": { @@ -148,11 +148,11 @@ ] }, "locked": { - "lastModified": 1726989464, - "narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=", + "lastModified": 1725703823, + "narHash": "sha256-tDgM4d8mLK0Hd6YMB2w1BqMto1XBXADOzPEaLl10VI4=", "owner": "nix-community", "repo": "home-manager", - "rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176", + "rev": "208df2e558b73b6a1f0faec98493cb59a25f62ba", "type": "github" }, "original": { @@ -165,16 +165,16 @@ "linux-jhovold": { "flake": false, "locked": { - "lastModified": 1730186574, - "narHash": "sha256-QjStPt3c/v55lJUgn4Rdx/WTaQKdUxNL9nwkIKQ8O2Q=", + "lastModified": 1728631036, + "narHash": "sha256-1LnClVjY6WS+IR9eqPFA7gzXm0cio3mY23NXj9cKHHs=", "owner": "jhovold", "repo": "linux", - "rev": "699d5b0ccdc1a343ded65aa876f0b720ca7dada9", + "rev": "6a97bc22fa36010400b91e6d5979741c391112c3", "type": "github" }, "original": { "owner": "jhovold", - "ref": "wip/sc8280xp-6.12-rc5", + "ref": "wip/sc8280xp-6.12-rc2", "repo": "linux", "type": "github" } @@ -190,11 +190,11 @@ ] }, "locked": { - "lastModified": 1730381857, - "narHash": "sha256-PbEoM+AnZTuo9xtwcDcTH9FZAzPzfBhX41+zVVTdgRo=", + "lastModified": 1725529869, + "narHash": "sha256-ekEL4HrZbAeoZmopkxvZ4Z4ufkUEv09b4liGnIIiryc=", "owner": "threefoldtech", "repo": "mycelium", - "rev": "8a2b564c8e279d4afd0a10058b4481799a7513e1", + "rev": "43c774cc1d5bae9558d0086e2be334812cafe2be", "type": "github" }, "original": { @@ -247,18 +247,17 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1730215039, - "narHash": "sha256-GxhtLAsdpZX2SndSu/AoKugk/vht5RZ47FTcrYILDew=", - "ref": "bump", - "rev": "ff41877fbdf32f2029ade902f10142afb053d2da", - "revCount": 116, + "lastModified": 1728680044, + "narHash": "sha256-kDqUDwEEv1KPOObmdnO3zb5mFthFDHoPgzVDpmRIq44=", + "ref": "refs/heads/remaintain", + "rev": "f691c125485b6764ebef0b9f148613d79de95525", + "revCount": 109, "type": "git", - "url": "https://forgejo.www.stefanjunker.de/steveej/nixos-x13s.git" + "url": "https://forgejo.www.stefanjunker.de/steveej/nixos-x13s.git?branch=remaintain" }, "original": { - "ref": "bump", "type": "git", - "url": "https://forgejo.www.stefanjunker.de/steveej/nixos-x13s.git" + "url": "https://forgejo.www.stefanjunker.de/steveej/nixos-x13s.git?branch=remaintain" } }, "nixpkgs": { @@ -289,13 +288,29 @@ "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" } }, - "nixpkgs-stable": { + "nixpkgs-unstable": { "locked": { - "lastModified": 1730327045, - "narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=", + "lastModified": 1728621521, + "narHash": "sha256-Fk8C/cywdAP//XjK1/CF2VMIRoQjhosCor71p84ff+c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "080166c15633801df010977d9d7474b4a6c549d7", + "rev": "7045aa75c71e90ae3bbb486d35414b08add9c424", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1725826545, + "narHash": "sha256-L64N1rpLlXdc94H+F6scnrbuEu+utC03cDDVvvJGOME=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "f4c846aee8e1e29062aa8514d5e0ab270f4ec2f9", "type": "github" }, "original": { @@ -305,22 +320,6 @@ "type": "github" } }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1730200266, - "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "disko": "disko", @@ -329,10 +328,7 @@ "mycelium": "mycelium", "nix-snapshotter": "nix-snapshotter", "nixos-x13s": "nixos-x13s", - "nixpkgs": [ - "nixpkgs-stable" - ], - "nixpkgs-stable": "nixpkgs-stable", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable" } }, diff --git a/nix/os/devices/steveej-x13s/flake.nix b/nix/os/devices/steveej-x13s/flake.nix index aa74be0..61a760d 100644 --- a/nix/os/devices/steveej-x13s/flake.nix +++ b/nix/os/devices/steveej-x13s/flake.nix @@ -1,21 +1,22 @@ { inputs = { - nixpkgs.follows = "nixpkgs-stable"; - nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; + # nixpkgs.follows = "nixpkgs-unstable"; + + # required for home-manager modules + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable-small"; get-flake.url = "github:ursi/get-flake"; disko.inputs.nixpkgs.follows = "nixpkgs"; home-manager = { - # url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-x13s.url = - "git+https://forgejo.www.stefanjunker.de/steveej/nixos-x13s.git?ref=bump" + "git+https://forgejo.www.stefanjunker.de/steveej/nixos-x13s.git?branch=remaintain" # 6.11.0 # "git+https://forgejo.www.stefanjunker.de/steveej/nixos-x13s.git?branch=remaintain&rev=6b9efe77ca80653354981c720af3c4241ac71490" # 6.12.0-rc6 @@ -74,6 +75,7 @@ # flake registry { + nixpkgs.overlays = builtins.attrValues self.overlays; nix.registry.nixpkgs.flake = nixpkgs; } ] @@ -85,52 +87,7 @@ inherit mkNixosConfiguration; }; - overlays.libcamera = final: previous: { - wireplumber = previous.wireplumber.overrideAttrs (_: { - version = "git"; - src = previous.fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "pipewire"; - repo = "wireplumber"; - rev = "71f868233792f10848644319dbdc97a4f147d554"; - hash = "sha256-VX3OFsBK9AbISm/XTx8p05ak+z/VcKXfUXhB9aI9ev8="; - }; - }); - - libcamera = previous.libcamera.overrideAttrs (_: { - postFixup = '' - ../src/ipa/ipa-sign-install.sh src/ipa-priv-key.pem $out/lib/libcamera/ipa_*.so - ''; - }); - - libcamera-qcam = previous.libcamera-qcam.overrideAttrs (_: { - postFixup = '' - ../src/ipa/ipa-sign-install.sh src/ipa-priv-key.pem $out/lib/libcamera/ipa_*.so - ''; - }); - }; - - overlays.default = final: previous: let - inherit (previous.stdenv) system; - pkgsUnstable = import self.inputs.nixpkgs-unstable.outPath { - inherit system; - overlays = [self.overlays.libcamera]; - }; - in { - inherit - (pkgsUnstable) - libcamera - ; - - webkitgtk = previous.webkitgtk.overrideAttrs (attrs: { - preConfigure = - attrs.preConfigure - + '' - export NIX_BUILD_CORES="$((NIX_BUILD_CORES > 8 ? 8 : NIX_BUILD_CORES))" - export NUMBER_OF_PROCESSORS="$NIX_BUILD_CORES" - ''; - }); - }; + overlays = {}; nixosConfigurations = { native = mkNixosConfiguration { diff --git a/nix/os/modules/hardware.thinkpad-x13s.nix b/nix/os/modules/hardware.thinkpad-x13s.nix new file mode 100644 index 0000000..1e7223d --- /dev/null +++ b/nix/os/modules/hardware.thinkpad-x13s.nix @@ -0,0 +1,240 @@ +{ + self, + pkgs, + config, + lib, + options, + ... +}: let + # TODO: introduce options for these + kernelPdMapper = true; + cfg = config.hardware.thinkpad-x13s; +in { + options.hardware.thinkpad-x13s = { + # TODO: respect this + enable = lib.mkEnableOption "x13s hardware support"; + + bluetoothMac = lib.mkOption { + type = lib.types.str; + description = "mac address to set on boot"; + }; + }; + config = let + inherit (config.boot.loader) efi; + kp = [ + { + name = "x13s-cfg"; + patch = null; + extraStructuredConfig = with lib.kernel; { + EFI_ARMSTUB_DTB_LOADER = lib.mkForce yes; + OF_OVERLAY = lib.mkForce yes; + BTRFS_FS = lib.mkForce yes; + BTRFS_FS_POSIX_ACL = lib.mkForce yes; + MEDIA_CONTROLLER = lib.mkForce yes; + SND_USB_AUDIO_USE_MEDIA_CONTROLLER = lib.mkForce yes; + SND_USB = lib.mkForce yes; + SND_USB_AUDIO = lib.mkForce module; + USB_XHCI_PCI = lib.mkForce module; + NO_HZ_FULL = lib.mkForce yes; + HZ_100 = lib.mkForce yes; + HZ_250 = lib.mkForce no; + DRM_AMDGPU = lib.mkForce no; + DRM_NOUVEAU = lib.mkForce no; + QCOM_TSENS = lib.mkForce yes; + NVMEM_QCOM_QFPROM = lib.mkForce yes; + ARM_QCOM_CPUFREQ_NVMEM = lib.mkForce yes; + VIRTIO_PCI = lib.mkForce module; + # forthcoming kernel work: QCOM_PD_MAPPER = lib.mkForce module; + }; + } + ]; + + qrtr = pkgs.callPackage "${self.inputs.adamcstephens_stop-export}/hardware/x13s/qrtr/qrtr.nix" {}; + pd-mapper = pkgs.callPackage "${self.inputs.adamcstephens_stop-export}/hardware/x13s/qrtr/pd-mapper.nix" { + inherit qrtr; + }; + + # We can't quite move to mainline linux + linux_x13s_pkg = {buildLinux, ...} @ args: + buildLinux (args + // rec { + version = "6.7.0"; + modDirVersion = lib.versions.pad 3 version; + extraMeta.branch = lib.versions.majorMinor version; + + src = self.inputs.linux_x13s; + kernelPatches = (args.kernelPatches or []) ++ kp; + } + // (args.argsOverride or {})); + + # we add additional configuration on top of te normal configuration above + # using the extraStructuredConfig option on the kernel patch + linux_x13s = pkgs.callPackage linux_x13s_pkg { + defconfig = "johan_defconfig"; + }; + + linuxPackages_x13s = pkgs.linuxPackagesFor linux_x13s; + dtbName = "sc8280xp-lenovo-thinkpad-x13s.dtb"; + dtb = "${linuxPackages_x13s.kernel}/dtbs/qcom/${dtbName}"; + + x13s_alsa-ucm-conf = pkgs.alsa-ucm-conf.overrideAttrs (prev: { + src = self.inputs.alsa-ucm-conf; + }); + alsa-ucm-conf-env.ALSA_CONFIG_UCM2 = "${x13s_alsa-ucm-conf}/share/alsa/ucm2"; + in + lib.mkIf cfg.enable + { + nixpkgs.overlays = [ + ( + final: prev: { + x13s_extra-firmware = + pkgs.callPackage + "${self.inputs.adamcstephens_stop-export}/hardware/x13s/extra-firmware.nix" + {}; + + inherit qrtr pd-mapper; + } + ) + ]; + + # ensure the x13s' dtb file is in the boot partition + # TODO:: is this needed for the VT display somehow? + system.activationScripts.x13s-dtb = '' + in_package="${dtb}" + esp_tool_folder="${efi.efiSysMountPoint}/" + in_esp="''${esp_tool_folder}${dtbName}" + >&2 echo "Ensuring $in_esp in EFI System Partition" + if ! ${pkgs.diffutils}/bin/cmp --silent "$in_package" "$in_esp"; then + >&2 echo "Copying $in_package -> $in_esp" + mkdir -p "$esp_tool_folder" + cp "$in_package" "$in_esp" + sync + fi + ''; + + boot = { + loader.systemd-boot.enable = true; + loader.systemd-boot.extraFiles = { + "${dtbName}" = dtb; + }; + loader.efi.canTouchEfiVariables = false; + loader.efi.efiSysMountPoint = "/boot"; + + blacklistedKernelModules = ["wwan"]; + + kernelPackages = linuxPackages_x13s; + + kernelParams = [ + "dtb=${dtbName}" + + "boot.shell_on_fail" + + # jhovold recommended + "efi=noruntime" + "clk_ignore_unused" + "pd_ignore_unused" + "arm64.nopauth" + + # blacklist graphics in initrd so the firmware can load from disk + "rd.driver.blacklist=msm" + ]; + + initrd = { + includeDefaultModules = false; + + # kernelModules = [ + # "nvme" + # "phy_qcom_qmp_pcie" + # "pcie_qcom" + + # "i2c_core" + # "i2c_hid" + # "i2c_hid_of" + # "i2c_qcom_geni" + + # "leds_qcom_lpg" + # "pwm_bl" + # "qrtr" + # "pmic_glink_altmode" + # "gpio_sbu_mux" + # "phy_qcom_qmp_combo" + # "gpucc_sc8280xp" + # "dispcc_sc8280xp" + # "phy_qcom_edp" + # "panel_edp" + # # "msm" + + # ]; + + availableKernelModules = [ + "i2c_hid" + "i2c_hid_of" + "i2c_qcom_geni" + "leds_qcom_lpg" + "pwm_bl" + "qrtr" + "pmic_glink_altmode" + "gpio_sbu_mux" + "phy_qcom_qmp_combo" + "panel_edp" + # "msm" + "phy_qcom_edp" + "i2c_core" + "i2c_hid" + "i2c_hid_of" + "i2c_qcom_geni" + "pcie_qcom" + "phy_qcom_qmp_combo" + "phy_qcom_qmp_pcie" + "phy_qcom_qmp_usb" + "phy_qcom_snps_femto_v2" + "phy_qcom_usb_hs" + "nvme" + + "usbcore" + "xhci_hcd" + "usbhid" + "usb_storage" + "uas" + ]; + }; + }; + + # default is performance + powerManagement.cpuFreqGovernor = "ondemand"; + + hardware.enableAllFirmware = true; + hardware.firmware = [ + # pkgs.linux-firmware + + pkgs.x13s_extra-firmware + ]; + + systemd.services.pd-mapper = { + wantedBy = ["multi-user.target"]; + + serviceConfig = { + ExecStart = "${lib.getExe pd-mapper}"; + Restart = "always"; + }; + }; + + environment.sessionVariables = alsa-ucm-conf-env; + systemd.user.services.pipewire.environment = alsa-ucm-conf-env; + systemd.user.services.wireplumber.environment = alsa-ucm-conf-env; + + systemd.services.bluetooth = { + serviceConfig = { + # disabled because btmgmt call hangs + ExecStartPre = [ + "" + "${pkgs.util-linux}/bin/rfkill block bluetooth" + "${pkgs.bluez5-experimental}/bin/btmgmt public-addr ${cfg.bluetoothMac}" + "${pkgs.util-linux}/bin/rfkill unblock bluetooth" + ]; + RestartSec = 5; + Restart = "on-failure"; + }; + }; + }; +} diff --git a/nix/os/snippets/holo-zerotier.nix b/nix/os/snippets/holo-zerotier.nix index 8ea2be5..8b09cea 100644 --- a/nix/os/snippets/holo-zerotier.nix +++ b/nix/os/snippets/holo-zerotier.nix @@ -11,7 +11,7 @@ in { }; config = { - nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["zerotierone"]; + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "zerotierone" ]; services.zerotierone = { enable = cfg.enable; diff --git a/nix/os/snippets/home-manager-with-zsh.nix b/nix/os/snippets/home-manager-with-zsh.nix index 266a125..63f4962 100644 --- a/nix/os/snippets/home-manager-with-zsh.nix +++ b/nix/os/snippets/home-manager-with-zsh.nix @@ -4,7 +4,6 @@ repoFlakeInputs', packages', pkgs, - lib, ... }: let # TODO: make this configurable diff --git a/nix/os/snippets/sway-desktop.nix b/nix/os/snippets/sway-desktop.nix index f8d21b0..71008cb 100644 --- a/nix/os/snippets/sway-desktop.nix +++ b/nix/os/snippets/sway-desktop.nix @@ -18,7 +18,7 @@ in { services.gvfs = { enable = true; - package = lib.mkForce pkgs.gnome.gvfs; + package = lib.mkForce pkgs.gnome3.gvfs; }; environment.systemPackages = with pkgs; [ @@ -36,7 +36,7 @@ in { # FIXME: `true` breaks xdg-open from alacritty: # $ xdg-open "https://github.com/" # Error: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.OpenURI” on object at path /org/freedesktop/portal/desktop - xdgOpenUsePortal = false; + xdgOpenUsePortal = true; wlr = { enable = true; @@ -89,7 +89,6 @@ in { alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; - wireplumber.enable = true; # If you want to use JACK applications, uncomment this #jack.enable = true; }; diff --git a/nix/pkgs/logseq/default.nix b/nix/pkgs/logseq/default.nix index 159d03b..a50818a 100644 --- a/nix/pkgs/logseq/default.nix +++ b/nix/pkgs/logseq/default.nix @@ -3,13 +3,9 @@ stdenv, fetchurl, appimageTools, - unzip, makeWrapper, - # Notice: graphs will not sync without matching upstream's major electron version - # the specific electron version is set at top-level file to preserve override interface. - # whenever updating this package also sync electron version at top-level file. + # graphs will not sync without matching upstream's major electron version electron_27, - autoPatchelfHook, git, nix-update-script, overrideSrc ? null, @@ -26,73 +22,62 @@ in { else (fetchurl { url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; - hash = "sha256-F3YbqgvL04P0nXaIVkJlCq/z8hUE0M0UutkBs2omuBe="; + hash = "sha256-F3YbqgvL04P0nXaIVkJlCq/z8hUE0M0UutkBs2omuBE="; name = "${pname}-${version}.AppImage"; }); - nativeBuildInputs = - [makeWrapper] - ++ lib.optionals stdenv.hostPlatform.isLinux [autoPatchelfHook] - ++ lib.optionals stdenv.hostPlatform.isDarwin [unzip]; - buildInputs = [stdenv.cc.cc.lib]; + appimageContents = appimageTools.extract { + inherit pname src version; + }; - dontUnpack = stdenv.hostPlatform.isLinux; + dontUnpack = true; dontConfigure = true; dontBuild = true; - installPhase = - '' - runHook preInstall - '' - + lib.optionalString stdenv.hostPlatform.isLinux ( - let - appimageContents = appimageTools.extract {inherit pname src version;}; - in '' - mkdir -p $out/bin $out/share/logseq $out/share/applications - cp -a ${appimageContents}/{locales,resources} $out/share/logseq - cp -a ${appimageContents}/Logseq.desktop $out/share/applications/logseq.desktop + nativeBuildInputs = [makeWrapper]; - # remove the `git` in `dugite` because we want the `git` in `nixpkgs` - chmod +w -R $out/share/logseq/resources/app/node_modules/dugite/git - chmod +w $out/share/logseq/resources/app/node_modules/dugite - rm -rf $out/share/logseq/resources/app/node_modules/dugite/git - chmod -w $out/share/logseq/resources/app/node_modules/dugite + installPhase = '' + runHook preInstall - mkdir -p $out/share/pixmaps - ln -s $out/share/logseq/resources/app/icons/logseq.png $out/share/pixmaps/logseq.png + mkdir -p $out/bin $out/share/${pname} $out/share/applications + cp -a ${appimageContents}/{locales,resources} $out/share/${pname} + cp -a ${appimageContents}/Logseq.desktop $out/share/applications/${pname}.desktop - substituteInPlace $out/share/applications/logseq.desktop \ - --replace Exec=Logseq Exec=logseq \ - --replace Icon=Logseq Icon=logseq - '' - ) - + lib.optionalString stdenv.hostPlatform.isDarwin '' - mkdir -p $out/{Applications/Logseq.app,bin} - cp -R . $out/Applications/Logseq.app - makeWrapper $out/Applications/Logseq.app/Contents/MacOS/Logseq $out/bin/logseq - '' - + '' - runHook postInstall - ''; + # remove the `git` in `dugite` because we want the `git` in `nixpkgs` + if test -e $out/share/${pname}/resources/app/node_modules/dugite/git; then + chmod +w -R $out/share/${pname}/resources/app/node_modules/dugite/git + chmod +w $out/share/${pname}/resources/app/node_modules/dugite + rm -rf $out/share/${pname}/resources/app/node_modules/dugite/git + chmod -w $out/share/${pname}/resources/app/node_modules/dugite + fi - postFixup = lib.optionalString stdenv.hostPlatform.isLinux '' + mkdir -p $out/share/pixmaps + ln -s $out/share/${pname}/resources/app/icons/logseq.png $out/share/pixmaps/${pname}.png + + substituteInPlace $out/share/applications/${pname}.desktop \ + --replace Exec=Logseq Exec=${pname} \ + --replace Icon=Logseq Icon=${pname} + + runHook postInstall + ''; + + postFixup = '' # set the env "LOCAL_GIT_DIRECTORY" for dugite so that we can use the git in nixpkgs - makeWrapper ${electron_27}/bin/electron $out/bin/logseq \ + makeWrapper ${electron_27}/bin/electron $out/bin/${pname} \ --set "LOCAL_GIT_DIRECTORY" ${git} \ - --add-flags $out/share/logseq/resources/app \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" + --add-flags $out/share/${pname}/resources/app \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [stdenv.cc.cc.lib]}" ''; passthru.updateScript = nix-update-script {}; meta = { - description = "Local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base"; + description = "A local-first, non-linear, outliner notebook for organizing and sharing your personal knowledge base"; homepage = "https://github.com/logseq/logseq"; changelog = "https://github.com/logseq/logseq/releases/tag/${version}"; license = lib.licenses.agpl3Plus; - sourceProvenance = with lib.sourceTypes; [binaryNativeCode]; - maintainers = with lib.maintainers; [cheeseecake]; - platforms = ["x86_64-linux" "aarch64-linux"] ++ lib.platforms.darwin; - mainProgram = "logseq"; + maintainers = with lib.maintainers; []; + platforms = ["x86_64-linux" "aarch64-linux"]; }; })