diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 53913e2..0000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Me, myself and I! -* @jokiller230 diff --git a/.github/assets/anything-but-windows.gif b/.github/assets/anything-but-windows.gif deleted file mode 100644 index cf08271..0000000 Binary files a/.github/assets/anything-but-windows.gif and /dev/null differ diff --git a/.github/assets/code-with-zed.webp b/.github/assets/code-with-zed.webp deleted file mode 100644 index 89c8120..0000000 Binary files a/.github/assets/code-with-zed.webp and /dev/null differ diff --git a/.github/assets/i-love-reproducing-nix-btw.gif b/.github/assets/i-love-reproducing-nix-btw.gif deleted file mode 100644 index 3b921f0..0000000 Binary files a/.github/assets/i-love-reproducing-nix-btw.gif and /dev/null differ diff --git a/.github/assets/powered-by-nixos.gif b/.github/assets/powered-by-nixos.gif deleted file mode 100644 index f293610..0000000 Binary files a/.github/assets/powered-by-nixos.gif and /dev/null differ diff --git a/.github/workflows/deadnix.yml b/.github/workflows/deadnix.yml deleted file mode 100644 index d80f744..0000000 --- a/.github/workflows/deadnix.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: "Nix: check for unused code" - -on: - pull_request: - push: - paths: - - "**.nix" - - ".github/workflows/deadnix.yml" - -jobs: - deadnix: - name: Run deadnix - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: cachix/install-nix-action@v25 - - uses: cachix/cachix-action@v14 - with: - name: deadnix - - uses: phucleeuwu/deadnix-action@v1 diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml deleted file mode 100644 index 9fdb6e6..0000000 --- a/.github/workflows/validate.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: "Nix: validate flake" - -on: - workflow_dispatch: - push: - paths: - - "**.nix" - - "**.lock" - - ".github/workflows/**.yml" - -jobs: - check-flake: - name: Validate x86_64-linux - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.ref_name }} - persist-credentials: false - - - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main - with: - extra-conf: | - experimental-features = flakes nix-command recursive-nix pipe-operator - - - name: Validate Flake - run: nix flake check diff --git a/README.md b/README.md index 47a59a0..90e679b 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,9 @@
-
+

✨ Puzzlevision ✨

Non-stop entertainment! The wackiest NixOS configuration to-date.

-
- - - - -
-
## 🚧 State of development All the basic functionality of v2 should be working correctly, including: @@ -21,13 +14,9 @@ All the basic functionality of v2 should be working correctly, including: - Creating users in your systems through ${self.namespace}.users, automatically maps home-manager configurations from the `homes` directory to their corresponding users. -Since I am actively using this configuration on my main workstation, things are evolving quickly, -leftover issues are actively being resolved and the list of modules is ever-growing. -Nonetheless, one should still consider this implementation experimental. - -My next goal is to setup an attic binary cache, -with a build/release workflow that runs in regular intervals. -(similar to isabelroses's workflow setup) +Nonetheless, one should still consider this implementation experimental, +once I start using this on my laptop, +I'll aim for production grade stability. ## 🚀 Deployment To deploy a system run the following command in your terminal of choice. @@ -77,27 +66,6 @@ Lastly, when adding new systems, make sure to update any required secret files w nix-shell -p sops --run "sops updatekeys secrets/example.yaml" ``` -## 👷 CI/CD coverage -Currently, this repository houses 2 workflows, which are executed when pushing to the v2 branch. - -#### ↪️ `Nix: check for unused code` -This workflow can be found in `.github/workflows/deadnix.yml`, -and should be pretty self-explanatory. - -Here's what it does: -1. Checks out current branch -2. Finds any unused variables/imports etc... -3. Creates a new commit, instantly removing any unused code - -#### ↪️ `Nix: validate flake` -This workflow can be found in `.github/workflows/validate.yml`. -It simply validates a flake using `nix flake check`. - -To be specific, it does the following: -1. Checks out current branch -2. Installs nix with some experimental features (flakes, nix-command, recursive-nix, pipe-operator) -3. Runs `nix flake check` on the codebase - ## 📝 Goals and improvements The main goals of this rewritten flake are: diff --git a/.github/assets/puzzlevision.png b/assets/puzzlevision.png similarity index 100% rename from .github/assets/puzzlevision.png rename to assets/puzzlevision.png diff --git a/flake.lock b/flake.lock index 21c0b0a..76fd099 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1747519437, - "narHash": "sha256-uv9Wv59d+mckS2CkorOF484wp2G5TNGijdoBZ5RkAk0=", + "lastModified": 1746650299, + "narHash": "sha256-4+pxk1KcSH8ww3tgN808nNJ3E7Q8gNWI+U0sesW7mBQ=", "owner": "catppuccin", "repo": "nix", - "rev": "3ba714046ee32373e88166e6e9474d6ae6a5b734", + "rev": "f746600f15b69df05c84e3037749a3be5b1276d1", "type": "github" }, "original": { @@ -22,11 +22,11 @@ }, "easy-hosts": { "locked": { - "lastModified": 1747174689, - "narHash": "sha256-WEA2HdjC90GLf5VpMLpvOF3/uSSq6AV4DQ4ezLFspc0=", + "lastModified": 1743693165, + "narHash": "sha256-BAYno/4P0hq3aaqfVLbDmv8pgvzJWcN+4L8jK8SzaMo=", "owner": "tgirlcloud", "repo": "easy-hosts", - "rev": "e1210563fc527221e12544ce55cd954acf94e7ed", + "rev": "611cc21942feb55c6a38410dfe8eee3fb5f08c8d", "type": "github" }, "original": { @@ -35,20 +35,6 @@ "type": "github" } }, - "flake-compat": { - "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": [ @@ -76,11 +62,11 @@ ] }, "locked": { - "lastModified": 1747955385, - "narHash": "sha256-AKoBFaEGN02tGvBlkwVIDOGXouHvrTTfOUcvBDGxkxQ=", + "lastModified": 1746727295, + "narHash": "sha256-0364XVBdfEA8rWfqEPvsgBqGFfq5r9LAo9CS9tvT7tg=", "owner": "nix-community", "repo": "home-manager", - "rev": "a868570581f0dbdef7e33c8c9bb34b735dfcbacf", + "rev": "a51598236f23c89e59ee77eb8e0614358b0e896c", "type": "github" }, "original": { @@ -89,71 +75,13 @@ "type": "github" } }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "youtube-music", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747439237, - "narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "nixcord": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs", - "systems": "systems", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1747878048, - "narHash": "sha256-kAR4Ox+vShPzsUar/1rHarRgUBPpm7hxwi7sIffNYa4=", - "owner": "kaylorben", - "repo": "nixcord", - "rev": "5f737debf65b8409392604098a7489d997746450", - "type": "github" - }, - "original": { - "owner": "kaylorben", - "repo": "nixcord", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1744868846, - "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", + "lastModified": 1746461020, + "narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1747744144, - "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", + "rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae", "type": "github" }, "original": { @@ -163,7 +91,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_2": { "locked": { "lastModified": 1744868846, "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", @@ -185,22 +113,20 @@ "easy-hosts": "easy-hosts", "flake-parts": "flake-parts", "home-manager": "home-manager", - "nixcord": "nixcord", - "nixpkgs": "nixpkgs_2", - "sops-nix": "sops-nix", - "youtube-music": "youtube-music" + "nixpkgs": "nixpkgs", + "sops-nix": "sops-nix" } }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1747603214, - "narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=", + "lastModified": 1746485181, + "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=", "owner": "Mic92", "repo": "sops-nix", - "rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd", + "rev": "e93ee1d900ad264d65e9701a5c6f895683433386", "type": "github" }, "original": { @@ -208,62 +134,6 @@ "repo": "sops-nix", "type": "github" } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "id": "systems", - "type": "indirect" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nixcord", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1744961264, - "narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "8d404a69efe76146368885110f29a2ca3700bee6", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "youtube-music": { - "inputs": { - "home-manager": "home-manager_2", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747498370, - "narHash": "sha256-mJ7fLdL/A4cWHMm0n3/dcQ72Ijm+uTu/snl8iqgtbtc=", - "owner": "h-banii", - "repo": "youtube-music-nix", - "rev": "410071c47bb39a5abb672cd5c1a59bc5f853d908", - "type": "github" - }, - "original": { - "owner": "h-banii", - "repo": "youtube-music-nix", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 9ec7a9f..2933e6e 100644 --- a/flake.nix +++ b/flake.nix @@ -35,15 +35,6 @@ url = "github:catppuccin/nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - - nixcord = { - url = "github:kaylorben/nixcord"; - }; - - youtube-music = { - url = "github:h-banii/youtube-music-nix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = {flake-parts, ...} @ inputs: diff --git a/homes/x86_64-linux/jo/apps/discord/default.nix b/homes/x86_64-linux/jo/apps/discord/default.nix deleted file mode 100644 index dfa7e9a..0000000 --- a/homes/x86_64-linux/jo/apps/discord/default.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; -in { - # Enable arRPC for discord Rich Presence stuffs - services.arrpc.enable = true; - - programs.nixcord = { - enable = true; - vesktop.enable = true; - discord.enable = false; - - config = { - useQuickCss = true; - themeLinks = [ - (mkIf config.catppuccin.enable "https://catppuccin.github.io/discord/dist/catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}.theme.css") - ]; - - frameless = true; - plugins = { - betterFolders = { - enable = true; - closeAllFolders = true; - closeAllHomeButton = true; - closeOthers = true; - }; - - fakeNitro = { - enable = true; - enableStickerBypass = false; - enableEmojiBypass = false; - }; - - betterSettings.enable = true; - betterUploadButton.enable = true; - blurNSFW.enable = true; - clearURLs.enable = true; - callTimer.enable = true; - consoleJanitor.enable = true; - copyEmojiMarkdown.enable = true; - userMessagesPronouns.enable = true; - reviewDB.enable = true; - - # Vesktop exclusive - webRichPresence.enable = true; - webScreenShareFixes.enable = true; - }; - }; - }; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-frappe.css b/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-frappe.css deleted file mode 100644 index 3d0d60d..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-frappe.css +++ /dev/null @@ -1,6 +0,0 @@ -/* frappe */ -@import url("https://youtubemusic.catppuccin.com/src/frappe.css"); - -html:not(.style-scope) { - --ctp-accent: var(--ctp-blue) !important; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-latte.css b/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-latte.css deleted file mode 100644 index af971c8..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-latte.css +++ /dev/null @@ -1,6 +0,0 @@ -/* latte */ -@import url("https://youtubemusic.catppuccin.com/src/latte.css"); - -html:not(.style-scope) { - --ctp-accent: var(--ctp-blue) !important; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-macchiato.css b/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-macchiato.css deleted file mode 100644 index 6979eab..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-macchiato.css +++ /dev/null @@ -1,6 +0,0 @@ -/* macchiato */ -@import url("https://youtubemusic.catppuccin.com/src/macchiato.css"); - -html:not(.style-scope) { - --ctp-accent: var(--ctp-blue) !important; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-mocha.css b/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-mocha.css deleted file mode 100644 index b95c627..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/catppuccin-mocha.css +++ /dev/null @@ -1,6 +0,0 @@ -/* mocha */ -@import url("https://youtubemusic.catppuccin.com/src/mocha.css"); - -html:not(.style-scope) { - --ctp-accent: var(--ctp-blue) !important; -} diff --git a/homes/x86_64-linux/jo/apps/youtube-music/default.nix b/homes/x86_64-linux/jo/apps/youtube-music/default.nix deleted file mode 100644 index 0778d00..0000000 --- a/homes/x86_64-linux/jo/apps/youtube-music/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - config, - osConfig, - namespace, - ... -}: let - inherit (lib) mkIf; -in { - programs.youtube-music = { - enable = true; - options = { - tray = true; - trayClickPlayPause = true; - resumeOnStart = false; - - themes = [ - (mkIf config.catppuccin.enable ./catppuccin-${config.catppuccin.flavor}.css) - ]; - - language = osConfig.${namespace}.system.locale.keymap; - autoUpdates = false; - }; - - plugins = { - discord.enabled = true; - }; - }; -} diff --git a/homes/x86_64-linux/jo/default.nix b/homes/x86_64-linux/jo/default.nix index a8ba242..677b278 100644 --- a/homes/x86_64-linux/jo/default.nix +++ b/homes/x86_64-linux/jo/default.nix @@ -3,14 +3,8 @@ config, ... }: { - imports = [ - ./apps/discord - ./apps/youtube-music - ]; - puzzlevision = { themes.catppuccin.enable = true; - apps.zed.enable = true; }; sops.secrets.wakatime-cfg = { @@ -21,6 +15,8 @@ home.packages = with pkgs; [ ## GENERAL + youtube-music + discord ghostty teams-for-linux enpass @@ -30,6 +26,8 @@ ungoogled-chromium ## EDITORS + nano + zed-editor apostrophe jetbrains.phpstorm arduino-ide diff --git a/homes/x86_64-linux/jo/secrets/wakatime.cfg b/homes/x86_64-linux/jo/secrets/wakatime.cfg index a7c2224..bf69df7 100644 --- a/homes/x86_64-linux/jo/secrets/wakatime.cfg +++ b/homes/x86_64-linux/jo/secrets/wakatime.cfg @@ -1,18 +1,18 @@ { - "data": "ENC[AES256_GCM,data:UAADE/aH98MYyfxL3ZkZ06lHHTRmmRVuOhiqEyF6DP35sGTC7Mpqe++MTYBDFrD4Rraeao9T2tcu3sL22p9SW9jF7Y2L1YZ9zKKUyP2y+G8PN25GqXWaNwJQG/hxcKs8km448g==,iv:SkyBC+VkwccprAomhXUzdmSQuBDfFn22MKJwjV9ZSzo=,tag:m/uUcl9r3GW3QYCajoAhYw==,type:str]", + "data": "ENC[AES256_GCM,data:NaNu0ytz8Ji7WJ4gDinY2Tsny+MzgG9vV/7xnZY/dQzB0jMHBxIRAcrzH1A+aqsANeeZPD0XGXC2qIpYUlMKBcfMxkqmlj7XnpvDiXQ9RciCNp8l1xs0wvoxjYghbD8nsL57UQ==,iv:qa1SPnWCShIiz7l4EW6tCT2gJO0qNNcDk05F5hS8H7U=,tag:zArwz8R3/uegsO1ShLjfwg==,type:str]", "sops": { "age": [ { "recipient": "age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5VmtTRHo4NWVuU2tiZTc5\nWUVyeU54ZmtZbi9uUWNablIxSm9aZ3hadjBnCmNiVlBXS2lEbE00VFl6QVRlQk92\nMFI0TVBMVDZiQXg3VzZTaVNEd2RROTQKLS0tIEg3aGwvWXgvVldGTjZFaS95dEVP\nUmZHaGFaNndDRWY5cXBJeGY4TVVqbTgKeFTClhSmX5IQ5+7DXk4HEwTAv4uB/HCl\nVeoKUNaTHme60hWE/J12B2PvxtRa+f6diDMFg11mQkPOZwyEcQWMpg==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJS0EySk4wMGVzaUtOZWlN\nUE15SXNVOUtqUDQxV29tNGpBRkdLek5icWg0Cnd5b1FmT3VQTTBDdEtCYzQxNVdk\nWVpQMFpmTXpOcFFlMG5MQjFLTXZRUGsKLS0tIHBvakR1Q0dYdkRqVTJtLzRORzBP\nNU55UEtWUXhBdGN0M0lMQktaVmhSK00KA93LFut6jiYtlndm9Oq0ferFPT4IlBQ1\nDmnD4hWz7NLimWED7RiJ2lSO9IRgQBhLHeiLums/ZPxjFGnnO6sicg==\n-----END AGE ENCRYPTED FILE-----\n" }, { "recipient": "age1ajkq0lalyc75tjhdtpx2yshw5y3wt85fwjy24luf69rvpavg33vqw6c3tc", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnK1NtOE9tZ0poRjdkOTBi\nbWFQbGovY1VvRDN4clJmRGdTSHlzQk5JSmtrCitSc3hnb21CMVVuclZ2YndIOWRk\naDduM3VadDBaWFRDRElZSWlUaXdUZGMKLS0tIEJOUEFoS3ZJQWtkNGFQNk1CdGxI\nSmRFQ25TSXY1S0FHQmhUbWNsT1Z2c2sKBTV2WEW+HynmrrPza8gsIQAK2V3HhYfJ\nrG6rjnzMONd+0Q6Z0KBqgoMfCTjWE9CBnm78DL16u9pRH3CwhpKabg==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSTHh4eExqN1lmUWhOd0tF\ndzVUYXpWblVlem5QcndUQVRRSnZsS0dNK3lVCnpJQUVyRDRiNTFyb3RnSFZnQW9D\nV2sxRlZDcE1yQjI5Yzk3Tmh2ZkdxZ00KLS0tIGlKYUVnZXZtYTJPNEhEVEVhVlI4\na1hGbjJ3VDE0WDZKd0FGYUZzZUp5SEkKp043TYYglP+SWD7IdK/rnSJ4jfqvpGSY\njIDWMZmFTIcPoeVSQrxi7PD9Cd4Q56lhPhCYZR4czk5EdeIEWS9Z6w==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2025-05-22T18:30:26Z", - "mac": "ENC[AES256_GCM,data:/aZOXw2xgQ8UZG5TIWXwHZjlofa08WM2XpPhXUbf2qrx0yyhEyZrtibalCIDdUGgzaZjt8b+qrZqgNE9o+HCUNVX9fU9yCXRL1kpksz9e6HV4S+KIrdHnEFtuRt7r8nP29BotLYoP9KKbA57lL5SYJgPINHq11CAiQLU6A8W8YI=,iv:0zvQe2wRd/qKjrqinc9kgP8RSl47xxD0LofREiK8XOc=,tag:eWhtD/X3CPHTlEZPgp0cjA==,type:str]", + "lastmodified": "2025-05-21T22:54:54Z", + "mac": "ENC[AES256_GCM,data:vYmgUvgyQ1i+gih/6YMWX1vqkWzcAn8zgNspICF6KxTYE08i61LGJSaM2R5rh2r/xWY9zKYv8EKH2GSVyJ+hGgSsS0qY8BOKetKMHZEWuWtWSbjO/iKPlmqZXxmPPiPlYUXjlfXB1rzi7RXwDzwVpD1nQTuiK8t2rYJjGgH0kRM=,iv:EEepXDQ/1zy1sO8eXl5LXTHI5OUPFca6WwuYTkHuyEs=,tag:MHA262l7qa8Ngy0tuggPpw==,type:str]", "unencrypted_suffix": "_unencrypted", "version": "3.10.2" } diff --git a/modules/home/apps/zed/default.nix b/modules/home/app/zed/default.nix similarity index 83% rename from modules/home/apps/zed/default.nix rename to modules/home/app/zed/default.nix index 9ebbebd..df8f0fd 100644 --- a/modules/home/apps/zed/default.nix +++ b/modules/home/app/zed/default.nix @@ -40,16 +40,6 @@ in { copilot = false; }; - formatter = { - external = { - command = "alejandra"; - arguments = ["--quiet"]; - language = ["nix"]; - }; - }; - - format_on_save = "on"; - ### Language specific configurations languages = { ### Nix language @@ -57,6 +47,17 @@ in { language_servers = ["nixd" "!nil"]; }; }; + + ### LSP configurations + lsp = { + nixd = { + initialization_options = { + formatting = { + command = ["alejandra" "--quiet" "--"]; + }; + }; + }; + }; }; extraPackages = with pkgs; [nixd]; diff --git a/modules/home/desktop/gnome/default.nix b/modules/home/desktop/gnome/default.nix index aa5eeae..734425d 100644 --- a/modules/home/desktop/gnome/default.nix +++ b/modules/home/desktop/gnome/default.nix @@ -44,7 +44,7 @@ in { enable-blur = mkOpt bool false "Whether to enable blur-my-shell application blur."; }; }; - wallpaper = mkOpt str (builtins.toString ../wallpapers/catppuccin/howard-chen-mao-mao-forest-campsite.jpg) "Specify the path of your prefered Gnome wallpaper."; + wallpaper = mkOpt str (builtins.toString ../wallpapers/catppuccin/mountain_tower_sunset.jpg) "Specify the path of your prefered Gnome wallpaper."; }; config = mkIf osConfig.${namespace}.desktop.gnome.enable { diff --git a/modules/home/desktop/wallpapers/catppuccin/howard-chen-mao-mao-forest-campsite.jpg b/modules/home/desktop/wallpapers/catppuccin/howard-chen-mao-mao-forest-campsite.jpg deleted file mode 100644 index 8804982..0000000 Binary files a/modules/home/desktop/wallpapers/catppuccin/howard-chen-mao-mao-forest-campsite.jpg and /dev/null differ diff --git a/modules/nixos/archetypes/workstation/default.nix b/modules/nixos/archetypes/workstation/default.nix index 5f5b07d..e2556b3 100644 --- a/modules/nixos/archetypes/workstation/default.nix +++ b/modules/nixos/archetypes/workstation/default.nix @@ -1,7 +1,6 @@ { lib, self, - pkgs, config, ... }: let @@ -34,7 +33,6 @@ in { nix = { enable = true; use-lix = true; - use-nixld = true; }; }; @@ -45,10 +43,6 @@ in { desktop.gnome.enable = true; }; - environment.systemPackages = with pkgs; [ - nano - ]; - time.timeZone = mkDefault "Europe/Berlin"; }; } diff --git a/modules/nixos/desktop/gnome/default.nix b/modules/nixos/desktop/gnome/default.nix index 0cac5cf..d403db9 100644 --- a/modules/nixos/desktop/gnome/default.nix +++ b/modules/nixos/desktop/gnome/default.nix @@ -29,7 +29,6 @@ in { gnome-console gnome-terminal gnome-music - totem # Gnome videos hitori # Sudoku game gnome-contacts gnome-initial-setup @@ -40,8 +39,7 @@ in { services.gnome.gnome-keyring.enable = true; environment.systemPackages = with pkgs; [ - refine - showtime + gnome-tweaks resources ]; }; diff --git a/modules/nixos/system/fonts/default.nix b/modules/nixos/system/fonts/default.nix index 256cfa5..43f9966 100644 --- a/modules/nixos/system/fonts/default.nix +++ b/modules/nixos/system/fonts/default.nix @@ -14,22 +14,7 @@ in { enable = mkEnableOption "system font management"; fonts = mkOption { type = listOf package; - default = with pkgs; [ - corefonts - - noto-fonts - noto-fonts-cjk-sans - noto-fonts-cjk-serif - - inter - - nerd-fonts.zed-mono - monocraft - - noto-fonts-emoji - material-icons - material-design-icons - ]; + default = with pkgs; [noto-fonts noto-fonts-cjk-sans noto-fonts-cjk-serif noto-fonts-emoji nerd-fonts.bigblue-terminal nerd-fonts.zed-mono monocraft]; example = [noto-fonts noto-fonts-emoji]; description = "Install additional font packages"; }; diff --git a/modules/nixos/users/default.nix b/modules/nixos/users/default.nix index 64829f8..9f900e7 100644 --- a/modules/nixos/users/default.nix +++ b/modules/nixos/users/default.nix @@ -22,7 +22,6 @@ initialPassword = self.lib.mkOpt (types.nullOr types.str) null "Plaintext insecure initial user password, only recommended for testing."; password = self.lib.mkOpt (types.nullOr types.str) null "Plaintext insecure user password, only recommended for testing."; hashedPasswordFile = self.lib.mkOpt (types.nullOr types.str) null "Secure, hashed user password stored in a separate file, recommended for production."; - hashedPassword = self.lib.mkOpt (types.nullOr types.str) null "Secure, hashed password, stored in plaintext, fine to use."; extraGroups = self.lib.mkOpt (types.listOf types.str) [] "List of additional groups this user belongs to."; }; }; @@ -50,7 +49,7 @@ in { users.users = lib.mapAttrs (username: userConfig: mkIf userConfig.enable { name = username; - inherit (userConfig) isNormalUser isSystemUser initialPassword hashedPasswordFile hashedPassword password extraGroups; + inherit (userConfig) isNormalUser isSystemUser initialPassword hashedPasswordFile password extraGroups; }) cfg; @@ -69,13 +68,7 @@ in { mkIf (userConfig.enable && homeConfigExists username) ( {osConfig, ...}: { # Import user home configuration and general home modules - imports = [ - (getHomeConfigPath username) - inputs.sops-nix.homeManagerModules.sops - inputs.catppuccin.homeModules.default - inputs.nixcord.homeModules.nixcord - inputs.youtube-music.homeManagerModules.default - ] ++ homeModules; + imports = [(getHomeConfigPath username) inputs.sops-nix.homeManagerModules.sops inputs.catppuccin.homeModules.default] ++ homeModules; home.stateVersion = lib.mkDefault osConfig.system.stateVersion; } diff --git a/systems/x86_64-nixos/puzzlevision/default.nix b/systems/x86_64-nixos/puzzlevision/default.nix index 1203d1d..fcad685 100644 --- a/systems/x86_64-nixos/puzzlevision/default.nix +++ b/systems/x86_64-nixos/puzzlevision/default.nix @@ -1,4 +1,8 @@ -{pkgs, ...}: { +{ + pkgs, + config, + ... +}: { imports = [ ./hardware.nix ]; @@ -8,10 +12,15 @@ sops.defaultSopsFile = ./secrets/users.yaml; sops.age.keyFile = "/var/lib/sops-nix/key.txt"; + # Todo: automate this import in users module! + # Require user password secrets for users + sops.secrets."users/jo/password_hash".neededForUsers = true; + puzzlevision = { users.jo = { enable = true; - hashedPassword = "$6$mvK9bT756Aok54Vt$vBRnT66Vb3HL0Y5rEMJlHvKkvzVQ.KUciInTmW3FCBFT00IuFMpz3q9RhXPLTLMRPho65bTg9hMnFPb84I774."; + #password = "4868320069443"; + hashedPasswordFile = config.sops.secrets."users/jo/password_hash".path; # For testing only, replace with sops secret before production use extraGroups = ["wheel"]; }; diff --git a/systems/x86_64-nixos/puzzlevision/hardware.nix b/systems/x86_64-nixos/puzzlevision/hardware.nix index 62a959f..5cc295c 100644 --- a/systems/x86_64-nixos/puzzlevision/hardware.nix +++ b/systems/x86_64-nixos/puzzlevision/hardware.nix @@ -1,7 +1,7 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, modulesPath, ... }: +{ config, lib, pkgs, modulesPath, ... }: { imports =