1
0
Zander Hawke 11 сар өмнө
parent
commit
4c8f55c13c

+ 30 - 0
README.md

@@ -4,3 +4,33 @@ Simply run this on any system that has `nix` and a user `thomas`:
 ```bash
 nix run github:nix-community/home-manager -- switch --flake .#thomas
 ```
+
+Notes:
+Rewatch this: https://www.youtube.com/watch?v=X-Lzq7jAT8I
+
+
+photo-cli copy \
+  --process-type SubFoldersPreserveFolderHierarchy \
+  --naming-style DateTimeWithSecondsAddress \
+  --number-style PaddingZeroCharacter \
+  --folder-append DayRange \
+  --folder-append-location Prefix \
+  --reverse-geocode OpenStreetMapFoundation \
+  --openstreetmap-properties country city town suburb \
+  --no-coordinate InSubFolder \
+  --no-taken-date InSubFolder \
+  --verify \
+  --output ~/Photos
+
+photo-cli copy \
+  --process-type FlattenAllSubFolders \
+  --group-by AddressHierarchy \
+  --naming-style DayAddress \
+  --reverse-geocode OpenStreetMapFoundation \
+  --openstreetmap-properties country city town suburb \
+  --number-style OnlySequentialNumbers \
+  --no-taken-date AppendToEndOrderByFileName \
+  --no-coordinate InSubFolder \
+  --input ~/Backup \
+  --output ~/Photos \
+  --dry-run --verify

+ 83 - 249
flake.lock

@@ -9,16 +9,20 @@
           "devenv"
         ],
         "git-hooks": [
-          "devenv"
+          "devenv",
+          "git-hooks"
         ],
-        "nixpkgs": "nixpkgs"
+        "nixpkgs": [
+          "devenv",
+          "nixpkgs"
+        ]
       },
       "locked": {
-        "lastModified": 1737621947,
-        "narHash": "sha256-8HFvG7fvIFbgtaYAY2628Tb89fA55nPm2jSiNs0/Cws=",
+        "lastModified": 1748883665,
+        "narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=",
         "owner": "cachix",
         "repo": "cachix",
-        "rev": "f65a3cd5e339c223471e64c051434616e18cc4f5",
+        "rev": "f707778d902af4d62d8dd92c269f8e70de09acbe",
         "type": "github"
       },
       "original": {
@@ -35,16 +39,16 @@
         ]
       },
       "locked": {
-        "lastModified": 1737421067,
-        "narHash": "sha256-/hgw8fDKDpko0XqOw1e9tX8lS2Hqecg7W/JsONun6Qc=",
+        "lastModified": 1749744770,
+        "narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=",
         "owner": "lnl7",
         "repo": "nix-darwin",
-        "rev": "cae8d1c4a3bd37be5887203fe3b0c3a860c53a07",
+        "rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb",
         "type": "github"
       },
       "original": {
         "owner": "lnl7",
-        "ref": "nix-darwin-24.11",
+        "ref": "nix-darwin-25.05",
         "repo": "nix-darwin",
         "type": "github"
       }
@@ -60,11 +64,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1739003866,
-        "narHash": "sha256-Uxc5JYTB9Dij4t8SBQmfs6Gh5DDsGRS37v3uPQfNvAg=",
+        "lastModified": 1750993128,
+        "narHash": "sha256-0JLfnaPQ/RYpZzJexMlX5wmiJzbb7qWU/BjVwPbBx5Q=",
         "owner": "cachix",
         "repo": "devenv",
-        "rev": "ebaa7440666d6aadea574b723c9188cf6f56447f",
+        "rev": "acaec01e60eb7271eac23fda76c6a3417741d531",
         "type": "github"
       },
       "original": {
@@ -73,27 +77,6 @@
         "type": "github"
       }
     },
-    "devshell": {
-      "inputs": {
-        "nixpkgs": [
-          "nixvim",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1735644329,
-        "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
-        "owner": "numtide",
-        "repo": "devshell",
-        "rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
-        "type": "github"
-      },
-      "original": {
-        "owner": "numtide",
-        "repo": "devshell",
-        "type": "github"
-      }
-    },
     "disko": {
       "inputs": {
         "nixpkgs": [
@@ -101,11 +84,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1738765162,
-        "narHash": "sha256-3Z40qHaFScWUCVQrGc4Y+RdoPsh1R/wIh+AN4cTXP0I=",
+        "lastModified": 1750903843,
+        "narHash": "sha256-Ng9+f0H5/dW+mq/XOKvB9uwvGbsuiiO6HrPdAcVglCs=",
         "owner": "nix-community",
         "repo": "disko",
-        "rev": "ff3568858c54bd306e9e1f2886f0f781df307dff",
+        "rev": "83c4da299c1d7d300f8c6fd3a72ac46cb0d59aae",
         "type": "github"
       },
       "original": {
@@ -117,11 +100,11 @@
     "flake-compat": {
       "flake": false,
       "locked": {
-        "lastModified": 1733328505,
-        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+        "lastModified": 1747046372,
+        "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
         "owner": "edolstra",
         "repo": "flake-compat",
-        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+        "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
         "type": "github"
       },
       "original": {
@@ -130,20 +113,6 @@
         "type": "github"
       }
     },
-    "flake-compat_2": {
-      "locked": {
-        "lastModified": 1733328505,
-        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
-        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
-        "revCount": 69,
-        "type": "tarball",
-        "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
-      },
-      "original": {
-        "type": "tarball",
-        "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
-      }
-    },
     "flake-parts": {
       "inputs": {
         "nixpkgs-lib": [
@@ -153,11 +122,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1712014858,
-        "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
+        "lastModified": 1733312601,
+        "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
         "owner": "hercules-ci",
         "repo": "flake-parts",
-        "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
+        "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
         "type": "github"
       },
       "original": {
@@ -174,11 +143,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1736143030,
-        "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=",
+        "lastModified": 1749398372,
+        "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
         "owner": "hercules-ci",
         "repo": "flake-parts",
-        "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de",
+        "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
         "type": "github"
       },
       "original": {
@@ -208,46 +177,20 @@
     "git-hooks": {
       "inputs": {
         "flake-compat": [
-          "devenv"
-        ],
-        "gitignore": "gitignore",
-        "nixpkgs": [
           "devenv",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1737465171,
-        "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
-        "owner": "cachix",
-        "repo": "git-hooks.nix",
-        "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
-        "type": "github"
-      },
-      "original": {
-        "owner": "cachix",
-        "repo": "git-hooks.nix",
-        "type": "github"
-      }
-    },
-    "git-hooks_2": {
-      "inputs": {
-        "flake-compat": [
-          "nixvim",
           "flake-compat"
         ],
-        "gitignore": "gitignore_2",
+        "gitignore": "gitignore",
         "nixpkgs": [
-          "nixvim",
+          "devenv",
           "nixpkgs"
         ]
       },
       "locked": {
-        "lastModified": 1737465171,
-        "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
+        "lastModified": 1749636823,
         "owner": "cachix",
         "repo": "git-hooks.nix",
-        "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
+        "rev": "623c56286de5a3193aa38891a6991b28f9bab056",
         "type": "github"
       },
       "original": {
@@ -266,29 +209,6 @@
       },
       "locked": {
         "lastModified": 1709087332,
-        "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
-        "owner": "hercules-ci",
-        "repo": "gitignore.nix",
-        "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
-        "type": "github"
-      },
-      "original": {
-        "owner": "hercules-ci",
-        "repo": "gitignore.nix",
-        "type": "github"
-      }
-    },
-    "gitignore_2": {
-      "inputs": {
-        "nixpkgs": [
-          "nixvim",
-          "git-hooks",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1709087332,
-        "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
         "owner": "hercules-ci",
         "repo": "gitignore.nix",
         "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
@@ -307,11 +227,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1739002622,
-        "narHash": "sha256-PtJV5OYQF7XO6XkDYypsYJS3+OsgYaYSmkO3I/A7lZo=",
+        "lastModified": 1750973805,
+        "narHash": "sha256-BZXgag7I0rnL/HMHAsBz3tQrfKAibpY2vovexl2lS+Y=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "947eef9e99c42346cf0aac2bebe1cd94924c173b",
+        "rev": "080e8b48b0318b38143d5865de9334f46d51fce3",
         "type": "github"
       },
       "original": {
@@ -321,28 +241,6 @@
         "type": "github"
       }
     },
-    "home-manager_2": {
-      "inputs": {
-        "nixpkgs": [
-          "nixvim",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1736373539,
-        "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
-        "owner": "nix-community",
-        "repo": "home-manager",
-        "rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
-        "type": "github"
-      },
-      "original": {
-        "owner": "nix-community",
-        "ref": "release-24.11",
-        "repo": "home-manager",
-        "type": "github"
-      }
-    },
     "ixx": {
       "inputs": {
         "flake-utils": [
@@ -357,98 +255,61 @@
         ]
       },
       "locked": {
-        "lastModified": 1729958008,
-        "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
+        "lastModified": 1748294338,
+        "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
         "owner": "NuschtOS",
         "repo": "ixx",
-        "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
+        "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
         "type": "github"
       },
       "original": {
         "owner": "NuschtOS",
-        "ref": "v0.0.6",
+        "ref": "v0.0.8",
         "repo": "ixx",
         "type": "github"
       }
     },
-    "libgit2": {
-      "flake": false,
-      "locked": {
-        "lastModified": 1697646580,
-        "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
-        "owner": "libgit2",
-        "repo": "libgit2",
-        "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
-        "type": "github"
-      },
-      "original": {
-        "owner": "libgit2",
-        "repo": "libgit2",
-        "type": "github"
-      }
-    },
     "nix": {
       "inputs": {
         "flake-compat": [
-          "devenv"
+          "devenv",
+          "flake-compat"
         ],
         "flake-parts": "flake-parts",
-        "libgit2": "libgit2",
-        "nixpkgs": "nixpkgs_2",
+        "git-hooks-nix": [
+          "devenv",
+          "git-hooks"
+        ],
+        "nixpkgs": "nixpkgs",
         "nixpkgs-23-11": [
           "devenv"
         ],
         "nixpkgs-regression": [
           "devenv"
-        ],
-        "pre-commit-hooks": [
-          "devenv"
         ]
       },
       "locked": {
-        "lastModified": 1734114420,
-        "narHash": "sha256-n52PUzub5jZWc8nI/sR7UICOheU8rNA+YZ73YaHeCBg=",
-        "owner": "domenkozar",
+        "lastModified": 1750117611,
+        "narHash": "sha256-LTwASICtyN3AjzlF9l2ZNAIVZqclio3yRcwwZy3QSJA=",
+        "owner": "cachix",
         "repo": "nix",
-        "rev": "bde6a1a0d1f2af86caa4d20d23eca019f3d57eee",
+        "rev": "9e4fc95c388e2223d47da865503dee20d179776a",
         "type": "github"
       },
       "original": {
-        "owner": "domenkozar",
-        "ref": "devenv-2.24",
+        "owner": "cachix",
+        "ref": "devenv-2.30",
         "repo": "nix",
         "type": "github"
       }
     },
-    "nix-darwin": {
-      "inputs": {
-        "nixpkgs": [
-          "nixvim",
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "lastModified": 1737421067,
-        "narHash": "sha256-/hgw8fDKDpko0XqOw1e9tX8lS2Hqecg7W/JsONun6Qc=",
-        "owner": "lnl7",
-        "repo": "nix-darwin",
-        "rev": "cae8d1c4a3bd37be5887203fe3b0c3a860c53a07",
-        "type": "github"
-      },
-      "original": {
-        "owner": "lnl7",
-        "ref": "nix-darwin-24.11",
-        "repo": "nix-darwin",
-        "type": "github"
-      }
-    },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1733212471,
-        "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
+        "lastModified": 1747179050,
+        "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
+        "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
         "type": "github"
       },
       "original": {
@@ -460,27 +321,27 @@
     },
     "nixpkgs-darwin": {
       "locked": {
-        "lastModified": 1738979878,
-        "narHash": "sha256-1P8Eq3nspI/EkS/ppDde9BwWEj0WZ8vOaiNrWsd53xE=",
+        "lastModified": 1750903198,
+        "narHash": "sha256-63IOb2kjG8VERVnwgoWSrN13bmKeQVoDINOu10/h8iw=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "0eccf247721298ea23349309b1963db253943c2f",
+        "rev": "ca5542ac5290cdfe15e36f82fb5de02764ade1f0",
         "type": "github"
       },
       "original": {
         "owner": "nixos",
-        "ref": "nixpkgs-24.11-darwin",
+        "ref": "nixpkgs-25.05-darwin",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
     "nixpkgs-unstable": {
       "locked": {
-        "lastModified": 1738958807,
-        "narHash": "sha256-h0WKgHTLkjwjRNTkqByQquS7N/15SqIFMQ356Ww8uCA=",
+        "lastModified": 1750898778,
+        "narHash": "sha256-DXI7+SKDlTyA+C4zp0LoIywQ+BfdH5m4nkuxbWgV4UU=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "e8d0b02af0958823c955aaab3c82b03f54411d91",
+        "rev": "322d8a3c6940039f7cff179a8b09c5d7ca06359d",
         "type": "github"
       },
       "original": {
@@ -492,61 +353,40 @@
     },
     "nixpkgs_2": {
       "locked": {
-        "lastModified": 1717432640,
-        "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
-        "owner": "NixOS",
-        "repo": "nixpkgs",
-        "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
-        "type": "github"
-      },
-      "original": {
-        "owner": "NixOS",
-        "ref": "release-24.05",
-        "repo": "nixpkgs",
-        "type": "github"
-      }
-    },
-    "nixpkgs_3": {
-      "locked": {
-        "lastModified": 1738843498,
-        "narHash": "sha256-7x+Q4xgFj9UxZZO9aUDCR8h4vyYut4zPUvfj3i+jBHE=",
+        "lastModified": 1750838302,
+        "narHash": "sha256-aVkL3/yu50oQzi2YuKo0ceiCypVZpZXYd2P2p1FMJM4=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "f5a32fa27df91dfc4b762671a0e0a859a8a0058f",
+        "rev": "7284e2decc982b81a296ab35aa46e804baaa1cfe",
         "type": "github"
       },
       "original": {
         "owner": "nixos",
-        "ref": "nixos-24.11",
+        "ref": "nixos-25.05",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
     "nixvim": {
       "inputs": {
-        "devshell": "devshell",
-        "flake-compat": "flake-compat_2",
         "flake-parts": "flake-parts_2",
-        "git-hooks": "git-hooks_2",
-        "home-manager": "home-manager_2",
-        "nix-darwin": "nix-darwin",
         "nixpkgs": [
           "nixpkgs"
         ],
         "nuschtosSearch": "nuschtosSearch",
-        "treefmt-nix": "treefmt-nix"
+        "systems": "systems_2"
       },
       "locked": {
-        "lastModified": 1738775476,
-        "narHash": "sha256-oFox7N1n+EE2I4WvuE0y4SI0a6h9RAoT216QQCtGcQ4=",
+        "lastModified": 1750512587,
+        "narHash": "sha256-kZqTQEARUkkKDFhECd0MGU4wXCJcxCdh5WeM/yD6oI4=",
         "owner": "nix-community",
         "repo": "nixvim",
-        "rev": "82440e1d4ed9d252d09c4cd9edc8c9ef23ce1f3a",
+        "rev": "b04bcdcbba4aa648903e065ad1907a97d4f7aee9",
         "type": "github"
       },
       "original": {
         "owner": "nix-community",
-        "ref": "nixos-24.11",
+        "ref": "nixos-25.05",
         "repo": "nixvim",
         "type": "github"
       }
@@ -561,11 +401,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1737924095,
-        "narHash": "sha256-9RO/IlxiE7bpY7GYsdDMNB533PnDOBo9UvYyXXqlN4c=",
+        "lastModified": 1749730855,
+        "narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
         "owner": "NuschtOS",
         "repo": "search",
-        "rev": "5efc9c966bb9bdad07a3c28667eac38b758c6f18",
+        "rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
         "type": "github"
       },
       "original": {
@@ -580,7 +420,7 @@
         "devenv": "devenv",
         "disko": "disko",
         "home-manager": "home-manager",
-        "nixpkgs": "nixpkgs_3",
+        "nixpkgs": "nixpkgs_2",
         "nixpkgs-darwin": "nixpkgs-darwin",
         "nixpkgs-unstable": "nixpkgs-unstable",
         "nixvim": "nixvim"
@@ -601,24 +441,18 @@
         "type": "github"
       }
     },
-    "treefmt-nix": {
-      "inputs": {
-        "nixpkgs": [
-          "nixvim",
-          "nixpkgs"
-        ]
-      },
+    "systems_2": {
       "locked": {
-        "lastModified": 1738070913,
-        "narHash": "sha256-j6jC12vCFsTGDmY2u1H12lMr62fnclNjuCtAdF1a4Nk=",
-        "owner": "numtide",
-        "repo": "treefmt-nix",
-        "rev": "bebf27d00f7d10ba75332a0541ac43676985dea3",
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
         "type": "github"
       },
       "original": {
-        "owner": "numtide",
-        "repo": "treefmt-nix",
+        "owner": "nix-systems",
+        "repo": "default",
         "type": "github"
       }
     }

+ 5 - 4
flake.nix

@@ -2,11 +2,11 @@
   description = "my nix configuration";
 
   inputs = {
-    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
-    nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-24.11-darwin";
+    nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
+    nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-25.05-darwin";
     nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
 
-    darwin.url = "github:lnl7/nix-darwin/nix-darwin-24.11";
+    darwin.url = "github:lnl7/nix-darwin/nix-darwin-25.05";
     darwin.inputs.nixpkgs.follows = "nixpkgs-darwin";
 
     devenv.url = "github:cachix/devenv";
@@ -18,7 +18,7 @@
     home-manager.url = "github:nix-community/home-manager/master";
     home-manager.inputs.nixpkgs.follows = "nixpkgs";
 
-    nixvim.url = "github:nix-community/nixvim/nixos-24.11";
+    nixvim.url = "github:nix-community/nixvim/nixos-25.05";
     nixvim.inputs.nixpkgs.follows = "nixpkgs";
   };
 
@@ -79,6 +79,7 @@
       overlays = import ./overlays { inherit inputs; };
 
       packages = lib.eachSystemWithPkgs (import ./packages);
+      codecov-cli = inputs.nixpkgs-unstable.legacyPackages.aarch64-darwin.codecov-cli;
       formatter = lib.eachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
     };
 }

+ 1 - 0
home/features/cli/default.nix

@@ -7,6 +7,7 @@
     ./fzf.nix
     ./git.nix
     ./gnupg.nix
+    ./nostr.nix
     ./nushell.nix
     ./ssh.nix
     ./starship.nix

+ 4 - 0
home/features/cli/nostr.nix

@@ -0,0 +1,4 @@
+{ pkgs, ... }:
+{
+  home.packages = [ pkgs.unstable.nak ];
+}

+ 26 - 17
home/features/desktop/aerospace.nix

@@ -155,25 +155,34 @@ in
       };
 
       on-window-detected = [
+        # {
+        #   "if".app-id = "org.whispersystems.signal-desktop";
+        #   check-further-callbacks = false;
+        #   run = [ "move-node-to-workspace S" ];
+        # }
+        # {
+        #   "if".app-id = "com.apple.finder";
+        #   check-further-callbacks = false;
+        #   run = [ "move-node-to-workspace E" ];
+        # }
+        # {
+        #   "if".app-id = "com.apple.mail";
+        #   check-further-callbacks = false;
+        #   run = [ "move-node-to-workspace M" ];
+        # }
+        # {
+        #   "if".app-id = "com.mitchellh.ghostty";
+        #   check-further-callbacks = false;
+        #   run = [ "move-node-to-workspace T" ];
+        # }
+        # disable on "Picture-in-Picture"
         {
-          "if".app-id = "org.whispersystems.signal-desktop";
           check-further-callbacks = false;
-          run = [ "move-node-to-workspace S" ];
-        }
-        {
-          "if".app-id = "com.apple.finder";
-          check-further-callbacks = false;
-          run = [ "move-node-to-workspace E" ];
-        }
-        {
-          "if".app-id = "com.apple.mail";
-          check-further-callbacks = false;
-          run = [ "move-node-to-workspace M" ];
-        }
-        {
-          "if".app-id = "com.mitchellh.ghostty";
-          check-further-callbacks = false;
-          run = [ "move-node-to-workspace T" ];
+          "if" = {
+            app-id = "app.zen-browser.zen";
+            window-title-regex-substring = "Picture-in-Picture";
+          };
+          run = [ "layout floating" ];
         }
       ];
     };

+ 1 - 6
home/features/desktop/logseq.nix

@@ -14,11 +14,6 @@
 
   home.packages = [ pkgs.logseq ];
 
-  home.file.".logseq/config/plugins.edn".text = ''
-    {:logseq-vim-shortcuts {:version "v0.1.22", :repo "vipzhicheng/logseq-plugin-vim-shortcuts", :effect true,
-    :theme false}}
-  '';
-
   home.file.".logseq/config/config.edn".text = ''
     {:meta/version 1
 
@@ -48,7 +43,7 @@
      ;; Default value: "MMM do, yyyy"
      ;; e.g., "Jan 19th, 2038"
      ;; Example usage e.g., "Tue 19th, Jan 2038"
-     :journal/page-title-format "EEEE, dd.MM.yyyy"
+     :journal/page-title-format "yyyy/MM/dd"
 
      ;; Specify the journal filename format using a valid date format string.
      ;; !Warning:

+ 1 - 8
home/features/nvim/lsp.nix

@@ -129,7 +129,7 @@
 
       denols = {
         enable = true;
-        rootDir = "require('lspconfig').util.root_pattern('deno.json')";
+        rootDir = "require('lspconfig').util.root_pattern('deno.lock')";
         extraOptions.init_options = {
           lint = true;
           unstable = true;
@@ -152,13 +152,6 @@
       };
 
       volar.enable = true;
-      #   rootDir = ''
-      #     # root_pattern = { 'vite.config.ts', 'nuxt.config.ts' },
-      #
-      #
-      #     require('lspconfig').util.root_pattern("vite.config.mts")
-      #     '';
-      # };
     };
   };
 }

+ 4 - 2
home/features/nvim/plugins.nix

@@ -1,7 +1,7 @@
 {
   imports = [
     ./lsp.nix
-    ./plugins/avante.nix
+    # ./plugins/avante.nix
     ./plugins/conform.nix
     ./plugins/comment.nix
     ./plugins/fidget.nix
@@ -11,13 +11,15 @@
     ./plugins/mdx.nix
     ./plugins/mini.nix
     ./plugins/oil.nix
+
     # ./plugins/snacks.nix
+
     ./plugins/telescope.nix
     ./plugins/tmux.nix
     ./plugins/todo-comments.nix
     ./plugins/treesitter.nix
     ./plugins/web-devicons.nix
     ./plugins/which-key.nix
-    ./plugins/zenmode.nix
+    # ./plugins/zenmode.nix
   ];
 }

+ 2 - 0
home/meili.nix

@@ -5,6 +5,8 @@
     ./features/cli
     ./features/desktop
     ./features/nvim
+
+    # ./features/mail.nix
   ];
 
   programs.fish.interactiveShellInit = ''

+ 0 - 20
hosts/meili/colima.nix

@@ -1,20 +0,0 @@
-{ pkgs, ... }:
-{
-  environment.systemPackages = with pkgs; [
-    colima
-    docker-client
-    docker-compose
-  ];
-
-  services.colima = {
-    enable = true;
-    createDockerSocket = true;
-
-    groupMembers = [ "thomas" ];
-    architectue = "x86_64";
-    extraFlags = [
-      "--cpu-type max"
-      "--vz-rosetta"
-    ];
-  };
-}

+ 28 - 6
hosts/meili/default.nix

@@ -1,14 +1,38 @@
-{ outputs, ... }:
+{ outputs, pkgs, ... }:
 {
   imports = [
     outputs.modules.global.nix-config
-
-    ./colima.nix
-
     ./system.nix
     ./software.nix
   ] ++ (builtins.attrValues outputs.modules.darwin);
 
+  # NOTE: might be valuable to put this in it's own file
+  # nix.linux-builder = {
+  #   enable = true;
+  #   ephemeral = true;
+  #   package = pkgs.darwin.linux-builder;
+  #   supportedFeatures = [ "kvm" "benchmark" "big-parallel" "nixos-test" ];
+  #   maxJobs = 4;
+  #   config = {
+  #     # nix.settings.sandbox = false;
+  #     virtualisation = {
+  #       darwin-builder = {
+  #         diskSize = 40 * 1024;
+  #         memorySize = 8 * 1024;
+  #       };
+  #       cores = 6;
+  #     };
+  #   };
+  # };
+  # nix.settings.system-features = [ "nixos-test" "apple-virt" "nixos-test" "benchmark" "big-parallel" "kvm" ];
+  # nix.settings.extra-platforms = [ "aarch64-linux" ];
+  # launchd.daemons.linux-builder = {
+  #   serviceConfig = {
+  #     StandardOutPath = "/var/log/darwin-builder.log";
+  #     StandardErrorPath = "/var/log/darwin-builder.log";
+  #   };
+  # };
+
   # NOTE: this seems to be needed to make nix work in fish
   programs.fish = {
     enable = true;
@@ -35,8 +59,6 @@
     gnupg.agent.enable = true;
   };
 
-  services.nix-daemon.enable = true;
-
   users.users.thomas.home = "/Users/thomas";
 
   networking = {

+ 10 - 8
hosts/meili/software.nix

@@ -19,20 +19,20 @@
 
   homebrew = {
     casks = [
-      "android-studio"
-
+      # "android-studio"
       # "mac-mouse-fix"
       # "alacritty" # => we're using the home-manager package now
       # "bitwarden"
-      # "brave-browser"
+      "brave-browser"
       # "docker"
       # "deepl"
       "ghostty"
       # "hot"
       # "ledger-live"
       # "mullvadvpn"
-      "obsidian"
-      "openaudible"
+      # "obsidian"
+      # "openaudible"
+      "orbstack"
 
       "proton-drive"
       "proton-mail-bridge"
@@ -40,10 +40,11 @@
       "protonvpn"
 
       "signal"
-      # "tailscale"
-      "tor-browser"
+      "tailscale"
+      # "tor-browser"
+      # "utm"
       "vlc"
-      "zen-browser"
+      "zen"
       # "whatsapp"
       # "krunkit"
     ];
@@ -66,6 +67,7 @@
     };
 
     enable = true;
+    global.autoUpdate = true;
     onActivation.autoUpdate = true;
     onActivation.cleanup = "zap";
   };

+ 5 - 1
hosts/meili/system.nix

@@ -1,5 +1,9 @@
 {
+  nix.enable = true;
+
   system = {
+    primaryUser = "thomas";
+
     keyboard = {
       enableKeyMapping = true;
       userKeyMapping = [
@@ -93,6 +97,6 @@
     rosetta.enable = true;
   };
 
-  security.pam.enableSudoTouchIdAuth = true;
+  security.pam.services.sudo_local.touchIdAuth = true;
   security.pam.enablePamReattach = true;
 }

+ 0 - 1
modules/darwin/default.nix

@@ -1,5 +1,4 @@
 {
-  colima = import ./virtualization/colima.nix;
   pam-reattach = import ./security/pam-reattach.nix;
   remote-login = import ./networking/remote-login.nix;
   rosetta = import ./system/rosetta.nix;

+ 0 - 160
modules/darwin/virtualization/colima.nix

@@ -1,160 +0,0 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
-}:
-
-with lib;
-let
-  cfg = config.services.colima;
-  user = config.users.users."colima";
-  group = config.users.groups."_colima";
-in
-{
-  options.services.colima = {
-    enable = mkEnableOption "Container runtimes on macOS";
-
-    createDockerSocket = mkEnableOption ''
-      Create a symlink from Colima's socket to /var/run/docker.sock, and set
-      it's permissions so that users part of the _colima group can use it.
-    '';
-
-    package = mkOption {
-      type = types.package;
-      default = pkgs.colima;
-      defaultText = literalExpression "pkgs.colima";
-    };
-
-    logFile = mkOption {
-      type = types.path;
-      default = "/var/log/colima.log";
-      description = "Stdout and sterr of the colima process.";
-    };
-
-    groupMembers = mkOption {
-      type = types.listOf types.str;
-      default = [ ];
-      description = "List of users that should be added to the colima group.";
-    };
-
-    runtime = mkOption {
-      type = types.enum [
-        "docker"
-        "containerd"
-        "incus"
-      ];
-      default = "docker";
-      description = "The runtime to use with Colima.";
-    };
-
-    architectue = mkOption {
-      type = types.enum [
-        "x86_64"
-        "aarch64"
-        "host"
-      ];
-      default = "host";
-      description = "The architecture to use for the Colima virtual machine.";
-    };
-
-    extraFlags = mkOption {
-      type = types.listOf types.str;
-      default = [ ];
-      example = [ "--vz-rosetta" ];
-      description = "Extra commandline options to pass to the colima start command.";
-    };
-
-    vmType = mkOption {
-      type = types.enum [
-        "qemu"
-        "vz"
-      ];
-      default = "vz";
-      description = "Virtual machine type to use with Colima.";
-    };
-  };
-
-  config = mkIf cfg.enable {
-    launchd.daemons.colima-create-docker-socket-and-set-permissions = {
-      script = ''
-        until [ -S ${user.home}/.colima/default/docker.sock ]
-        do
-          sleep 5
-        done
-
-        chmod g+rw ${user.home}/.colima/default/docker.sock
-        ln -sf ${user.home}/.colima/default/docker.sock /var/run/docker.sock
-      '';
-
-      serviceConfig.RunAtLoad = cfg.createDockerSocket;
-      serviceConfig.EnvironmentVariables.PATH = "/usr/bin:/bin:/usr/sbin:/sbin";
-    };
-
-    launchd.daemons.colima = {
-      script = concatStringsSep " " (
-        [
-          "exec"
-          (getExe cfg.package)
-          "start"
-          "--foreground"
-          "--runtime ${cfg.runtime}"
-          "--arch ${cfg.architectue}"
-          "--vm-type ${cfg.vmType}"
-        ]
-        ++ cfg.extraFlags
-      );
-
-      serviceConfig.KeepAlive = true;
-      serviceConfig.RunAtLoad = true;
-      serviceConfig.StandardErrorPath = cfg.logFile;
-      serviceConfig.StandardOutPath = cfg.logFile;
-      serviceConfig.GroupName = group.name;
-      serviceConfig.UserName = user.name;
-      serviceConfig.WorkingDirectory = user.home;
-      serviceConfig.EnvironmentVariables = {
-        PATH = "${pkgs.colima}/bin:${pkgs.docker}/bin:/usr/bin:/bin:/usr/sbin:/sbin";
-        COLIMA_HOME = "${user.home}/.colima";
-      };
-    };
-
-    system.activationScripts.preActivation.text = ''
-      touch '${cfg.logFile}'
-      chown ${toString user.uid}:${toString user.gid} '${cfg.logFile}'
-    '';
-
-    users.knownGroups = [
-      "colima"
-      "_colima"
-    ];
-    users.knownUsers = [
-      "colima"
-      "_colima"
-    ];
-
-    users.users."colima" = {
-      uid = mkDefault 400;
-      gid = mkDefault group.gid;
-      home = mkDefault "/var/lib/colima";
-      # The username isn't allowed to have an underscore in its name, the VM
-      # will fail to start with the following error otherwise
-      #   > "[hostagent] identifier \"_colima\" must match ^[A-Za-z0-9]+(?:[._-](?:[A-Za-z0-9]+))*$: invalid argument" fields.level=fatal
-      name = "colima";
-      createHome = true;
-      shell = "/bin/bash";
-      description = "System user for Colima";
-    };
-
-    users.groups."_colima" = {
-      gid = mkDefault 32002;
-      name = "_colima";
-      description = "System group for Colima";
-    };
-
-    users.groups."_colima".members = cfg.groupMembers;
-  };
-
-  meta.maintainers = [
-    lib.maintainers.bryanhonof or "bryanhonof"
-  ];
-}