Compare commits
No commits in common. "d32bad92f0ce43f026471e2ec7d299f05e84f79b" and "87c59890d5a12af923e7183b571489881d529439" have entirely different histories.
d32bad92f0
...
87c59890d5
2
.github/CODEOWNERS
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
# Me, myself and I!
|
|
||||||
* @jokiller230
|
|
||||||
BIN
.github/assets/anything-but-windows.gif
vendored
|
Before Width: | Height: | Size: 1.8 KiB |
BIN
.github/assets/code-with-zed.webp
vendored
|
Before Width: | Height: | Size: 1.2 KiB |
BIN
.github/assets/i-love-reproducing-nix-btw.gif
vendored
|
Before Width: | Height: | Size: 44 KiB |
BIN
.github/assets/powered-by-nixos.gif
vendored
|
Before Width: | Height: | Size: 3.4 KiB |
20
.github/workflows/deadnix.yml
vendored
|
|
@ -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
|
|
||||||
30
.github/workflows/validate.yml
vendored
|
|
@ -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
|
|
||||||
40
README.md
|
|
@ -1,16 +1,9 @@
|
||||||
<br>
|
<br>
|
||||||
<div align="center"><img src=".github/assets/puzzlevision.png" width="120px" height="auto"></div>
|
<div align="center"><img src="assets/puzzlevision.png" width="120px" height="auto"></div>
|
||||||
|
|
||||||
<h1 align="center">✨ Puzzlevision ✨<br></h1>
|
<h1 align="center">✨ Puzzlevision ✨<br></h1>
|
||||||
<div align="center">Non-stop entertainment! The wackiest NixOS configuration to-date.</div>
|
<div align="center">Non-stop entertainment! The wackiest NixOS configuration to-date.</div>
|
||||||
<br>
|
<br>
|
||||||
<div align="center">
|
|
||||||
<img src=".github/assets/powered-by-nixos.gif" width="88px" height="31px">
|
|
||||||
<img src=".github/assets/i-love-reproducing-nix-btw.gif" width="88px" height="31px">
|
|
||||||
<img src=".github/assets/anything-but-windows.gif" width="88px" height="31px">
|
|
||||||
<img src=".github/assets/code-with-zed.webp" width="88px" height="31px">
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
## 🚧 State of development
|
## 🚧 State of development
|
||||||
All the basic functionality of v2 should be working correctly, including:
|
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,
|
- Creating users in your systems through ${self.namespace}.users,
|
||||||
automatically maps home-manager configurations from the `homes` directory to their corresponding 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,
|
Nonetheless, one should still consider this implementation experimental,
|
||||||
leftover issues are actively being resolved and the list of modules is ever-growing.
|
once I start using this on my laptop,
|
||||||
Nonetheless, one should still consider this implementation experimental.
|
I'll aim for production grade stability.
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
## 🚀 Deployment
|
## 🚀 Deployment
|
||||||
To deploy a system run the following command in your terminal of choice.
|
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"
|
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
|
## 📝 Goals and improvements
|
||||||
The main goals of this rewritten flake are:
|
The main goals of this rewritten flake are:
|
||||||
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
168
flake.lock
generated
|
|
@ -7,11 +7,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747519437,
|
"lastModified": 1746650299,
|
||||||
"narHash": "sha256-uv9Wv59d+mckS2CkorOF484wp2G5TNGijdoBZ5RkAk0=",
|
"narHash": "sha256-4+pxk1KcSH8ww3tgN808nNJ3E7Q8gNWI+U0sesW7mBQ=",
|
||||||
"owner": "catppuccin",
|
"owner": "catppuccin",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "3ba714046ee32373e88166e6e9474d6ae6a5b734",
|
"rev": "f746600f15b69df05c84e3037749a3be5b1276d1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -22,11 +22,11 @@
|
||||||
},
|
},
|
||||||
"easy-hosts": {
|
"easy-hosts": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747174689,
|
"lastModified": 1743693165,
|
||||||
"narHash": "sha256-WEA2HdjC90GLf5VpMLpvOF3/uSSq6AV4DQ4ezLFspc0=",
|
"narHash": "sha256-BAYno/4P0hq3aaqfVLbDmv8pgvzJWcN+4L8jK8SzaMo=",
|
||||||
"owner": "tgirlcloud",
|
"owner": "tgirlcloud",
|
||||||
"repo": "easy-hosts",
|
"repo": "easy-hosts",
|
||||||
"rev": "e1210563fc527221e12544ce55cd954acf94e7ed",
|
"rev": "611cc21942feb55c6a38410dfe8eee3fb5f08c8d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -35,20 +35,6 @@
|
||||||
"type": "github"
|
"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": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
|
|
@ -76,11 +62,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747955385,
|
"lastModified": 1746727295,
|
||||||
"narHash": "sha256-AKoBFaEGN02tGvBlkwVIDOGXouHvrTTfOUcvBDGxkxQ=",
|
"narHash": "sha256-0364XVBdfEA8rWfqEPvsgBqGFfq5r9LAo9CS9tvT7tg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "a868570581f0dbdef7e33c8c9bb34b735dfcbacf",
|
"rev": "a51598236f23c89e59ee77eb8e0614358b0e896c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -89,71 +75,13 @@
|
||||||
"type": "github"
|
"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": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744868846,
|
"lastModified": 1746461020,
|
||||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
"narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
|
"rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae",
|
||||||
"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",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -163,7 +91,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744868846,
|
"lastModified": 1744868846,
|
||||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
||||||
|
|
@ -185,22 +113,20 @@
|
||||||
"easy-hosts": "easy-hosts",
|
"easy-hosts": "easy-hosts",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixcord": "nixcord",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"sops-nix": "sops-nix"
|
||||||
"sops-nix": "sops-nix",
|
|
||||||
"youtube-music": "youtube-music"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747603214,
|
"lastModified": 1746485181,
|
||||||
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
|
"narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
|
"rev": "e93ee1d900ad264d65e9701a5c6f895683433386",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -208,62 +134,6 @@
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"type": "github"
|
"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",
|
"root": "root",
|
||||||
|
|
|
||||||
|
|
@ -35,15 +35,6 @@
|
||||||
url = "github:catppuccin/nix";
|
url = "github:catppuccin/nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
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:
|
outputs = {flake-parts, ...} @ inputs:
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
/* frappe */
|
|
||||||
@import url("https://youtubemusic.catppuccin.com/src/frappe.css");
|
|
||||||
|
|
||||||
html:not(.style-scope) {
|
|
||||||
--ctp-accent: var(--ctp-blue) !important;
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
/* latte */
|
|
||||||
@import url("https://youtubemusic.catppuccin.com/src/latte.css");
|
|
||||||
|
|
||||||
html:not(.style-scope) {
|
|
||||||
--ctp-accent: var(--ctp-blue) !important;
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
/* macchiato */
|
|
||||||
@import url("https://youtubemusic.catppuccin.com/src/macchiato.css");
|
|
||||||
|
|
||||||
html:not(.style-scope) {
|
|
||||||
--ctp-accent: var(--ctp-blue) !important;
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
/* mocha */
|
|
||||||
@import url("https://youtubemusic.catppuccin.com/src/mocha.css");
|
|
||||||
|
|
||||||
html:not(.style-scope) {
|
|
||||||
--ctp-accent: var(--ctp-blue) !important;
|
|
||||||
}
|
|
||||||
|
|
@ -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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -3,14 +3,8 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
./apps/discord
|
|
||||||
./apps/youtube-music
|
|
||||||
];
|
|
||||||
|
|
||||||
puzzlevision = {
|
puzzlevision = {
|
||||||
themes.catppuccin.enable = true;
|
themes.catppuccin.enable = true;
|
||||||
apps.zed.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.secrets.wakatime-cfg = {
|
sops.secrets.wakatime-cfg = {
|
||||||
|
|
@ -21,6 +15,8 @@
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
## GENERAL
|
## GENERAL
|
||||||
|
youtube-music
|
||||||
|
discord
|
||||||
ghostty
|
ghostty
|
||||||
teams-for-linux
|
teams-for-linux
|
||||||
enpass
|
enpass
|
||||||
|
|
@ -30,6 +26,8 @@
|
||||||
ungoogled-chromium
|
ungoogled-chromium
|
||||||
|
|
||||||
## EDITORS
|
## EDITORS
|
||||||
|
nano
|
||||||
|
zed-editor
|
||||||
apostrophe
|
apostrophe
|
||||||
jetbrains.phpstorm
|
jetbrains.phpstorm
|
||||||
arduino-ide
|
arduino-ide
|
||||||
|
|
|
||||||
|
|
@ -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": {
|
"sops": {
|
||||||
"age": [
|
"age": [
|
||||||
{
|
{
|
||||||
"recipient": "age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d",
|
"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",
|
"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",
|
"lastmodified": "2025-05-21T22:54:54Z",
|
||||||
"mac": "ENC[AES256_GCM,data:/aZOXw2xgQ8UZG5TIWXwHZjlofa08WM2XpPhXUbf2qrx0yyhEyZrtibalCIDdUGgzaZjt8b+qrZqgNE9o+HCUNVX9fU9yCXRL1kpksz9e6HV4S+KIrdHnEFtuRt7r8nP29BotLYoP9KKbA57lL5SYJgPINHq11CAiQLU6A8W8YI=,iv:0zvQe2wRd/qKjrqinc9kgP8RSl47xxD0LofREiK8XOc=,tag:eWhtD/X3CPHTlEZPgp0cjA==,type:str]",
|
"mac": "ENC[AES256_GCM,data:vYmgUvgyQ1i+gih/6YMWX1vqkWzcAn8zgNspICF6KxTYE08i61LGJSaM2R5rh2r/xWY9zKYv8EKH2GSVyJ+hGgSsS0qY8BOKetKMHZEWuWtWSbjO/iKPlmqZXxmPPiPlYUXjlfXB1rzi7RXwDzwVpD1nQTuiK8t2rYJjGgH0kRM=,iv:EEepXDQ/1zy1sO8eXl5LXTHI5OUPFca6WwuYTkHuyEs=,tag:MHA262l7qa8Ngy0tuggPpw==,type:str]",
|
||||||
"unencrypted_suffix": "_unencrypted",
|
"unencrypted_suffix": "_unencrypted",
|
||||||
"version": "3.10.2"
|
"version": "3.10.2"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,16 +40,6 @@ in {
|
||||||
copilot = false;
|
copilot = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
formatter = {
|
|
||||||
external = {
|
|
||||||
command = "alejandra";
|
|
||||||
arguments = ["--quiet"];
|
|
||||||
language = ["nix"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
format_on_save = "on";
|
|
||||||
|
|
||||||
### Language specific configurations
|
### Language specific configurations
|
||||||
languages = {
|
languages = {
|
||||||
### Nix language
|
### Nix language
|
||||||
|
|
@ -57,6 +47,17 @@ in {
|
||||||
language_servers = ["nixd" "!nil"];
|
language_servers = ["nixd" "!nil"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
### LSP configurations
|
||||||
|
lsp = {
|
||||||
|
nixd = {
|
||||||
|
initialization_options = {
|
||||||
|
formatting = {
|
||||||
|
command = ["alejandra" "--quiet" "--"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
extraPackages = with pkgs; [nixd];
|
extraPackages = with pkgs; [nixd];
|
||||||
|
|
@ -44,7 +44,7 @@ in {
|
||||||
enable-blur = mkOpt bool false "Whether to enable blur-my-shell application blur.";
|
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 {
|
config = mkIf osConfig.${namespace}.desktop.gnome.enable {
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 702 KiB |
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
self,
|
self,
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
|
@ -34,7 +33,6 @@ in {
|
||||||
nix = {
|
nix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
use-lix = true;
|
use-lix = true;
|
||||||
use-nixld = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -45,10 +43,6 @@ in {
|
||||||
desktop.gnome.enable = true;
|
desktop.gnome.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nano
|
|
||||||
];
|
|
||||||
|
|
||||||
time.timeZone = mkDefault "Europe/Berlin";
|
time.timeZone = mkDefault "Europe/Berlin";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ in {
|
||||||
gnome-console
|
gnome-console
|
||||||
gnome-terminal
|
gnome-terminal
|
||||||
gnome-music
|
gnome-music
|
||||||
totem # Gnome videos
|
|
||||||
hitori # Sudoku game
|
hitori # Sudoku game
|
||||||
gnome-contacts
|
gnome-contacts
|
||||||
gnome-initial-setup
|
gnome-initial-setup
|
||||||
|
|
@ -40,8 +39,7 @@ in {
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
refine
|
gnome-tweaks
|
||||||
showtime
|
|
||||||
resources
|
resources
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -14,22 +14,7 @@ in {
|
||||||
enable = mkEnableOption "system font management";
|
enable = mkEnableOption "system font management";
|
||||||
fonts = mkOption {
|
fonts = mkOption {
|
||||||
type = listOf package;
|
type = listOf package;
|
||||||
default = with pkgs; [
|
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];
|
||||||
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
|
|
||||||
];
|
|
||||||
example = [noto-fonts noto-fonts-emoji];
|
example = [noto-fonts noto-fonts-emoji];
|
||||||
description = "Install additional font packages";
|
description = "Install additional font packages";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@
|
||||||
initialPassword = self.lib.mkOpt (types.nullOr types.str) null "Plaintext insecure initial user password, only recommended for testing.";
|
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.";
|
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.";
|
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.";
|
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:
|
users.users = lib.mapAttrs (username: userConfig:
|
||||||
mkIf userConfig.enable {
|
mkIf userConfig.enable {
|
||||||
name = username;
|
name = username;
|
||||||
inherit (userConfig) isNormalUser isSystemUser initialPassword hashedPasswordFile hashedPassword password extraGroups;
|
inherit (userConfig) isNormalUser isSystemUser initialPassword hashedPasswordFile password extraGroups;
|
||||||
})
|
})
|
||||||
cfg;
|
cfg;
|
||||||
|
|
||||||
|
|
@ -69,13 +68,7 @@ in {
|
||||||
mkIf (userConfig.enable && homeConfigExists username) (
|
mkIf (userConfig.enable && homeConfigExists username) (
|
||||||
{osConfig, ...}: {
|
{osConfig, ...}: {
|
||||||
# Import user home configuration and general home modules
|
# Import user home configuration and general home modules
|
||||||
imports = [
|
imports = [(getHomeConfigPath username) inputs.sops-nix.homeManagerModules.sops inputs.catppuccin.homeModules.default] ++ homeModules;
|
||||||
(getHomeConfigPath username)
|
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
|
||||||
inputs.catppuccin.homeModules.default
|
|
||||||
inputs.nixcord.homeModules.nixcord
|
|
||||||
inputs.youtube-music.homeManagerModules.default
|
|
||||||
] ++ homeModules;
|
|
||||||
|
|
||||||
home.stateVersion = lib.mkDefault osConfig.system.stateVersion;
|
home.stateVersion = lib.mkDefault osConfig.system.stateVersion;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
];
|
];
|
||||||
|
|
@ -8,10 +12,15 @@
|
||||||
sops.defaultSopsFile = ./secrets/users.yaml;
|
sops.defaultSopsFile = ./secrets/users.yaml;
|
||||||
sops.age.keyFile = "/var/lib/sops-nix/key.txt";
|
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 = {
|
puzzlevision = {
|
||||||
users.jo = {
|
users.jo = {
|
||||||
enable = true;
|
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"];
|
extraGroups = ["wheel"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, modulesPath, ... }:
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
|
|
|
||||||