Compare commits

..

31 Commits

Author SHA1 Message Date
e28f9d5f2f Config changes... 2025-07-17 15:59:45 +02:00
6381ccf530 updated flakes inputs 2025-07-09 13:47:29 +02:00
35e7c0df79 added ppd 2025-07-08 15:23:59 +02:00
047e54ef74 removed not used padding 2025-07-08 15:15:05 +02:00
6dfad3f7f1 merge 2025-07-08 15:13:29 +02:00
74ecc77048 merges 2025-07-08 15:12:58 +02:00
5c74dc820b changed configs 2025-07-08 15:10:02 +02:00
89de487f68 added margin between modules 2025-07-08 15:08:35 +02:00
07c5526868 niri changes 2025-07-07 16:02:37 +02:00
d3bb262f7a added brightnessctl 2025-06-24 14:21:51 +02:00
d5560fd847 add brightness controls 2025-06-24 14:18:40 +02:00
751cb87d8d Added host option 2025-06-24 14:04:56 +02:00
d2cc6663e7 added greetd greeter for niri 2025-06-24 13:56:38 +02:00
64f21a317b More niri styling 2025-06-23 17:04:59 +02:00
849bd2a5e0 Merge branch 'main' of ssh://gitea.xeovalyte.dev:2222/xeovalyte/nix 2025-06-22 10:09:47 +02:00
79d07a5bfd Changed some configs 2025-06-22 10:09:41 +02:00
351272fc5c Merge branch 'main' of ssh://gitea.xeovalyte.dev:2222/xeovalyte/nix 2025-06-20 16:35:21 +02:00
f68ff8d18c updated laptop configuration 2025-06-20 16:35:05 +02:00
f475b7b4ab added niri and samba share 2025-06-20 16:34:19 +02:00
e65e523992 added niri 2025-06-19 14:07:57 +02:00
38cb13a195 enabled bluetooth on desktop 2025-06-16 20:43:32 +02:00
fa648a174d Added obs and useful links section to README 2025-06-14 11:02:27 +02:00
95235d5ad5 Merge branch 'main' of ssh://gitea.xeovalyte.dev:2222/xeovalyte/nix 2025-06-11 13:14:22 +02:00
4d1b3e9911 updated flake file 2025-06-11 13:14:20 +02:00
e1fd8a07bd fixed jellyfin 2025-06-03 19:41:07 +02:00
8e9ab3aa38 fixed jellyfin 2025-06-03 19:24:36 +02:00
5da7636a42 Changed caddy config 2025-06-03 19:24:29 +02:00
9fd98e97fe changed how caddy works 2025-05-22 13:25:58 +02:00
af966ab2f3 removed packages 2025-05-22 13:21:46 +02:00
ff981dc3f4 Merge branch 'main' of ssh://gitea.xeovalyte.dev:2222/xeovalyte/nix 2025-05-22 12:07:36 +02:00
8b2bcf41d4 modified hostname 2025-05-22 12:07:19 +02:00
46 changed files with 982 additions and 287 deletions

View File

@@ -31,7 +31,7 @@
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) |
@@ -49,6 +49,7 @@ List over services
| 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

298
flake.lock generated
View File

@@ -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",

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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";

View File

@@ -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

View File

@@ -10,12 +10,13 @@
]; ];
settings = { settings = {
hostname = "ti-clt-dsk01"; 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,9 +44,15 @@
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;
boot.loader.grub = { boot.loader.grub = {
@@ -55,6 +62,7 @@
configurationLimit = 32; configurationLimit = 32;
}; };
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
boot.supportedFilesystems = [ "nfs" ];
# Networking # Networking
networking.hosts = { networking.hosts = {
@@ -78,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";
} }

View File

@@ -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,11 +47,11 @@
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; [
# Desktop Applications # Desktop Applications
kdenlive
prismlauncher prismlauncher
unstable.prusa-slicer unstable.prusa-slicer
signal-desktop signal-desktop
@@ -62,7 +65,9 @@
unstable.hoppscotch unstable.hoppscotch
unstable.apostrophe unstable.apostrophe
unstable.surfer # waveform viewer unstable.surfer # waveform viewer
unstable.drawio unstable.vscode
pomodoro-gtk
unstable.brave
# Office # Office
libreoffice libreoffice
@@ -70,10 +75,6 @@
# Image editing # Image editing
gimp gimp
inkscape inkscape
unstable.obs-studio
# Development
unstable.drawio
unstable.moonlight-qt unstable.moonlight-qt

View File

@@ -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;

View File

@@ -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";

View File

@@ -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;
}; };
}; };

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View 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
];
};
};
}

View File

@@ -49,6 +49,11 @@ in {
}; };
}; };
settings.containers.caddy.routes.tbmrs-local.routes.beszel = {
host = "monitor";
url = "beszel:8090";
};
sops.secrets = { sops.secrets = {
"containers/beszel/key" = { }; "containers/beszel/key" = { };
}; };

View File

@@ -5,19 +5,22 @@ with lib;
let let
cfg = config.settings.containers.caddy; cfg = config.settings.containers.caddy;
generateRoutes = entries: lib.concatMapStrings (route: '' toInternal = name: routesDef: {
@${route.name} host ${route.host} name = name;
host = routesDef.host;
url = routesDef.url;
};
generateRoutes = domain: entries: lib.concatMapStrings (route: ''
@${route.name} host ${route.host}.${domain}
handle @${route.name} { handle @${route.name} {
reverse_proxy ${route.url} reverse_proxy ${route.url}
} }
'') 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;
}; };
@@ -29,7 +32,7 @@ let
}; };
in { in {
options = { options = {
settings.containers.caddy.enable = lib.mkOption { settings.containers.caddy.enable = mkOption {
type = lib.types.bool; type = lib.types.bool;
default = false; default = false;
description = '' description = ''
@@ -37,8 +40,16 @@ in {
''; '';
}; };
settings.containers.caddy.routes.tbmrs = routesOption; settings.containers.caddy.routes = mkOption {
settings.containers.caddy.routes.tbmrs-local = routesOption; type = lib.types.attrsOf (types.submodule {
options = {
routes = routesOption;
domain = mkOption {
type = types.str;
};
};
});
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -59,48 +70,10 @@ in {
]; ];
}; };
settings.containers.caddy.routes.tbmrs = [ settings.containers.caddy.routes = {
{ tbmrs.domain = "tbmrs.nl";
name = "kanidm"; tbmrs-local.domain = "local.tbmrs.nl";
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";
}
];
home.file."containers/caddy/Caddyfile".text = '' home.file."containers/caddy/Caddyfile".text = ''
*.tbmrs.nl, tbmrs.nl { *.tbmrs.nl, tbmrs.nl {
@@ -109,7 +82,7 @@ in {
resolvers 1.1.1.1 resolvers 1.1.1.1
} }
${generateRoutes cfg.routes.tbmrs} ${generateRoutes cfg.routes.tbmrs.domain (mapAttrsToList toInternal cfg.routes.tbmrs.routes)}
} }
*.local.tbmrs.nl { *.local.tbmrs.nl {
@@ -118,45 +91,7 @@ in {
resolvers 1.1.1.1 resolvers 1.1.1.1
} }
@vaultwarden host vault.local.tbmrs.nl ${generateRoutes cfg.routes.tbmrs-local.domain (mapAttrsToList toInternal cfg.routes.tbmrs-local.routes)}
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
}
} }
''; '';
}; };

View File

@@ -28,5 +28,10 @@ in {
FORGEJO__service__ENABLE_PASSWORD_SIGNIN_FORM = false; FORGEJO__service__ENABLE_PASSWORD_SIGNIN_FORM = false;
}; };
}; };
settings.containers.caddy.routes.tbmrs.routes.forgejo = {
host = "git";
url = "forgejo:3000";
};
}; };
} }

View File

@@ -27,5 +27,10 @@ in {
TZ = "Europe/Amsterdam"; TZ = "Europe/Amsterdam";
}; };
}; };
settings.containers.caddy.routes.tbmrs-local.routes.home-assistant = {
host = "home-assistant";
url = "homeassistant:8123";
};
}; };
} }

View File

@@ -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";
}; };
} }
]; ];

View File

@@ -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''; 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";
};
}; };
} }

View 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";
};
};
}

View File

@@ -36,5 +36,10 @@ in {
KANIDM_ORIGIN = "https://auth.tbmrs.nl"; KANIDM_ORIGIN = "https://auth.tbmrs.nl";
}; };
}; };
settings.containers.caddy.routes.tbmrs.routes.kanidm = {
host = "auth";
url = "https://auth.tbmrs.nl";
};
}; };
} }

View File

@@ -36,6 +36,11 @@ in {
]; ];
}; };
settings.containers.caddy.routes.tbmrs-local.routes.linkding = {
host = "links";
url = "linkding:9090";
};
settings.services.sops.enable = true; settings.services.sops.enable = true;
sops.templates = { sops.templates = {

View File

@@ -88,6 +88,11 @@ in {
]; ];
}; };
settings.containers.caddy.routes.tbmrs-local.routes.paperless-ngx = {
host = "paperless";
url = "paperless-ngx:8000";
};
sops.secrets = { sops.secrets = {
"containers/paperless-ngx/db-password" = { }; "containers/paperless-ngx/db-password" = { };
"containers/paperless-ngx/secret" = { }; "containers/paperless-ngx/secret" = { };

View File

@@ -39,6 +39,11 @@ in {
}; };
}; };
settings.containers.caddy.routes.tbmrs.routes.pingvin = {
host = "share";
url = "pingvin-share:3000";
};
sops.templates = { sops.templates = {
"container-pingvin.yaml" = { "container-pingvin.yaml" = {
content = /*yaml*/ '' content = /*yaml*/ ''

View File

@@ -33,5 +33,10 @@ in {
"%h/containers/stalwart/data:/opt/stalwart-mail" "%h/containers/stalwart/data:/opt/stalwart-mail"
]; ];
}; };
settings.containers.caddy.routes.tbmrs.routes.stalwart = {
host = "mail";
url = "stalwart:8080";
};
}; };
} }

View File

@@ -43,5 +43,15 @@ in {
"22000:22000/udp" "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";
};
}; };
} }

View File

@@ -17,11 +17,16 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.podman.containers.uptime-kuma = { services.podman.containers.uptime-kuma = {
image = "louislam/uptime-kuma:1"; image = "louislam/uptime-kuma:beta";
network = "proxy"; network = "proxy";
volumes = [ volumes = [
"%h/containers/uptime-kuma/data:/app/data" "%h/containers/uptime-kuma/data:/app/data"
]; ];
}; };
settings.containers.caddy.routes.tbmrs.routes.uptime-kuma = {
host = "uptime";
url = "uptime-kuma:3001";
};
}; };
} }

View File

@@ -27,5 +27,11 @@ in {
SIGNUPS_ALLOWED = true; SIGNUPS_ALLOWED = true;
}; };
}; };
settings.containers.caddy.routes.tbmrs-local.routes.vaultwarden = {
host = "vault";
url = "vaultwarden:80";
};
}; };
} }

View File

@@ -25,5 +25,10 @@ in {
"%h/containers/vikunja/db:/db" "%h/containers/vikunja/db:/db"
]; ];
}; };
settings.containers.caddy.routes.tbmrs-local.routes.vikunja = {
host = "tasks";
url = "vikunja:3456";
};
}; };
} }

View File

@@ -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 = {

View File

@@ -15,7 +15,7 @@ in {
}; };
imports = [ imports = [
./waybar.nix # ./waybar.nix
./fixes.nix ./fixes.nix
./dunst.nix ./dunst.nix
./rofi.nix ./rofi.nix

View 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;
};
};
};
}

View 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;
};
}

View 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'';
};
};
};
}

View 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;
}
'';
};
}

View File

@@ -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;

View File

@@ -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
]; ];

View File

@@ -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 = {

View 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
];
};
}

View File

@@ -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
]; ];
} }

View 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";
};
};
};
};
}

View File

@@ -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;
}; };
}; };
} }