diff --git a/hosts/tahani/calendar.nix b/hosts/tahani/calendar.nix new file mode 100644 index 0000000..8749054 --- /dev/null +++ b/hosts/tahani/calendar.nix @@ -0,0 +1,53 @@ +{...}: { + programs.vdirsyncer = { + enable = true; + }; + + programs.khal = { + enable = true; + locale = { + timeformat = "%H:%M"; + dateformat = "%d/%m/%Y"; + longdateformat = "%d/%m/%Y"; + datetimeformat = "%d/%m/%Y %H:%M"; + longdatetimeformat = "%d/%m/%Y %H:%M"; + }; + }; + + accounts.calendar = { + basePath = ".local/share/calendars"; + + accounts.icloud = { + primary = true; + primaryCollection = "home"; + + remote = { + type = "caldav"; + url = "https://caldav.icloud.com/"; + userName = "christoph@schmatzler.com"; + passwordCommand = ["cat" "/run/secrets/tahani-icloud-password"]; + }; + + local = { + type = "filesystem"; + fileExt = ".ics"; + }; + + vdirsyncer = { + enable = true; + collections = ["from a" "from b"]; + metadata = ["color" "displayname"]; + }; + + khal = { + enable = true; + type = "discover"; + }; + }; + }; + + services.vdirsyncer = { + enable = true; + frequency = "*:0/15"; + }; +} diff --git a/hosts/tahani/default.nix b/hosts/tahani/default.nix index 3d0062d..6967243 100644 --- a/hosts/tahani/default.nix +++ b/hosts/tahani/default.nix @@ -42,6 +42,7 @@ ../../profiles/zk.nix ../../profiles/zoxide.nix ../../profiles/zsh.nix + ./calendar.nix inputs.nixvim.homeModules.nixvim ]; diff --git a/hosts/tahani/secrets.nix b/hosts/tahani/secrets.nix index 1171210..e215524 100644 --- a/hosts/tahani/secrets.nix +++ b/hosts/tahani/secrets.nix @@ -1,8 +1,13 @@ -{...}: { +{user, ...}: { sops.secrets = { tahani-paperless-password = { sopsFile = ../../secrets/tahani-paperless-password; format = "binary"; }; + tahani-icloud-password = { + sopsFile = ../../secrets/tahani-icloud-password; + format = "binary"; + owner = user; + }; }; } diff --git a/secrets/tahani-icloud-password b/secrets/tahani-icloud-password new file mode 100644 index 0000000..636fcad --- /dev/null +++ b/secrets/tahani-icloud-password @@ -0,0 +1,30 @@ +{ + "data": "ENC[AES256_GCM,data:l7jYCSQE0BwYOoIMHgGOmMrWz5s=,iv:4TugFnfmzoeroq6SfRLD36gSSBHGVT6CxQE4Pyp1Ibc=,tag:HOTLlXGab05u+qREtyxAeg==,type:str]", + "sops": { + "age": [ + { + "recipient": "age1njjegjjdqzfnrr54f536yl4lduqgna3wuv7ef6vtl9jw5cju0grsgy62tm", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXeDlULyt1RVBlUUJpdVgv\nRHdTd2MvNUNFZytZQzVTSE9UVlVXN3Njd0h3CngwbkIxM2lpNnFndVFKQ0twQ0x1\nd2NqVXJuYzh6K3BKTUgwVmM1YUMxVnMKLS0tIHZ1V3o5OU1Bd3dnajgrTmpzY3hM\nSXJuUExNR2Q3ZGd6M1ZISVRualhOUU0Kr0V+/GGGHQOWnso1YwCzy2EFedbQLY+f\nWOPA0J4UPRRFArN2JLdI7A4T98xPytksskYvoZGTCtUkYh4csuSDQw==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age187jl7e4k9n4guygkmpuqzeh0wenefwrfkpvuyhvwjrjwxqpzassqq3x67j", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHYVJqc3E5bmtOYmZ0T0Fq\nODUxeWxrZVZqeVN1cDNjaTlCN2tWT0hQMGcwCmMrMjY0djhDWVRhenA2Y3BWYzI4\najJaU3Q3OEJKcVBKSm9oK1VZR2YzYWsKLS0tIEx4cmlKZkpURGFrT2ROSWN1VURS\nWHExb0tCNDBQd25NVHM4V0g2N1dkaTAKiGsU5cxLVbES5Hg6RUyAyvJUZuy/g3nO\nbLeSzTrZrXvJxjUbTjlYjGNR612oshnWojY6czPgsXYS4odOAoRpDQ==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1dqt3znmzcgghsjjzzax0pf0eyu95h0p7kaf5v988ysjv7fl7lumsatl048", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIYks0dTlCVUJDUW1SR3Ba\nVUNIWERuRExWUlRRMGJGa3F1L0hsRk0xV2gwCmUvWWlmU09vK0IxNGVSeWRESFFU\nTW5pdmM4UnlPZW5yOXUxYlJrNDFCa3cKLS0tIHFVQllSVE12OExON1pHd0l1NzU5\nRUpCNmlDQTIvcndJczZFWVFvLzhyZTQKU/ulWhsCcOZhxgHmmUxfnSsSZVB/Fy3i\n2639UfDFjSWDtI74yMxIyK29Q+GtcgHt+R4U0SdciIN2gE8Fsc9Tbw==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1ez6j3r5wdp0tjy7n5qzv5vfakdc2nh2zeu388zu7a80l0thv052syxq5e2", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4eUM4MlV2QnRyRG9ZekNI\nYnZReVVjK3dtTk01ajhqeFVaQVU0NmxOSzNjCm1RcEt3OEZ6a1RQZlBLK0VvT3ZE\naHcyd3VFOElwRXJyNmZPcGxwbGIzSmsKLS0tIGVXcjUzZ1BIbEgwS0J4cy9GZTg0\nU015THBsaXpFWk1ldno0cmxZTldrQXcKGsfU/j2MqdJWrqRWxun85LcuqIyHanMB\nyCbGED5aiDoQPz59P7vabTuMDDFw/fnDO4Qv0ktGvi1lQbsLAvrZUw==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1tlymdmaukhwupzrhszspp26lgd8s64rw4vu9lwc7gsgrjm78095s9fe9l3", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5amk2NVBhbWMyZ3JwNytL\nNmJ6MEdxZXNzanl0Q25zWlZCUWVTRU9jNEVFCnozTWExQk02OUIwMWVpcVB4OHdw\nKzI1dGNOdEFEa1pGT0dUZjR1VEFPMlEKLS0tIFozeStWeE9pR3FZdXRybUFUSUVU\nZ0JjYWJRNGZqNldrMkU4U3c3OHdGSjAKaxeKuIFEfAd393CIvPk2Jg8tMI4GvsTJ\nSVEVsTWILH3bgPimATfE5nRxzLiWyGVsG4QjYAn02uXobW5Aan0wkw==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2026-01-07T19:19:41Z", + "mac": "ENC[AES256_GCM,data:SnMD9+jpySE35ylbHInXfsIQ/Nq6FBpunlhgJSOnYCQLE9vGc5Rtkg8cYlqFBz82Ukjk2EJafKcjDgBgTx6+JcYC8idM7yCpqyJaTx9p0nr6+p46ozqrL8lm4qF+yJRK997RjfRStLE2JsLN0SRSBFTDL0yPB6mFc/BncywVVZ0=,iv:fJ0kpgysw8eHbIIrtdyUXwWYvHyOa6kJ1wW+6NvBTxY=,tag:cqyY6qmEa0HF6u61v9VZJw==,type:str]", + "version": "3.11.0" + } +}