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 =