Compare commits

...

34 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
4874017b4f updated inputs 2025-05-22 12:06:55 +02:00
37b631f68b Merge branch 'main' of ssh://gitea.xeovalyte.dev:2222/xeovalyte/nix 2025-05-22 11:24:58 +02:00
cc362f7b5b changed url's 2025-05-22 11:24:56 +02:00
47 changed files with 1083 additions and 375 deletions

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

454
flake.lock generated
View File

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

View File

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

View File

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

View File

@@ -13,6 +13,8 @@
};
settings = {
host = "p-th-rpi-01";
applications.common.enable = false;
applications.alacritty.enable = false;
applications.devenv.enable = false;

View File

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

View File

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

View File

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

View File

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

View File

@@ -13,6 +13,8 @@
};
settings = {
host = "ti-clt-tbl01";
applications.common.enable = true;
applications.alacritty.enable = false;
applications.devenv.enable = false;

View File

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

View File

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

View File

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

View File

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

View File

@@ -95,7 +95,6 @@ in {
insert = "bar";
};
editor.end-of-line-diagnostics = "hint";
editor.inline-diagnostics.cursor-line = "error";
};
languages = {
# 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 = {
"containers/beszel/key" = { };
};

View File

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

View File

@@ -28,5 +28,10 @@ in {
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";
};
};
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" {
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";
};
}
];

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'';
};
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";
};
};
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;
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 = {
"containers/paperless-ngx/db-password" = { };
"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 = {
"container-pingvin.yaml" = {
content = /*yaml*/ ''

View File

@@ -33,5 +33,10 @@ in {
"%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"
];
};
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 {
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";
};
};
}

View File

@@ -27,5 +27,11 @@ in {
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"
];
};
settings.containers.caddy.routes.tbmrs-local.routes.vikunja = {
host = "tasks";
url = "vikunja:3456";
};
};
}

View File

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

View File

@@ -15,7 +15,7 @@ in {
};
imports = [
./waybar.nix
# ./waybar.nix
./fixes.nix
./dunst.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

@@ -23,7 +23,7 @@ in {
font-awesome
dejavu_fonts
roboto
(nerdfonts.override { fonts = [ "DejaVuSansMono" ]; })
nerd-fonts.dejavu-sans-mono
];
};
}

View File

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

View File

@@ -24,6 +24,7 @@
./desktop-environments/cosmic.nix
./desktop-environments/hyprland.nix
./desktop-environments/gnome.nix
./desktop-environments/niri.nix
./display-managers/default.nix
];

View File

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

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

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 = import inputs.nixpkgs-unstable {
system = final.system;
config.allowUnfree = false;
config.allowUnfree = true;
};
};
}