Compare commits
27 Commits
9fd98e97fe
...
main
Author | SHA1 | Date | |
---|---|---|---|
e28f9d5f2f
|
|||
6381ccf530
|
|||
35e7c0df79
|
|||
047e54ef74
|
|||
6dfad3f7f1
|
|||
74ecc77048
|
|||
5c74dc820b
|
|||
89de487f68
|
|||
07c5526868
|
|||
d3bb262f7a
|
|||
d5560fd847
|
|||
751cb87d8d
|
|||
d2cc6663e7
|
|||
64f21a317b
|
|||
849bd2a5e0
|
|||
79d07a5bfd
|
|||
351272fc5c
|
|||
f68ff8d18c
|
|||
f475b7b4ab
|
|||
e65e523992
|
|||
38cb13a195
|
|||
fa648a174d
|
|||
95235d5ad5
|
|||
4d1b3e9911
|
|||
e1fd8a07bd | |||
8e9ab3aa38 | |||
5da7636a42 |
43
README.md
43
README.md
@@ -30,25 +30,26 @@
|
|||||||
|
|
||||||
List over services
|
List over services
|
||||||
|
|
||||||
| Service | Description | Link |
|
| Service | Description | Link |
|
||||||
| -------------- | -------------------- | ---------------------------------------------------------------------- |
|
| -------------- | ---------------------------------- | ---------------------------------------------------------------------- |
|
||||||
| Caddy | Reverse proxy | - |
|
| Caddy | Reverse proxy | - |
|
||||||
| Kanidm | Openid provider | [auth.tbmrs.nl](https://auth.tbmrs.nl) |
|
| Kanidm | Openid provider | [auth.tbmrs.nl](https://auth.tbmrs.nl) |
|
||||||
| Forgejo | Git provider | [git.tbmrs.nl](https://git.tbmrs.nl) |
|
| Forgejo | Git provider | [git.tbmrs.nl](https://git.tbmrs.nl) |
|
||||||
| Immich | Photo and videos | [photos.tbmrs.nl](https://photos.tbmrs.nl) |
|
| Immich | Photo and videos | [photos.tbmrs.nl](https://photos.tbmrs.nl) |
|
||||||
| Homepage | Dashboard | [home.tbmrs.nl](https://home.tbmrs.nl) |
|
| Homepage | Dashboard | [home.tbmrs.nl](https://home.tbmrs.nl) |
|
||||||
| Uptime Kuma | Uptime monitor | [uptime.tbmrs.nl](https://uptime.tbmrs.nl) |
|
| Uptime Kuma | Uptime monitor | [uptime.tbmrs.nl](https://uptime.tbmrs.nl) |
|
||||||
| Pingvin share | Sharing of files | [share.tbmrs.nl](https://share.tbmrs.nl) |
|
| Pingvin share | Sharing of files | [share.tbmrs.nl](https://share.tbmrs.nl) |
|
||||||
| Vaultwarden | Password manager | [vault.local.tbmrs.nl](https://vault.local.tbmrs.nl) |
|
| Vaultwarden | Password manager | [vault.local.tbmrs.nl](https://vault.local.tbmrs.nl) |
|
||||||
| Paperless NGX | Documents management | [paperless.local.tbmrs.nl](https://paperless.local.tbmrs.nl) |
|
| Paperless NGX | Documents management | [paperless.local.tbmrs.nl](https://paperless.local.tbmrs.nl) |
|
||||||
| Beszel | Resource usage | [monitor.local.tbmrs.nl](https://monitor.local.tbmrs.nl) |
|
| Beszel | Resource usage | [monitor.local.tbmrs.nl](https://monitor.local.tbmrs.nl) |
|
||||||
| Dufs | File manager | [files.tbmrs.nl](https://files.tbmrs.nl) |
|
| Dufs | File manager | [files.tbmrs.nl](https://files.tbmrs.nl) |
|
||||||
| Syncthing | File syncing | [syncthing.local.tbmrs.nl](https://syncthing.local.tbmrs.nl) |
|
| Syncthing | File syncing | [syncthing.local.tbmrs.nl](https://syncthing.local.tbmrs.nl) |
|
||||||
| Home Assistant | Home automation | [home-assistant.local.tbmrs.nl](https://home-assistant.local.tbmrs.nl) |
|
| Home Assistant | Home automation | [home-assistant.local.tbmrs.nl](https://home-assistant.local.tbmrs.nl) |
|
||||||
| ~~Karakeep~~ | Bookmarking | ~~[karakeep.local.tbmrs.nl](https://karakeep.local.tbmrs.nl)~~ |
|
| ~~Karakeep~~ | Bookmarking | ~~[karakeep.local.tbmrs.nl](https://karakeep.local.tbmrs.nl)~~ |
|
||||||
| Vikunja | Tasks management | [vikunja.local.tbmrs.nl](https://vikunja.local.tbmrs.nl) |
|
| Vikunja | Tasks management | [vikunja.local.tbmrs.nl](https://vikunja.local.tbmrs.nl) |
|
||||||
| Stalwart | Mailserver | [mail.tbmrs.nl](https://mail.tbmrs.nl) |
|
| Stalwart | Mailserver | [mail.tbmrs.nl](https://mail.tbmrs.nl) |
|
||||||
| Linkding | Bookmark managment | [links.local.tbmrs.nl](https://links.local.tbmrs.nl) |
|
| Linkding | Bookmark managment | [links.local.tbmrs.nl](https://links.local.tbmrs.nl) |
|
||||||
|
| Jellyfin | Movies, series and music streaming | [stream.local.tbmrs.nl](https://stream.local.tbmrs.nl) |
|
||||||
|
|
||||||
### Todo
|
### Todo
|
||||||
|
|
||||||
@@ -88,3 +89,7 @@ $ kanidm system oauth2 warning-insecure-client-disable-pkce <service>
|
|||||||
```bash
|
```bash
|
||||||
$ kanidm system oauth2 show-basic-secret <service>
|
$ kanidm system oauth2 show-basic-secret <service>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Useful links
|
||||||
|
|
||||||
|
Womier keyboard permissions denied or not finding: https://github.com/the-via/releases/issues/257
|
||||||
|
BIN
assets/wallpaper-2-blurred.png
Normal file
BIN
assets/wallpaper-2-blurred.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 MiB |
298
flake.lock
generated
298
flake.lock
generated
@@ -37,11 +37,11 @@
|
|||||||
"base16-helix": {
|
"base16-helix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736852337,
|
"lastModified": 1748408240,
|
||||||
"narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=",
|
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-helix",
|
"repo": "base16-helix",
|
||||||
"rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5",
|
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -90,11 +90,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747742835,
|
"lastModified": 1751854533,
|
||||||
"narHash": "sha256-kYL4GCwwznsypvsnA20oyvW8zB/Dvn6K5G/tgMjVMT4=",
|
"narHash": "sha256-U/OQFplExOR1jazZY4KkaQkJqOl59xlh21HP9mI79Vc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "df522e787fdffc4f32ed3e1fca9ed0968a384d62",
|
"rev": "16b74a1e304197248a1bc663280f2548dbfcae3c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -106,11 +106,11 @@
|
|||||||
"firefox-gnome-theme": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744642301,
|
"lastModified": 1748383148,
|
||||||
"narHash": "sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4=",
|
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "firefox-gnome-theme",
|
"repo": "firefox-gnome-theme",
|
||||||
"rev": "59e3de00f01e5adb851d824cf7911bd90c31083a",
|
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -119,21 +119,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1733328505,
|
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
@@ -142,11 +127,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733312601,
|
"lastModified": 1749398372,
|
||||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -171,54 +156,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": [
|
|
||||||
"stylix",
|
|
||||||
"flake-compat"
|
|
||||||
],
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"stylix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1742649964,
|
|
||||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"stylix",
|
|
||||||
"git-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -243,11 +180,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747556831,
|
"lastModified": 1751810233,
|
||||||
"narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
|
"narHash": "sha256-kllkNbIqQi3VplgTMeGzuh1t8Gk8TauvkTRt93Km+tQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
|
"rev": "9b0873b46c9f9e4b7aa01eb634952c206af53068",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -257,25 +194,59 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager_2": {
|
"niri": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"niri-stable": "niri-stable",
|
||||||
"stylix",
|
"niri-unstable": "niri-unstable",
|
||||||
"nixpkgs"
|
"nixpkgs": "nixpkgs",
|
||||||
]
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||||
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747556831,
|
"lastModified": 1752057206,
|
||||||
"narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
|
"narHash": "sha256-f8fNAag3K3WAq+lJr2EEu2f3xVSFLPddLgJKZRzXa3M=",
|
||||||
"owner": "nix-community",
|
"owner": "sodiboo",
|
||||||
"repo": "home-manager",
|
"repo": "niri-flake",
|
||||||
"rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
|
"rev": "90c2edcf32d0fcb511fee9a0b8c580a18178c109",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "sodiboo",
|
||||||
"ref": "release-25.05",
|
"repo": "niri-flake",
|
||||||
"repo": "home-manager",
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748151941,
|
||||||
|
"narHash": "sha256-z4viQZLgC2bIJ3VrzQnR+q2F3gAOEQpU1H5xHtX/2fs=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "8ba57fcf25d2fc9565131684a839d58703f1dae7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"ref": "v25.05.1",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1750791124,
|
||||||
|
"narHash": "sha256-F5iVU/hjoSHSSe0gllxm0PcAaseEtGNanYK5Ha3k2Tg=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "37458d94b288945f6cfbd3c5c233f634d59f246c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -300,11 +271,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747900541,
|
"lastModified": 1752048960,
|
||||||
"narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=",
|
"narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06",
|
"rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -316,17 +287,18 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747825515,
|
"lastModified": 1751792365,
|
||||||
"narHash": "sha256-BWpMQymVI73QoKZdcVCxUCCK3GNvr/xa2Dc4DM1o2BE=",
|
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "cd2812de55cf87df88a9e09bf3be1ce63d50c1a6",
|
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-unstable",
|
||||||
"type": "indirect"
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
@@ -344,13 +316,29 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747744144,
|
"lastModified": 1751943650,
|
||||||
"narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=",
|
"narHash": "sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4+f9C1mZQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f",
|
"rev": "88983d4b665fb491861005137ce2b11a9f89f203",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751792365,
|
||||||
|
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -360,6 +348,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751943650,
|
||||||
|
"narHash": "sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4+f9C1mZQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "88983d4b665fb491861005137ce2b11a9f89f203",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744868846,
|
"lastModified": 1744868846,
|
||||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
||||||
@@ -375,13 +378,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747610100,
|
"lastModified": 1751211869,
|
||||||
"narHash": "sha256-rpR5ZPMkWzcnCcYYo3lScqfuzEw5Uyfh+R0EKZfroAc=",
|
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ca49c4304acf0973078db0a9d200fd2bae75676d",
|
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -404,11 +407,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1746056780,
|
"lastModified": 1751320053,
|
||||||
"narHash": "sha256-/emueQGaoT4vu0QjU9LDOG5roxRSfdY0K2KkxuzazcM=",
|
"narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "d476cd0972dd6242d76374fcc277e6735715c167",
|
"rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -421,9 +424,10 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"niri": "niri",
|
||||||
"nix-colors": "nix-colors",
|
"nix-colors": "nix-colors",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"stylix": "stylix"
|
"stylix": "stylix"
|
||||||
@@ -431,14 +435,14 @@
|
|||||||
},
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747603214,
|
"lastModified": 1751606940,
|
||||||
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
|
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
|
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -454,12 +458,9 @@
|
|||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"home-manager": "home-manager_2",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixpkgs": "nixpkgs_3",
|
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems",
|
"systems": "systems",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
@@ -469,11 +470,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747905597,
|
"lastModified": 1752014016,
|
||||||
"narHash": "sha256-2pnf8w4XNS1F/fGt0ZwKGEDdrPeW7fp6d33OBR0GepE=",
|
"narHash": "sha256-Gn6cnUPchPenxUFDt+dh7836CNu3GM13aghTabfZUrU=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "7f26a7f3d04482ea4da2382a806f413c917ac20d",
|
"rev": "26042c1f59ae868193fa4378f85e4f6240f25ff8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -534,11 +535,11 @@
|
|||||||
"tinted-schemes": {
|
"tinted-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744974599,
|
"lastModified": 1750770351,
|
||||||
"narHash": "sha256-Fg+rdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY=",
|
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "schemes",
|
"repo": "schemes",
|
||||||
"rev": "28c26a621123ad4ebd5bbfb34ab39421c0144bdd",
|
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -550,11 +551,11 @@
|
|||||||
"tinted-tmux": {
|
"tinted-tmux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745111349,
|
"lastModified": 1751159871,
|
||||||
"narHash": "sha256-udV+nHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w=",
|
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"rev": "e009f18a01182b63559fb28f1c786eb027c3dee9",
|
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -566,11 +567,11 @@
|
|||||||
"tinted-zed": {
|
"tinted-zed": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725758778,
|
"lastModified": 1751158968,
|
||||||
"narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=",
|
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-zed",
|
"repo": "base16-zed",
|
||||||
"rev": "122c9e5c0e6f27211361a04fae92df97940eccf9",
|
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -600,6 +601,39 @@
|
|||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748488455,
|
||||||
|
"narHash": "sha256-IiLr1alzKFIy5tGGpDlabQbe6LV1c9ABvkH6T5WmyRI=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "3ba30b149f9eb2bbf42cf4758d2158ca8cceef73",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"ref": "v0.6",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751228685,
|
||||||
|
"narHash": "sha256-MENtauGBhJ+kDeFaawvWGXaFG3Il6qQzjaP0RmtfM0k=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "557ebeb616e03d5e4a8049862bbbd1f02c6f020b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
stylix.url = "github:danth/stylix/release-25.05";
|
stylix.url = "github:danth/stylix/release-25.05";
|
||||||
|
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
niri.url = "github:sodiboo/niri-flake";
|
||||||
|
|
||||||
disko.url = "github:nix-community/disko";
|
disko.url = "github:nix-community/disko";
|
||||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -30,6 +31,7 @@
|
|||||||
nix-colors,
|
nix-colors,
|
||||||
stylix,
|
stylix,
|
||||||
sops-nix,
|
sops-nix,
|
||||||
|
niri,
|
||||||
disko,
|
disko,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
|
@@ -13,8 +13,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "c-clt-dsk01";
|
||||||
|
|
||||||
applications.common.enable = true;
|
applications.common.enable = true;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = true;
|
||||||
applications.devenv.enable = false;
|
applications.devenv.enable = false;
|
||||||
applications.firefox.enable = true;
|
applications.firefox.enable = true;
|
||||||
applications.git.enable = true;
|
applications.git.enable = true;
|
||||||
|
@@ -13,6 +13,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "p-th-rpi-01";
|
||||||
|
|
||||||
applications.common.enable = false;
|
applications.common.enable = false;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = false;
|
||||||
applications.devenv.enable = false;
|
applications.devenv.enable = false;
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ inputs, outputs, ... }:
|
{ inputs, outputs, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -9,11 +9,12 @@
|
|||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
hostname = "ti-clt-dsk01";
|
hostname = "ti-clt-dsk01";
|
||||||
display-manager = "cosmic-greeter";
|
display-manager = "greetd";
|
||||||
desktop-environments = {
|
desktop-environments = {
|
||||||
cosmic.enable = true;
|
cosmic.enable = false;
|
||||||
hyprland.enable = false;
|
hyprland.enable = false;
|
||||||
gnome.enable = false;
|
gnome.enable = false;
|
||||||
|
niri.enable = true;
|
||||||
};
|
};
|
||||||
applications = {
|
applications = {
|
||||||
common.enable = true;
|
common.enable = true;
|
||||||
@@ -30,7 +31,7 @@
|
|||||||
hardware = {
|
hardware = {
|
||||||
fprint.enable = false;
|
fprint.enable = false;
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
bluetooth.enable = false;
|
bluetooth.enable = true;
|
||||||
firewall.enable = true;
|
firewall.enable = true;
|
||||||
locale.enable = true;
|
locale.enable = true;
|
||||||
nvidia.enable = true;
|
nvidia.enable = true;
|
||||||
@@ -72,20 +73,24 @@
|
|||||||
"home-assistant.local.tbmrs.nl"
|
"home-assistant.local.tbmrs.nl"
|
||||||
"tasks.local.tbmrs.nl"
|
"tasks.local.tbmrs.nl"
|
||||||
"links.local.tbmrs.nl"
|
"links.local.tbmrs.nl"
|
||||||
|
"stream.local.tbmrs.nl"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Setup nfs share
|
# Temp keyboard override
|
||||||
services.nfs = {
|
environment.systemPackages = with pkgs; [
|
||||||
server = {
|
via
|
||||||
enable = true;
|
vial
|
||||||
exports = ''
|
];
|
||||||
/export 192.168.100.0/24(rw,fsid=0,no_subtree_check)
|
services.udev.packages = with pkgs; [
|
||||||
/export/wrb 192.168.100.0/24(rw,nohide,no_subtree_check)
|
via
|
||||||
'';
|
vial
|
||||||
};
|
];
|
||||||
};
|
|
||||||
networking.firewall.allowedTCPPorts = [ 2049 ];
|
# manual udev override
|
||||||
|
# services.udev.extraRules = ''
|
||||||
|
# KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", ATTRS{idVendor}=="320f", ATTRS{idProduct}=="5055", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||||
|
# '';
|
||||||
|
|
||||||
# state version
|
# state version
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
|
@@ -13,6 +13,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "ti-clt-dsk01";
|
||||||
|
|
||||||
applications.common.enable = true;
|
applications.common.enable = true;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = false;
|
||||||
applications.devenv.enable = true;
|
applications.devenv.enable = true;
|
||||||
@@ -34,6 +36,7 @@
|
|||||||
applications.zellij.enable = true;
|
applications.zellij.enable = true;
|
||||||
applications.wezterm.enable = true;
|
applications.wezterm.enable = true;
|
||||||
applications.typst.enable = true;
|
applications.typst.enable = true;
|
||||||
|
applications.obs-studio.enable = true;
|
||||||
|
|
||||||
services.nextcloud-sync.enable = true;
|
services.nextcloud-sync.enable = true;
|
||||||
|
|
||||||
@@ -43,19 +46,19 @@
|
|||||||
theming.stylix.theme = "da-one-ocean";
|
theming.stylix.theme = "da-one-ocean";
|
||||||
|
|
||||||
desktop-environments.hyprland.enable = false;
|
desktop-environments.hyprland.enable = false;
|
||||||
|
desktop-environments.niri.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
unstable.prismlauncher
|
unstable.prismlauncher
|
||||||
unstable.vesktop
|
vesktop
|
||||||
unstable.webcord
|
|
||||||
unstable.legcord
|
|
||||||
unstable.rnote
|
unstable.rnote
|
||||||
unstable.inkscape
|
unstable.inkscape
|
||||||
unstable.gimp
|
unstable.gimp
|
||||||
unstable.brave
|
unstable.brave
|
||||||
unstable.freecad
|
unstable.freecad
|
||||||
unstable.hoppscotch
|
hoppscotch
|
||||||
|
unstable.blender
|
||||||
unstable.signal-desktop
|
unstable.signal-desktop
|
||||||
unstable.ladybird
|
unstable.ladybird
|
||||||
unstable.prusa-slicer
|
unstable.prusa-slicer
|
||||||
|
@@ -11,11 +11,12 @@
|
|||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
hostname = "ti-clt-lpt01";
|
hostname = "ti-clt-lpt01";
|
||||||
display-manager = "cosmic-greeter";
|
display-manager = "greetd";
|
||||||
desktop-environments = {
|
desktop-environments = {
|
||||||
cosmic.enable = true;
|
cosmic.enable = false;
|
||||||
hyprland.enable = true;
|
hyprland.enable = false;
|
||||||
gnome.enable = false;
|
gnome.enable = false;
|
||||||
|
niri.enable = true;
|
||||||
};
|
};
|
||||||
applications = {
|
applications = {
|
||||||
common.enable = true;
|
common.enable = true;
|
||||||
@@ -43,8 +44,14 @@
|
|||||||
users.users.xeovalyte = {
|
users.users.xeovalyte = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Timo Boomers";
|
description = "Timo Boomers";
|
||||||
extraGroups = [ "networkmanager" "wheel" "dialout" ];
|
extraGroups = [ "networkmanager" "wheel" "dialout" "adbusers" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
programs.adb.enable = true;
|
||||||
|
services.power-profiles-daemon.enable = true;
|
||||||
|
|
||||||
# Boot.
|
# Boot.
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
@@ -79,5 +86,24 @@
|
|||||||
allowedUDPPorts = [ 80 443 53 ];
|
allowedUDPPorts = [ 80 443 53 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Obs
|
||||||
|
programs.obs-studio = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# optional Nvidia hardware acceleration
|
||||||
|
package = (
|
||||||
|
pkgs.obs-studio.override {
|
||||||
|
cudaSupport = true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
|
obs-vaapi #optional AMD hardware acceleration
|
||||||
|
obs-gstreamer
|
||||||
|
obs-vkcapture
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
}
|
}
|
||||||
|
@@ -13,6 +13,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "ti-clt-lpt01";
|
||||||
|
|
||||||
applications.common.enable = true;
|
applications.common.enable = true;
|
||||||
applications.alacritty.enable = true;
|
applications.alacritty.enable = true;
|
||||||
applications.devenv.enable = true;
|
applications.devenv.enable = true;
|
||||||
@@ -35,6 +37,7 @@
|
|||||||
applications.wezterm.enable = true;
|
applications.wezterm.enable = true;
|
||||||
applications.nushell.enable = false;
|
applications.nushell.enable = false;
|
||||||
applications.typst.enable = true;
|
applications.typst.enable = true;
|
||||||
|
# applications.obs-studio.enable = true;
|
||||||
|
|
||||||
services.nextcloud-sync.enable = true;
|
services.nextcloud-sync.enable = true;
|
||||||
|
|
||||||
@@ -44,6 +47,7 @@
|
|||||||
theming.stylix.theme = "da-one-ocean";
|
theming.stylix.theme = "da-one-ocean";
|
||||||
|
|
||||||
desktop-environments.hyprland.enable = false;
|
desktop-environments.hyprland.enable = false;
|
||||||
|
desktop-environments.niri.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
@@ -61,6 +65,9 @@
|
|||||||
unstable.hoppscotch
|
unstable.hoppscotch
|
||||||
unstable.apostrophe
|
unstable.apostrophe
|
||||||
unstable.surfer # waveform viewer
|
unstable.surfer # waveform viewer
|
||||||
|
unstable.vscode
|
||||||
|
pomodoro-gtk
|
||||||
|
unstable.brave
|
||||||
|
|
||||||
# Office
|
# Office
|
||||||
libreoffice
|
libreoffice
|
||||||
@@ -68,7 +75,6 @@
|
|||||||
# Image editing
|
# Image editing
|
||||||
gimp
|
gimp
|
||||||
inkscape
|
inkscape
|
||||||
unstable.obs-studio
|
|
||||||
|
|
||||||
unstable.moonlight-qt
|
unstable.moonlight-qt
|
||||||
|
|
||||||
|
@@ -13,6 +13,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "ti-clt-tbl01";
|
||||||
|
|
||||||
applications.common.enable = true;
|
applications.common.enable = true;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = false;
|
||||||
applications.devenv.enable = false;
|
applications.devenv.enable = false;
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ modulesPath, ... }:
|
{ modulesPath, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -12,6 +12,8 @@
|
|||||||
../../modules/system/default.nix
|
../../modules/system/default.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
hostname = "v-th-ctr-01";
|
hostname = "v-th-ctr-01";
|
||||||
display-manager = "none";
|
display-manager = "none";
|
||||||
|
@@ -13,6 +13,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
host = "v-th-ctr-01";
|
||||||
|
|
||||||
applications.common.enable = false;
|
applications.common.enable = false;
|
||||||
applications.alacritty.enable = false;
|
applications.alacritty.enable = false;
|
||||||
applications.devenv.enable = false;
|
applications.devenv.enable = false;
|
||||||
@@ -57,6 +59,7 @@
|
|||||||
vikunja.enable = true;
|
vikunja.enable = true;
|
||||||
stalwart.enable = true;
|
stalwart.enable = true;
|
||||||
linkding.enable = true;
|
linkding.enable = true;
|
||||||
|
jellyfin.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
7
justfile
7
justfile
@@ -30,3 +30,10 @@ alias sh := switch-home-manager
|
|||||||
|
|
||||||
switch-home-manager:
|
switch-home-manager:
|
||||||
home-manager switch --flake .
|
home-manager switch --flake .
|
||||||
|
|
||||||
|
alias gc := collect-garbage
|
||||||
|
|
||||||
|
collect-garbage:
|
||||||
|
sudo nix-collect-garbage -d
|
||||||
|
nix-collect-garbage -d
|
||||||
|
|
||||||
|
@@ -139,7 +139,7 @@ in {
|
|||||||
"ebay".metaData.hidden = true;
|
"ebay".metaData.hidden = true;
|
||||||
};
|
};
|
||||||
search.force = true;
|
search.force = true;
|
||||||
search.default = "SearXNG";
|
search.default = "ddg";
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
"browser.disableResetPrompt" = true;
|
"browser.disableResetPrompt" = true;
|
||||||
|
@@ -95,7 +95,6 @@ in {
|
|||||||
insert = "bar";
|
insert = "bar";
|
||||||
};
|
};
|
||||||
editor.end-of-line-diagnostics = "hint";
|
editor.end-of-line-diagnostics = "hint";
|
||||||
editor.inline-diagnostics.cursor-line = "error";
|
|
||||||
};
|
};
|
||||||
languages = {
|
languages = {
|
||||||
# Rust
|
# Rust
|
||||||
|
27
modules/home/applications/obs-studio.nix
Normal file
27
modules/home/applications/obs-studio.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.applications.obs-studio;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.applications.obs-studio.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable obs studio with optional plugins
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.obs-studio = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
|
obs-vaapi #optional AMD hardware acceleration
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -49,11 +49,10 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
settings.containers.caddy.routes.tbmrs-local.routes.beszel = {
|
||||||
name = "beszel";
|
|
||||||
host = "monitor";
|
host = "monitor";
|
||||||
url = "beszel:8090";
|
url = "beszel:8090";
|
||||||
}];
|
};
|
||||||
|
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"containers/beszel/key" = { };
|
"containers/beszel/key" = { };
|
||||||
|
@@ -5,6 +5,12 @@ with lib;
|
|||||||
let
|
let
|
||||||
cfg = config.settings.containers.caddy;
|
cfg = config.settings.containers.caddy;
|
||||||
|
|
||||||
|
toInternal = name: routesDef: {
|
||||||
|
name = name;
|
||||||
|
host = routesDef.host;
|
||||||
|
url = routesDef.url;
|
||||||
|
};
|
||||||
|
|
||||||
generateRoutes = domain: entries: lib.concatMapStrings (route: ''
|
generateRoutes = domain: entries: lib.concatMapStrings (route: ''
|
||||||
@${route.name} host ${route.host}.${domain}
|
@${route.name} host ${route.host}.${domain}
|
||||||
handle @${route.name} {
|
handle @${route.name} {
|
||||||
@@ -13,11 +19,8 @@ let
|
|||||||
'') entries;
|
'') entries;
|
||||||
|
|
||||||
routesOption = lib.mkOption {
|
routesOption = lib.mkOption {
|
||||||
type = types.listOf (types.submodule {
|
type = types.attrsOf (types.submodule {
|
||||||
options = {
|
options = {
|
||||||
name = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
url = mkOption {
|
url = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
};
|
};
|
||||||
@@ -79,7 +82,7 @@ in {
|
|||||||
resolvers 1.1.1.1
|
resolvers 1.1.1.1
|
||||||
}
|
}
|
||||||
|
|
||||||
${generateRoutes cfg.routes.tbmrs.domain cfg.routes.tbmrs.routes}
|
${generateRoutes cfg.routes.tbmrs.domain (mapAttrsToList toInternal cfg.routes.tbmrs.routes)}
|
||||||
}
|
}
|
||||||
|
|
||||||
*.local.tbmrs.nl {
|
*.local.tbmrs.nl {
|
||||||
@@ -88,7 +91,7 @@ in {
|
|||||||
resolvers 1.1.1.1
|
resolvers 1.1.1.1
|
||||||
}
|
}
|
||||||
|
|
||||||
${generateRoutes cfg.routes.tbmrs-local.domain cfg.routes.tbmrs-local.routes}
|
${generateRoutes cfg.routes.tbmrs-local.domain (mapAttrsToList toInternal cfg.routes.tbmrs-local.routes)}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@@ -29,10 +29,9 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
settings.containers.caddy.routes.tbmrs.routes.forgejo = {
|
||||||
name = "forgejo";
|
|
||||||
host = "git";
|
host = "git";
|
||||||
url = "forgejo:3000";
|
url = "forgejo:3000";
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -28,10 +28,9 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
settings.containers.caddy.routes.tbmrs-local.routes.home-assistant = {
|
||||||
name = "homeassistant";
|
|
||||||
host = "home-assistant";
|
host = "home-assistant";
|
||||||
url = "homeassistant:8123";
|
url = "homeassistant:8123";
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -32,6 +32,11 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs.routes.homepage = {
|
||||||
|
host = "home";
|
||||||
|
url = "homepage:3000";
|
||||||
|
};
|
||||||
|
|
||||||
home.file."containers/homepage/config/settings.yaml".source = (pkgs.formats.yaml { }).generate "settings" {
|
home.file."containers/homepage/config/settings.yaml".source = (pkgs.formats.yaml { }).generate "settings" {
|
||||||
title = "Timo's Server";
|
title = "Timo's Server";
|
||||||
description = "server from Timo";
|
description = "server from Timo";
|
||||||
@@ -125,12 +130,21 @@ in {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"Karakeep" = {
|
"Linkding" = {
|
||||||
href = "https://karakeep.local.tbmrs.nl";
|
href = "https://links.local.tbmrs.nl";
|
||||||
description = "Data hoarder";
|
description = "Bookmarks";
|
||||||
icon = "karakeep";
|
icon = "linkding";
|
||||||
server = "podman";
|
server = "podman";
|
||||||
container = "karakeep";
|
container = "linkding";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"Stalwart" = {
|
||||||
|
href = "https://mail.tbmrs.nl";
|
||||||
|
description = "Mailserver";
|
||||||
|
icon = "stalwart";
|
||||||
|
server = "podman";
|
||||||
|
container = "stalwart";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@@ -72,10 +72,9 @@ in {
|
|||||||
exec = ''postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on'';
|
exec = ''postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on'';
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
settings.containers.caddy.routes.tbmrs.routes.immich = {
|
||||||
name = "immich";
|
|
||||||
host = "photos";
|
host = "photos";
|
||||||
url = "immich-server:2283";
|
url = "immich-server:2283";
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
35
modules/home/containers/jellyfin.nix
Normal file
35
modules/home/containers/jellyfin.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.containers.jellyfin;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.containers.jellyfin.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable jellyfin container
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.podman.containers.jellyfin = {
|
||||||
|
image = "jellyfin/jellyfin";
|
||||||
|
network = "proxy";
|
||||||
|
volumes = [
|
||||||
|
"%h/containers/jellyfin/config:/config"
|
||||||
|
"%h/containers/jellyfin/cache:/cache"
|
||||||
|
"%h/media:/media"
|
||||||
|
];
|
||||||
|
userNS = "keep-id";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.containers.caddy.routes.tbmrs-local.routes.jellyfin = {
|
||||||
|
host = "stream";
|
||||||
|
url = "jellyfin:8096";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -37,10 +37,9 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
settings.containers.caddy.routes.tbmrs.routes.kanidm = {
|
||||||
name = "kanidm";
|
|
||||||
host = "auth";
|
host = "auth";
|
||||||
url = "https://auth.tbmrs.nl";
|
url = "https://auth.tbmrs.nl";
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -36,11 +36,10 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
settings.containers.caddy.routes.tbmrs-local.routes.linkding = {
|
||||||
name = "linkding";
|
|
||||||
host = "links";
|
host = "links";
|
||||||
url = "linkding:9090";
|
url = "linkding:9090";
|
||||||
}];
|
};
|
||||||
|
|
||||||
settings.services.sops.enable = true;
|
settings.services.sops.enable = true;
|
||||||
|
|
||||||
|
@@ -88,11 +88,10 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
settings.containers.caddy.routes.tbmrs-local.routes.paperless-ngx = {
|
||||||
name = "paperless-ngx";
|
|
||||||
host = "paperless";
|
host = "paperless";
|
||||||
url = "paperless-ngx:8000";
|
url = "paperless-ngx:8000";
|
||||||
}];
|
};
|
||||||
|
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"containers/paperless-ngx/db-password" = { };
|
"containers/paperless-ngx/db-password" = { };
|
||||||
|
@@ -39,11 +39,10 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
settings.containers.caddy.routes.tbmrs.routes.pingvin = {
|
||||||
name = "pingvin-share";
|
|
||||||
host = "share";
|
host = "share";
|
||||||
url = "pingvin-share:3000";
|
url = "pingvin-share:3000";
|
||||||
}];
|
};
|
||||||
|
|
||||||
sops.templates = {
|
sops.templates = {
|
||||||
"container-pingvin.yaml" = {
|
"container-pingvin.yaml" = {
|
||||||
|
@@ -34,10 +34,9 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
settings.containers.caddy.routes.tbmrs.routes.stalwart = {
|
||||||
name = "stalwart";
|
|
||||||
host = "mail";
|
host = "mail";
|
||||||
url = "stalwart:8080";
|
url = "stalwart:8080";
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -44,16 +44,14 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
settings.containers.caddy.routes.tbmrs-local.routes.sycnthing = {
|
||||||
name = "syncthing";
|
|
||||||
host = "syncthing";
|
host = "syncthing";
|
||||||
url = "syncthing:8384";
|
url = "syncthing:8384";
|
||||||
}];
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
settings.containers.caddy.routes.tbmrs.routes.dufs = {
|
||||||
name = "dufs";
|
|
||||||
host = "files";
|
host = "files";
|
||||||
url = "dufs:5000";
|
url = "dufs:5000";
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -24,10 +24,9 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
settings.containers.caddy.routes.tbmrs.routes.uptime-kuma = {
|
||||||
name = "uptime-kuma";
|
|
||||||
host = "uptime";
|
host = "uptime";
|
||||||
url = "uptime-kuma:3001";
|
url = "uptime-kuma:3001";
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -28,11 +28,10 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
settings.containers.caddy.routes.tbmrs-local.routes.vaultwarden = {
|
||||||
name = "vaultwarden";
|
|
||||||
host = "vault";
|
host = "vault";
|
||||||
url = "vaultwarden:80";
|
url = "vaultwarden:80";
|
||||||
}];
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -26,10 +26,9 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
settings.containers.caddy.routes.tbmrs-local.routes.vikunja = {
|
||||||
name = "vikunja";
|
|
||||||
host = "tasks";
|
host = "tasks";
|
||||||
url = "vikunja:3456";
|
url = "vikunja:3456";
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,13 @@
|
|||||||
{ inputs, outputs, config, lib, ... }:
|
{ inputs, outputs, config, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
options = {
|
||||||
|
settings.host = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Hostname";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./applications/alacritty.nix
|
./applications/alacritty.nix
|
||||||
./applications/common.nix
|
./applications/common.nix
|
||||||
@@ -16,6 +23,7 @@
|
|||||||
./applications/wezterm.nix
|
./applications/wezterm.nix
|
||||||
./applications/nushell.nix
|
./applications/nushell.nix
|
||||||
./applications/typst.nix
|
./applications/typst.nix
|
||||||
|
./applications/obs-studio.nix
|
||||||
|
|
||||||
./services/nextcloud.nix
|
./services/nextcloud.nix
|
||||||
./services/podman.nix
|
./services/podman.nix
|
||||||
@@ -25,6 +33,7 @@
|
|||||||
./theming/stylix.nix
|
./theming/stylix.nix
|
||||||
|
|
||||||
./desktop-environments/hyprland/default.nix
|
./desktop-environments/hyprland/default.nix
|
||||||
|
./desktop-environments/niri/default.nix
|
||||||
|
|
||||||
./containers/network.nix
|
./containers/network.nix
|
||||||
|
|
||||||
@@ -46,6 +55,7 @@
|
|||||||
./containers/stalwart.nix
|
./containers/stalwart.nix
|
||||||
./containers/static.nix
|
./containers/static.nix
|
||||||
./containers/linkding.nix
|
./containers/linkding.nix
|
||||||
|
./containers/jellyfin.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
@@ -15,7 +15,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./waybar.nix
|
# ./waybar.nix
|
||||||
./fixes.nix
|
./fixes.nix
|
||||||
./dunst.nix
|
./dunst.nix
|
||||||
./rofi.nix
|
./rofi.nix
|
||||||
|
216
modules/home/desktop-environments/niri/default.nix
Normal file
216
modules/home/desktop-environments/niri/default.nix
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable niri window manager configuration
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
inputs.niri.homeModules.niri
|
||||||
|
./waybar.nix
|
||||||
|
./mako.nix
|
||||||
|
./swww.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
fuzzel
|
||||||
|
brightnessctl
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
window.decorations = "None";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# Configure default applications
|
||||||
|
xdg.mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
defaultApplications = {
|
||||||
|
"text/html" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/http" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/https" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/about" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/unknown" = "firefox.desktop";
|
||||||
|
"application/pdf" = "firefox.desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.enable = true;
|
||||||
|
programs.niri.package = pkgs.unstable.niri;
|
||||||
|
|
||||||
|
programs.niri.settings.outputs = lib.mkIf (config.settings.host == "ti-clt-dsk01") {
|
||||||
|
"HDMI-A-1".position = {
|
||||||
|
x = 1920;
|
||||||
|
y = 0;
|
||||||
|
};
|
||||||
|
"DP-1".position = {
|
||||||
|
x = 0;
|
||||||
|
y = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.settings.layout = {
|
||||||
|
gaps = 8;
|
||||||
|
focus-ring = {
|
||||||
|
width = 2;
|
||||||
|
};
|
||||||
|
preset-column-widths = [
|
||||||
|
{ proportion = 1. / 3.; }
|
||||||
|
{ proportion = 1. / 2.; }
|
||||||
|
{ proportion = 2. / 3.; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.settings.workspaces = {
|
||||||
|
"00-app" = { name = "app"; open-on-output = "DP-1"; };
|
||||||
|
"01-term" = { name = "term"; open-on-output = "DP-1"; };
|
||||||
|
"10-web" = { name = "web"; open-on-output = "HDMI-A-1"; };
|
||||||
|
"11-mus" = { name = "mus"; open-on-output = "HDMI-A-1"; };
|
||||||
|
"12-com" = { name = "com"; open-on-output = "HDMI-A-1"; };
|
||||||
|
};
|
||||||
|
|
||||||
|
# Default startup applications
|
||||||
|
programs.niri.settings.spawn-at-startup = [
|
||||||
|
{ command = ["vesktop"]; }
|
||||||
|
{ command = ["thunderbird"]; }
|
||||||
|
{ command = ["xwayland-satellite" ":10"]; }
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.niri.settings.environment.DISPLAY = ":10";
|
||||||
|
|
||||||
|
programs.niri.settings.window-rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{ at-startup = true; app-id = "vesktop"; }
|
||||||
|
{ at-startup = true; app-id = "thunderbird"; }
|
||||||
|
];
|
||||||
|
open-on-workspace = "com";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Configure overview
|
||||||
|
programs.niri.settings.layer-rules = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{ namespace = "wallpaper"; }
|
||||||
|
];
|
||||||
|
place-within-backdrop = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.niri.settings.binds = with config.lib.niri.actions; {
|
||||||
|
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
||||||
|
|
||||||
|
# Spawn applications
|
||||||
|
"Mod+Space".action = spawn "fuzzel";
|
||||||
|
"Mod+T".action = spawn "alacritty";
|
||||||
|
"Mod+B".action = spawn "firefox";
|
||||||
|
|
||||||
|
# Volume controls
|
||||||
|
"XF86AudioRaiseVolume".action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
|
||||||
|
"XF86AudioLowerVolume".action = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
|
||||||
|
"XF86AudioMute".action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK" "toggle";
|
||||||
|
|
||||||
|
# Media controls
|
||||||
|
"XF86AudioPlay".action = spawn "playerctl" "play-pause";
|
||||||
|
"XF86AudioNext".action = spawn "playerctl" "next";
|
||||||
|
"XF86AudioPrev".action = spawn "playerctl" "previous";
|
||||||
|
|
||||||
|
# Brightness controls
|
||||||
|
"XF86MonBrightnessUp".action = spawn "brightnessctl" "set" "5%+";
|
||||||
|
"XF86MonBrightnessDown".action = spawn "brightnessctl" "set" "5%-";
|
||||||
|
|
||||||
|
|
||||||
|
"Mod+O".action = toggle-overview;
|
||||||
|
"Mod+Q".action = close-window;
|
||||||
|
"Mod+C".action = center-column;
|
||||||
|
"Mod+R".action = switch-preset-column-width;
|
||||||
|
"Mod+Escape".action = quit;
|
||||||
|
|
||||||
|
# Sizing
|
||||||
|
"Mod+Minus".action = set-column-width "-10%";
|
||||||
|
"Mod+Equal".action = set-column-width "+10%";
|
||||||
|
|
||||||
|
# Full screen
|
||||||
|
"Mod+F".action = maximize-column;
|
||||||
|
"Mod+Shift+F".action = fullscreen-window;
|
||||||
|
"Mod+Ctrl+F".action = expand-column-to-available-width;
|
||||||
|
|
||||||
|
# Toggle floating
|
||||||
|
"Mod+V".action = toggle-window-floating;
|
||||||
|
"Mod+Shift+V".action = switch-focus-between-floating-and-tiling;
|
||||||
|
|
||||||
|
# Print screen
|
||||||
|
"Print".action = screenshot { show-pointer=false; };
|
||||||
|
|
||||||
|
# Window focus
|
||||||
|
"Mod+H".action = focus-column-left;
|
||||||
|
"Mod+J".action = focus-window-down;
|
||||||
|
"Mod+K".action = focus-window-up;
|
||||||
|
"Mod+L".action = focus-column-right;
|
||||||
|
|
||||||
|
# Window moving
|
||||||
|
"Mod+Ctrl+H".action = move-column-left;
|
||||||
|
"Mod+Ctrl+J".action = move-window-down;
|
||||||
|
"Mod+Ctrl+K".action = move-window-up;
|
||||||
|
"Mod+Ctrl+L".action = move-column-right;
|
||||||
|
|
||||||
|
# Focus to different monitor
|
||||||
|
"Mod+Shift+H".action = focus-monitor-left;
|
||||||
|
"Mod+Shift+J".action = focus-monitor-down;
|
||||||
|
"Mod+Shift+K".action = focus-monitor-up;
|
||||||
|
"Mod+Shift+L".action = focus-monitor-right;
|
||||||
|
|
||||||
|
# Move to different monitor
|
||||||
|
"Mod+Ctrl+Shift+H".action = move-column-to-monitor-left;
|
||||||
|
"Mod+Ctrl+Shift+J".action = move-column-to-monitor-down;
|
||||||
|
"Mod+Ctrl+Shift+K".action = move-column-to-monitor-up;
|
||||||
|
"Mod+Ctrl+Shift+L".action = move-column-to-monitor-right;
|
||||||
|
|
||||||
|
# Switch workspaces
|
||||||
|
"Mod+Page_Down".action = focus-workspace-down;
|
||||||
|
"Mod+Page_Up".action = focus-workspace-up;
|
||||||
|
"Mod+U".action = focus-workspace-down;
|
||||||
|
"Mod+I".action = focus-workspace-up;
|
||||||
|
|
||||||
|
# Move workspaces
|
||||||
|
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
|
||||||
|
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
|
||||||
|
"Mod+Ctrl+U".action = move-column-to-workspace-down;
|
||||||
|
"Mod+Ctrl+I".action = move-column-to-workspace-up;
|
||||||
|
|
||||||
|
# Workspace scrolling
|
||||||
|
"Mod+WheelScrollDown" = {
|
||||||
|
action = focus-workspace-down;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+WheelScrollUp" = {
|
||||||
|
action = focus-workspace-up;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+Shift+WheelScrollDown" = {
|
||||||
|
action = focus-column-left;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
"Mod+Shift+WheelScrollUp" = {
|
||||||
|
action = focus-column-right;
|
||||||
|
cooldown-ms = 150;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
21
modules/home/desktop-environments/niri/mako.nix
Normal file
21
modules/home/desktop-environments/niri/mako.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri.mako;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.mako.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable mako notifiaction deamon
|
||||||
|
'';
|
||||||
|
default = config.settings.desktop-environments.niri.enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.mako.enable = true;
|
||||||
|
};
|
||||||
|
}
|
56
modules/home/desktop-environments/niri/swww.nix
Normal file
56
modules/home/desktop-environments/niri/swww.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri.swww;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.swww.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable swww wallpapers deamon
|
||||||
|
'';
|
||||||
|
default = config.settings.desktop-environments.niri.enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
swww
|
||||||
|
swaybg
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.user.services.swaybg = {
|
||||||
|
Unit = {
|
||||||
|
After = [ "graphical-session.target" ];
|
||||||
|
PartOf = [ "graphical-session.target" ];
|
||||||
|
Requisite = [ "graphical-session.target" ];
|
||||||
|
Description = "Enable swaybg wallpaper management";
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "niri.service"];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = ''${pkgs.swaybg}/bin/swaybg -m fill -i "%h/nix/assets/wallpaper-2-blurred.png"'';
|
||||||
|
Restart = ''on-failure'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.swww = {
|
||||||
|
Unit = {
|
||||||
|
After = [ "graphical-session.target" ];
|
||||||
|
PartOf = [ "graphical-session.target" ];
|
||||||
|
Requisite = [ "graphical-session.target" ];
|
||||||
|
Description = "Enable swww wallpaper management";
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "niri.service"];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = ''${pkgs.swww}/bin/swww-daemon'';
|
||||||
|
Restart = ''on-failure'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
127
modules/home/desktop-environments/niri/waybar.nix
Normal file
127
modules/home/desktop-environments/niri/waybar.nix
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri.waybar;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.waybar.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable waybar configuration for configuration
|
||||||
|
'';
|
||||||
|
default = config.settings.desktop-environments.niri.enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
stylix.targets.waybar.addCss = false;
|
||||||
|
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.unstable.waybar;
|
||||||
|
systemd.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.waybar.settings = {
|
||||||
|
main = {
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
modules-left = [
|
||||||
|
"niri/workspaces"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"tray"
|
||||||
|
"network"
|
||||||
|
"pulseaudio"
|
||||||
|
"battery"
|
||||||
|
];
|
||||||
|
|
||||||
|
"clock" = {
|
||||||
|
"format" = "{:%H:%M - %d}";
|
||||||
|
};
|
||||||
|
|
||||||
|
"tray" = {
|
||||||
|
"spacing" = 8;
|
||||||
|
};
|
||||||
|
|
||||||
|
"battery" = {
|
||||||
|
"bat" = "BAT1";
|
||||||
|
"interval" = 60;
|
||||||
|
"states" = {
|
||||||
|
"warning" = 30;
|
||||||
|
"critical" = 15;
|
||||||
|
};
|
||||||
|
"format" = "{icon} {capacity}%";
|
||||||
|
"format-icons" = [ "" "" "" "" "" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"pulseaudio" = {
|
||||||
|
"format" = "{icon} {volume}%";
|
||||||
|
"format-bluetooth" = "{volume}% {icon}";
|
||||||
|
"format-muted" = "";
|
||||||
|
"format-icons" = {
|
||||||
|
"headphone" = "";
|
||||||
|
"hands-free" = "";
|
||||||
|
"headset" = "";
|
||||||
|
"phone" = "";
|
||||||
|
"portable" = "";
|
||||||
|
"car" = "";
|
||||||
|
"default" = ["" ""];
|
||||||
|
};
|
||||||
|
"scroll-step" = 1;
|
||||||
|
"on-click" = "pavucontrol";
|
||||||
|
"ignored-sinks" = ["Easy Effects Sink"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"network" = {
|
||||||
|
"interface" = "wlan0";
|
||||||
|
"format" = "{ifname}";
|
||||||
|
"format-wifi" = " {essid}";
|
||||||
|
"format-ethernet" = " {ipaddr}/{cidr}";
|
||||||
|
"format-disconnected" = "";
|
||||||
|
"tooltip-format" = "{ifname} via {gwaddr}";
|
||||||
|
"tooltip-format-wifi" = "{essid} ({signalStrength}%)";
|
||||||
|
"tooltip-format-ethernet" = "{ifname}";
|
||||||
|
"tooltip-format-disconnected" = "Disconnected";
|
||||||
|
"max-length" = 50;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.waybar.style = /* css */''
|
||||||
|
#workspaces,#window,#clock,#battery,#tray,#pulseaudio,#network {
|
||||||
|
background-color: @base01;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 0px 10px;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background: transparent;
|
||||||
|
color: @base05;
|
||||||
|
border-bottom: 2px solid transparent;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
border-bottom: 2px solid @base05;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
@@ -42,7 +42,11 @@ in {
|
|||||||
stylix.base16Scheme = lib.mkIf (cfg.theme != "theme") "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml";
|
stylix.base16Scheme = lib.mkIf (cfg.theme != "theme") "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml";
|
||||||
|
|
||||||
stylix.autoEnable = true;
|
stylix.autoEnable = true;
|
||||||
stylix.opacity.terminal = 0.95;
|
|
||||||
|
stylix.fonts.monospace = {
|
||||||
|
package = pkgs.nerd-fonts.dejavu-sans-mono;
|
||||||
|
name = "DejaVuSansM Nerd Font Propo";
|
||||||
|
};
|
||||||
|
|
||||||
stylix.cursor = {
|
stylix.cursor = {
|
||||||
package = pkgs.phinger-cursors;
|
package = pkgs.phinger-cursors;
|
||||||
|
@@ -24,6 +24,7 @@
|
|||||||
./desktop-environments/cosmic.nix
|
./desktop-environments/cosmic.nix
|
||||||
./desktop-environments/hyprland.nix
|
./desktop-environments/hyprland.nix
|
||||||
./desktop-environments/gnome.nix
|
./desktop-environments/gnome.nix
|
||||||
|
./desktop-environments/niri.nix
|
||||||
|
|
||||||
./display-managers/default.nix
|
./display-managers/default.nix
|
||||||
];
|
];
|
||||||
|
@@ -19,7 +19,6 @@ in {
|
|||||||
# ];
|
# ];
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.displayManager.cosmic-greeter.enable = true;
|
|
||||||
services.desktopManager.cosmic.enable = true;
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
|
49
modules/system/desktop-environments/niri.nix
Normal file
49
modules/system/desktop-environments/niri.nix
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{ lib, config, inputs, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.desktop-environments.niri;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
settings.desktop-environments.niri.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Enable niri desktop environment
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
inputs.niri.nixosModules.niri
|
||||||
|
];
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
nix = {
|
||||||
|
settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://niri.cachix.org"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.niri.enable = true;
|
||||||
|
programs.niri.package = pkgs.unstable.niri;
|
||||||
|
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
||||||
|
environment.variables.NIXOS_OZONE_WL = "1";
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wl-clipboard
|
||||||
|
wayland-utils
|
||||||
|
libsecret
|
||||||
|
cage
|
||||||
|
gamescope
|
||||||
|
xwayland-satellite-unstable
|
||||||
|
swaybg
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@@ -7,7 +7,7 @@ let
|
|||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
settings.display-manager = lib.mkOption {
|
settings.display-manager = lib.mkOption {
|
||||||
type = lib.types.enum ["sddm" "cosmic-greeter" "gdm" "none"];
|
type = lib.types.enum ["sddm" "cosmic-greeter" "gdm" "none" "greetd"];
|
||||||
description = ''
|
description = ''
|
||||||
Specify which display manager to use
|
Specify which display manager to use
|
||||||
'';
|
'';
|
||||||
@@ -18,5 +18,6 @@ in {
|
|||||||
./sddm.nix
|
./sddm.nix
|
||||||
./cosmic-greeter.nix
|
./cosmic-greeter.nix
|
||||||
./gdm.nix
|
./gdm.nix
|
||||||
|
./greetd.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
35
modules/system/display-managers/greetd.nix
Normal file
35
modules/system/display-managers/greetd.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.settings.display-manager;
|
||||||
|
in {
|
||||||
|
config = mkIf (cfg == "greetd") {
|
||||||
|
# systemd.services.greetd = {
|
||||||
|
# serviceConfig.Type = "idle";
|
||||||
|
# # unitConfig.After = [ "docker.service" ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
systemd.services.greetd.serviceConfig = {
|
||||||
|
Type = "idle";
|
||||||
|
StandardInput = "tty";
|
||||||
|
StandardOutput = "tty";
|
||||||
|
StandardError = "journal"; # Without this errors will spam on screen
|
||||||
|
# Without these bootlogs will spam on screen
|
||||||
|
TTYReset = true;
|
||||||
|
TTYVHangup = true;
|
||||||
|
TTYVTDisallocate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd niri-session";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -11,7 +11,7 @@
|
|||||||
unstable-packages = final: _prev: {
|
unstable-packages = final: _prev: {
|
||||||
unstable = import inputs.nixpkgs-unstable {
|
unstable = import inputs.nixpkgs-unstable {
|
||||||
system = final.system;
|
system = final.system;
|
||||||
config.allowUnfree = false;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user