Compare commits
34 Commits
933b9bb6d6
...
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 | |||
9fd98e97fe | |||
af966ab2f3
|
|||
ff981dc3f4
|
|||
8b2bcf41d4
|
|||
4874017b4f
|
|||
37b631f68b
|
|||
cc362f7b5b
|
14
README.md
14
README.md
@@ -31,7 +31,7 @@
|
||||
List over services
|
||||
|
||||
| Service | Description | Link |
|
||||
| -------------- | -------------------- | ---------------------------------------------------------------------- |
|
||||
| -------------- | ---------------------------------- | ---------------------------------------------------------------------- |
|
||||
| Caddy | Reverse proxy | - |
|
||||
| Kanidm | Openid provider | [auth.tbmrs.nl](https://auth.tbmrs.nl) |
|
||||
| Forgejo | Git provider | [git.tbmrs.nl](https://git.tbmrs.nl) |
|
||||
@@ -45,9 +45,15 @@ List over services
|
||||
| Dufs | File manager | [files.tbmrs.nl](https://files.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) |
|
||||
| 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) |
|
||||
| Stalwart | Mailserver | [mail.tbmrs.nl](https://mail.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
|
||||
|
||||
- Install koreader selfhosted sync
|
||||
|
||||
### Openid commands
|
||||
|
||||
@@ -83,3 +89,7 @@ $ kanidm system oauth2 warning-insecure-client-disable-pkce <service>
|
||||
```bash
|
||||
$ 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 |
454
flake.lock
generated
454
flake.lock
generated
@@ -5,11 +5,11 @@
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745523430,
|
||||
"narHash": "sha256-EAYWV+kXbwsH+8G/8UtmcunDeKwLwSOyfcmzZUkWE/c=",
|
||||
"lastModified": 1746562888,
|
||||
"narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "58bfe2553d937d8af0564f79d5b950afbef69717",
|
||||
"rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -37,11 +37,11 @@
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1736852337,
|
||||
"narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=",
|
||||
"lastModified": 1748408240,
|
||||
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5",
|
||||
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -90,11 +90,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747274630,
|
||||
"narHash": "sha256-87RJwXbfOHyzTB9LYagAQ6vOZhszCvd8Gvudu+gf3qo=",
|
||||
"lastModified": 1751854533,
|
||||
"narHash": "sha256-U/OQFplExOR1jazZY4KkaQkJqOl59xlh21HP9mI79Vc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "ec7c109a4f794fce09aad87239eab7f66540b888",
|
||||
"rev": "16b74a1e304197248a1bc663280f2548dbfcae3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -106,11 +106,11 @@
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743774811,
|
||||
"narHash": "sha256-oiHLDHXq7ymsMVYSg92dD1OLnKLQoU/Gf2F1GoONLCE=",
|
||||
"lastModified": 1748383148,
|
||||
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "df53a7a31872faf5ca53dd0730038a62ec63ca9e",
|
||||
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -119,56 +119,24 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1746162366,
|
||||
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"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-utils": {
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"systems": [
|
||||
"nixpkgs-lib": [
|
||||
"stylix",
|
||||
"systems"
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"lastModified": 1749398372,
|
||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -188,67 +156,19 @@
|
||||
"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": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1732369855,
|
||||
"narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
|
||||
"lastModified": 1744584021,
|
||||
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "dadd58f630eeea41d645ee225a63f719390829dc",
|
||||
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "GNOME",
|
||||
"ref": "47.2",
|
||||
"ref": "48.1",
|
||||
"repo": "gnome-shell",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -260,39 +180,73 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747331121,
|
||||
"narHash": "sha256-3MmiUN/jOHBHQUnjqzg6qKArc17j2OS6jisEppDY4g8=",
|
||||
"lastModified": 1751810233,
|
||||
"narHash": "sha256-kllkNbIqQi3VplgTMeGzuh1t8Gk8TauvkTRt93Km+tQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "1eec32f0efe3b830927989767a9e6ece0d82d608",
|
||||
"rev": "9b0873b46c9f9e4b7aa01eb634952c206af53068",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"niri": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
"niri-stable": "niri-stable",
|
||||
"niri-unstable": "niri-unstable",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743808813,
|
||||
"narHash": "sha256-2lDQBOmlz9ggPxcS7/GvcVdzXMIiT+PpMao6FbLJSr0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a9f8b3db211b4609ddd83683f9db89796c7f6ac6",
|
||||
"lastModified": 1752057206,
|
||||
"narHash": "sha256-f8fNAag3K3WAq+lJr2EEu2f3xVSFLPddLgJKZRzXa3M=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "90c2edcf32d0fcb511fee9a0b8c580a18178c109",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
@@ -315,34 +269,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-cosmic": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747402241,
|
||||
"narHash": "sha256-s52bryrvkofiNuiBcUdmOoTfu7KSjQsmCl7CR+KsPz4=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "02b683c2635a03fc610a87a15f2326f03e39214d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1747129300,
|
||||
"narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=",
|
||||
"lastModified": 1752048960,
|
||||
"narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "e81fd167b33121269149c57806599045fd33eeed",
|
||||
"rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -354,11 +287,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1747179050,
|
||||
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
|
||||
"lastModified": 1751792365,
|
||||
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
|
||||
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -385,27 +318,27 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1747209494,
|
||||
"narHash": "sha256-fLise+ys+bpyjuUUkbwqo5W/UyIELvRz9lPBPoB0fbM=",
|
||||
"lastModified": 1751943650,
|
||||
"narHash": "sha256-7orTnNqkGGru8Je6Un6mq1T8YVVU/O5kyW4+f9C1mZQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5d736263df906c5da72ab0f372427814de2f52f8",
|
||||
"rev": "88983d4b665fb491861005137ce2b11a9f89f203",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1747327360,
|
||||
"narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=",
|
||||
"lastModified": 1751792365,
|
||||
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46",
|
||||
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -415,6 +348,21 @@
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"lastModified": 1744868846,
|
||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
||||
@@ -430,69 +378,71 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1743703532,
|
||||
"narHash": "sha256-s1KLDALEeqy+ttrvqV3jx9mBZEvmthQErTVOAzbjHZs=",
|
||||
"lastModified": 1751211869,
|
||||
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bdb91860de2f719b57eef819b5617762f7120c70",
|
||||
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
"stylix",
|
||||
"flake-parts"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751320053,
|
||||
"narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"disko": "disko",
|
||||
"home-manager": "home-manager",
|
||||
"niri": "niri",
|
||||
"nix-colors": "nix-colors",
|
||||
"nixos-cosmic": "nixos-cosmic",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": [
|
||||
"nixos-cosmic",
|
||||
"nixpkgs-stable"
|
||||
],
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixos-cosmic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747363019,
|
||||
"narHash": "sha256-N4dwkRBmpOosa4gfFkFf/LTD8oOcNkAyvZ07JvRDEf0=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "0e624f2b1972a34be1a9b35290ed18ea4b419b6f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746485181,
|
||||
"narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=",
|
||||
"lastModified": 1751606940,
|
||||
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "e93ee1d900ad264d65e9701a5c6f895683433386",
|
||||
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -508,28 +458,28 @@
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils",
|
||||
"git-hooks": "git-hooks",
|
||||
"flake-parts": "flake-parts",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nur": "nur",
|
||||
"systems": "systems",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-tmux": "tinted-tmux"
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
"tinted-tmux": "tinted-tmux",
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746143246,
|
||||
"narHash": "sha256-O8rZjqJUIkUva66XTOZy0wcgfBP2eaxU9+Xt7ZHtfhI=",
|
||||
"lastModified": 1752014016,
|
||||
"narHash": "sha256-Gn6cnUPchPenxUFDt+dh7836CNu3GM13aghTabfZUrU=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "20ace60f9cb5e179cb2256abaee505780df8e804",
|
||||
"rev": "26042c1f59ae868193fa4378f85e4f6240f25ff8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "danth",
|
||||
"ref": "release-24.11",
|
||||
"ref": "release-25.05",
|
||||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -569,28 +519,43 @@
|
||||
"tinted-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1716423189,
|
||||
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
|
||||
"lastModified": 1735730497,
|
||||
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"rev": "eb39e141db14baef052893285df9f266df041ff8",
|
||||
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"rev": "eb39e141db14baef052893285df9f266df041ff8",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1750770351,
|
||||
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1743296873,
|
||||
"narHash": "sha256-8IQulrb1OBSxMwdKijO9fB70ON//V32dpK9Uioy7FzY=",
|
||||
"lastModified": 1751159871,
|
||||
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "af5152c8d7546dfb4ff6df94080bf5ff54f64e3a",
|
||||
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -598,6 +563,77 @@
|
||||
"repo": "tinted-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1751158968,
|
||||
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733222881,
|
||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"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",
|
||||
|
15
flake.nix
15
flake.nix
@@ -2,12 +2,12 @@
|
||||
description = "Nixos configuration for Timo";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-24.11";
|
||||
nixpkgs.url = "nixpkgs/nixos-25.05";
|
||||
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@@ -15,15 +15,10 @@
|
||||
|
||||
nix-colors.url = "github:misterio77/nix-colors";
|
||||
|
||||
stylix.url = "github:danth/stylix/release-24.11";
|
||||
|
||||
nixpkgs.follows = "nixos-cosmic/nixpkgs-stable";
|
||||
|
||||
nixos-cosmic = {
|
||||
url = "github:lilyinstarlight/nixos-cosmic";
|
||||
};
|
||||
stylix.url = "github:danth/stylix/release-25.05";
|
||||
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
niri.url = "github:sodiboo/niri-flake";
|
||||
|
||||
disko.url = "github:nix-community/disko";
|
||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -35,8 +30,8 @@
|
||||
home-manager,
|
||||
nix-colors,
|
||||
stylix,
|
||||
nixos-cosmic,
|
||||
sops-nix,
|
||||
niri,
|
||||
disko,
|
||||
...
|
||||
} @ inputs: let
|
||||
|
@@ -13,8 +13,10 @@
|
||||
};
|
||||
|
||||
settings = {
|
||||
host = "c-clt-dsk01";
|
||||
|
||||
applications.common.enable = true;
|
||||
applications.alacritty.enable = false;
|
||||
applications.alacritty.enable = true;
|
||||
applications.devenv.enable = false;
|
||||
applications.firefox.enable = true;
|
||||
applications.git.enable = true;
|
||||
|
@@ -13,6 +13,8 @@
|
||||
};
|
||||
|
||||
settings = {
|
||||
host = "p-th-rpi-01";
|
||||
|
||||
applications.common.enable = false;
|
||||
applications.alacritty.enable = false;
|
||||
applications.devenv.enable = false;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
{ inputs, outputs, ... }:
|
||||
{ inputs, outputs, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
@@ -9,11 +9,12 @@
|
||||
|
||||
settings = {
|
||||
hostname = "ti-clt-dsk01";
|
||||
display-manager = "cosmic-greeter";
|
||||
display-manager = "greetd";
|
||||
desktop-environments = {
|
||||
cosmic.enable = true;
|
||||
cosmic.enable = false;
|
||||
hyprland.enable = false;
|
||||
gnome.enable = false;
|
||||
niri.enable = true;
|
||||
};
|
||||
applications = {
|
||||
common.enable = true;
|
||||
@@ -30,7 +31,7 @@
|
||||
hardware = {
|
||||
fprint.enable = false;
|
||||
printing.enable = true;
|
||||
bluetooth.enable = false;
|
||||
bluetooth.enable = true;
|
||||
firewall.enable = true;
|
||||
locale.enable = true;
|
||||
nvidia.enable = true;
|
||||
@@ -70,13 +71,26 @@
|
||||
"monitor.local.tbmrs.nl"
|
||||
"syncthing.local.tbmrs.nl"
|
||||
"home-assistant.local.tbmrs.nl"
|
||||
"karakeep.local.tbmrs.nl"
|
||||
"vikunja.local.tbmrs.nl"
|
||||
"linkding.local.tbmrs.nl"
|
||||
"tasks.local.tbmrs.nl"
|
||||
"links.local.tbmrs.nl"
|
||||
"stream.local.tbmrs.nl"
|
||||
];
|
||||
};
|
||||
|
||||
# Temp keyboard override
|
||||
environment.systemPackages = with pkgs; [
|
||||
via
|
||||
vial
|
||||
];
|
||||
services.udev.packages = with pkgs; [
|
||||
via
|
||||
vial
|
||||
];
|
||||
|
||||
# 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
|
||||
system.stateVersion = "24.11";
|
||||
|
@@ -13,6 +13,8 @@
|
||||
};
|
||||
|
||||
settings = {
|
||||
host = "ti-clt-dsk01";
|
||||
|
||||
applications.common.enable = true;
|
||||
applications.alacritty.enable = false;
|
||||
applications.devenv.enable = true;
|
||||
@@ -34,6 +36,7 @@
|
||||
applications.zellij.enable = true;
|
||||
applications.wezterm.enable = true;
|
||||
applications.typst.enable = true;
|
||||
applications.obs-studio.enable = true;
|
||||
|
||||
services.nextcloud-sync.enable = true;
|
||||
|
||||
@@ -43,20 +46,19 @@
|
||||
theming.stylix.theme = "da-one-ocean";
|
||||
|
||||
desktop-environments.hyprland.enable = false;
|
||||
desktop-environments.niri.enable = true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
unstable.prismlauncher
|
||||
unstable.vesktop
|
||||
unstable.webcord
|
||||
unstable.legcord
|
||||
vesktop
|
||||
unstable.rnote
|
||||
unstable.inkscape
|
||||
unstable.gimp
|
||||
unstable.openscad-unstable
|
||||
unstable.brave
|
||||
unstable.freecad
|
||||
unstable.hoppscotch
|
||||
hoppscotch
|
||||
unstable.blender
|
||||
unstable.signal-desktop
|
||||
unstable.ladybird
|
||||
unstable.prusa-slicer
|
||||
|
@@ -10,12 +10,13 @@
|
||||
];
|
||||
|
||||
settings = {
|
||||
hostname = "ti-clt-dsk01";
|
||||
display-manager = "cosmic-greeter";
|
||||
hostname = "ti-clt-lpt01";
|
||||
display-manager = "greetd";
|
||||
desktop-environments = {
|
||||
cosmic.enable = true;
|
||||
hyprland.enable = true;
|
||||
cosmic.enable = false;
|
||||
hyprland.enable = false;
|
||||
gnome.enable = false;
|
||||
niri.enable = true;
|
||||
};
|
||||
applications = {
|
||||
common.enable = true;
|
||||
@@ -43,9 +44,15 @@
|
||||
users.users.xeovalyte = {
|
||||
isNormalUser = true;
|
||||
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.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.grub = {
|
||||
@@ -55,6 +62,7 @@
|
||||
configurationLimit = 32;
|
||||
};
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.supportedFilesystems = [ "nfs" ];
|
||||
|
||||
# Networking
|
||||
networking.hosts = {
|
||||
@@ -78,5 +86,24 @@
|
||||
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";
|
||||
}
|
||||
|
@@ -13,6 +13,8 @@
|
||||
};
|
||||
|
||||
settings = {
|
||||
host = "ti-clt-lpt01";
|
||||
|
||||
applications.common.enable = true;
|
||||
applications.alacritty.enable = true;
|
||||
applications.devenv.enable = true;
|
||||
@@ -35,6 +37,7 @@
|
||||
applications.wezterm.enable = true;
|
||||
applications.nushell.enable = false;
|
||||
applications.typst.enable = true;
|
||||
# applications.obs-studio.enable = true;
|
||||
|
||||
services.nextcloud-sync.enable = true;
|
||||
|
||||
@@ -44,11 +47,11 @@
|
||||
theming.stylix.theme = "da-one-ocean";
|
||||
|
||||
desktop-environments.hyprland.enable = false;
|
||||
desktop-environments.niri.enable = true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# Desktop Applications
|
||||
kdenlive
|
||||
prismlauncher
|
||||
unstable.prusa-slicer
|
||||
signal-desktop
|
||||
@@ -62,7 +65,9 @@
|
||||
unstable.hoppscotch
|
||||
unstable.apostrophe
|
||||
unstable.surfer # waveform viewer
|
||||
unstable.drawio
|
||||
unstable.vscode
|
||||
pomodoro-gtk
|
||||
unstable.brave
|
||||
|
||||
# Office
|
||||
libreoffice
|
||||
@@ -70,10 +75,6 @@
|
||||
# Image editing
|
||||
gimp
|
||||
inkscape
|
||||
unstable.obs-studio
|
||||
|
||||
# Development
|
||||
unstable.drawio
|
||||
|
||||
unstable.moonlight-qt
|
||||
|
||||
|
@@ -13,6 +13,8 @@
|
||||
};
|
||||
|
||||
settings = {
|
||||
host = "ti-clt-tbl01";
|
||||
|
||||
applications.common.enable = true;
|
||||
applications.alacritty.enable = false;
|
||||
applications.devenv.enable = false;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ modulesPath, ... }:
|
||||
{ modulesPath, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
@@ -12,6 +12,8 @@
|
||||
../../modules/system/default.nix
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
settings = {
|
||||
hostname = "v-th-ctr-01";
|
||||
display-manager = "none";
|
||||
|
@@ -13,6 +13,8 @@
|
||||
};
|
||||
|
||||
settings = {
|
||||
host = "v-th-ctr-01";
|
||||
|
||||
applications.common.enable = false;
|
||||
applications.alacritty.enable = false;
|
||||
applications.devenv.enable = false;
|
||||
@@ -57,6 +59,7 @@
|
||||
vikunja.enable = true;
|
||||
stalwart.enable = true;
|
||||
linkding.enable = true;
|
||||
jellyfin.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
7
justfile
7
justfile
@@ -30,3 +30,10 @@ alias sh := switch-home-manager
|
||||
|
||||
switch-home-manager:
|
||||
home-manager switch --flake .
|
||||
|
||||
alias gc := collect-garbage
|
||||
|
||||
collect-garbage:
|
||||
sudo nix-collect-garbage -d
|
||||
nix-collect-garbage -d
|
||||
|
||||
|
@@ -22,6 +22,9 @@ in {
|
||||
home.packages = with pkgs; [
|
||||
unstable.firefoxpwa
|
||||
];
|
||||
|
||||
stylix.targets.firefox.profileNames = [ "${config.home.username}" ];
|
||||
|
||||
programs.firefox = lib.mkMerge [
|
||||
{
|
||||
enable = true;
|
||||
@@ -65,8 +68,9 @@ in {
|
||||
};
|
||||
};
|
||||
};
|
||||
profiles.xeovalyte = {
|
||||
bookmarks = [
|
||||
profiles.${config.home.username} = {
|
||||
bookmarks.force = true;
|
||||
bookmarks.settings = [
|
||||
{
|
||||
name = "Toolbar";
|
||||
toolbar = true;
|
||||
@@ -130,12 +134,12 @@ in {
|
||||
definedAliases = [ "@sp" ];
|
||||
};
|
||||
|
||||
"Bing".metaData.hidden = true;
|
||||
"Google".metaData.hidden = true;
|
||||
"eBay".metaData.hidden = true;
|
||||
"bing".metaData.hidden = true;
|
||||
"google".metaData.hidden = true;
|
||||
"ebay".metaData.hidden = true;
|
||||
};
|
||||
search.force = true;
|
||||
search.default = "SearXNG";
|
||||
search.default = "ddg";
|
||||
|
||||
settings = {
|
||||
"browser.disableResetPrompt" = true;
|
||||
|
@@ -95,7 +95,6 @@ in {
|
||||
insert = "bar";
|
||||
};
|
||||
editor.end-of-line-diagnostics = "hint";
|
||||
editor.inline-diagnostics.cursor-line = "error";
|
||||
};
|
||||
languages = {
|
||||
# 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,6 +49,11 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.beszel = {
|
||||
host = "monitor";
|
||||
url = "beszel:8090";
|
||||
};
|
||||
|
||||
sops.secrets = {
|
||||
"containers/beszel/key" = { };
|
||||
};
|
||||
|
@@ -5,19 +5,22 @@ with lib;
|
||||
let
|
||||
cfg = config.settings.containers.caddy;
|
||||
|
||||
generateRoutes = entries: lib.concatMapStrings (route: ''
|
||||
@${route.name} host ${route.host}
|
||||
toInternal = name: routesDef: {
|
||||
name = name;
|
||||
host = routesDef.host;
|
||||
url = routesDef.url;
|
||||
};
|
||||
|
||||
generateRoutes = domain: entries: lib.concatMapStrings (route: ''
|
||||
@${route.name} host ${route.host}.${domain}
|
||||
handle @${route.name} {
|
||||
reverse_proxy ${route.url}
|
||||
}
|
||||
'') entries;
|
||||
|
||||
routesOption = lib.mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
url = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
@@ -29,7 +32,7 @@ let
|
||||
};
|
||||
in {
|
||||
options = {
|
||||
settings.containers.caddy.enable = lib.mkOption {
|
||||
settings.containers.caddy.enable = mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
@@ -37,8 +40,16 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs = routesOption;
|
||||
settings.containers.caddy.routes.tbmrs-local = routesOption;
|
||||
settings.containers.caddy.routes = mkOption {
|
||||
type = lib.types.attrsOf (types.submodule {
|
||||
options = {
|
||||
routes = routesOption;
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
@@ -59,48 +70,10 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs = [
|
||||
{
|
||||
name = "kanidm";
|
||||
host = "auth";
|
||||
url = "https://auth.tbmrs.nl";
|
||||
}
|
||||
{
|
||||
name = "forgejo";
|
||||
host = "git";
|
||||
url = "forgejo:3000";
|
||||
}
|
||||
{
|
||||
name = "immich";
|
||||
host = "photos";
|
||||
url = "immich-server:2283";
|
||||
}
|
||||
{
|
||||
name = "homepage";
|
||||
host = "home";
|
||||
url = "homepage:3000";
|
||||
}
|
||||
{
|
||||
name = "uptime-kuma";
|
||||
host = "uptime";
|
||||
url = "uptime-kuma:3001";
|
||||
}
|
||||
{
|
||||
name = "pingvin-share";
|
||||
host = "share";
|
||||
url = "pingvin-share:3000";
|
||||
}
|
||||
{
|
||||
name = "dufs";
|
||||
host = "files";
|
||||
url = "dufs:5000";
|
||||
}
|
||||
{
|
||||
name = "stalwart";
|
||||
host = "mail";
|
||||
url = "stalwart:8000";
|
||||
}
|
||||
];
|
||||
settings.containers.caddy.routes = {
|
||||
tbmrs.domain = "tbmrs.nl";
|
||||
tbmrs-local.domain = "local.tbmrs.nl";
|
||||
};
|
||||
|
||||
home.file."containers/caddy/Caddyfile".text = ''
|
||||
*.tbmrs.nl, tbmrs.nl {
|
||||
@@ -109,7 +82,7 @@ in {
|
||||
resolvers 1.1.1.1
|
||||
}
|
||||
|
||||
${generateRoutes cfg.routes.tbmrs}
|
||||
${generateRoutes cfg.routes.tbmrs.domain (mapAttrsToList toInternal cfg.routes.tbmrs.routes)}
|
||||
}
|
||||
|
||||
*.local.tbmrs.nl {
|
||||
@@ -118,45 +91,7 @@ in {
|
||||
resolvers 1.1.1.1
|
||||
}
|
||||
|
||||
@vaultwarden host vault.local.tbmrs.nl
|
||||
handle @vaultwarden {
|
||||
reverse_proxy vaultwarden:80
|
||||
}
|
||||
|
||||
@paperless-ngx host paperless.local.tbmrs.nl
|
||||
handle @paperless-ngx {
|
||||
reverse_proxy paperless-ngx:8000
|
||||
}
|
||||
|
||||
@beszel host monitor.local.tbmrs.nl
|
||||
handle @beszel {
|
||||
reverse_proxy beszel:8090
|
||||
}
|
||||
|
||||
@syncthing host syncthing.local.tbmrs.nl
|
||||
handle @syncthing {
|
||||
reverse_proxy syncthing:8384
|
||||
}
|
||||
|
||||
@homeassistant host home-assistant.local.tbmrs.nl
|
||||
handle @homeassistant {
|
||||
reverse_proxy homeassistant:8123
|
||||
}
|
||||
|
||||
@karakeep host karakeep.local.tbmrs.nl
|
||||
handle @karakeep {
|
||||
reverse_proxy karakeep:3000
|
||||
}
|
||||
|
||||
@vikunja host vikunja.local.tbmrs.nl
|
||||
handle @vikunja {
|
||||
reverse_proxy vikunja:3456
|
||||
}
|
||||
|
||||
@linkding host linkding.local.tbmrs.nl
|
||||
handle @linkding {
|
||||
reverse_proxy linkding:9090
|
||||
}
|
||||
${generateRoutes cfg.routes.tbmrs-local.domain (mapAttrsToList toInternal cfg.routes.tbmrs-local.routes)}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
@@ -28,5 +28,10 @@ in {
|
||||
FORGEJO__service__ENABLE_PASSWORD_SIGNIN_FORM = false;
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.forgejo = {
|
||||
host = "git";
|
||||
url = "forgejo:3000";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -27,5 +27,10 @@ in {
|
||||
TZ = "Europe/Amsterdam";
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.home-assistant = {
|
||||
host = "home-assistant";
|
||||
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" {
|
||||
title = "Timo's Server";
|
||||
description = "server from Timo";
|
||||
@@ -125,12 +130,21 @@ in {
|
||||
};
|
||||
}
|
||||
{
|
||||
"Karakeep" = {
|
||||
href = "https://karakeep.local.tbmrs.nl";
|
||||
description = "Data hoarder";
|
||||
icon = "karakeep";
|
||||
"Linkding" = {
|
||||
href = "https://links.local.tbmrs.nl";
|
||||
description = "Bookmarks";
|
||||
icon = "linkding";
|
||||
server = "podman";
|
||||
container = "karakeep";
|
||||
container = "linkding";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Stalwart" = {
|
||||
href = "https://mail.tbmrs.nl";
|
||||
description = "Mailserver";
|
||||
icon = "stalwart";
|
||||
server = "podman";
|
||||
container = "stalwart";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
@@ -71,5 +71,10 @@ 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'';
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.immich = {
|
||||
host = "photos";
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
@@ -36,5 +36,10 @@ in {
|
||||
KANIDM_ORIGIN = "https://auth.tbmrs.nl";
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.kanidm = {
|
||||
host = "auth";
|
||||
url = "https://auth.tbmrs.nl";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -36,6 +36,11 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.linkding = {
|
||||
host = "links";
|
||||
url = "linkding:9090";
|
||||
};
|
||||
|
||||
settings.services.sops.enable = true;
|
||||
|
||||
sops.templates = {
|
||||
|
@@ -88,6 +88,11 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.paperless-ngx = {
|
||||
host = "paperless";
|
||||
url = "paperless-ngx:8000";
|
||||
};
|
||||
|
||||
sops.secrets = {
|
||||
"containers/paperless-ngx/db-password" = { };
|
||||
"containers/paperless-ngx/secret" = { };
|
||||
|
@@ -39,6 +39,11 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.pingvin = {
|
||||
host = "share";
|
||||
url = "pingvin-share:3000";
|
||||
};
|
||||
|
||||
sops.templates = {
|
||||
"container-pingvin.yaml" = {
|
||||
content = /*yaml*/ ''
|
||||
|
@@ -33,5 +33,10 @@ in {
|
||||
"%h/containers/stalwart/data:/opt/stalwart-mail"
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.stalwart = {
|
||||
host = "mail";
|
||||
url = "stalwart:8080";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -43,5 +43,15 @@ in {
|
||||
"22000:22000/udp"
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.sycnthing = {
|
||||
host = "syncthing";
|
||||
url = "syncthing:8384";
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.dufs = {
|
||||
host = "files";
|
||||
url = "dufs:5000";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -17,11 +17,16 @@ in {
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.podman.containers.uptime-kuma = {
|
||||
image = "louislam/uptime-kuma:1";
|
||||
image = "louislam/uptime-kuma:beta";
|
||||
network = "proxy";
|
||||
volumes = [
|
||||
"%h/containers/uptime-kuma/data:/app/data"
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.uptime-kuma = {
|
||||
host = "uptime";
|
||||
url = "uptime-kuma:3001";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -27,5 +27,11 @@ in {
|
||||
SIGNUPS_ALLOWED = true;
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.vaultwarden = {
|
||||
host = "vault";
|
||||
url = "vaultwarden:80";
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
@@ -25,5 +25,10 @@ in {
|
||||
"%h/containers/vikunja/db:/db"
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.vikunja = {
|
||||
host = "tasks";
|
||||
url = "vikunja:3456";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -1,6 +1,13 @@
|
||||
{ inputs, outputs, config, lib, ... }:
|
||||
|
||||
{
|
||||
options = {
|
||||
settings.host = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Hostname";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./applications/alacritty.nix
|
||||
./applications/common.nix
|
||||
@@ -16,6 +23,7 @@
|
||||
./applications/wezterm.nix
|
||||
./applications/nushell.nix
|
||||
./applications/typst.nix
|
||||
./applications/obs-studio.nix
|
||||
|
||||
./services/nextcloud.nix
|
||||
./services/podman.nix
|
||||
@@ -25,6 +33,7 @@
|
||||
./theming/stylix.nix
|
||||
|
||||
./desktop-environments/hyprland/default.nix
|
||||
./desktop-environments/niri/default.nix
|
||||
|
||||
./containers/network.nix
|
||||
|
||||
@@ -46,6 +55,7 @@
|
||||
./containers/stalwart.nix
|
||||
./containers/static.nix
|
||||
./containers/linkding.nix
|
||||
./containers/jellyfin.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
|
@@ -15,7 +15,7 @@ in {
|
||||
};
|
||||
|
||||
imports = [
|
||||
./waybar.nix
|
||||
# ./waybar.nix
|
||||
./fixes.nix
|
||||
./dunst.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;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
@@ -23,7 +23,7 @@ in {
|
||||
font-awesome
|
||||
dejavu_fonts
|
||||
roboto
|
||||
(nerdfonts.override { fonts = [ "DejaVuSansMono" ]; })
|
||||
nerd-fonts.dejavu-sans-mono
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@@ -29,7 +29,7 @@ in {
|
||||
};
|
||||
|
||||
imports = [
|
||||
inputs.stylix.homeManagerModules.stylix
|
||||
inputs.stylix.homeModules.stylix
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
@@ -42,7 +42,11 @@ in {
|
||||
stylix.base16Scheme = lib.mkIf (cfg.theme != "theme") "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml";
|
||||
|
||||
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 = {
|
||||
package = pkgs.phinger-cursors;
|
||||
|
@@ -24,6 +24,7 @@
|
||||
./desktop-environments/cosmic.nix
|
||||
./desktop-environments/hyprland.nix
|
||||
./desktop-environments/gnome.nix
|
||||
./desktop-environments/niri.nix
|
||||
|
||||
./display-managers/default.nix
|
||||
];
|
||||
|
@@ -14,9 +14,9 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
inputs.nixos-cosmic.nixosModules.default
|
||||
];
|
||||
# imports = [
|
||||
# inputs.nixos-cosmic.nixosModules.default
|
||||
# ];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.desktopManager.cosmic.enable = true;
|
||||
|
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 {
|
||||
options = {
|
||||
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 = ''
|
||||
Specify which display manager to use
|
||||
'';
|
||||
@@ -18,5 +18,6 @@ in {
|
||||
./sddm.nix
|
||||
./cosmic-greeter.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 = import inputs.nixpkgs-unstable {
|
||||
system = final.system;
|
||||
config.allowUnfree = false;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user