From 3958d51e7841c462b410b8dc13a6c57d696711d5 Mon Sep 17 00:00:00 2001 From: Jo Date: Mon, 17 Mar 2025 23:32:59 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=E2=99=BB=EF=B8=8F=20Add=20Wakatime=20?= =?UTF-8?q?config=20and=20reorganize=20some=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .sops.yaml | 2 +- flake.lock | 72 ++++++++--------- flake.nix | 27 +++++-- .../x86_64-linux/jo@puzzlevision/default.nix | 4 + modules/home/apps/codium/default.nix | 80 ++++++++++--------- secrets/wakatime.cfg | 24 ++++++ 6 files changed, 129 insertions(+), 80 deletions(-) create mode 100644 secrets/wakatime.cfg diff --git a/.sops.yaml b/.sops.yaml index 3a7a1f8..a693299 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -2,7 +2,7 @@ keys: - &jo age1gudgza8lv02nwec0pejqpp5t7zu0tzjsfkmvgvy3ckfscr9f4qrq2sl5dv - &server_absolutesolver age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d creation_rules: - - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$ + - path_regex: secrets/[^/]+\.(yaml|json|env|ini|cfg)$ key_groups: - age: - *jo diff --git a/flake.lock b/flake.lock index b402085..10bc132 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1739934729, - "narHash": "sha256-PcrLk10meIJICzUJqtCMOJxoITzbH52fZg2XAB7SSsM=", + "lastModified": 1742098205, + "narHash": "sha256-gCkVTohFTyq/Pi3dlUhv1uA5Kqbalf45nLmUDRluULE=", "owner": "catppuccin", "repo": "nix", - "rev": "b1ff2a638afa827f1473498190a2c1cae1cf41cf", + "rev": "d84df59c7aa29cebaff9f190d19c24e7ddacd773", "type": "github" }, "original": { @@ -114,14 +114,14 @@ "nixpkgs-stable": "nixpkgs-stable", "nixpkgs-unstable": "nixpkgs-unstable", "zig": "zig", - "zig2nix": "zig2nix" + "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1740237918, - "narHash": "sha256-ToNmiScM8hGVbsATVGA+5P1775V1XkzR6r9oSBVGB0s=", + "lastModified": 1742134710, + "narHash": "sha256-rFIJssnDEdaINRgg6ZApfs+2d6B0pjXMScSeRMcQJZE=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "726ac36612a575ea71350d1eda020a733e2359f6", + "rev": "c344c320eb93d800da36c035790530be0a2d618f", "type": "github" }, "original": { @@ -132,11 +132,11 @@ }, "hardware": { "locked": { - "lastModified": 1740089251, - "narHash": "sha256-Y78mDBWoO8CLLTjQfPfII+KXFb6lAmF9GrLbyVBsIMM=", + "lastModified": 1742217307, + "narHash": "sha256-3fwpN7KN226ghLlpO9TR0/WpgQOmOj1e8bieUxpIYSk=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "18e9f9753e9ae261bcc7d3abe15745686991fd30", + "rev": "4f4d97d7b7be387286cc9c988760a7ebaa5be1f1", "type": "github" }, "original": { @@ -153,11 +153,11 @@ ] }, "locked": { - "lastModified": 1740234812, - "narHash": "sha256-TMPM8TBbS0d4e5+3TofgoF+pwbXwMfKzWxwksoIEX1E=", + "lastModified": 1741955947, + "narHash": "sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY=", "owner": "nix-community", "repo": "home-manager", - "rev": "34d524f3edcf3a04c00ad2c09c24ec9d35d937f9", + "rev": "4e12151c9e014e2449e0beca2c0e9534b96a26b4", "type": "github" }, "original": { @@ -184,11 +184,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1740019556, - "narHash": "sha256-vn285HxnnlHLWnv59Og7muqECNMS33mWLM14soFIv2g=", + "lastModified": 1742169275, + "narHash": "sha256-nkH2Edu9rClcsQp2PYBe8E6fp8LDPi2uDBQ6wyMdeXI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dad564433178067be1fbdfcce23b546254b6d641", + "rev": "5d9b5431f967007b3952c057fc92af49a4c5f3b2", "type": "github" }, "original": { @@ -200,11 +200,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1738255539, - "narHash": "sha256-hP2eOqhIO/OILW+3moNWO4GtdJFYCqAe9yJZgvlCoDQ=", + "lastModified": 1741992157, + "narHash": "sha256-nlIfTsTrMSksEJc1f7YexXiPVuzD1gOfeN1ggwZyUoc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c3511a3b53b482aa7547c9d1626fd7310c1de1c5", + "rev": "da4b122f63095ca1199bd4d526f9e26426697689", "type": "github" }, "original": { @@ -216,11 +216,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1738136902, - "narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=", + "lastModified": 1741865919, + "narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c", + "rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a", "type": "github" }, "original": { @@ -271,11 +271,11 @@ ] }, "locked": { - "lastModified": 1739262228, - "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=", + "lastModified": 1742209060, + "narHash": "sha256-47/1bOPBGhmAegF06nxLN15d/MClCAkk8s/+WOhJJAM=", "owner": "Mic92", "repo": "sops-nix", - "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975", + "rev": "b33837ae3cfa012b65810891bebbee71fa4c0658", "type": "github" }, "original": { @@ -329,11 +329,11 @@ ] }, "locked": { - "lastModified": 1738239110, - "narHash": "sha256-Y5i9mQ++dyIQr+zEPNy+KIbc5wjPmfllBrag3cHZgcE=", + "lastModified": 1741825901, + "narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "1a8fb6f3a04724519436355564b95fce5e272504", + "rev": "0b14285e283f5a747f372fb2931835dd937c4383", "type": "github" }, "original": { @@ -342,7 +342,7 @@ "type": "github" } }, - "zig2nix": { + "zon2nix": { "inputs": { "flake-utils": [ "ghostty", @@ -350,21 +350,21 @@ ], "nixpkgs": [ "ghostty", - "nixpkgs-stable" + "nixpkgs-unstable" ] }, "locked": { - "lastModified": 1738263917, - "narHash": "sha256-j/3fwe2pEOquHabP/puljOKwAZFjIE9gXZqA91sC48M=", + "lastModified": 1742104771, + "narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=", "owner": "jcollie", - "repo": "zig2nix", - "rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a", + "repo": "zon2nix", + "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", "type": "github" }, "original": { "owner": "jcollie", - "repo": "zig2nix", - "rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a", + "repo": "zon2nix", + "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", "type": "github" } } diff --git a/flake.nix b/flake.nix index 4df67e9..601bf00 100644 --- a/flake.nix +++ b/flake.nix @@ -6,25 +6,37 @@ nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; # Snowfall lib imposes an opinionated file-structure, which makes things a little easier sometimes. - snowfall-lib = { url = "github:snowfallorg/lib"; inputs.nixpkgs.follows = "nixpkgs"; }; + snowfall-lib = { + url = "github:snowfallorg/lib"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # Secret management tool - sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + sops-nix = { + url = "github:Mic92/sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # Home manager for managing the /home directory. - home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # Hardware specific tweaks and performance optimizations. - hardware = { url = "github:NixOS/nixos-hardware/master"; }; + hardware = {url = "github:NixOS/nixos-hardware/master";}; # Catppuccin theme nix configuration. - catppuccin = { url = "github:catppuccin/nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + catppuccin = { + url = "github:catppuccin/nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; # Declarative management of Flatpak packages. - nix-flatpak = { url = "github:gmodena/nix-flatpak/?ref=latest"; }; + nix-flatpak = {url = "github:gmodena/nix-flatpak/?ref=latest";}; # Apps - ghostty = { url = "github:ghostty-org/ghostty"; }; + ghostty = {url = "github:ghostty-org/ghostty";}; }; nixConfig = { @@ -70,6 +82,7 @@ homes.modules = with inputs; [ nix-flatpak.homeManagerModules.nix-flatpak catppuccin.homeManagerModules.catppuccin + sops-nix.homeManagerModules.sops ]; }; } diff --git a/homes/x86_64-linux/jo@puzzlevision/default.nix b/homes/x86_64-linux/jo@puzzlevision/default.nix index 69164cf..9756028 100644 --- a/homes/x86_64-linux/jo@puzzlevision/default.nix +++ b/homes/x86_64-linux/jo@puzzlevision/default.nix @@ -12,6 +12,10 @@ jo:gtKwCQKVw5O4IkWg8J8o7vHIo3hStmOqVcnmk97E335DwHnPUMIDTMnD46qEn/1tucTZlYfGABfzVVG+iYeUOA==,fVRFZb9iBiqjOXvk5Gm9ygO/O4huEUR1Uq3DGBlnS1RtqqK0shif8aOlNLkmn8Xe9+x4HYIeNEX4fc8Z7Y2Hgw==,es256,+presence ''; + sops = { + age.keyFile = "/home/jo/sops-nix/key.txt"; + }; + # Flatpak configuration. services.flatpak = { enable = true; diff --git a/modules/home/apps/codium/default.nix b/modules/home/apps/codium/default.nix index b9f899f..b4ecce4 100644 --- a/modules/home/apps/codium/default.nix +++ b/modules/home/apps/codium/default.nix @@ -17,55 +17,63 @@ in { alejandra ]; + sops.secrets.wakatime-cfg = { + format = "binary"; + sopsFile = lib.snowfall.fs.get-file "secrets/wakatime.cfg"; + path = "/home/jo/.wakatime.cfg"; + }; + programs.vscode = { enable = true; package = pkgs.vscodium; - - enableUpdateCheck = false; - enableExtensionUpdateCheck = false; mutableExtensionsDir = false; - extensions = with pkgs; [ - ### Theming - vscode-extensions.pkief.material-icon-theme - vscode-extensions.catppuccin.catppuccin-vsc + profiles.default = { + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; - ### General - vscode-extensions.usernamehw.errorlens - vscode-extensions.leonardssh.vscord - vscode-extensions.davidlday.languagetool-linter - vscode-extensions.christian-kohler.path-intellisense - vscode-extensions.wakatime.vscode-wakatime + extensions = with pkgs; [ + ### Theming + vscode-extensions.pkief.material-icon-theme + vscode-extensions.catppuccin.catppuccin-vsc - ### Language specific - # Nushell - vscode-extensions.thenuprojectcontributors.vscode-nushell-lang + ### General + vscode-extensions.usernamehw.errorlens + vscode-extensions.leonardssh.vscord + vscode-extensions.davidlday.languagetool-linter + vscode-extensions.christian-kohler.path-intellisense + vscode-extensions.wakatime.vscode-wakatime - # Nix - vscode-extensions.kamadorueda.alejandra - vscode-extensions.jnoortheen.nix-ide + ### Language specific + # Nushell + vscode-extensions.thenuprojectcontributors.vscode-nushell-lang - # Env - vscode-extensions.irongeek.vscode-env + # Nix + vscode-extensions.kamadorueda.alejandra + vscode-extensions.jnoortheen.nix-ide - # Deno (JavaScript) - vscode-extensions.denoland.vscode-deno - ]; + # Env + vscode-extensions.irongeek.vscode-env - userSettings = { - "files.autoSave" = "on"; - "workbench.colorTheme" = "Catppuccin Macchiato"; - "window.titleBarStyle" = "custom"; + # Deno (JavaScript) + vscode-extensions.denoland.vscode-deno + ]; - "[nix]" = { - "editor.tabSize" = 2; - "formatterPath" = "alejandra"; + userSettings = { + "files.autoSave" = "on"; + "workbench.colorTheme" = "Catppuccin Macchiato"; + "window.titleBarStyle" = "custom"; - "enableLanguageServer" = true; - "serverPath" = "nixd"; - "serverSettings" = { - "nixd" = { - "formatting.command" = ["alejandra"]; + "[nix]" = { + "editor.tabSize" = 2; + "formatterPath" = "alejandra"; + + "enableLanguageServer" = true; + "serverPath" = "nixd"; + "serverSettings" = { + "nixd" = { + "formatting.command" = ["alejandra"]; + }; }; }; }; diff --git a/secrets/wakatime.cfg b/secrets/wakatime.cfg new file mode 100644 index 0000000..5673b89 --- /dev/null +++ b/secrets/wakatime.cfg @@ -0,0 +1,24 @@ +{ + "data": "ENC[AES256_GCM,data:EIZzJQXdg0H1rcm03Y0LXysS/Tgs4hROFaZwtWmKCWl3cVy2vJS/4JejsxMhxCzmVeM0ETGxmZsv2j3V/xzB4Rw3y4sP1jtA0ZiSAk5azsJzvVXfgUC+VUMqwjfgT2IXEXwc,iv:oAE97RzI4xKPhjgG0j11k6bvRrgW/uHSbAPZwRB8K5c=,tag:5e1jihXqup55q3HbSh8Sag==,type:str]", + "sops": { + "kms": null, + "gcp_kms": null, + "azure_kv": null, + "hc_vault": null, + "age": [ + { + "recipient": "age1gudgza8lv02nwec0pejqpp5t7zu0tzjsfkmvgvy3ckfscr9f4qrq2sl5dv", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxR2xINXAwQkpBMytRU0Rw\nVFIzNkdFajZEVllzc3UvN01GUXh6emxpVHlJCmxkY2VQR0kydHVzaEJSNzNhSFZL\ndlA4UGRQcGs0MnI3T0xZWlM1N2drb3MKLS0tIEJCRDJRWHI0eHRzUG96Qk5lVllX\nS2lGSDcvUk0rS0owZElJTkxNRUgxOTQKbU/tCJeFkA2EYaKnTBFOLKE0QuWbTQ6B\nQnNo126I9HNhRldn36BvMIJnRiUr83FGKC2E+qn8Yf/7x1LYzROFBg==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZN3R6dHB5Yml3L002QWZL\nNmk1d0xHOFYzU2RYSzNpVmhENS9jTWRpR0ZVCkxzTnlUb3pvY3pVU3JTenR4bjhz\nUFdvdmlXRm0yOEZETG1vaTFSVlpGN3MKLS0tIEo4S21CNVJDWElkRmEvWm1SSDNo\nZmtYZ1ZiRGNaczVaUkJoZjNyVHlMRmcK3guQcA1TOzPd1242fxs1fBt4PwQSMQhL\nCiDbD5rIRhHvJ3RV1sD4jqrTNUH7G334EVMt5dPyp7TP4m5sQBN+ng==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2025-03-17T22:06:10Z", + "mac": "ENC[AES256_GCM,data:iXNcajufCDVwGoRShCRrfnuzjaaZsgrUOZg+lsCwBcxZYGA/KwpBHGh6SJR0mEHmZ5Jx+bZAOOIJE2fX4aBU1NeIiH0G8oCutzhhksCfY4kFb6TcA8FYNSr+7MMWSJm9BNG2eCvSxuDyTofcLBwHD6VVUdTm61wPJBSatDFDE9w=,iv:XOjftFwemBVagZNUhAcAVo9SXOowU095z4FGjoCjfG4=,tag:gm6FiecGa4blMMXRu8hiNg==,type:str]", + "pgp": null, + "unencrypted_suffix": "_unencrypted", + "version": "3.9.4" + } +} \ No newline at end of file