Merge pull request #5 from chris-kruining/feature/migrate-to-snowfall
This commit is contained in:
commit
95c7cd6355
188 changed files with 3448 additions and 3982 deletions
19
LICENSE.md
Normal file
19
LICENSE.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
This is free and unencumbered software released into the public domain.
|
||||||
|
|
||||||
|
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
|
||||||
|
software, either in source code form or as a compiled binary, for any purpose,
|
||||||
|
commercial or non-commercial, and by any means.
|
||||||
|
|
||||||
|
In jurisdictions that recognize copyright laws, the author or authors of this
|
||||||
|
software dedicate any and all copyright interest in the software to the public
|
||||||
|
domain. We make this dedication for the benefit of the public at large and to
|
||||||
|
the detriment of our heirs and successors. We intend this dedication to be an
|
||||||
|
overt act of relinquishment in perpetuity of all present and future rights to
|
||||||
|
this software under copyright law.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
README.md
Normal file
21
README.md
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# My nix flake for my systems
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
### Show the output of the flake
|
||||||
|
|
||||||
|
```sh
|
||||||
|
nix flake show
|
||||||
|
```
|
||||||
|
|
||||||
|
### Create install iso
|
||||||
|
|
||||||
|
```sh
|
||||||
|
nix build .#install-isoConfigurations.minimal
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inpirations
|
||||||
|
|
||||||
|
- [dafitt/dotfiles](https://github.com/dafitt/dotfiles/)
|
||||||
|
- [khaneliman/khanelinix](https://github.com/khaneliman/khanelinix)
|
||||||
|
- [hmajid2301/nixicle](https://gitlab.com/hmajid2301/nixicle) (the GOAT, he did what I am aiming for!)
|
515
flake.lock
generated
515
flake.lock
generated
|
@ -37,11 +37,11 @@
|
||||||
"base16-helix": {
|
"base16-helix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748408240,
|
"lastModified": 1752979451,
|
||||||
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
|
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "base16-helix",
|
"repo": "base16-helix",
|
||||||
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
|
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -73,11 +73,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749911151,
|
"lastModified": 1753879613,
|
||||||
"narHash": "sha256-nQ+bDURW2sP3DdEPw5X0UsaHArDgzH2+gHdJAolurXU=",
|
"narHash": "sha256-oYhCJSAIZiu3maM2q6JBzh0+MYd4KTaq5eNFIstUurE=",
|
||||||
"owner": "emmanuelrosa",
|
"owner": "emmanuelrosa",
|
||||||
"repo": "erosanix",
|
"repo": "erosanix",
|
||||||
"rev": "2d1aef5159a5a67a14ae5903a6b5aa21af69faee",
|
"rev": "0ad38bd182cd737f0f4b878ea04cb3676ecd4000",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -94,11 +94,11 @@
|
||||||
"rust-analyzer-src": "rust-analyzer-src"
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750487788,
|
"lastModified": 1753944209,
|
||||||
"narHash": "sha256-79O83W9osY3wyvxZHqL0gw85tcACSX0TU5en3+dky/0=",
|
"narHash": "sha256-dcGdqxhRRGoA/S38BsWOrwIiLYEBOqXKauHdFwKR310=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "fenix",
|
"repo": "fenix",
|
||||||
"rev": "933bc78d45abaf764dbfe0fd117be981631f3e9a",
|
"rev": "5ef8607d6e8a08cfb3946aaacaa0494792adf4ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -114,11 +114,11 @@
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750004387,
|
"lastModified": 1753960679,
|
||||||
"narHash": "sha256-5NhN7NYyPI4q9hZhrVV3jN5Y/stVePUihGlclPT1K8c=",
|
"narHash": "sha256-q82/pjksNMev2AJqK1v38BcK29kB2f7yB2GTEsrlR2M=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "flake-firefox-nightly",
|
"repo": "flake-firefox-nightly",
|
||||||
"rev": "dd885d03a55568a59a9c2874c3b03098c078d9eb",
|
"rev": "c709bb72ee604949ff54df9519dc6cb0c6040007",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -191,12 +191,29 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_4": {
|
"flake-compat_4": {
|
||||||
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1747046372,
|
"lastModified": 1751685974,
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
||||||
|
"revCount": 92,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_5": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650374568,
|
||||||
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -207,14 +224,17 @@
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
"nixpkgs-lib": [
|
||||||
|
"nvf",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749398372,
|
"lastModified": 1753121425,
|
||||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -231,11 +251,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743550720,
|
"lastModified": 1751413152,
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -262,6 +282,25 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils-plus": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_4"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715533576,
|
||||||
|
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
|
@ -300,14 +339,14 @@
|
||||||
},
|
},
|
||||||
"flake-utils_4": {
|
"flake-utils_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1694529238,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -350,71 +389,41 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": [
|
|
||||||
"stylix",
|
|
||||||
"flake-compat"
|
|
||||||
],
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"stylix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1747372754,
|
|
||||||
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
|
||||||
"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": {
|
||||||
"lastModified": 1744584021,
|
"lastModified": 1748186689,
|
||||||
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
|
"narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
|
"rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "GNOME",
|
"owner": "GNOME",
|
||||||
"ref": "48.1",
|
"ref": "48.2",
|
||||||
"repo": "gnome-shell",
|
"repo": "gnome-shell",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"grub2-themes": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_4"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1753279958,
|
||||||
|
"narHash": "sha256-EJ1udnwKYgWeAJzncAccbLPtbSWiuIANryXTGI9nY6w=",
|
||||||
|
"owner": "vinceliuice",
|
||||||
|
"repo": "grub2-themes",
|
||||||
|
"rev": "6c26f99622cb1c705b3fe2dbe1eb88521096b25a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vinceliuice",
|
||||||
|
"repo": "grub2-themes",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"himmelblau": {
|
"himmelblau": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
|
@ -423,16 +432,15 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750450607,
|
"lastModified": 1753902883,
|
||||||
"narHash": "sha256-z+sZbYISN46VKCawV8iBuwE3Cw6DoSZd5KXYrxBYbF0=",
|
"narHash": "sha256-F7IUdBe//PDtcztUdu3XYxzJuKbYip6TwIRWLdrftO0=",
|
||||||
"owner": "himmelblau-idm",
|
"owner": "himmelblau-idm",
|
||||||
"repo": "himmelblau",
|
"repo": "himmelblau",
|
||||||
"rev": "5dc066cc063ea857f8c8b3dc524c83eb09dc0548",
|
"rev": "d01709bf0100183045927c03b90db78fb8e40bda",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "himmelblau-idm",
|
"owner": "himmelblau-idm",
|
||||||
"ref": "main",
|
|
||||||
"repo": "himmelblau",
|
"repo": "himmelblau",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -444,32 +452,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750304462,
|
"lastModified": 1753943136,
|
||||||
"narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=",
|
"narHash": "sha256-eiEE5SabVcIlGSTRcRyBjmJMaYAV95SJnjy8YSsVeW4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c",
|
"rev": "bd82507edd860c453471c46957cbbe3c9fd01b5c",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"stylix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1748737919,
|
|
||||||
"narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "5675a9686851d9626560052a032c4e14e533c1fa",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -486,11 +473,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750403547,
|
"lastModified": 1753938227,
|
||||||
"narHash": "sha256-XDDINMbHTtKQeSRpX5mwq20z23Wg/I/G4JUinA3V8Xg=",
|
"narHash": "sha256-KzjI9khMC2tOL5FClh3sHq8Gax1O5Rw0bH1hvJ3FU3E=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "52b86b86d925ec00c836ecc6d36f9c947bb15736",
|
"rev": "8d1f0004594e0eddc00159ad7666e669a6bcb711",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -505,11 +492,11 @@
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749989692,
|
"lastModified": 1753618592,
|
||||||
"narHash": "sha256-ojISk2CXljR3qIgwgZh4iNzP3W2H3zGH49xWTJARkoM=",
|
"narHash": "sha256-9sDACkrSbZOA1srKWQzvbkBFHZeXvHW8EYpWrVZPxDg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "lib-aggregate",
|
"repo": "lib-aggregate",
|
||||||
"rev": "cae85629e70ce05b968757f3af8f2f2b3923d080",
|
"rev": "81b2f78680ca3864bfdc0d4cbc3444af3e1ff271",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -533,27 +520,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nil": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nvf",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1750047244,
|
|
||||||
"narHash": "sha256-vluLARrk4485npdyHOj8XKr0yk6H22pNf+KVRNL+i/Y=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "nil",
|
|
||||||
"rev": "870a4b1b5f12004832206703ac15aa85c42c247b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "nil",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-github-actions": {
|
"nix-github-actions": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -580,14 +546,14 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_3",
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750471420,
|
"lastModified": 1753928630,
|
||||||
"narHash": "sha256-NdmGCaMJH1OxOpscofZ61aqzHfVf8pMXtl9XFO/1T0k=",
|
"narHash": "sha256-ASqyvmJ2EEUCyDJGMHRQ1ZqWnCd4SiVd7hi7dGBuSvw=",
|
||||||
"owner": "Infinidoge",
|
"owner": "Infinidoge",
|
||||||
"repo": "nix-minecraft",
|
"repo": "nix-minecraft",
|
||||||
"rev": "c2cda7b9a94779abe0632ac5b64207df002fea40",
|
"rev": "30af81148ee29a4a13c938c25d3e68877b1b27fb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -596,6 +562,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixlib": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736643958,
|
||||||
|
"narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-boot": {
|
"nixos-boot": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722927293,
|
"lastModified": 1722927293,
|
||||||
|
@ -611,13 +592,55 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixos-generators": {
|
||||||
|
"inputs": {
|
||||||
|
"nixlib": "nixlib",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751903740,
|
||||||
|
"narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-generators",
|
||||||
|
"rev": "032decf9db65efed428afd2fa39d80f7089085eb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-generators",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-wsl": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1753704990,
|
||||||
|
"narHash": "sha256-5E14xuNWy2Un1nFR55k68hgbnD8U2x/rE5DXJtYKusw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-wsl",
|
||||||
|
"rev": "58c814cc6d4a789191f9c12e18277107144b0c91",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-wsl",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748359502,
|
"lastModified": 1751186460,
|
||||||
"narHash": "sha256-nnY29OR2nFG9NxF0eN0XemmJx8bpMdoRwvQt8PnI0Uw=",
|
"narHash": "sha256-tSnI50oYaXOi/SFUmJC+gZ2xE9pAhTnV0D2/3JoKL7g=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "502151620cdde8fda50f1f05706caae833379754",
|
"rev": "dd5540905b1a13176efa13fa2f8dac776bcb275a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -629,11 +652,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749950217,
|
"lastModified": 1753579242,
|
||||||
"narHash": "sha256-qXoEFKOnznVvMAKezJhSXzRKsJ/LHLRY8NCw1mGhwrU=",
|
"narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "753176a8605439613fc6dc9911267b9f720a2615",
|
"rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -642,28 +665,29 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib_2": {
|
"nixpkgs_10": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748740939,
|
"lastModified": 1727348695,
|
||||||
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
|
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
||||||
"owner": "nix-community",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs",
|
||||||
"rev": "656a64127e9d791a334452c6b6606d17539476e2",
|
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs.lib",
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749896453,
|
"lastModified": 1753948617,
|
||||||
"narHash": "sha256-6+AmSZBogyr1zbVc2k4IBcmY/Yt39mC4+cfZi0n/AAA=",
|
"narHash": "sha256-68ounbeMLJTO/Igq0rEqjldNReb/r2gR9zgLU2qiH7A=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ba48a1f6ce571455cb631dee840c6cd401ea4adb",
|
"rev": "4f1a1d0af135001efc1a58c8f31ede7bb1045874",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -690,6 +714,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1753965693,
|
||||||
|
"narHash": "sha256-ks84bo0xIjUdRJGqLHQTyXR5OGb+8zUQg+XarbSEtrw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "113bb8d5ca48dc31c62835b5fafed82092d87a91",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748929857,
|
"lastModified": 1748929857,
|
||||||
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
|
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
|
||||||
|
@ -705,13 +745,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750365781,
|
"lastModified": 1753694789,
|
||||||
"narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=",
|
"narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54",
|
"rev": "dc9637876d0dcc8c9e5e22986b857632effeb727",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -721,13 +761,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750215678,
|
"lastModified": 1753432016,
|
||||||
"narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=",
|
"narHash": "sha256-cnL5WWn/xkZoyH/03NNUS7QgW5vI7D1i74g48qplCvg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5395fb3ab3f97b9b7abca147249fa2e8ed27b192",
|
"rev": "6027c30c8e9810896b92429f0092f624f7b1aace",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -737,7 +777,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744868846,
|
"lastModified": 1744868846,
|
||||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
||||||
|
@ -753,33 +793,17 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1748460289,
|
|
||||||
"narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_9": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727348695,
|
"lastModified": 1751792365,
|
||||||
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
|
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
|
@ -794,15 +818,14 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"stylix",
|
"stylix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748730660,
|
"lastModified": 1751906969,
|
||||||
"narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=",
|
"narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb",
|
"rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -813,19 +836,18 @@
|
||||||
},
|
},
|
||||||
"nvf": {
|
"nvf": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_4",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"flake-utils": "flake-utils_4",
|
|
||||||
"mnw": "mnw",
|
"mnw": "mnw",
|
||||||
"nil": "nil",
|
"nixpkgs": "nixpkgs_7",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"systems": "systems_4"
|
||||||
"systems": "systems_5"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750441488,
|
"lastModified": 1753878721,
|
||||||
"narHash": "sha256-JuFBp2xM4JD/XGb69dTSDOdGbUD0fVHlgY9X9GHGTFE=",
|
"narHash": "sha256-Y+Kr6FTHggnZ31nhaiOhIboIi+dhnLmQ9p0xf0wwnDc=",
|
||||||
"owner": "notashelf",
|
"owner": "notashelf",
|
||||||
"repo": "nvf",
|
"repo": "nvf",
|
||||||
"rev": "18c17b7b8dbf6e0f10e3eb5f1fa5341a9175a3b1",
|
"rev": "e35a74c44a35b28fd09f136dd3c0dbe9f300258f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -863,14 +885,18 @@
|
||||||
"fenix": "fenix",
|
"fenix": "fenix",
|
||||||
"firefox": "firefox",
|
"firefox": "firefox",
|
||||||
"flux": "flux",
|
"flux": "flux",
|
||||||
|
"grub2-themes": "grub2-themes",
|
||||||
"himmelblau": "himmelblau",
|
"himmelblau": "himmelblau",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"jovian": "jovian",
|
"jovian": "jovian",
|
||||||
"nix-minecraft": "nix-minecraft",
|
"nix-minecraft": "nix-minecraft",
|
||||||
"nixos-boot": "nixos-boot",
|
"nixos-boot": "nixos-boot",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixos-generators": "nixos-generators",
|
||||||
|
"nixos-wsl": "nixos-wsl",
|
||||||
|
"nixpkgs": "nixpkgs_6",
|
||||||
"nvf": "nvf",
|
"nvf": "nvf",
|
||||||
"plasma-manager": "plasma-manager",
|
"plasma-manager": "plasma-manager",
|
||||||
|
"snowfall-lib": "snowfall-lib",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
|
@ -879,11 +905,11 @@
|
||||||
"rust-analyzer-src": {
|
"rust-analyzer-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750405264,
|
"lastModified": 1753838657,
|
||||||
"narHash": "sha256-EMFKnO+J3dZOa9J+uiKZgHYgzALv9dqxY7NHV0DbO/U=",
|
"narHash": "sha256-4FA7NTmrAqW5yt4A3hhzgDmAFD0LbGRMGKhb1LBSItI=",
|
||||||
"owner": "rust-lang",
|
"owner": "rust-lang",
|
||||||
"repo": "rust-analyzer",
|
"repo": "rust-analyzer",
|
||||||
"rev": "b0552d779f7137c76f109666ce0ad28395c0e582",
|
"rev": "8611b714597c89b092f3d4874f14acd3f72f44fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -893,16 +919,38 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sops-nix": {
|
"snowfall-lib": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7"
|
"flake-compat": "flake-compat_5",
|
||||||
|
"flake-utils-plus": "flake-utils-plus",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750119275,
|
"lastModified": 1736130495,
|
||||||
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
|
"narHash": "sha256-4i9nAJEZFv7vZMmrE0YG55I3Ggrtfo5/T07JEpEZ/RM=",
|
||||||
|
"owner": "snowfallorg",
|
||||||
|
"repo": "lib",
|
||||||
|
"rev": "02d941739f98a09e81f3d2d9b3ab08918958beac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "snowfallorg",
|
||||||
|
"repo": "lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sops-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_8"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752544651,
|
||||||
|
"narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
|
"rev": "2c8def626f54708a9c38a5861866660395bb3461",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -918,12 +966,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_4",
|
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"home-manager": "home-manager_2",
|
"nixpkgs": "nixpkgs_9",
|
||||||
"nixpkgs": "nixpkgs_8",
|
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"systems": "systems_6",
|
"systems": "systems_6",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
|
@ -933,15 +978,15 @@
|
||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750527172,
|
"lastModified": 1753919664,
|
||||||
"narHash": "sha256-ATl7gK98w27JaXzidK48YlG4o+mtfvyHu9zKuadE6j0=",
|
"narHash": "sha256-U7Ts8VbVD4Z6n67gFx00dkpQJu27fMu173IUopX3pNI=",
|
||||||
"owner": "danth",
|
"owner": "nix-community",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "27721407de0615e927c84f7c23277628e1d12b67",
|
"rev": "30f5022236cf8dd257941cb0f910e198e7e464c7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "danth",
|
"owner": "nix-community",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -1072,11 +1117,11 @@
|
||||||
"tinted-schemes": {
|
"tinted-schemes": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748180480,
|
"lastModified": 1750770351,
|
||||||
"narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=",
|
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "schemes",
|
"repo": "schemes",
|
||||||
"rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31",
|
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1088,11 +1133,11 @@
|
||||||
"tinted-tmux": {
|
"tinted-tmux": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748740859,
|
"lastModified": 1751159871,
|
||||||
"narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=",
|
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
|
||||||
"owner": "tinted-theming",
|
"owner": "tinted-theming",
|
||||||
"repo": "tinted-tmux",
|
"repo": "tinted-tmux",
|
||||||
"rev": "57d5f9683ff9a3b590643beeaf0364da819aedda",
|
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1104,11 +1149,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": {
|
||||||
|
@ -1117,31 +1162,9 @@
|
||||||
"type": "github"
|
"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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_9"
|
"nixpkgs": "nixpkgs_10"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727721329,
|
"lastModified": 1727721329,
|
||||||
|
|
88
flake.nix
88
flake.nix
|
@ -4,6 +4,11 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
snowfall-lib = {
|
||||||
|
url = "github:snowfallorg/lib";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -15,14 +20,22 @@
|
||||||
inputs.home-manager.follows = "home-manager";
|
inputs.home-manager.follows = "home-manager";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixos-generators = {
|
||||||
|
url = "github:nix-community/nixos-generators";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
# neovim
|
||||||
nvf.url = "github:notashelf/nvf";
|
nvf.url = "github:notashelf/nvf";
|
||||||
|
|
||||||
|
# plymouth theme
|
||||||
nixos-boot.url = "github:Melkor333/nixos-boot";
|
nixos-boot.url = "github:Melkor333/nixos-boot";
|
||||||
|
|
||||||
firefox.url = "github:nix-community/flake-firefox-nightly";
|
firefox.url = "github:nix-community/flake-firefox-nightly";
|
||||||
|
|
||||||
stylix.url = "github:danth/stylix";
|
stylix.url = "github:nix-community/stylix";
|
||||||
|
|
||||||
|
# Rust toolchain
|
||||||
fenix = {
|
fenix = {
|
||||||
url = "github:nix-community/fenix";
|
url = "github:nix-community/fenix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -36,53 +49,64 @@
|
||||||
|
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
|
||||||
|
# Azure AD for linux
|
||||||
himmelblau = {
|
himmelblau = {
|
||||||
url = "github:himmelblau-idm/himmelblau/main";
|
url = "github:himmelblau-idm/himmelblau";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# windows app utilities
|
||||||
erosanix.url = "github:emmanuelrosa/erosanix";
|
erosanix.url = "github:emmanuelrosa/erosanix";
|
||||||
|
|
||||||
|
# Steam deck stuff
|
||||||
jovian = {
|
jovian = {
|
||||||
url = "github:Jovian-Experiments/Jovian-NixOS";
|
url = "github:Jovian-Experiments/Jovian-NixOS";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
grub2-themes = {
|
||||||
|
url = "github:vinceliuice/grub2-themes";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ { self, nixpkgs, nix-minecraft, flux, ... }:
|
nixos-wsl = {
|
||||||
let
|
url = "github:nix-community/nixos-wsl";
|
||||||
inherit (lib.my) readNixosModules mapHosts;
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
system = "x86_64-linux";
|
flake-compat.follows = "";
|
||||||
|
|
||||||
mkPkgs = pkgs: extraOverlays:
|
|
||||||
import pkgs {
|
|
||||||
inherit system;
|
|
||||||
config.allowUnfree = true;
|
|
||||||
overlays = extraOverlays ++ (lib.attrValues self.overlays);
|
|
||||||
};
|
};
|
||||||
pkgs = mkPkgs nixpkgs [self.overlays.default nix-minecraft.overlay flux.overlays.default];
|
|
||||||
|
|
||||||
lib = nixpkgs.lib.extend (final: prev: {
|
|
||||||
my = import ./lib {
|
|
||||||
inherit pkgs inputs;
|
|
||||||
|
|
||||||
lib = final;
|
|
||||||
};
|
|
||||||
});
|
|
||||||
in
|
|
||||||
{
|
|
||||||
lib = lib.my;
|
|
||||||
|
|
||||||
overlays = {
|
|
||||||
default = final: prev: {
|
|
||||||
my = self.packages.${system};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
packages."${system}" = lib.my.mapModules ./packages (p: pkgs.callPackage p { inherit inputs; });
|
outputs = inputs: inputs.snowfall-lib.mkFlake {
|
||||||
|
inherit inputs;
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
nixosModules = readNixosModules ./modules import;
|
snowfall = {
|
||||||
nixosConfigurations = mapHosts ./hosts {};
|
namespace = "sneeuwvlok";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
name = "sneeuwvlok";
|
||||||
|
title = "Sneeuwvlok";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
channels-config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"dotnet-sdk-6.0.428"
|
||||||
|
"aspnetcore-runtime-6.0.36"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
overlays = with inputs; [
|
||||||
|
fenix.overlays.default
|
||||||
|
nix-minecraft.overlay
|
||||||
|
flux.overlays.default
|
||||||
|
];
|
||||||
|
|
||||||
|
homes.modules = with inputs; [
|
||||||
|
stylix.homeModules.stylix
|
||||||
|
plasma-manager.homeManagerModules.plasma-manager
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
35
homes/x86_64-linux/chris@mandos/default.nix
Normal file
35
homes/x86_64-linux/chris@mandos/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ osConfig, ... }:
|
||||||
|
{
|
||||||
|
home.stateVersion = osConfig.system.stateVersion;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
userName = "Chris Kruining";
|
||||||
|
userEmail = "chris@kruining.eu";
|
||||||
|
};
|
||||||
|
|
||||||
|
sneeuwvlok = {
|
||||||
|
defaults = {
|
||||||
|
shell = "zsh";
|
||||||
|
terminal = "ghostty";
|
||||||
|
browser = "zen";
|
||||||
|
editor = "zed";
|
||||||
|
};
|
||||||
|
|
||||||
|
shell = {
|
||||||
|
corePkgs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
themes = {
|
||||||
|
enable = true;
|
||||||
|
theme = "everforest";
|
||||||
|
polarity = "dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
application = {
|
||||||
|
bitwarden.enable = true;
|
||||||
|
teamspeak.enable = true;
|
||||||
|
steam.enable = true;
|
||||||
|
zen.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
57
homes/x86_64-linux/chris@manwe/default.nix
Normal file
57
homes/x86_64-linux/chris@manwe/default.nix
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
{ osConfig, ... }:
|
||||||
|
{
|
||||||
|
home.stateVersion = osConfig.system.stateVersion;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
userName = "Chris Kruining";
|
||||||
|
userEmail = "chris@kruining.eu";
|
||||||
|
};
|
||||||
|
|
||||||
|
sneeuwvlok = {
|
||||||
|
defaults = {
|
||||||
|
shell = "zsh";
|
||||||
|
terminal = "ghostty";
|
||||||
|
browser = "zen";
|
||||||
|
editor = "zed";
|
||||||
|
};
|
||||||
|
|
||||||
|
shell = {
|
||||||
|
corePkgs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
themes = {
|
||||||
|
enable = true;
|
||||||
|
theme = "everforest";
|
||||||
|
polarity = "dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
development = {
|
||||||
|
rust.enable = true;
|
||||||
|
javascript.enable = true;
|
||||||
|
dotnet.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
application = {
|
||||||
|
bitwarden.enable = true;
|
||||||
|
discord.enable = true;
|
||||||
|
ladybird.enable = true;
|
||||||
|
obs.enable = true;
|
||||||
|
onlyoffice.enable = true;
|
||||||
|
signal.enable = true;
|
||||||
|
steam.enable = true;
|
||||||
|
studio.enable = true;
|
||||||
|
teamspeak.enable = true;
|
||||||
|
thunderbird.enable = true;
|
||||||
|
zen.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
shell.zsh.enable = true;
|
||||||
|
terminal.ghostty.enable = true;
|
||||||
|
|
||||||
|
editor = {
|
||||||
|
zed.enable = true;
|
||||||
|
nvim.enable = true;
|
||||||
|
nano.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
48
homes/x86_64-linux/chris@orome/default.nix
Normal file
48
homes/x86_64-linux/chris@orome/default.nix
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{ osConfig, ... }:
|
||||||
|
{
|
||||||
|
home.stateVersion = osConfig.system.stateVersion;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
userName = "Chris Kruining";
|
||||||
|
userEmail = "chris@kruining.eu";
|
||||||
|
};
|
||||||
|
|
||||||
|
sneeuwvlok = {
|
||||||
|
defaults = {
|
||||||
|
shell = "zsh";
|
||||||
|
terminal = "ghostty";
|
||||||
|
browser = "zen";
|
||||||
|
editor = "zed";
|
||||||
|
};
|
||||||
|
|
||||||
|
shell = {
|
||||||
|
corePkgs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
themes = {
|
||||||
|
enable = true;
|
||||||
|
theme = "everforest";
|
||||||
|
polarity = "dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
development = {
|
||||||
|
javascript.enable = true;
|
||||||
|
dotnet.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
application = {
|
||||||
|
bitwarden.enable = true;
|
||||||
|
onlyoffice.enable = true;
|
||||||
|
signal.enable = true;
|
||||||
|
zen.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
shell.zsh.enable = true;
|
||||||
|
terminal.ghostty.enable = true;
|
||||||
|
|
||||||
|
editor = {
|
||||||
|
zed.enable = true;
|
||||||
|
nano.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
35
homes/x86_64-linux/chris@tulkas/default.nix
Normal file
35
homes/x86_64-linux/chris@tulkas/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ osConfig, ... }:
|
||||||
|
{
|
||||||
|
home.stateVersion = osConfig.system.stateVersion;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
userName = "Chris Kruining";
|
||||||
|
userEmail = "chris@kruining.eu";
|
||||||
|
};
|
||||||
|
|
||||||
|
sneeuwvlok = {
|
||||||
|
defaults = {
|
||||||
|
shell = "zsh";
|
||||||
|
terminal = "ghostty";
|
||||||
|
browser = "zen";
|
||||||
|
editor = "zed";
|
||||||
|
};
|
||||||
|
|
||||||
|
shell = {
|
||||||
|
corePkgs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
themes = {
|
||||||
|
enable = true;
|
||||||
|
theme = "everforest";
|
||||||
|
polarity = "dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
application = {
|
||||||
|
bitwarden.enable = true;
|
||||||
|
teamspeak.enable = true;
|
||||||
|
steam.enable = true;
|
||||||
|
zen.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
# Description
|
|
||||||
|
|
||||||
My desktop, reasoning for the name being the following chain of thought:
|
|
||||||
**Mandos -> brother of manwe -> manwe used to be main pc, now mandos is**
|
|
|
@ -1,33 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
fileSystems = {
|
|
||||||
"/home/chris/media" = {
|
|
||||||
device = "ulmo:/";
|
|
||||||
fsType = "nfs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.ventoy-full-qt ];
|
|
||||||
permittedInsecurePackages = [ "ventoy-qt5-1.1.05"];
|
|
||||||
boot.supportedFilesystems = [ "nfs" ];
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
boot = {
|
|
||||||
silentBoot = true;
|
|
||||||
animatedBoot = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.audio.enable = true;
|
|
||||||
|
|
||||||
root = {
|
|
||||||
user = {
|
|
||||||
full_name = "__ROOT__";
|
|
||||||
email = "__ROOT__@${config.networking.hostName}";
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkDefault;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
fileSystems = {
|
|
||||||
"/" ={
|
|
||||||
device = "/dev/disk/by-uuid/8c4eaf57-fdb2-4c4c-bcc0-74e85a1c7985";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/C842-316A";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{ device = "/dev/disk/by-uuid/0ddf001a-5679-482e-b254-04a1b9094794"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
|
||||||
initrd.kernelModules = [ ];
|
|
||||||
kernelModules = [ "kvm-amd" ];
|
|
||||||
kernelParams = [];
|
|
||||||
extraModulePackages = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
user = {
|
|
||||||
full_name = "Chris Kruining";
|
|
||||||
email = "chris@kruining.eu";
|
|
||||||
is_trusted = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
themes = {
|
|
||||||
enable = true;
|
|
||||||
theme = "everforest";
|
|
||||||
polarity = "dark";
|
|
||||||
};
|
|
||||||
|
|
||||||
develop = {
|
|
||||||
rust.enable = true;
|
|
||||||
js.enable = true;
|
|
||||||
dotnet.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop = {
|
|
||||||
plasma = {
|
|
||||||
enable = true;
|
|
||||||
autoLogin = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
applications = {
|
|
||||||
communication.enable = true;
|
|
||||||
email.enable = true;
|
|
||||||
office.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
recording.enable = true;
|
|
||||||
studio.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
terminal = {
|
|
||||||
default = "ghostty";
|
|
||||||
alacritty.enable = true;
|
|
||||||
ghostty.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
editors = {
|
|
||||||
default = "zed";
|
|
||||||
vscodium.enable = true;
|
|
||||||
zed.enable = true;
|
|
||||||
nvim.enable = true;
|
|
||||||
nano.enable = true;
|
|
||||||
kate.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
browsers = {
|
|
||||||
default = "chromium";
|
|
||||||
chrome.enable = true;
|
|
||||||
ladybird.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
games = {
|
|
||||||
minecraft.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
fileSystems = {
|
|
||||||
"/home/chris/games" = {
|
|
||||||
device = "/dev/disk/by-label/games";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/home/chris/data" = {
|
|
||||||
device = "/dev/disk/by-label/Data";
|
|
||||||
fsType = "ntfs-3g";
|
|
||||||
options = [ "rw" "uid=chris" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
boot = {
|
|
||||||
silentBoot = true;
|
|
||||||
animatedBoot = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop.gaming.enable = true;
|
|
||||||
|
|
||||||
system.audio.enable = true;
|
|
||||||
|
|
||||||
root = {
|
|
||||||
user = {
|
|
||||||
full_name = "__ROOT__";
|
|
||||||
email = "__ROOT__@${config.networking.hostName}";
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkDefault;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
fileSystems = {
|
|
||||||
"/" ={
|
|
||||||
device = "/dev/disk/by-uuid/8c4eaf57-fdb2-4c4c-bcc0-74e85a1c7985";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/C842-316A";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{ device = "/dev/disk/by-uuid/0ddf001a-5679-482e-b254-04a1b9094794"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
|
||||||
initrd.kernelModules = [ ];
|
|
||||||
kernelModules = [ "kvm-intel" ];
|
|
||||||
kernelParams = [];
|
|
||||||
extraModulePackages = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
user = {
|
|
||||||
full_name = "Chris Kruining";
|
|
||||||
email = "chris@kruining.eu";
|
|
||||||
is_trusted = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
themes = {
|
|
||||||
enable = true;
|
|
||||||
theme = "everforest";
|
|
||||||
polarity = "dark";
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop = {
|
|
||||||
plasma = {
|
|
||||||
enable = true;
|
|
||||||
autoLogin = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
applications = {
|
|
||||||
steam.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
terminal = {
|
|
||||||
default = "ghostty";
|
|
||||||
ghostty.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
editors = {
|
|
||||||
default = "nano";
|
|
||||||
nano.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
browsers = {
|
|
||||||
default = "chromium";
|
|
||||||
chrome.enable = true;
|
|
||||||
ladybird.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
modules = {
|
|
||||||
system.audio.enable = true;
|
|
||||||
system.bluetooth.enable = true;
|
|
||||||
|
|
||||||
authentication.himmelblau.enable = true;
|
|
||||||
|
|
||||||
root = {
|
|
||||||
user = {
|
|
||||||
full_name = "__ROOT__";
|
|
||||||
email = "__ROOT__@${config.networking.hostName}";
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
user = {
|
|
||||||
full_name = "Chris Kruining";
|
|
||||||
email = "chris@kruining.eu";
|
|
||||||
is_trusted = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
themes = {
|
|
||||||
enable = true;
|
|
||||||
theme = "everforest";
|
|
||||||
polarity = "dark";
|
|
||||||
};
|
|
||||||
|
|
||||||
develop = {
|
|
||||||
rust.enable = true;
|
|
||||||
js.enable = true;
|
|
||||||
dotnet.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop = {
|
|
||||||
plasma = {
|
|
||||||
enable = true;
|
|
||||||
autoLogin = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
applications = {
|
|
||||||
communication.enable = true;
|
|
||||||
email.enable = true;
|
|
||||||
office.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
terminal = {
|
|
||||||
default = "ghostty";
|
|
||||||
ghostty.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
editors = {
|
|
||||||
default = "zed";
|
|
||||||
vscodium.enable = true;
|
|
||||||
zed.enable = true;
|
|
||||||
nvim.enable = true;
|
|
||||||
nano.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
browsers = {
|
|
||||||
default = "chromium";
|
|
||||||
firefox.enable = true;
|
|
||||||
chrome.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ lib, config, ... }:let
|
|
||||||
inherit (lib) mkForce;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
modules = {
|
|
||||||
system.audio.enable = true;
|
|
||||||
|
|
||||||
desktop.gaming.enable = true;
|
|
||||||
|
|
||||||
root = {
|
|
||||||
user = {
|
|
||||||
full_name = "__ROOT__";
|
|
||||||
email = "__ROOT__@${config.networking.hostName}";
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
toolset.git.enable = mkForce false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{ config, lib, modulesPath, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkDefault;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/aa438c4c-d193-436b-91ca-c386c0688265";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/89B8-0702";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{ device = "/dev/disk/by-uuid/beddca5c-1ecc-4a46-9fc5-fd918eed8f2a"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
|
|
||||||
initrd.kernelModules = [ ];
|
|
||||||
kernelModules = [ "kvm-amd" ];
|
|
||||||
kernelParams = [];
|
|
||||||
extraModulePackages = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
{ lib, ... }: let
|
|
||||||
inherit (lib) mkForce;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
user = {
|
|
||||||
full_name = "Chris Kruining";
|
|
||||||
email = "chris@kruining.eu";
|
|
||||||
is_trusted = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
themes = {
|
|
||||||
enable = true;
|
|
||||||
theme = "everforest";
|
|
||||||
polarity = "dark";
|
|
||||||
};
|
|
||||||
|
|
||||||
desktop = {
|
|
||||||
terminal = {
|
|
||||||
default = "ghostty";
|
|
||||||
ghostty.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
editors = {
|
|
||||||
default = "nano";
|
|
||||||
nano.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
toolset.git.enable = mkForce false;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
# Description
|
|
||||||
|
|
||||||
My current server, reasoning for the name being the following chain of thought:
|
|
||||||
**Ulmo -> the king of the sea -> the sea provides -> services are provided -> server runs services**
|
|
|
@ -1,34 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
config = {
|
|
||||||
fileSystems."/var/media" = {
|
|
||||||
device = "/dev/disk/by-label/data";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
networking = {
|
|
||||||
ssh.enable = true;
|
|
||||||
nfs.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
auth.authelia.enable = true;
|
|
||||||
auth.zitadel.enable = true;
|
|
||||||
media.enable = true;
|
|
||||||
nextcloud.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
root = {
|
|
||||||
user = {
|
|
||||||
full_name = "__ROOT__";
|
|
||||||
email = "__ROOT__@${config.networking.hostName}";
|
|
||||||
};
|
|
||||||
|
|
||||||
shell = {
|
|
||||||
default = "zsh";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.lists) any count;
|
|
||||||
inherit (lib.attrsets) filterAttrs listToAttrs mapAttrs' mapAttrsToList;
|
|
||||||
in rec
|
|
||||||
{
|
|
||||||
attrsToList = attrs:
|
|
||||||
mapAttrsToList (name: value: { inherit name value; }) attrs;
|
|
||||||
|
|
||||||
mapFilterAttrs = pred: f: attrs:
|
|
||||||
filterAttrs pred (mapAttrs' f attrs);
|
|
||||||
|
|
||||||
getAttrs' = values: f:
|
|
||||||
listToAttrs (map f values);
|
|
||||||
|
|
||||||
anyAttrs = pred: attrs:
|
|
||||||
any (attr: pred attr.name attr.value) (attrsToList attrs);
|
|
||||||
|
|
||||||
countAttrs = pred: attrs:
|
|
||||||
count (attr: pred attr.name attr.value) (attrsToList attrs);
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ inputs, lib, pkgs, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
inherit (lib.fixedPoints) makeExtensible;
|
|
||||||
inherit (lib.lists) foldr;
|
|
||||||
inherit (modules) mapModules;
|
|
||||||
|
|
||||||
modules = import ./modules.nix {
|
|
||||||
inherit lib;
|
|
||||||
|
|
||||||
self.attrs = import ./attrs.nix {
|
|
||||||
inherit lib;
|
|
||||||
|
|
||||||
self = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mylib = makeExtensible (self:
|
|
||||||
mapModules ./. (file: import file { inherit self lib pkgs inputs; })
|
|
||||||
);
|
|
||||||
in
|
|
||||||
mylib.extend (self: super: foldr (a: b: a // b) {} (attrValues super))
|
|
|
@ -1,52 +0,0 @@
|
||||||
{ lib, self, ... }:
|
|
||||||
let
|
|
||||||
inherit (builtins) attrValues readDir pathExists concatLists replaceStrings listToAttrs;
|
|
||||||
inherit (lib.attrsets) mapAttrsToList filterAttrs nameValuePair;
|
|
||||||
inherit (lib.strings) hasPrefix hasSuffix removeSuffix removePrefix;
|
|
||||||
inherit (lib.trivial) id;
|
|
||||||
inherit (lib) flatten;
|
|
||||||
inherit (self.attrs) mapFilterAttrs;
|
|
||||||
in rec
|
|
||||||
{
|
|
||||||
mapModules = dir: fn:
|
|
||||||
mapFilterAttrs (n: v: v != null && !(hasPrefix "_" n)) (n: v: let path = "${toString dir}/${n}"; in
|
|
||||||
if v == "directory" && pathExists "${path}/default.nix"
|
|
||||||
then nameValuePair n (fn path)
|
|
||||||
else if v == "regular" && n != "default.nix" && hasSuffix ".nix" n && !(hasPrefix "_" n)
|
|
||||||
then nameValuePair (removeSuffix ".nix" n) (fn path)
|
|
||||||
else nameValuePair "" null
|
|
||||||
) (readDir dir);
|
|
||||||
|
|
||||||
mapModules' = dir: fn: attrValues (mapModules dir fn);
|
|
||||||
|
|
||||||
mapModulesRec = dir: fn:
|
|
||||||
mapFilterAttrs (n: v: v != null && !(hasPrefix "_" n)) (n: v: let path = "${toString dir}/${n}"; in
|
|
||||||
if v == "directory" && pathExists "${path}/default.nix"
|
|
||||||
then nameValuePair n (mapModulesRec path fn)
|
|
||||||
else if v == "regular" && n != "default.nix" && hasSuffix ".nix" n
|
|
||||||
then nameValuePair (removeSuffix ".nix" n) (fn path)
|
|
||||||
else nameValuePair "" null
|
|
||||||
) (readDir dir);
|
|
||||||
|
|
||||||
mapModulesRec' = dir: fn: let
|
|
||||||
dirs = mapAttrsToList (k: _: "${dir}/${k}") (filterAttrs (n: v: v == "directory" && !(hasPrefix "_" n)) (readDir dir));
|
|
||||||
files = attrValues (mapModules dir id);
|
|
||||||
paths = files ++ concatLists (map (d: mapModulesRec' d id) dirs);
|
|
||||||
in
|
|
||||||
map fn paths;
|
|
||||||
|
|
||||||
readNixosModules = dir: fn: filterAttrs (name: value: value != null && !(hasPrefix "_" name)) (listToAttrs (flatten (readDirRecursive fn dir "")));
|
|
||||||
|
|
||||||
readDirRecursive = fn: root: dir: mapAttrsToList (name: type:
|
|
||||||
if type == "directory" && pathExists "${root}/${dir}/${name}/default.nix"
|
|
||||||
then [
|
|
||||||
(nameValuePair "${replaceStrings ["/"] ["_"] (removePrefix "/" dir)}_${name}" (fn "${root}/${dir}/${name}/default.nix"))
|
|
||||||
(readDirRecursive fn root "${dir}/${name}")
|
|
||||||
]
|
|
||||||
else if type == "directory"
|
|
||||||
then readDirRecursive fn root "${dir}/${name}"
|
|
||||||
else if type == "regular" && name != "default.nix" && hasSuffix ".nix" name
|
|
||||||
then nameValuePair "${replaceStrings ["/"] ["_"] (removePrefix "/" dir)}_${removeSuffix ".nix" name}" (fn "${root}/${dir}/${name}")
|
|
||||||
else nameValuePair "" null
|
|
||||||
) (readDir "${root}/${dir}");
|
|
||||||
}
|
|
|
@ -1,73 +0,0 @@
|
||||||
{ inputs, lib, pkgs, self, ... }: let
|
|
||||||
inherit (inputs.nixpkgs.lib) nixosSystem;
|
|
||||||
inherit (builtins) baseNameOf elem map listToAttrs pathExists;
|
|
||||||
inherit (lib) filterAttrs nameValuePair attrNames;
|
|
||||||
inherit (lib.modules) mkDefault mkIf;
|
|
||||||
inherit (lib.strings) removeSuffix;
|
|
||||||
inherit (self.modules) mapModules mapModulesRec';
|
|
||||||
inherit (self) mkSysUser;
|
|
||||||
in rec
|
|
||||||
{
|
|
||||||
mkHost = path: attrs @ {system ? "x86_64-linux", ...}:
|
|
||||||
nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
|
|
||||||
specialArgs = {inherit lib inputs system; };
|
|
||||||
|
|
||||||
modules = let
|
|
||||||
stateVersion = "23.11";
|
|
||||||
users = if (pathExists "${path}/users") then attrNames (mapModules "${path}/users" (p: p)) else [];
|
|
||||||
in [
|
|
||||||
inputs.nixos-boot.nixosModules.default
|
|
||||||
({ ... }: {
|
|
||||||
nixpkgs.pkgs = pkgs;
|
|
||||||
|
|
||||||
networking.hostName = mkDefault (removeSuffix ".nix" (baseNameOf path));
|
|
||||||
|
|
||||||
system = {
|
|
||||||
inherit stateVersion;
|
|
||||||
configurationRevision = mkIf (self ? rev) self.rev;
|
|
||||||
};
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
inputs.home-manager.nixosModules.home-manager
|
|
||||||
"${path}/hardware.nix"
|
|
||||||
]
|
|
||||||
++ (mapModulesRec' ../modules/system import);
|
|
||||||
|
|
||||||
users = {
|
|
||||||
mutableUsers = true; # Set this to false when I get sops with passwords set up properly
|
|
||||||
users = mkIf (pathExists "${path}/users") (mapModules "${path}/users" mkSysUser);
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(filterAttrs (n: v: !elem n ["system"]) attrs)
|
|
||||||
(import path)
|
|
||||||
(args@{ inputs, lib, pkgs, config, options, ... }: {
|
|
||||||
imports = mapModulesRec' ../modules/home (file: (import file (args // { user = "root"; })));
|
|
||||||
})
|
|
||||||
({...}: {
|
|
||||||
imports = [];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
home-manager = {
|
|
||||||
backupFileExtension = "bak";
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
sharedModules = [
|
|
||||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
|
||||||
];
|
|
||||||
|
|
||||||
users = listToAttrs (map (user: (nameValuePair user { home = { inherit stateVersion; }; })) (users ++ ["root"]));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
})
|
|
||||||
]
|
|
||||||
++ (map (user: (args@{ inputs, lib, pkgs, config, options, ... }: {
|
|
||||||
imports = mapModulesRec' ../modules/home (file: (import file (args // { inherit user; })));
|
|
||||||
|
|
||||||
config.modules.${user} = (import "${path}/users/${user}/default.nix" args);
|
|
||||||
})) users);
|
|
||||||
};
|
|
||||||
|
|
||||||
mapHosts = dir: attrs @ {system ? system, ...}:
|
|
||||||
mapModules dir (hostPath: mkHost hostPath attrs);
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
{lib, ...}: let
|
|
||||||
inherit (lib.options) mkOption;
|
|
||||||
in {
|
|
||||||
mkOpt = type: default: mkOption {inherit type default;};
|
|
||||||
|
|
||||||
mkOpt' = type: default: description:
|
|
||||||
mkOption {inherit type default description;};
|
|
||||||
}
|
|
26
lib/user.nix
26
lib/user.nix
|
@ -1,26 +0,0 @@
|
||||||
{ lib, ... }: let
|
|
||||||
inherit (builtins) baseNameOf;
|
|
||||||
inherit (lib.attrsets) filterAttrs;
|
|
||||||
inherit (lib.strings) removeSuffix;
|
|
||||||
inherit (lib.my) mapModulesRec';
|
|
||||||
in rec
|
|
||||||
{
|
|
||||||
mkSysUser = path: let
|
|
||||||
name = removeSuffix ".nix" (baseNameOf path);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
inherit name;
|
|
||||||
isNormalUser = true;
|
|
||||||
initialPassword = "kaas";
|
|
||||||
home = "/home/${name}";
|
|
||||||
group = "users";
|
|
||||||
};
|
|
||||||
|
|
||||||
mkHmUser = path: {stateVersion, ...}:
|
|
||||||
{
|
|
||||||
home = {
|
|
||||||
inherit stateVersion;
|
|
||||||
sessionPath = [ "$XDG_BIN_HOME" "$PATH" ]; # Pretty sure I don't need this.
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
15
modules/home/application/bitwarden/default.nix
Normal file
15
modules/home/application/bitwarden/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.bitwarden;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.bitwarden = {
|
||||||
|
enable = mkEnableOption "enable bitwarden";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ bitwarden-desktop ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,18 +1,17 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib.options) mkEnableOption;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (builtins) fetchurl;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.browsers.chrome;
|
cfg = config.${namespace}.application.chrome;
|
||||||
in {
|
in
|
||||||
options.modules.${user}.desktop.browsers.chrome = {
|
{
|
||||||
enable = mkEnableOption "Enable Chrome";
|
options.${namespace}.application.chrome = {
|
||||||
|
enable = mkEnableOption "enable chrome";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home-manager.users.${user}.home.packages = [
|
home.packages = with pkgs; [
|
||||||
pkgs.chromium
|
chromium
|
||||||
# (pkgs.ungoogled-chromium.override {
|
# (pkgs.ungoogled-chromium.override {
|
||||||
# commandLineArgs = [
|
# commandLineArgs = [
|
||||||
# "--enable-features=AcceleratedVideoEncoder"
|
# "--enable-features=AcceleratedVideoEncoder"
|
||||||
|
@ -26,7 +25,7 @@ in {
|
||||||
|
|
||||||
programs.chromium = {
|
programs.chromium = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enablePlasmaBrowserIntegration = true;
|
# enablePlasmaBrowserIntegration = true;
|
||||||
extensions = let
|
extensions = let
|
||||||
# create_extension_for = browserVersion: { id, sha256, version }: {
|
# create_extension_for = browserVersion: { id, sha256, version }: {
|
||||||
# inherit id;
|
# inherit id;
|
||||||
|
@ -64,19 +63,19 @@ in {
|
||||||
# version = "";
|
# version = "";
|
||||||
# })
|
# })
|
||||||
];
|
];
|
||||||
defaultSearchProviderEnabled = true;
|
# defaultSearchProviderEnabled = true;
|
||||||
defaultSearchProviderSearchURL = "https://duckduckgo.com?q={searchTerms}";
|
# defaultSearchProviderSearchURL = "https://duckduckgo.com?q={searchTerms}";
|
||||||
extraOpts = {
|
# extraOpts = {
|
||||||
"ExtensionManifestV2Availability" = 2;
|
# "ExtensionManifestV2Availability" = 2;
|
||||||
"BrowserSignin" = 0;
|
# "BrowserSignin" = 0;
|
||||||
"SyncDisabled" = true;
|
# "SyncDisabled" = true;
|
||||||
"PasswordManagerEnabled" = false;
|
# "PasswordManagerEnabled" = false;
|
||||||
"SpellcheckEnabled" = true;
|
# "SpellcheckEnabled" = true;
|
||||||
"SpellcheckLanguage" = [
|
# "SpellcheckLanguage" = [
|
||||||
"nl-NL"
|
# "nl-NL"
|
||||||
"en-GB"
|
# "en-GB"
|
||||||
];
|
# ];
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
15
modules/home/application/discord/default.nix
Normal file
15
modules/home/application/discord/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.discord;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.discord = {
|
||||||
|
enable = mkEnableOption "enable discord (vesktop)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ vesktop ];
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/application/ladybird/default.nix
Normal file
15
modules/home/application/ladybird/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.ladybird;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.ladybird = {
|
||||||
|
enable = mkEnableOption "enable ladybird";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ ladybird ];
|
||||||
|
};
|
||||||
|
}
|
30
modules/home/application/obs/default.nix
Normal file
30
modules/home/application/obs/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ config, lib, pkgs, namespace, osConfig ? {}, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.obs;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.obs = {
|
||||||
|
enable = mkEnableOption "enable obs";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
obs-studio
|
||||||
|
obs-studio-plugins.wlrobs
|
||||||
|
obs-studio-plugins.obs-backgroundremoval
|
||||||
|
obs-studio-plugins.obs-pipewire-audio-capture
|
||||||
|
];
|
||||||
|
|
||||||
|
# boot = {
|
||||||
|
# extraModulePackages = with config.boot.kernelPackages; [
|
||||||
|
# v4l2loopback
|
||||||
|
# ];
|
||||||
|
|
||||||
|
# extraModprobeConfig = ''
|
||||||
|
# options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
}
|
16
modules/home/application/onlyoffice/default.nix
Normal file
16
modules/home/application/onlyoffice/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.onlyoffice;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.onlyoffice = {
|
||||||
|
enable = mkEnableOption "enable onlyoffice";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ onlyoffice-bin ];
|
||||||
|
# fonts.packages = with pkgs; [ corefonts ];
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/application/signal/default.nix
Normal file
15
modules/home/application/signal/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.signal;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.signal = {
|
||||||
|
enable = mkEnableOption "enable signal";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ signal-desktop ];
|
||||||
|
};
|
||||||
|
}
|
55
modules/home/application/steam/default.nix
Normal file
55
modules/home/application/steam/default.nix
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.steam;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.steam = {
|
||||||
|
enable = mkEnableOption "enable steam";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ protonup ];
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
# steam = {
|
||||||
|
# enable = true;
|
||||||
|
# package = pkgs.steam-small.override {
|
||||||
|
# extraEnv = {
|
||||||
|
# DXVK_HUD = "compiler";
|
||||||
|
# MANGOHUD = true;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# gamescopeSession = {
|
||||||
|
# enable = true;
|
||||||
|
# args = ["--immediate-flips"];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# https://github.com/FeralInteractive/gamemode
|
||||||
|
# gamemode = {
|
||||||
|
# enable = true;
|
||||||
|
# enableRenice = true;
|
||||||
|
# settings = {};
|
||||||
|
# };
|
||||||
|
|
||||||
|
# gamescope = {
|
||||||
|
# enable = true;
|
||||||
|
# capSysNice = true;
|
||||||
|
# env = {
|
||||||
|
# DXVK_HDR = "1";
|
||||||
|
# ENABLE_GAMESCOPE_WSI = "1";
|
||||||
|
# WINE_FULLSCREEN_FSR = "1";
|
||||||
|
# WLR_RENDERER = "vulkan";
|
||||||
|
# };
|
||||||
|
# args = ["--hdr-enabled"];
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/application/studio/default.nix
Normal file
15
modules/home/application/studio/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.studio;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.studio = {
|
||||||
|
enable = mkEnableOption "enable Bricklink Studio";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs.${namespace}; [ studio ];
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/application/teamspeak/default.nix
Normal file
15
modules/home/application/teamspeak/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.teamspeak;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.teamspeak = {
|
||||||
|
enable = mkEnableOption "enable teamspeak";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ teamspeak_client ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,26 +1,22 @@
|
||||||
{ options, config, lib, pkgs, user, ... }:
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib.modules) mkIf mkForce mkMerge;
|
inherit (lib) mkIf mkEnableOption;
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.applications.email;
|
cfg = config.${namespace}.application.thunderbird;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.${user}.desktop.applications.email = let
|
options.${namespace}.application.thunderbird = {
|
||||||
inherit (lib.options) mkEnableOption;
|
enable = mkEnableOption "enable thunderbird";
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Enable email client (thunderbird)";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable
|
config = mkIf cfg.enable {
|
||||||
{
|
|
||||||
programs.thunderbird = {
|
programs.thunderbird = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
package = pkgs.thunderbird-latest;
|
||||||
|
|
||||||
home-manager.users.${user} = {
|
profiles.${config.snowfallorg.user.name} = {
|
||||||
home.packages = attrValues {
|
isDefault = true;
|
||||||
inherit (pkgs) thunderbird;
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
accounts.email.accounts = {
|
accounts.email.accounts = {
|
||||||
|
@ -34,7 +30,7 @@ in
|
||||||
};
|
};
|
||||||
thunderbird = {
|
thunderbird = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles = [ "chris" ];
|
profiles = [ config.snowfallorg.user.name ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -49,5 +45,4 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
19
modules/home/application/zen/default.nix
Normal file
19
modules/home/application/zen/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.application.zen;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.application.zen = {
|
||||||
|
enable = mkEnableOption "enable zen";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = [ inputs.zen-browser.packages.${pkgs.system}.specific ];
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
MOZ_ENABLE_WAYLAND = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
47
modules/home/default.nix
Normal file
47
modules/home/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{ pkgs, config, lib, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkOption;
|
||||||
|
inherit (lib.types) enum;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.defaults;
|
||||||
|
in {
|
||||||
|
options.${namespace}.defaults = {
|
||||||
|
editor = mkOption {
|
||||||
|
type = enum [ "nano" "nvim" "zed" ];
|
||||||
|
default = "nano";
|
||||||
|
description = "Default editor for text manipulation";
|
||||||
|
example = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
shell = mkOption {
|
||||||
|
type = enum [ "fish" "zsh" "bash" ];
|
||||||
|
default = "zsh";
|
||||||
|
description = "Default shell";
|
||||||
|
example = "zsh";
|
||||||
|
};
|
||||||
|
|
||||||
|
terminal = mkOption {
|
||||||
|
type = enum [ "ghostty" "alacritty" ];
|
||||||
|
default = "ghostty";
|
||||||
|
description = "Default terminal";
|
||||||
|
example = "ghostty";
|
||||||
|
};
|
||||||
|
|
||||||
|
browser = mkOption {
|
||||||
|
type = enum [ "chrome" "ladybird" "zen" ];
|
||||||
|
default = "zen";
|
||||||
|
description = "Default terminal";
|
||||||
|
example = "zen";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
home.sessionVariables = {
|
||||||
|
EDITOR = cfg.editor;
|
||||||
|
TERMINAL = cfg.terminal;
|
||||||
|
BROWSER = cfg.browser;
|
||||||
|
};
|
||||||
|
|
||||||
|
# home.shell = pkgs.${cfg.shell};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,19 +0,0 @@
|
||||||
{ options, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf mkForce mkMerge;
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.applications.communication;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.applications.communication = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Enable office suite (only-office)";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable
|
|
||||||
{
|
|
||||||
home-manager.users.${user}.home.packages = with pkgs; [vesktop teamspeak_client signal-desktop];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{ options, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf mkForce mkMerge;
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.applications.office;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.applications.office = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Enable office suite (only-office)";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable
|
|
||||||
{
|
|
||||||
home-manager.users.${user}.home.packages = attrValues {
|
|
||||||
inherit (pkgs) onlyoffice-bin;
|
|
||||||
};
|
|
||||||
|
|
||||||
# nixpkgs.config.allowUnfreePredicate = pkg:
|
|
||||||
# builtins.elem (lib.getName pkg) [ "corefonts" ];
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
corefonts
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{ options, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf mkForce mkMerge;
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.applications.passwords;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.applications.passwords = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Enable password manager (bitwarden)";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable
|
|
||||||
{
|
|
||||||
home-manager.users.${user}.home.packages = attrValues {
|
|
||||||
inherit (pkgs) bitwarden-desktop;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
{ options, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf mkForce mkMerge;
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.applications.recording;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.applications.recording = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Enable recording software (OBS Studio)";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
extraModulePackages = with config.boot.kernelPackages; [
|
|
||||||
v4l2loopback
|
|
||||||
];
|
|
||||||
|
|
||||||
extraModprobeConfig = ''
|
|
||||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
security.polkit.enable = true;
|
|
||||||
|
|
||||||
home-manager.users.${user}.home.packages = with pkgs; [
|
|
||||||
obs-studio
|
|
||||||
obs-studio-plugins.wlrobs
|
|
||||||
obs-studio-plugins.obs-backgroundremoval
|
|
||||||
obs-studio-plugins.obs-pipewire-audio-capture
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,55 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib) mkEnableOption mkIf mkForce mkMerge;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.applications.steam;
|
|
||||||
desktop = config.modules.${user}.desktop;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.applications.steam = {
|
|
||||||
enable = mkEnableOption "Enable steam, the game/software store";
|
|
||||||
hardware.enable = mkEnableOption "Support for steam hardware";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [
|
|
||||||
{
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.steam-small.override {
|
|
||||||
extraEnv = {
|
|
||||||
DXVK_HUD = "compiler";
|
|
||||||
MANGOHUD = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
hardware.steam-hardware.enable = mkForce cfg.hardware.enable;
|
|
||||||
|
|
||||||
# https://github.com/FeralInteractive/gamemode
|
|
||||||
programs.gamemode = {
|
|
||||||
enable = true;
|
|
||||||
enableRenice = true;
|
|
||||||
settings = {};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
(mkIf (desktop.type == "wayland") {
|
|
||||||
# https://github.com/ValveSoftware/gamescope
|
|
||||||
programs.gamescope = {
|
|
||||||
enable = true;
|
|
||||||
capSysNice = true;
|
|
||||||
env = {
|
|
||||||
DXVK_HDR = "1";
|
|
||||||
ENABLE_GAMESCOPE_WSI = "1";
|
|
||||||
WINE_FULLSCREEN_FSR = "1";
|
|
||||||
WLR_RENDERER = "vulkan";
|
|
||||||
};
|
|
||||||
args = ["--hdr-enabled"];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.steam.gamescopeSession = {
|
|
||||||
enable = true;
|
|
||||||
args = ["--immediate-flips"];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ pkgs, config, lib, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.applications.studio;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.applications.studio = {
|
|
||||||
enable = mkEnableOption "Enable Bricklink Studio";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
my.studio
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
options,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
user,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
cfg = config.modules.${user}.desktop.browsers;
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.browsers = let
|
|
||||||
inherit (lib.options) mkOption;
|
|
||||||
inherit (lib.types) nullOr str;
|
|
||||||
in {
|
|
||||||
default = mkOption {
|
|
||||||
type = nullOr str;
|
|
||||||
default = null;
|
|
||||||
description = "Default system browser";
|
|
||||||
example = "firefox";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf (cfg.default != null) {
|
|
||||||
home-manager.users.${user}.home.sessionVariables.BROWSER = cfg.default;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,233 +0,0 @@
|
||||||
{ inputs, options, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (builtins) toJSON;
|
|
||||||
inherit (lib.attrsets) attrValues mapAttrsToList;
|
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
inherit (lib.strings) concatStrings;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.browsers.firefox;
|
|
||||||
usr = config.users.users.${user};
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.browsers.firefox = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
inherit (lib.types) attrsOf oneOf bool int lines str;
|
|
||||||
inherit (lib.my) mkOpt mkOpt';
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Gecko-based libre browser";
|
|
||||||
privacy.enable = mkEnableOption "Privacy Focused Firefox fork";
|
|
||||||
|
|
||||||
profileName = mkOpt str usr.name;
|
|
||||||
settings = mkOpt' (attrsOf (oneOf [bool int str])) {} ''
|
|
||||||
Firefox preferences set in <filename>user.js</filename>
|
|
||||||
'';
|
|
||||||
extraConfig = mkOpt' lines "" ''
|
|
||||||
Extra lines to add to <filename>user.js</filename>
|
|
||||||
'';
|
|
||||||
userChrome = mkOpt' lines "" "CSS Styles for Firefox's interface";
|
|
||||||
userContent = mkOpt' lines "" "Global CSS Styles for websites";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
(mkIf (config.modules.${user}.desktop.type == "wayland") {
|
|
||||||
environment.variables.MOZ_ENABLE_WAYLAND = "1";
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf cfg.enable {
|
|
||||||
modules.${user}.desktop.browsers.firefox.settings = {
|
|
||||||
# TAB cycle URL's, not buttons..
|
|
||||||
"browser.toolbars.keyboard_navigation" = false;
|
|
||||||
# Disable annoying translation pop-up!
|
|
||||||
"browser.translations.automaticallyPopup" = false;
|
|
||||||
# Enables dark-themed flash before page-load:
|
|
||||||
"ui.systemUsesDarkTheme" = "1";
|
|
||||||
# Developer tools -> uses dark theme
|
|
||||||
"devtools.theme" = "dark";
|
|
||||||
# FIXME: IM-Wheel -> Manual scroll speed ctrl bcs == buggy...
|
|
||||||
"mousewheel.min_line_scroll_amount" = 35;
|
|
||||||
# Enables ETP = decent security -> firefox containers = redundent
|
|
||||||
"browser.contentblocking.category" = "strict";
|
|
||||||
"privacy.donottrackheader.enabled" = true;
|
|
||||||
"privacy.donottrackheader.value" = 1;
|
|
||||||
"privacy.purge_trackers.enabled" = true;
|
|
||||||
# Syncs Firefox toolbar settings across machines
|
|
||||||
# WARNING: May not work across OS'es
|
|
||||||
"services.sync.prefs.sync.browser.uiCustomization.state" = true;
|
|
||||||
# Enables userContent.css and userChrome.css for our theme modules
|
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
|
||||||
# Stop creating ~/Downloads!
|
|
||||||
"browser.download.dir" = "${usr.home}/downloads";
|
|
||||||
# Disables built-in password manager -> use external PM!
|
|
||||||
"signon.rememberSignons" = false;
|
|
||||||
# Firefox, DO NOT CHECK if you are the default browser..
|
|
||||||
"browser.shell.checkDefaultBrowser" = false;
|
|
||||||
# Disables "New Tab Page" feature
|
|
||||||
"browser.newtabpage.enabled" = false;
|
|
||||||
# Disables Activity Stream
|
|
||||||
"browser.newtabpage.activity-stream.enabled" = false;
|
|
||||||
"browser.newtabpage.activity-stream.telemetry" = false;
|
|
||||||
# Disables new tab tile ads & preload
|
|
||||||
"browser.newtabpage.enhanced" = false;
|
|
||||||
"browser.newtabpage.introShown" = true;
|
|
||||||
"browser.newtab.preload" = false;
|
|
||||||
"browser.newtabpage.directory.ping" = "";
|
|
||||||
"browser.newtabpage.directory.source" = "data:text/plain,{}";
|
|
||||||
# Reduces search engine noise in the urlbar's completion window
|
|
||||||
# PS: Shortcuts and suggestions still work
|
|
||||||
"browser.urlbar.suggest.searches" = false;
|
|
||||||
"browser.urlbar.shortcuts.bookmarks" = false;
|
|
||||||
"browser.urlbar.shortcuts.history" = false;
|
|
||||||
"browser.urlbar.shortcuts.tabs" = false;
|
|
||||||
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
|
||||||
"browser.urlbar.speculativeConnect.enabled" = false;
|
|
||||||
# Prevents search terms from being sent to ISP
|
|
||||||
"browser.urlbar.dnsResolveSingleWordsAfterSearch" = 0;
|
|
||||||
# Disables sponsored search results
|
|
||||||
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
|
|
||||||
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
|
||||||
# Shows whole URL in address bar
|
|
||||||
"browser.urlbar.trimURLs" = false;
|
|
||||||
# Disables non-useful funcionality of certain features
|
|
||||||
"browser.disableResetPrompt" = true;
|
|
||||||
"browser.onboarding.enabled" = false;
|
|
||||||
"browser.aboutConfig.showWarning" = false;
|
|
||||||
"media.videocontrols.picture-in-picture.video-toggle.enabled" = false;
|
|
||||||
"extensions.pocket.enabled" = false;
|
|
||||||
"extensions.shield-recipe-client.enabled" = false;
|
|
||||||
"reader.parse-on-load.enabled" = false;
|
|
||||||
# Allow seperate search-engine usage in private mode!
|
|
||||||
"browser.search.separatePrivateDefault.ui.enabled" = true;
|
|
||||||
|
|
||||||
# Security-oriented defaults:
|
|
||||||
"security.family_safety.mode" = 0;
|
|
||||||
# https://blog.mozilla.org/security/2016/10/18/phasing-out-sha-1-on-the-public-web/
|
|
||||||
"security.pki.sha1_enforcement_level" = 1;
|
|
||||||
# https://github.com/tlswg/tls13-spec/issues/1001
|
|
||||||
"security.tls.enable_0rtt_data" = false;
|
|
||||||
# Uses Mozilla geolocation service instead of Google if given permission
|
|
||||||
"geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%";
|
|
||||||
"geo.provider.use_gpsd" = false;
|
|
||||||
# https://support.mozilla.org/en-US/kb/extension-recommendations
|
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr" = false;
|
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" =
|
|
||||||
false;
|
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" =
|
|
||||||
false;
|
|
||||||
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
|
||||||
"extensions.htmlaboutaddons.discover.enabled" = false;
|
|
||||||
"extensions.getAddons.showPane" = false; # Uses Google Analytics
|
|
||||||
"browser.discovery.enabled" = false;
|
|
||||||
# Reduces File IO / SSD abuse, 15 seconds -> 30 minutes
|
|
||||||
"browser.sessionstore.interval" = "1800000";
|
|
||||||
# Disables battery API
|
|
||||||
"dom.battery.enabled" = false;
|
|
||||||
# Disable cross-site ad-view tracking
|
|
||||||
"dom.private-attribution.submission.enabled" = false;
|
|
||||||
# Disables "beacon" asynchronous HTTP transfers (used for analytics)
|
|
||||||
"beacon.enabled" = false;
|
|
||||||
# Disables pinging URIs specified in HTML <a> ping= attributes
|
|
||||||
"browser.send_pings" = false;
|
|
||||||
# Disables gamepad API to prevent USB device enumeration
|
|
||||||
"dom.gamepad.enabled" = false;
|
|
||||||
# Prevents guessing domain names on invalid entry in URL-bar
|
|
||||||
"browser.fixup.alternate.enabled" = false;
|
|
||||||
# Disables telemetry settings
|
|
||||||
"toolkit.telemetry.unified" = false;
|
|
||||||
"toolkit.telemetry.enabled" = false;
|
|
||||||
"toolkit.telemetry.server" = "data:,";
|
|
||||||
"toolkit.telemetry.archive.enabled" = false;
|
|
||||||
"toolkit.telemetry.coverage.opt-out" = true;
|
|
||||||
"toolkit.coverage.opt-out" = true;
|
|
||||||
"toolkit.coverage.endpoint.base" = "";
|
|
||||||
"experiments.supported" = false;
|
|
||||||
"experiments.enabled" = false;
|
|
||||||
"experiments.manifest.uri" = "";
|
|
||||||
"browser.ping-centre.telemetry" = false;
|
|
||||||
# https://mozilla.github.io/normandy/
|
|
||||||
"app.normandy.enabled" = false;
|
|
||||||
"app.normandy.api_url" = "";
|
|
||||||
"app.shield.optoutstudies.enabled" = false;
|
|
||||||
# Disables health reports (basically more telemetry)
|
|
||||||
"datareporting.healthreport.uploadEnabled" = false;
|
|
||||||
"datareporting.healthreport.service.enabled" = false;
|
|
||||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
|
||||||
# Disables crash reports
|
|
||||||
"breakpad.reportURL" = "";
|
|
||||||
"browser.tabs.crashReporting.sendReport" = false;
|
|
||||||
# Prevents the submission of backlogged reports
|
|
||||||
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
|
||||||
|
|
||||||
# Disable automatic Form autofill
|
|
||||||
"browser.formfill.enable" = false;
|
|
||||||
"extensions.formautofill.addresses.enabled" = false;
|
|
||||||
"extensions.formautofill.available" = "off";
|
|
||||||
"extensions.formautofill.creditCards.available" = false;
|
|
||||||
"extensions.formautofill.creditCards.enabled" = false;
|
|
||||||
"extensions.formautofill.heuristics.enabled" = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Use a stable profile name so we can target it in themes
|
|
||||||
home-manager.users.${user}.home = {
|
|
||||||
packages = let
|
|
||||||
inherit (pkgs) makeDesktopItem;
|
|
||||||
inherit (inputs.firefox.packages.${pkgs.system}) firefox-nightly-bin;
|
|
||||||
in [
|
|
||||||
firefox-nightly-bin
|
|
||||||
(makeDesktopItem {
|
|
||||||
name = "firefox-nightly-private";
|
|
||||||
desktopName = "Firefox Nightly (Private)";
|
|
||||||
genericName = "Launch a private Firefox Nightly instance";
|
|
||||||
icon = "firefox-nightly";
|
|
||||||
exec = "${lib.getExe firefox-nightly-bin} --private-window";
|
|
||||||
categories = ["Network" "WebBrowser"];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
file = let
|
|
||||||
cfgPath = ".mozilla/firefox";
|
|
||||||
in {
|
|
||||||
firefox-profiles = {
|
|
||||||
target = "${cfgPath}/profiles.ini";
|
|
||||||
text = ''
|
|
||||||
[Profile0]
|
|
||||||
Name=default
|
|
||||||
IsRelative=1
|
|
||||||
Path=${cfg.profileName}.default
|
|
||||||
Default=1
|
|
||||||
|
|
||||||
[General]
|
|
||||||
StartWithLastProfile=1
|
|
||||||
Version=2
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
user-js = mkIf (cfg.settings != {} || cfg.extraConfig != "") {
|
|
||||||
target = "${cfgPath}/${cfg.profileName}.default/user.js";
|
|
||||||
text = ''
|
|
||||||
${concatStrings (mapAttrsToList (name: value: ''
|
|
||||||
user_pref("${name}", ${toJSON value});
|
|
||||||
'')
|
|
||||||
cfg.settings)}
|
|
||||||
${cfg.extraConfig}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
user-chrome = mkIf (cfg.userChrome != "") {
|
|
||||||
target = "${cfgPath}/${cfg.profileName}.default/chrome/userChrome.css";
|
|
||||||
text = cfg.userChrome;
|
|
||||||
};
|
|
||||||
|
|
||||||
user-content = mkIf (cfg.userContent != "") {
|
|
||||||
target = "${cfgPath}/${cfg.profileName}.default/chrome/userContent.css";
|
|
||||||
text = cfg.userContent;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf cfg.privacy.enable {
|
|
||||||
home-manager.users.${user}.home.packages = attrValues {
|
|
||||||
inherit (pkgs) librewolf;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.browsers.ladybird;
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.browsers.ladybird = {
|
|
||||||
enable = mkEnableOption "Enable Ladybird";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
ladybird
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
{ inputs, options, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (builtins) toJSON;
|
|
||||||
inherit (lib.attrsets) attrValues mapAttrsToList;
|
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
inherit (lib.strings) concatStrings;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.browsers.zen;
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.browsers.zen = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
inherit (lib.types) attrsOf oneOf bool int lines str;
|
|
||||||
inherit (lib.my) mkOpt mkOpt';
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Gecko-based libre browser";
|
|
||||||
privacy.enable = mkEnableOption "Privacy Focused Firefox fork";
|
|
||||||
|
|
||||||
profileName = mkOpt str config.user.name;
|
|
||||||
settings = mkOpt' (attrsOf (oneOf [bool int str])) {} ''
|
|
||||||
Firefox preferences set in <filename>user.js</filename>
|
|
||||||
'';
|
|
||||||
extraConfig = mkOpt' lines "" ''
|
|
||||||
Extra lines to add to <filename>user.js</filename>
|
|
||||||
'';
|
|
||||||
userChrome = mkOpt' lines "" "CSS Styles for Firefox's interface";
|
|
||||||
userContent = mkOpt' lines "" "Global CSS Styles for websites";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
(mkIf (config.modules.${user}.desktop.type == "wayland") {
|
|
||||||
environment.variables.MOZ_ENABLE_WAYLAND = "1";
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf cfg.enable {
|
|
||||||
home-manager.users.${user}.home.packages = let
|
|
||||||
inherit (pkgs) makeDesktopItem;
|
|
||||||
inherit (inputs.zen.packages.${pkgs.system}.specific) zen;
|
|
||||||
in [
|
|
||||||
zen
|
|
||||||
];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{ lib, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.types) either str;
|
|
||||||
inherit (lib.my) mkOpt;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop = {
|
|
||||||
type = mkOpt (either str null) "wayland";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
options,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
user,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
cfg = config.modules.${user}.desktop.editors;
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.editors = let
|
|
||||||
inherit (lib.options) mkOption;
|
|
||||||
inherit (lib.types) nullOr enum;
|
|
||||||
in {
|
|
||||||
default = mkOption {
|
|
||||||
type = nullOr (enum [ "nano" "nvim" "zed" "kate" "vscodium" ]);
|
|
||||||
default = "nano";
|
|
||||||
description = "Default editor for text manipulation";
|
|
||||||
example = "nvim";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
(mkIf (cfg.default != null) {
|
|
||||||
home-manager.users.${user}.home.sessionVariables = {
|
|
||||||
EDITOR = cfg.default;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf (cfg.default == "nvim") {
|
|
||||||
home-manager.users.${user}.home.packages = attrValues {
|
|
||||||
inherit (pkgs) imagemagick editorconfig-core-c sqlite deno pandoc nuspell;
|
|
||||||
inherit (pkgs.hunspellDicts) nl_NL en_GB-ise;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ config, options, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.meta) getExe;
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.editors.kate;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.editors.kate = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "kate";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user}.programs.kate.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
{ config, options, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.meta) getExe;
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.editors.nano;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.editors.nano = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in { enable = mkEnableOption "nano"; };
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user}.home.packages = with pkgs; [
|
|
||||||
nano
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.nano = {
|
|
||||||
enable = true;
|
|
||||||
syntaxHighlight = true;
|
|
||||||
nanorc = ''
|
|
||||||
set autoindent
|
|
||||||
set jumpyscrolling
|
|
||||||
set linenumbers
|
|
||||||
set mouse
|
|
||||||
set saveonexit
|
|
||||||
set smarthome
|
|
||||||
set tabstospaces
|
|
||||||
set tabsize 2
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
{ config, lib, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.editors.nvim;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.editors.nvim = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "neo-vim (nixvim)";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
modules.desktop.editors.nvim.enable = true;
|
|
||||||
|
|
||||||
programs.nvf = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
vim = {
|
|
||||||
statusline.lualine.enable = true;
|
|
||||||
telescope.enable = true;
|
|
||||||
autocomplete.nvim-cmp.enable = true;
|
|
||||||
|
|
||||||
lsp.enable = true;
|
|
||||||
|
|
||||||
languages = {
|
|
||||||
enableTreesitter = true;
|
|
||||||
|
|
||||||
nix.enable = true;
|
|
||||||
ts.enable = true;
|
|
||||||
rust.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.editors.vscodium;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.editors.vscodium = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in { enable = mkEnableOption "vscodium"; };
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user}.home.packages = attrValues {
|
|
||||||
inherit (pkgs) vscodium;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,75 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }: let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.editors.zed;
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.editors.zed = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {enable = mkEnableOption "zed";};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
zed-editor nixd nil alejandra
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.zed-editor = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
extensions = ["nix" "toml" "html"];
|
|
||||||
|
|
||||||
userSettings = {
|
|
||||||
assistant.enabled = false;
|
|
||||||
|
|
||||||
vim_mode = false;
|
|
||||||
load_direnv = "shell_hook";
|
|
||||||
base_keymap = "JetBrains";
|
|
||||||
|
|
||||||
format_on_save = "on";
|
|
||||||
bindings = {
|
|
||||||
"ctrl+s" = "workspace::SaveAll";
|
|
||||||
};
|
|
||||||
|
|
||||||
tabs = {
|
|
||||||
file_icons = true;
|
|
||||||
git_status = true;
|
|
||||||
};
|
|
||||||
project_panel.auto_reveal_entries = false;
|
|
||||||
|
|
||||||
"experimental.theme_overrides" = {
|
|
||||||
border = "#ffffff07";
|
|
||||||
};
|
|
||||||
|
|
||||||
hour_format = "hour24";
|
|
||||||
auto_update = false;
|
|
||||||
|
|
||||||
lsp = {
|
|
||||||
nixd = {};
|
|
||||||
nil = {
|
|
||||||
initialization_options = {
|
|
||||||
nix = {
|
|
||||||
flake = {
|
|
||||||
autoArchive = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
formatting = {
|
|
||||||
command = ["alejandra" "--quiet" "--"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
binary = {
|
|
||||||
path_lookup = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
languages = {
|
|
||||||
"Nix" = {
|
|
||||||
language_servers = ["nixd" "nil"];
|
|
||||||
format_on_save = "on";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }: let
|
|
||||||
inherit (lib) mkEnableOption mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.games;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.games = {
|
|
||||||
enable = mkEnableOption "enable proton GE";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ protonup ];
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ options, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf mkForce mkMerge;
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.games.minecraft;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.games.minecraft = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "minecraft (Modrinth)";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
# environment.systemPackages = [
|
|
||||||
# pkgs.minecract
|
|
||||||
# ];
|
|
||||||
home-manager.users.${user}.home.packages = attrValues {
|
|
||||||
inherit (pkgs) prismlauncher;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,286 +0,0 @@
|
||||||
{ inputs, config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.plasma;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.desktop.plasma = let
|
|
||||||
inherit (lib.options) mkEnableOption mkOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "plasma 6";
|
|
||||||
|
|
||||||
autoLogin = mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = false;
|
|
||||||
example = true;
|
|
||||||
description = "Enable plasma's auto login feature.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs.kdePackages; [
|
|
||||||
kcoreaddons
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [ konsole kate ghostwriter oxygen ];
|
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
||||||
|
|
||||||
services = {
|
|
||||||
xserver.enable = true;
|
|
||||||
|
|
||||||
desktopManager.plasma6.enable = true;
|
|
||||||
|
|
||||||
displayManager = {
|
|
||||||
defaultSession = "plasma";
|
|
||||||
sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = true;
|
|
||||||
};
|
|
||||||
autoLogin = mkIf cfg.autoLogin {
|
|
||||||
enable = true;
|
|
||||||
inherit user;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# should enable theme integration with gtk apps (i.e. firefox, thunderbird)
|
|
||||||
programs.dconf.enable = true;
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
sharedModules = [
|
|
||||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
|
||||||
];
|
|
||||||
|
|
||||||
users.${user}.programs.plasma = {
|
|
||||||
enable = true;
|
|
||||||
immutableByDefault = true;
|
|
||||||
windows.allowWindowsToRememberPositions = true;
|
|
||||||
|
|
||||||
session = {
|
|
||||||
general.askForConfirmationOnLogout = false;
|
|
||||||
sessionRestore.restoreOpenApplicationsOnLogin = "onLastLogout";
|
|
||||||
};
|
|
||||||
|
|
||||||
workspace = {
|
|
||||||
clickItemTo = "select";
|
|
||||||
colorScheme = "EverforestDark";
|
|
||||||
wallpaper = config.stylix.image;
|
|
||||||
};
|
|
||||||
|
|
||||||
spectacle.shortcuts = {
|
|
||||||
captureRectangularRegion = "Meta+Shift+S";
|
|
||||||
};
|
|
||||||
|
|
||||||
kwin = {
|
|
||||||
edgeBarrier = 0;
|
|
||||||
cornerBarrier = false;
|
|
||||||
|
|
||||||
effects = {
|
|
||||||
translucency.enable = true;
|
|
||||||
|
|
||||||
blur = {
|
|
||||||
enable = true;
|
|
||||||
strength = 5;
|
|
||||||
noiseStrength = 5;
|
|
||||||
};
|
|
||||||
|
|
||||||
snapHelper.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
panels = [
|
|
||||||
# Windows-like panel at the bottom
|
|
||||||
{
|
|
||||||
location = "bottom";
|
|
||||||
floating = true;
|
|
||||||
lengthMode = "fill";
|
|
||||||
height = 42;
|
|
||||||
hiding = "none";
|
|
||||||
screen = "all";
|
|
||||||
widgets = [
|
|
||||||
{
|
|
||||||
panelSpacer = {
|
|
||||||
expanding = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
kickoff = {
|
|
||||||
applicationsDisplayMode = "list";
|
|
||||||
compactDisplayStyle = false;
|
|
||||||
favoritesDisplayMode = "grid";
|
|
||||||
sortAlphabetically = true;
|
|
||||||
showButtonsFor = {
|
|
||||||
custom = [
|
|
||||||
"shutdown"
|
|
||||||
"reboot"
|
|
||||||
"logout"
|
|
||||||
"lock-screen"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
showActionButtonCaptions = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# {
|
|
||||||
# appMenu = {
|
|
||||||
# compactView = false;
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
{
|
|
||||||
iconTasks = {
|
|
||||||
appearance = {
|
|
||||||
fill = false;
|
|
||||||
highlightWindows = true;
|
|
||||||
iconSpacing = "medium";
|
|
||||||
indicateAudioStreams = true;
|
|
||||||
rows = {
|
|
||||||
multirowView = "never";
|
|
||||||
maximum = null;
|
|
||||||
};
|
|
||||||
showTooltips = true;
|
|
||||||
};
|
|
||||||
behavior = {
|
|
||||||
grouping = {
|
|
||||||
clickAction = "showPresentWindowsEffect";
|
|
||||||
method = "byProgramName";
|
|
||||||
};
|
|
||||||
minimizeActiveTaskOnClick = true;
|
|
||||||
newTasksAppearOn = "right";
|
|
||||||
showTasks = {
|
|
||||||
onlyInCurrentActivity = true;
|
|
||||||
onlyInCurrentDesktop = true;
|
|
||||||
onlyMinimized = false;
|
|
||||||
onlyInCurrentScreen = false;
|
|
||||||
};
|
|
||||||
sortingMethod = "manually";
|
|
||||||
unhideOnAttentionNeeded = true;
|
|
||||||
wheel = {
|
|
||||||
ignoreMinimizedTasks = true;
|
|
||||||
switchBetweenTasks = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
launchers = [
|
|
||||||
"preferred://filemanager"
|
|
||||||
"preferred://browser"
|
|
||||||
"preferred://terminalemulator"
|
|
||||||
"preferred://email"
|
|
||||||
"applications:zededitor.desktop"
|
|
||||||
"applications:vesktop.desktop"
|
|
||||||
"applications:steam.desktop"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
panelSpacer = {
|
|
||||||
expanding = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
systemTray = {
|
|
||||||
icons = {
|
|
||||||
scaleToFit = true;
|
|
||||||
spacing = "small";
|
|
||||||
};
|
|
||||||
items = {
|
|
||||||
hidden = [
|
|
||||||
"org.kde.plasma.brightness"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
pin = false;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
digitalClock = {
|
|
||||||
date = {
|
|
||||||
enable = true;
|
|
||||||
format = "shortDate";
|
|
||||||
position = "belowTime";
|
|
||||||
};
|
|
||||||
time = {
|
|
||||||
format = "24h";
|
|
||||||
showSeconds = "onlyInTooltip";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
powerdevil = {
|
|
||||||
AC = {
|
|
||||||
powerButtonAction = "shutDown";
|
|
||||||
whenLaptopLidClosed = "doNothing";
|
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
|
||||||
dimDisplay.enable = false;
|
|
||||||
|
|
||||||
turnOffDisplay = {
|
|
||||||
idleTimeout = "never";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
battery = {
|
|
||||||
powerButtonAction = "shutDown";
|
|
||||||
whenLaptopLidClosed = "doNothing";
|
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
|
||||||
dimDisplay.enable = false;
|
|
||||||
|
|
||||||
turnOffDisplay = {
|
|
||||||
idleTimeout = "never";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
lowBattery = {
|
|
||||||
powerButtonAction = "shutDown";
|
|
||||||
whenLaptopLidClosed = "doNothing";
|
|
||||||
|
|
||||||
autoSuspend.action = "nothing";
|
|
||||||
dimDisplay.enable = false;
|
|
||||||
|
|
||||||
turnOffDisplay = {
|
|
||||||
idleTimeout = "never";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
kscreenlocker = {
|
|
||||||
autoLock = false;
|
|
||||||
lockOnResume = false;
|
|
||||||
lockOnStartup = false;
|
|
||||||
|
|
||||||
appearance = {
|
|
||||||
alwaysShowClock = true;
|
|
||||||
showMediaControls = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
configFile = {
|
|
||||||
baloofilerc = {
|
|
||||||
|
|
||||||
};
|
|
||||||
kdeglobals = {
|
|
||||||
General = {
|
|
||||||
# enable font antialiasing
|
|
||||||
XftAntialias = true;
|
|
||||||
XftHintStyle = "hintslight";
|
|
||||||
XftSubPixel = "rgb";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
kwalletrc = {
|
|
||||||
Wallet.Enabled = false;
|
|
||||||
};
|
|
||||||
plasmarc = {
|
|
||||||
General = {
|
|
||||||
RaiseMaximumVolume = true;
|
|
||||||
VolumeStep = 2;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
kcminputrc = {
|
|
||||||
Keyboard.NumLock.value = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
78
modules/home/desktop/plasma/default.nix
Normal file
78
modules/home/desktop/plasma/default.nix
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
{ config, lib, namespace, osConfig ? {}, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.desktop.plasma;
|
||||||
|
osCfg = osConfig.${namespace}.desktop.plasma or { enable = false; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.desktop.plasma = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf osCfg.enable {
|
||||||
|
programs.plasma = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
immutableByDefault = true;
|
||||||
|
windows.allowWindowsToRememberPositions = true;
|
||||||
|
|
||||||
|
panels = import ./panels.nix;
|
||||||
|
powerdevil = import ./power.nix;
|
||||||
|
|
||||||
|
session = {
|
||||||
|
general.askForConfirmationOnLogout = false;
|
||||||
|
sessionRestore.restoreOpenApplicationsOnLogin = "onLastLogout";
|
||||||
|
};
|
||||||
|
|
||||||
|
workspace = {
|
||||||
|
clickItemTo = "select";
|
||||||
|
colorScheme = "EverforestDark";
|
||||||
|
wallpaper = config.stylix.image;
|
||||||
|
};
|
||||||
|
|
||||||
|
spectacle.shortcuts = {
|
||||||
|
captureRectangularRegion = "Meta+Shift+S";
|
||||||
|
};
|
||||||
|
|
||||||
|
kscreenlocker = {
|
||||||
|
autoLock = false;
|
||||||
|
lockOnResume = false;
|
||||||
|
lockOnStartup = false;
|
||||||
|
|
||||||
|
appearance = {
|
||||||
|
alwaysShowClock = true;
|
||||||
|
showMediaControls = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
configFile = {
|
||||||
|
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
|
||||||
|
|
||||||
|
kdeglobals = {
|
||||||
|
General = {
|
||||||
|
# enable font antialiasing
|
||||||
|
XftAntialias = true;
|
||||||
|
XftHintStyle = "hintslight";
|
||||||
|
XftSubPixel = "rgb";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
kwalletrc = {
|
||||||
|
Wallet.Enabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
plasmarc = {
|
||||||
|
General = {
|
||||||
|
RaiseMaximumVolume = true;
|
||||||
|
VolumeStep = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
kcminputrc = {
|
||||||
|
Keyboard.NumLock.value = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
109
modules/home/desktop/plasma/panels.nix
Normal file
109
modules/home/desktop/plasma/panels.nix
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
location = "bottom";
|
||||||
|
floating = true;
|
||||||
|
lengthMode = "fill";
|
||||||
|
height = 42;
|
||||||
|
hiding = "none";
|
||||||
|
screen = "all";
|
||||||
|
widgets = [
|
||||||
|
{
|
||||||
|
panelSpacer = {
|
||||||
|
expanding = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
kickoff = {
|
||||||
|
applicationsDisplayMode = "list";
|
||||||
|
compactDisplayStyle = false;
|
||||||
|
favoritesDisplayMode = "grid";
|
||||||
|
sortAlphabetically = true;
|
||||||
|
showButtonsFor = {
|
||||||
|
custom = [
|
||||||
|
"shutdown"
|
||||||
|
"reboot"
|
||||||
|
"logout"
|
||||||
|
"lock-screen"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
showActionButtonCaptions = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
iconTasks = {
|
||||||
|
appearance = {
|
||||||
|
fill = false;
|
||||||
|
highlightWindows = true;
|
||||||
|
iconSpacing = "medium";
|
||||||
|
indicateAudioStreams = true;
|
||||||
|
rows = {
|
||||||
|
multirowView = "never";
|
||||||
|
maximum = null;
|
||||||
|
};
|
||||||
|
showTooltips = true;
|
||||||
|
};
|
||||||
|
behavior = {
|
||||||
|
grouping = {
|
||||||
|
clickAction = "showPresentWindowsEffect";
|
||||||
|
method = "byProgramName";
|
||||||
|
};
|
||||||
|
minimizeActiveTaskOnClick = true;
|
||||||
|
newTasksAppearOn = "right";
|
||||||
|
showTasks = {
|
||||||
|
onlyInCurrentActivity = true;
|
||||||
|
onlyInCurrentDesktop = true;
|
||||||
|
onlyMinimized = false;
|
||||||
|
onlyInCurrentScreen = false;
|
||||||
|
};
|
||||||
|
sortingMethod = "manually";
|
||||||
|
unhideOnAttentionNeeded = true;
|
||||||
|
wheel = {
|
||||||
|
ignoreMinimizedTasks = true;
|
||||||
|
switchBetweenTasks = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
launchers = [
|
||||||
|
"preferred://filemanager"
|
||||||
|
"preferred://browser"
|
||||||
|
"preferred://terminalemulator"
|
||||||
|
"preferred://email"
|
||||||
|
"applications:vesktop.desktop"
|
||||||
|
"applications:steam.desktop"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
panelSpacer = {
|
||||||
|
expanding = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
systemTray = {
|
||||||
|
icons = {
|
||||||
|
scaleToFit = true;
|
||||||
|
spacing = "small";
|
||||||
|
};
|
||||||
|
items = {
|
||||||
|
hidden = [
|
||||||
|
"org.kde.plasma.brightness"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
pin = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
digitalClock = {
|
||||||
|
date = {
|
||||||
|
enable = true;
|
||||||
|
format = "shortDate";
|
||||||
|
position = "belowTime";
|
||||||
|
};
|
||||||
|
time = {
|
||||||
|
format = "24h";
|
||||||
|
showSeconds = "onlyInTooltip";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
]
|
37
modules/home/desktop/plasma/power.nix
Normal file
37
modules/home/desktop/plasma/power.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
AC = {
|
||||||
|
powerButtonAction = "shutDown";
|
||||||
|
whenLaptopLidClosed = "doNothing";
|
||||||
|
|
||||||
|
autoSuspend.action = "nothing";
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
|
turnOffDisplay = {
|
||||||
|
idleTimeout = "never";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
battery = {
|
||||||
|
powerButtonAction = "shutDown";
|
||||||
|
whenLaptopLidClosed = "doNothing";
|
||||||
|
|
||||||
|
autoSuspend.action = "nothing";
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
|
turnOffDisplay = {
|
||||||
|
idleTimeout = "never";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lowBattery = {
|
||||||
|
powerButtonAction = "shutDown";
|
||||||
|
whenLaptopLidClosed = "doNothing";
|
||||||
|
|
||||||
|
autoSuspend.action = "nothing";
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
|
||||||
|
turnOffDisplay = {
|
||||||
|
idleTimeout = "never";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
user,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.meta) getExe;
|
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.terminal.alacritty = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in { enable = mkEnableOption "OpenGL terminal emulator"; };
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.desktop.terminal.alacritty.enable {
|
|
||||||
modules.${user}.shell.toolset.tmux.enable = true;
|
|
||||||
|
|
||||||
home-manager.users.${user}.programs.alacritty = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = mkMerge [
|
|
||||||
{
|
|
||||||
env = {
|
|
||||||
TERM = "xterm-256color";
|
|
||||||
WINIT_X11_SCALE_FACTOR = "1.0";
|
|
||||||
};
|
|
||||||
|
|
||||||
window.dynamic_title = true;
|
|
||||||
|
|
||||||
scrolling = {
|
|
||||||
history = 5000;
|
|
||||||
multiplier = 3;
|
|
||||||
};
|
|
||||||
|
|
||||||
selection = {
|
|
||||||
semantic_escape_chars = '',│`|:"' ()[]{}<>'';
|
|
||||||
save_to_clipboard = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
general.live_config_reload = true;
|
|
||||||
|
|
||||||
terminal.shell = {
|
|
||||||
program = "${getExe pkgs.zsh}";
|
|
||||||
args = ["-l" "-c" "tmux new || tmux"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{ config, options, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkDefault mkIf mkMerge;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.desktop.terminal;
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.terminal = let
|
|
||||||
inherit (lib.options) mkOption;
|
|
||||||
inherit (lib.types) str;
|
|
||||||
in {
|
|
||||||
default = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = "alacrity";
|
|
||||||
description = "Default terminal";
|
|
||||||
example = "alacrity";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
{
|
|
||||||
home-manager.users.${user}.home.sessionVariables.TERMINAL = cfg.default;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
options,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
user,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (builtins) toString;
|
|
||||||
inherit (lib.meta) getExe;
|
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
in {
|
|
||||||
options.modules.${user}.desktop.terminal.ghostty = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in { enable = mkEnableOption "ghostty"; };
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.desktop.terminal.ghostty.enable {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.ghostty
|
|
||||||
];
|
|
||||||
|
|
||||||
modules.${user}.shell.toolset.tmux.enable = true;
|
|
||||||
|
|
||||||
home-manager.users.${user}.programs.ghostty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
background-blur-radius = 20;
|
|
||||||
theme = "dark:stylix,light:stylix";
|
|
||||||
window-theme = (config.modules.${user}.themes.polarity or "dark");
|
|
||||||
background-opacity = 0.8;
|
|
||||||
minimum-contrast = 1.1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ config, lib, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.develop = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
xdg.enable = mkEnableOption "XDG-related conf" // { default = true; };
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.develop.xdg.enable {
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ inputs, config, options, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.develop.dotnet = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption ".NET developmnt";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.develop.dotnet.enable {
|
|
||||||
home-manager.users.${user}.home.packages = attrValues {
|
|
||||||
inherit (pkgs) dotnet-sdk_8;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{ inputs, config, options, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.develop.js = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "JS developmnt";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
(mkIf config.modules.${user}.develop.js.enable {
|
|
||||||
home-manager.users.${user}.home.packages = with pkgs; [
|
|
||||||
bun
|
|
||||||
nodejs
|
|
||||||
nodePackages_latest.typescript-language-server
|
|
||||||
];
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf config.modules.${user}.develop.xdg.enable {
|
|
||||||
# home = {
|
|
||||||
# };
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
{ inputs, config, options, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.attrsets) attrValues;
|
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
inherit (lib.meta) getExe;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.develop.rust = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Rust developmnt";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
# (mkIf config.modules.${user}.develop.rust.enable {
|
|
||||||
# # nixpkgs.overlays = [inputs.rust.overlays.default];
|
|
||||||
#
|
|
||||||
# home-manager.users.${user}.home.packages = attrValues {
|
|
||||||
# # rust-package = pkgs.rust-bin.stable.latest.default;
|
|
||||||
# # inherit (pkgs) rust-analyzer rust-script;
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# environment.shellAliases = {
|
|
||||||
# rs = "rustc";
|
|
||||||
# ca = "cargo";
|
|
||||||
# };
|
|
||||||
# })
|
|
||||||
#
|
|
||||||
# (mkIf config.module.${user}s.develop.xdg.enable {
|
|
||||||
# home-manager.users.${user}.home = {
|
|
||||||
# sessionVariables.CARGO_HOME = "$XDG_DATA_HOME/cargo";
|
|
||||||
# sessionPath = ["$CARGO_HOME/bin"];
|
|
||||||
# };
|
|
||||||
# })
|
|
||||||
];
|
|
||||||
}
|
|
15
modules/home/development/dotnet/default.nix
Normal file
15
modules/home/development/dotnet/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.development.dotnet;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.development.dotnet = {
|
||||||
|
enable = mkEnableOption "Enable dotnet development tools";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ dotnet-sdk_8 ];
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/development/javascript/default.nix
Normal file
15
modules/home/development/javascript/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.development.javascript;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.development.javascript = {
|
||||||
|
enable = mkEnableOption "Enable javascript development tools";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ bun nodejs nodePackages_latest.typescript-language-server ];
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/development/rust/default.nix
Normal file
15
modules/home/development/rust/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.development.rust;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.development.rust = {
|
||||||
|
enable = mkEnableOption "Enable rust development tools";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
30
modules/home/editor/nano/default.nix
Normal file
30
modules/home/editor/nano/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ config, options, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.editor.nano;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.editor.nano = {
|
||||||
|
enable = mkEnableOption "nano";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ nano ];
|
||||||
|
|
||||||
|
# programs.nano = {
|
||||||
|
# enable = true;
|
||||||
|
# syntaxHighlight = true;
|
||||||
|
# nanorc = ''
|
||||||
|
# set autoindent
|
||||||
|
# set jumpyscrolling
|
||||||
|
# set linenumbers
|
||||||
|
# set mouse
|
||||||
|
# set saveonexit
|
||||||
|
# set smarthome
|
||||||
|
# set tabstospaces
|
||||||
|
# set tabsize 2
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
}
|
46
modules/home/editor/nvim/default.nix
Normal file
46
modules/home/editor/nvim/default.nix
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.editor.nvim;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# imports = [
|
||||||
|
# inputs.nvf.nixosModules.default
|
||||||
|
# ];
|
||||||
|
|
||||||
|
options.${namespace}.editor.nvim = {
|
||||||
|
enable = mkEnableOption "enable nvim via nvf on user level";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
imagemagick
|
||||||
|
editorconfig-core-c
|
||||||
|
sqlite
|
||||||
|
pandoc
|
||||||
|
nuspell
|
||||||
|
hunspellDicts.nl_NL
|
||||||
|
hunspellDicts.en_GB-ise
|
||||||
|
];
|
||||||
|
|
||||||
|
# programs.nvf = {
|
||||||
|
# enable = true;
|
||||||
|
# settings.vim = {
|
||||||
|
# statusline.lualine.enable = true;
|
||||||
|
# telescope.enable = true;
|
||||||
|
# autocomplete.nvim-cmp.enable = true;
|
||||||
|
|
||||||
|
# lsp.enable = true;
|
||||||
|
|
||||||
|
# languages = {
|
||||||
|
# enableTreesitter = true;
|
||||||
|
|
||||||
|
# nix.enable = true;
|
||||||
|
# ts.enable = true;
|
||||||
|
# rust.enable = true;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
}
|
73
modules/home/editor/zed/default.nix
Normal file
73
modules/home/editor/zed/default.nix
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }: let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.editor.zed;
|
||||||
|
in {
|
||||||
|
options.${namespace}.editor.zed = {
|
||||||
|
enable = mkEnableOption "zed";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
zed-editor nixd nil alejandra
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.zed-editor = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
extensions = [ "nix" "toml" "html" ];
|
||||||
|
|
||||||
|
userSettings = {
|
||||||
|
assistant.enabled = false;
|
||||||
|
|
||||||
|
vim_mode = false;
|
||||||
|
load_direnv = "shell_hook";
|
||||||
|
base_keymap = "JetBrains";
|
||||||
|
|
||||||
|
format_on_save = "on";
|
||||||
|
bindings = {
|
||||||
|
"ctrl+s" = "workspace::SaveAll";
|
||||||
|
};
|
||||||
|
|
||||||
|
tabs = {
|
||||||
|
file_icons = true;
|
||||||
|
git_status = true;
|
||||||
|
};
|
||||||
|
project_panel.auto_reveal_entries = false;
|
||||||
|
|
||||||
|
"experimental.theme_overrides" = {
|
||||||
|
border = "#ffffff07";
|
||||||
|
};
|
||||||
|
|
||||||
|
hour_format = "hour24";
|
||||||
|
auto_update = false;
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
nixd = {};
|
||||||
|
nil = {
|
||||||
|
initialization_options = {
|
||||||
|
nix = {
|
||||||
|
flake = {
|
||||||
|
autoArchive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
formatting = {
|
||||||
|
command = ["alejandra" "--quiet" "--"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
binary = {
|
||||||
|
path_lookup = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
languages = {
|
||||||
|
"Nix" = {
|
||||||
|
language_servers = ["nixd" "nil"];
|
||||||
|
format_on_save = "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
15
modules/home/game/minecraft/default.nix
Normal file
15
modules/home/game/minecraft/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ inputs, config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.game.minecraft;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.game.minecraft = {
|
||||||
|
enable = mkEnableOption "enable minecraft";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ prismlauncher ];
|
||||||
|
};
|
||||||
|
}
|
10
modules/home/home-manager/default.nix
Normal file
10
modules/home/home-manager/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ lib, osConfig ? { }, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkDefault;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
systemd.user.startServices = "sd-switch";
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
home.stateVersion = mkDefault (osConfig.system.stateVersion or "25.05");
|
||||||
|
}
|
|
@ -1,32 +1,17 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib.attrsets) attrValues;
|
inherit (lib) mkIf mkMerge mkEnableOption mkDefault;
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
|
||||||
inherit (lib.options) mkOption mkEnableOption;
|
|
||||||
inherit (lib.types) nullOr enum;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.shell;
|
cfg = config.${namespace}.shell;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.${user}.shell = {
|
options.${namespace}.shell = {
|
||||||
default = mkOption {
|
|
||||||
type = nullOr (enum ["fish" "zsh" "bash"]);
|
|
||||||
default = null;
|
|
||||||
description = "Default system shell";
|
|
||||||
};
|
|
||||||
|
|
||||||
corePkgs.enable = mkEnableOption "core shell packages";
|
corePkgs.enable = mkEnableOption "core shell packages";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
(mkIf (cfg.default != null) {
|
(mkIf (cfg.corePkgs.enable) {
|
||||||
users.defaultUserShell = pkgs."${cfg.default}";
|
${namespace}.shell.toolset = mkDefault {
|
||||||
|
|
||||||
# modules.${user}.shell.toolset.gnupg.enable = true;
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf cfg.corePkgs.enable {
|
|
||||||
modules.${user}.shell.toolset = {
|
|
||||||
bat.enable = true;
|
bat.enable = true;
|
||||||
btop.enable = true;
|
btop.enable = true;
|
||||||
eza.enable = true;
|
eza.enable = true;
|
||||||
|
@ -37,21 +22,10 @@ in
|
||||||
yazi.enable = true;
|
yazi.enable = true;
|
||||||
zoxide.enable = true;
|
zoxide.enable = true;
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
|
||||||
home-manager.users.${user} = {
|
({
|
||||||
home.packages = attrValues {
|
home.packages = with pkgs; [ any-nix-shell pwgen yt-dlp ripdrag fd (ripgrep.override {withPCRE2 = true;}) ];
|
||||||
inherit (pkgs) any-nix-shell pwgen yt-dlp ripdrag;
|
|
||||||
inherit (pkgs) fd;
|
|
||||||
|
|
||||||
rgFull = pkgs.ripgrep.override {withPCRE2 = true;};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.shellAliases = {
|
|
||||||
# ls = "eza -a";
|
|
||||||
# cat = "bat -pp";
|
|
||||||
# y = "yazi";
|
|
||||||
# zed = "zeditor .";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
direnv = {
|
direnv = {
|
||||||
|
@ -65,7 +39,6 @@ in
|
||||||
config.whitelist.prefix = ["/home"];
|
config.whitelist.prefix = ["/home"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.shell.toolset.bat;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.bat = {
|
|
||||||
enable = mkEnableOption "cat replacement";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ bat ];
|
|
||||||
|
|
||||||
programs.bat = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
19
modules/home/shell/toolset/bat/default.nix
Normal file
19
modules/home/shell/toolset/bat/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.bat;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.bat = {
|
||||||
|
enable = mkEnableOption "cat replacement";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ bat ];
|
||||||
|
|
||||||
|
programs.bat = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,95 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
inherit (lib.strings) concatStringsSep;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.shell.toolset.btop;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.btop = {
|
|
||||||
enable = mkEnableOption "system-monitor";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ btop ];
|
|
||||||
|
|
||||||
programs.btop = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
force_tty = false;
|
|
||||||
vim_keys = true; # Directional keys: "h,j,k,l,g,G"
|
|
||||||
update_ms = 1500; # ms (s^{-3})
|
|
||||||
temp_scale = "celsius";
|
|
||||||
base_10_sizes = false;
|
|
||||||
show_cpu_freq = true;
|
|
||||||
clock_format = "%H:%M";
|
|
||||||
background_update = true;
|
|
||||||
disks_filter = "exclude=/boot";
|
|
||||||
|
|
||||||
rounded_corners = true;
|
|
||||||
theme_background = false;
|
|
||||||
truecolor = true;
|
|
||||||
presets = concatStringsSep "," [
|
|
||||||
"cpu:1:default"
|
|
||||||
"proc:0:default cpu:0:default"
|
|
||||||
"mem:0:default"
|
|
||||||
"net:0:default cpu:0:block"
|
|
||||||
"net:0:tty"
|
|
||||||
];
|
|
||||||
graph_symbol = "braille";
|
|
||||||
graph_symbol_cpu = "default";
|
|
||||||
graph_symbol_mem = "default";
|
|
||||||
graph_symbol_net = "default";
|
|
||||||
graph_symbol_proc = "default";
|
|
||||||
shown_boxes = "proc cpu mem net";
|
|
||||||
|
|
||||||
proc_sorting = "cpu lazy";
|
|
||||||
proc_reversed = false;
|
|
||||||
proc_tree = false;
|
|
||||||
proc_colors = true;
|
|
||||||
proc_gradient = true;
|
|
||||||
proc_per_core = true;
|
|
||||||
proc_mem_bytes = true;
|
|
||||||
proc_info_smaps = false;
|
|
||||||
proc_left = false;
|
|
||||||
|
|
||||||
cpu_graph_upper = "total";
|
|
||||||
cpu_graph_lower = "total";
|
|
||||||
cpu_single_graph = false;
|
|
||||||
cpu_bottom = false;
|
|
||||||
show_uptime = true;
|
|
||||||
check_temp = true;
|
|
||||||
cpu_sensor = "Auto";
|
|
||||||
show_coretemp = true;
|
|
||||||
cpu_core_map = "";
|
|
||||||
custom_cpu_name = "";
|
|
||||||
|
|
||||||
mem_graphs = true;
|
|
||||||
mem_below_net = false;
|
|
||||||
|
|
||||||
show_swap = true;
|
|
||||||
swap_disk = true;
|
|
||||||
show_disks = true;
|
|
||||||
only_physical = true;
|
|
||||||
use_fstab = false; # Enable -> disables `only_physical`
|
|
||||||
disk_free_priv = false;
|
|
||||||
show_io_stat = true;
|
|
||||||
|
|
||||||
io_mode = false;
|
|
||||||
io_graph_combined = false;
|
|
||||||
io_graph_speeds = "";
|
|
||||||
|
|
||||||
net_download = 100;
|
|
||||||
net_upload = 100;
|
|
||||||
net_auto = true;
|
|
||||||
net_sync = false;
|
|
||||||
net_iface = "br0";
|
|
||||||
show_battery = true;
|
|
||||||
selected_battery = "Auto";
|
|
||||||
log_level = "DEBUG";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
93
modules/home/shell/toolset/btop/default.nix
Normal file
93
modules/home/shell/toolset/btop/default.nix
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
inherit (lib.strings) concatStringsSep;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.btop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.btop = {
|
||||||
|
enable = mkEnableOption "system-monitor";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ btop ];
|
||||||
|
|
||||||
|
programs.btop = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
force_tty = false;
|
||||||
|
vim_keys = true; # Directional keys: "h,j,k,l,g,G"
|
||||||
|
update_ms = 1500; # ms (s^{-3})
|
||||||
|
temp_scale = "celsius";
|
||||||
|
base_10_sizes = false;
|
||||||
|
show_cpu_freq = true;
|
||||||
|
clock_format = "%H:%M";
|
||||||
|
background_update = true;
|
||||||
|
disks_filter = "exclude=/boot";
|
||||||
|
|
||||||
|
rounded_corners = true;
|
||||||
|
theme_background = false;
|
||||||
|
truecolor = true;
|
||||||
|
presets = concatStringsSep "," [
|
||||||
|
"cpu:1:default"
|
||||||
|
"proc:0:default cpu:0:default"
|
||||||
|
"mem:0:default"
|
||||||
|
"net:0:default cpu:0:block"
|
||||||
|
"net:0:tty"
|
||||||
|
];
|
||||||
|
graph_symbol = "braille";
|
||||||
|
graph_symbol_cpu = "default";
|
||||||
|
graph_symbol_mem = "default";
|
||||||
|
graph_symbol_net = "default";
|
||||||
|
graph_symbol_proc = "default";
|
||||||
|
shown_boxes = "proc cpu mem net";
|
||||||
|
|
||||||
|
proc_sorting = "cpu lazy";
|
||||||
|
proc_reversed = false;
|
||||||
|
proc_tree = false;
|
||||||
|
proc_colors = true;
|
||||||
|
proc_gradient = true;
|
||||||
|
proc_per_core = true;
|
||||||
|
proc_mem_bytes = true;
|
||||||
|
proc_info_smaps = false;
|
||||||
|
proc_left = false;
|
||||||
|
|
||||||
|
cpu_graph_upper = "total";
|
||||||
|
cpu_graph_lower = "total";
|
||||||
|
cpu_single_graph = false;
|
||||||
|
cpu_bottom = false;
|
||||||
|
show_uptime = true;
|
||||||
|
check_temp = true;
|
||||||
|
cpu_sensor = "Auto";
|
||||||
|
show_coretemp = true;
|
||||||
|
cpu_core_map = "";
|
||||||
|
custom_cpu_name = "";
|
||||||
|
|
||||||
|
mem_graphs = true;
|
||||||
|
mem_below_net = false;
|
||||||
|
|
||||||
|
show_swap = true;
|
||||||
|
swap_disk = true;
|
||||||
|
show_disks = true;
|
||||||
|
only_physical = true;
|
||||||
|
use_fstab = false; # Enable -> disables `only_physical`
|
||||||
|
disk_free_priv = false;
|
||||||
|
show_io_stat = true;
|
||||||
|
|
||||||
|
io_mode = false;
|
||||||
|
io_graph_combined = false;
|
||||||
|
io_graph_speeds = "";
|
||||||
|
|
||||||
|
net_download = 100;
|
||||||
|
net_upload = 100;
|
||||||
|
net_auto = true;
|
||||||
|
net_sync = false;
|
||||||
|
net_iface = "br0";
|
||||||
|
show_battery = true;
|
||||||
|
selected_battery = "Auto";
|
||||||
|
log_level = "DEBUG";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,29 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.shell.toolset.eza;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.eza = {
|
|
||||||
enable = mkEnableOption "system-monitor";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ eza ];
|
|
||||||
|
|
||||||
programs.eza = {
|
|
||||||
enable = true;
|
|
||||||
icons = "auto";
|
|
||||||
git = true;
|
|
||||||
extraOptions = [
|
|
||||||
"--hyperlink"
|
|
||||||
"--across"
|
|
||||||
"--group-directories-first"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
26
modules/home/shell/toolset/eza/default.nix
Normal file
26
modules/home/shell/toolset/eza/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.eza;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.eza = {
|
||||||
|
enable = mkEnableOption "system-monitor";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ eza ];
|
||||||
|
|
||||||
|
programs.eza = {
|
||||||
|
enable = true;
|
||||||
|
icons = "auto";
|
||||||
|
git = true;
|
||||||
|
extraOptions = [
|
||||||
|
"--hyperlink"
|
||||||
|
"--across"
|
||||||
|
"--group-directories-first"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,37 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
|
|
||||||
defShell = config.modules.${user}.shell.default;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.fzf = {
|
|
||||||
enable = mkEnableOption "TUI Fuzzy Finder.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.shell.toolset.fzf.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ fzf ];
|
|
||||||
|
|
||||||
programs.fzf = {
|
|
||||||
enable = true;
|
|
||||||
enableBashIntegration = true;
|
|
||||||
enableZshIntegration = defShell == "zsh";
|
|
||||||
enableFishIntegration = defShell == "fish";
|
|
||||||
|
|
||||||
tmux.enableShellIntegration = true;
|
|
||||||
tmux.shellIntegrationOptions = ["-d 40%"];
|
|
||||||
|
|
||||||
defaultCommand = "fd --type f";
|
|
||||||
defaultOptions = ["--height 40%" "--border"];
|
|
||||||
|
|
||||||
changeDirWidgetCommand = "fd --type d";
|
|
||||||
changeDirWidgetOptions = ["--preview 'tree -C {} | head -200'"];
|
|
||||||
|
|
||||||
fileWidgetCommand = "fd --type f";
|
|
||||||
fileWidgetOptions = ["--preview 'head {}'"];
|
|
||||||
historyWidgetOptions = ["--sort" "--exact"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
35
modules/home/shell/toolset/fzf/default.nix
Normal file
35
modules/home/shell/toolset/fzf/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.fzf;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.fzf = {
|
||||||
|
enable = mkEnableOption "TUI Fuzzy Finder.";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ fzf ];
|
||||||
|
|
||||||
|
programs.fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
|
||||||
|
tmux.enableShellIntegration = true;
|
||||||
|
tmux.shellIntegrationOptions = ["-d 40%"];
|
||||||
|
|
||||||
|
defaultCommand = "fd --type f";
|
||||||
|
defaultOptions = ["--height 40%" "--border"];
|
||||||
|
|
||||||
|
changeDirWidgetCommand = "fd --type d";
|
||||||
|
changeDirWidgetOptions = ["--preview 'tree -C {} | head -200'"];
|
||||||
|
|
||||||
|
fileWidgetCommand = "fd --type f";
|
||||||
|
fileWidgetOptions = ["--preview 'head {}'"];
|
||||||
|
historyWidgetOptions = ["--sort" "--exact"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,112 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.git = {
|
|
||||||
enable = mkEnableOption "version-control system";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.shell.toolset.git.enable {
|
|
||||||
environment.sessionVariables.GITHUB_TOKEN = "$(cat /run/agenix/tokenGH)";
|
|
||||||
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ lazygit lazyjj jujutsu ];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
zsh.initContent = ''
|
|
||||||
# -------===[ Helpful Git Fn's ]===------- #
|
|
||||||
gitignore() {
|
|
||||||
curl -s -o .gitignore https://gitignore.io/api/$1
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
fish.functions = {
|
|
||||||
gitignore = "curl -sL https://www.gitignore.io/api/$argv";
|
|
||||||
};
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.gitFull;
|
|
||||||
difftastic = {
|
|
||||||
enable = true;
|
|
||||||
background = "dark";
|
|
||||||
color = "always";
|
|
||||||
display = "inline";
|
|
||||||
};
|
|
||||||
|
|
||||||
ignores = [
|
|
||||||
# General:
|
|
||||||
"*.bloop"
|
|
||||||
"*.bsp"
|
|
||||||
"*.metals"
|
|
||||||
"*.metals.sbt"
|
|
||||||
"*metals.sbt"
|
|
||||||
"*.direnv"
|
|
||||||
"*.envrc"
|
|
||||||
"*hie.yaml"
|
|
||||||
"*.mill-version"
|
|
||||||
"*.jvmopts"
|
|
||||||
|
|
||||||
# OS-related:
|
|
||||||
".DS_Store?"
|
|
||||||
".DS_Store"
|
|
||||||
".CFUserTextEncoding"
|
|
||||||
".Trash"
|
|
||||||
".Xauthority"
|
|
||||||
"thumbs.db"
|
|
||||||
"Thumbs.db"
|
|
||||||
"Icon?"
|
|
||||||
|
|
||||||
# Compiled residues:
|
|
||||||
"*.class"
|
|
||||||
"*.exe"
|
|
||||||
"*.o"
|
|
||||||
"*.pyc"
|
|
||||||
"*.elc"
|
|
||||||
];
|
|
||||||
|
|
||||||
extraConfig = {
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
core = {
|
|
||||||
editor = "nvim";
|
|
||||||
whitespace = "trailing-space,space-before-tab";
|
|
||||||
};
|
|
||||||
credential.helper = "${pkgs.gitFull}/bin/git-credential-libsecret";
|
|
||||||
|
|
||||||
user = {
|
|
||||||
name = config.modules.${user}.user.full_name;
|
|
||||||
email = config.modules.${user}.user.email;
|
|
||||||
signingKey = "~/.ssh/id_rsa.pub";
|
|
||||||
};
|
|
||||||
|
|
||||||
gpg.format = "ssh";
|
|
||||||
commit.gpgSign = true;
|
|
||||||
tag.gpgSign = true;
|
|
||||||
|
|
||||||
push = {
|
|
||||||
autoSetupRemote = true;
|
|
||||||
default = "current";
|
|
||||||
gpgSign = "if-asked";
|
|
||||||
autoSquash = true;
|
|
||||||
};
|
|
||||||
pull.rebase = true;
|
|
||||||
|
|
||||||
filter = {
|
|
||||||
required = true;
|
|
||||||
smudge = "git-lfs smudge -- %f";
|
|
||||||
process = "git-lfs filter-process";
|
|
||||||
clean = "git-lfs clean -- %f";
|
|
||||||
};
|
|
||||||
|
|
||||||
url = {
|
|
||||||
"https://github.com/".insteadOf = "gh:";
|
|
||||||
"git@github.com:".insteadOf = "ssh+gh:";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
109
modules/home/shell/toolset/git/default.nix
Normal file
109
modules/home/shell/toolset/git/default.nix
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.git;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.git = {
|
||||||
|
enable = mkEnableOption "version-control system";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.sessionVariables.GITHUB_TOKEN = "$(cat /run/agenix/tokenGH)";
|
||||||
|
|
||||||
|
home.packages = with pkgs; [ lazygit lazyjj jujutsu ];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
zsh.initContent = ''
|
||||||
|
# -------===[ Helpful Git Fn's ]===------- #
|
||||||
|
gitignore() {
|
||||||
|
curl -s -o .gitignore https://gitignore.io/api/$1
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
fish.functions = {
|
||||||
|
gitignore = "curl -sL https://www.gitignore.io/api/$argv";
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.gitFull;
|
||||||
|
difftastic = {
|
||||||
|
enable = true;
|
||||||
|
background = "dark";
|
||||||
|
color = "always";
|
||||||
|
display = "inline";
|
||||||
|
};
|
||||||
|
|
||||||
|
ignores = [
|
||||||
|
# General:
|
||||||
|
"*.bloop"
|
||||||
|
"*.bsp"
|
||||||
|
"*.metals"
|
||||||
|
"*.metals.sbt"
|
||||||
|
"*metals.sbt"
|
||||||
|
"*.direnv"
|
||||||
|
"*.envrc"
|
||||||
|
"*hie.yaml"
|
||||||
|
"*.mill-version"
|
||||||
|
"*.jvmopts"
|
||||||
|
|
||||||
|
# OS-related:
|
||||||
|
".DS_Store?"
|
||||||
|
".DS_Store"
|
||||||
|
".CFUserTextEncoding"
|
||||||
|
".Trash"
|
||||||
|
".Xauthority"
|
||||||
|
"thumbs.db"
|
||||||
|
"Thumbs.db"
|
||||||
|
"Icon?"
|
||||||
|
|
||||||
|
# Compiled residues:
|
||||||
|
"*.class"
|
||||||
|
"*.exe"
|
||||||
|
"*.o"
|
||||||
|
"*.pyc"
|
||||||
|
"*.elc"
|
||||||
|
];
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
core = {
|
||||||
|
editor = "nvim";
|
||||||
|
whitespace = "trailing-space,space-before-tab";
|
||||||
|
};
|
||||||
|
credential.helper = "${pkgs.gitFull}/bin/git-credential-libsecret";
|
||||||
|
|
||||||
|
user = {
|
||||||
|
signingKey = "~/.ssh/id_rsa.pub";
|
||||||
|
};
|
||||||
|
|
||||||
|
gpg.format = "ssh";
|
||||||
|
commit.gpgSign = true;
|
||||||
|
tag.gpgSign = true;
|
||||||
|
|
||||||
|
push = {
|
||||||
|
autoSetupRemote = true;
|
||||||
|
default = "current";
|
||||||
|
gpgSign = "if-asked";
|
||||||
|
autoSquash = true;
|
||||||
|
};
|
||||||
|
pull.rebase = true;
|
||||||
|
|
||||||
|
filter = {
|
||||||
|
required = true;
|
||||||
|
smudge = "git-lfs smudge -- %f";
|
||||||
|
process = "git-lfs filter-process";
|
||||||
|
clean = "git-lfs clean -- %f";
|
||||||
|
};
|
||||||
|
|
||||||
|
url = {
|
||||||
|
"https://github.com/".insteadOf = "gh:";
|
||||||
|
"git@github.com:".insteadOf = "ssh+gh:";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
36
modules/home/shell/toolset/gnugpg/default.nix
Normal file
36
modules/home/shell/toolset/gnugpg/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.gnupg;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.gnupg = {
|
||||||
|
enable = mkEnableOption "cryptographic suite";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
# home.packages = with pkgs; [ gnupg ];
|
||||||
|
|
||||||
|
# home.sessionVariables.GNUPGHOME = "$XDG_CONFIG_HOME/gnupg";
|
||||||
|
|
||||||
|
# programs.gnupg = {
|
||||||
|
# enable = true;
|
||||||
|
|
||||||
|
# agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# pinentryPackage = pkgs.pinentry-gnome3;
|
||||||
|
|
||||||
|
# settings = let
|
||||||
|
# cacheTTL = 86400;
|
||||||
|
# in {
|
||||||
|
# default-cache-ttl = cacheTTL;
|
||||||
|
# default-cache-ttl-ssh = cacheTTL;
|
||||||
|
# max-cache-ttl = cacheTTL;
|
||||||
|
# max-cache-ttl-ssh = cacheTTL;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,38 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.shell.toolset.gnupg;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.gnupg = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "cryptographic suite";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
user.package = with pkgs; [ gnupg ];
|
|
||||||
|
|
||||||
environment.variables.GNUPGHOME = "$XDG_CONFIG_HOME/gnupg";
|
|
||||||
|
|
||||||
home-manager.users.${user}.programs.gnupg = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
pinentryPackage = pkgs.pinentry-gnome3;
|
|
||||||
|
|
||||||
settings = let
|
|
||||||
cacheTTL = 86400;
|
|
||||||
in {
|
|
||||||
default-cache-ttl = cacheTTL;
|
|
||||||
default-cache-ttl-ssh = cacheTTL;
|
|
||||||
max-cache-ttl = cacheTTL;
|
|
||||||
max-cache-ttl-ssh = cacheTTL;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,101 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.starship = {
|
|
||||||
enable = mkEnableOption "fancy pansy shell prompt";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.shell.toolset.starship.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ starship ];
|
|
||||||
|
|
||||||
programs.starship = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
format = "[╭](bold green) $username@$hostname$nix_shell: $directory$cmd_duration$git_branch$git_commit$git_state$git_status$line_break[╰](green bold)$character";
|
|
||||||
|
|
||||||
username = {
|
|
||||||
format = "[$user]($style)";
|
|
||||||
show_always = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
hostname = {
|
|
||||||
ssh_only = false;
|
|
||||||
ssh_symbol = "🌐 ";
|
|
||||||
format = "[$hostname](bold red)";
|
|
||||||
trim_at = ".local";
|
|
||||||
disabled = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
nix_shell = {
|
|
||||||
symbol = " ";
|
|
||||||
format = "[$symbol$name]($style) ";
|
|
||||||
style = "magenta bold";
|
|
||||||
};
|
|
||||||
|
|
||||||
git_branch = {
|
|
||||||
only_attached = true;
|
|
||||||
format = "[$symbol$branch]($style) ";
|
|
||||||
symbol = " ";
|
|
||||||
style = "yellow bold";
|
|
||||||
};
|
|
||||||
|
|
||||||
git_commit = {
|
|
||||||
tag_disabled = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
git_state = {
|
|
||||||
style = "magenta bold";
|
|
||||||
};
|
|
||||||
|
|
||||||
git_status = {
|
|
||||||
format = "[$all_status $ahead_behind]($style) ";
|
|
||||||
style = "bold green";
|
|
||||||
conflicted = "🏳";
|
|
||||||
up_to_date = "";
|
|
||||||
untracked = " ";
|
|
||||||
ahead = "⇡\${count}";
|
|
||||||
diverged = "⇕⇡\${ahead_count}⇣\${behind_count}";
|
|
||||||
behind = "⇣\${count}";
|
|
||||||
stashed = " ";
|
|
||||||
modified = " ";
|
|
||||||
staged = "[++\($count\)](green)";
|
|
||||||
renamed = "襁 ";
|
|
||||||
deleted = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
directory = {
|
|
||||||
read_only = " ";
|
|
||||||
};
|
|
||||||
|
|
||||||
cmd_duration = {
|
|
||||||
format = "[$duration]($style) ";
|
|
||||||
style = "blue";
|
|
||||||
};
|
|
||||||
|
|
||||||
os = {
|
|
||||||
format = "[$symbol](bold white)";
|
|
||||||
disabled = false;
|
|
||||||
|
|
||||||
symbols = {
|
|
||||||
Windows = " ";
|
|
||||||
Arch = "";
|
|
||||||
Ubuntu = "";
|
|
||||||
Macos = "";
|
|
||||||
Manjaro = " ";
|
|
||||||
Nobara = " ";
|
|
||||||
Unknown = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fill = {
|
|
||||||
symbol = " ";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
100
modules/home/shell/toolset/starship/default.nix
Normal file
100
modules/home/shell/toolset/starship/default.nix
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.starship;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.starship = {
|
||||||
|
enable = mkEnableOption "fancy pansy shell prompt";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ starship ];
|
||||||
|
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
format = "[╭](bold green) $username@$hostname$nix_shell: $directory$cmd_duration$git_branch$git_commit$git_state$git_status$line_break[╰](green bold)$character";
|
||||||
|
|
||||||
|
username = {
|
||||||
|
format = "[$user]($style)";
|
||||||
|
show_always = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
hostname = {
|
||||||
|
ssh_only = false;
|
||||||
|
ssh_symbol = "🌐 ";
|
||||||
|
format = "[$hostname](bold red)";
|
||||||
|
trim_at = ".local";
|
||||||
|
disabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
nix_shell = {
|
||||||
|
symbol = " ";
|
||||||
|
format = "[$symbol$name]($style) ";
|
||||||
|
style = "magenta bold";
|
||||||
|
};
|
||||||
|
|
||||||
|
git_branch = {
|
||||||
|
only_attached = true;
|
||||||
|
format = "[$symbol$branch]($style) ";
|
||||||
|
symbol = " ";
|
||||||
|
style = "yellow bold";
|
||||||
|
};
|
||||||
|
|
||||||
|
git_commit = {
|
||||||
|
tag_disabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
git_state = {
|
||||||
|
style = "magenta bold";
|
||||||
|
};
|
||||||
|
|
||||||
|
git_status = {
|
||||||
|
format = "[$all_status $ahead_behind]($style) ";
|
||||||
|
style = "bold green";
|
||||||
|
conflicted = "🏳";
|
||||||
|
up_to_date = "";
|
||||||
|
untracked = " ";
|
||||||
|
ahead = "⇡\${count}";
|
||||||
|
diverged = "⇕⇡\${ahead_count}⇣\${behind_count}";
|
||||||
|
behind = "⇣\${count}";
|
||||||
|
stashed = " ";
|
||||||
|
modified = " ";
|
||||||
|
staged = "[++\($count\)](green)";
|
||||||
|
renamed = "襁 ";
|
||||||
|
deleted = " ";
|
||||||
|
};
|
||||||
|
|
||||||
|
directory = {
|
||||||
|
read_only = " ";
|
||||||
|
};
|
||||||
|
|
||||||
|
cmd_duration = {
|
||||||
|
format = "[$duration]($style) ";
|
||||||
|
style = "blue";
|
||||||
|
};
|
||||||
|
|
||||||
|
os = {
|
||||||
|
format = "[$symbol](bold white)";
|
||||||
|
disabled = false;
|
||||||
|
|
||||||
|
symbols = {
|
||||||
|
Windows = " ";
|
||||||
|
Arch = "";
|
||||||
|
Ubuntu = "";
|
||||||
|
Macos = "";
|
||||||
|
Manjaro = " ";
|
||||||
|
Nobara = " ";
|
||||||
|
Unknown = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fill = {
|
||||||
|
symbol = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,107 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.tmux = let
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in { enable = mkEnableOption "terminal multiplexer"; };
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.shell.toolset.tmux.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ tmux ];
|
|
||||||
|
|
||||||
programs.tmux = {
|
|
||||||
enable = true;
|
|
||||||
secureSocket = true;
|
|
||||||
keyMode = "vi";
|
|
||||||
prefix = "C-a";
|
|
||||||
terminal = "tmux-256color";
|
|
||||||
|
|
||||||
baseIndex = 1;
|
|
||||||
clock24 = true;
|
|
||||||
disableConfirmationPrompt = true;
|
|
||||||
escapeTime = 0;
|
|
||||||
|
|
||||||
aggressiveResize = false;
|
|
||||||
resizeAmount = 2;
|
|
||||||
reverseSplit = false;
|
|
||||||
historyLimit = 5000;
|
|
||||||
newSession = true;
|
|
||||||
|
|
||||||
plugins = let
|
|
||||||
inherit (pkgs.tmuxPlugins) resurrect continuum;
|
|
||||||
in [
|
|
||||||
{
|
|
||||||
plugin = resurrect;
|
|
||||||
extraConfig = "set -g @resurrect-strategy-nvim 'session'";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
plugin = continuum;
|
|
||||||
extraConfig = ''
|
|
||||||
set -g @continuum-restore 'on'
|
|
||||||
set -g @continuum-save-interval '60' # minutes
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
# -------===[ Color Correction ]===------- #
|
|
||||||
set-option -ga terminal-overrides ",*256col*:Tc"
|
|
||||||
set-option -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q'
|
|
||||||
set-environment -g COLORTERM "truecolor"
|
|
||||||
|
|
||||||
# -------===[ General-Configurations ]===------- #
|
|
||||||
set-option -g renumber-windows on
|
|
||||||
set-window-option -g automatic-rename on
|
|
||||||
set-window-option -g word-separators ' @"=()[]'
|
|
||||||
|
|
||||||
set-option -g mouse on
|
|
||||||
set-option -s focus-events on
|
|
||||||
set-option -g renumber-windows on
|
|
||||||
set-option -g allow-rename off
|
|
||||||
|
|
||||||
# -------===[ Activity/Sound ]===------- #
|
|
||||||
set-option -g bell-action none
|
|
||||||
set-option -g visual-bell off
|
|
||||||
set-option -g visual-silence off
|
|
||||||
set-option -g visual-activity off
|
|
||||||
set-window-option -g monitor-activity off
|
|
||||||
|
|
||||||
# -------===[ Status-Bar ]===------- #
|
|
||||||
set-option -g status on
|
|
||||||
set-option -g status-interval 1
|
|
||||||
set-option -g status-style bg=default,bold,italics
|
|
||||||
|
|
||||||
set-option -g status-position top
|
|
||||||
set-option -g status-justify left
|
|
||||||
|
|
||||||
set-option -g status-left-length "40"
|
|
||||||
set-option -g status-right-length "80"
|
|
||||||
|
|
||||||
# -------===[ Keybindings ]===------- #
|
|
||||||
bind-key c clock-mode
|
|
||||||
|
|
||||||
# Window Control(s):
|
|
||||||
bind-key q kill-session
|
|
||||||
bind-key Q kill-server
|
|
||||||
bind-key t new-window -c '#{pane_current_path}'
|
|
||||||
|
|
||||||
# Buffers:
|
|
||||||
bind-key b list-buffers
|
|
||||||
bind-key p paste-buffer
|
|
||||||
bind-key P choose-buffer
|
|
||||||
|
|
||||||
# Split bindings:
|
|
||||||
bind-key - split-window -v -c '#{pane_current_path}'
|
|
||||||
bind-key / split-window -h -c '#{pane_current_path}'
|
|
||||||
|
|
||||||
# Copy/Paste bindings:
|
|
||||||
bind-key -T copy-mode-vi v send-keys -X begin-selection -N "Start visual mode for selection"
|
|
||||||
bind-key -T copy-mode-vi y send-keys -X copy-selection -N "Yank text into buffer"
|
|
||||||
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle -N "Yank region into buffer"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
107
modules/home/shell/toolset/tmux/default.nix
Normal file
107
modules/home/shell/toolset/tmux/default.nix
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.tmux;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.tmux = {
|
||||||
|
enable = mkEnableOption "terminal multiplexer";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ tmux ];
|
||||||
|
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
secureSocket = true;
|
||||||
|
keyMode = "vi";
|
||||||
|
prefix = "C-a";
|
||||||
|
terminal = "tmux-256color";
|
||||||
|
|
||||||
|
baseIndex = 1;
|
||||||
|
clock24 = true;
|
||||||
|
disableConfirmationPrompt = true;
|
||||||
|
escapeTime = 0;
|
||||||
|
|
||||||
|
aggressiveResize = false;
|
||||||
|
resizeAmount = 2;
|
||||||
|
reverseSplit = false;
|
||||||
|
historyLimit = 5000;
|
||||||
|
newSession = true;
|
||||||
|
|
||||||
|
plugins = let
|
||||||
|
inherit (pkgs.tmuxPlugins) resurrect continuum;
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
plugin = resurrect;
|
||||||
|
extraConfig = "set -g @resurrect-strategy-nvim 'session'";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = continuum;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
set -g @continuum-save-interval '60' # minutes
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
# -------===[ Color Correction ]===------- #
|
||||||
|
set-option -ga terminal-overrides ",*256col*:Tc"
|
||||||
|
set-option -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q'
|
||||||
|
set-environment -g COLORTERM "truecolor"
|
||||||
|
|
||||||
|
# -------===[ General-Configurations ]===------- #
|
||||||
|
set-option -g renumber-windows on
|
||||||
|
set-window-option -g automatic-rename on
|
||||||
|
set-window-option -g word-separators ' @"=()[]'
|
||||||
|
|
||||||
|
set-option -g mouse on
|
||||||
|
set-option -s focus-events on
|
||||||
|
set-option -g renumber-windows on
|
||||||
|
set-option -g allow-rename off
|
||||||
|
|
||||||
|
# -------===[ Activity/Sound ]===------- #
|
||||||
|
set-option -g bell-action none
|
||||||
|
set-option -g visual-bell off
|
||||||
|
set-option -g visual-silence off
|
||||||
|
set-option -g visual-activity off
|
||||||
|
set-window-option -g monitor-activity off
|
||||||
|
|
||||||
|
# -------===[ Status-Bar ]===------- #
|
||||||
|
set-option -g status on
|
||||||
|
set-option -g status-interval 1
|
||||||
|
set-option -g status-style bg=default,bold,italics
|
||||||
|
|
||||||
|
set-option -g status-position top
|
||||||
|
set-option -g status-justify left
|
||||||
|
|
||||||
|
set-option -g status-left-length "40"
|
||||||
|
set-option -g status-right-length "80"
|
||||||
|
|
||||||
|
# -------===[ Keybindings ]===------- #
|
||||||
|
bind-key c clock-mode
|
||||||
|
|
||||||
|
# Window Control(s):
|
||||||
|
bind-key q kill-session
|
||||||
|
bind-key Q kill-server
|
||||||
|
bind-key t new-window -c '#{pane_current_path}'
|
||||||
|
|
||||||
|
# Buffers:
|
||||||
|
bind-key b list-buffers
|
||||||
|
bind-key p paste-buffer
|
||||||
|
bind-key P choose-buffer
|
||||||
|
|
||||||
|
# Split bindings:
|
||||||
|
bind-key - split-window -v -c '#{pane_current_path}'
|
||||||
|
bind-key / split-window -h -c '#{pane_current_path}'
|
||||||
|
|
||||||
|
# Copy/Paste bindings:
|
||||||
|
bind-key -T copy-mode-vi v send-keys -X begin-selection -N "Start visual mode for selection"
|
||||||
|
bind-key -T copy-mode-vi y send-keys -X copy-selection -N "Yank text into buffer"
|
||||||
|
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle -N "Yank region into buffer"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,22 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
|
|
||||||
cfg = config.modules.${user}.shell.toolset.yazi;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.yazi = {
|
|
||||||
enable = mkEnableOption "cli file browser";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ yazi ];
|
|
||||||
|
|
||||||
programs.yazi = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
19
modules/home/shell/toolset/yazi/default.nix
Normal file
19
modules/home/shell/toolset/yazi/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.shell.toolset.yazi;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.shell.toolset.yazi = {
|
||||||
|
enable = mkEnableOption "cli file browser";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ yazi ];
|
||||||
|
|
||||||
|
programs.yazi = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,23 +0,0 @@
|
||||||
{ config, lib, pkgs, user, ... }:
|
|
||||||
let
|
|
||||||
inherit (lib.modules) mkIf;
|
|
||||||
inherit (lib.options) mkEnableOption;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.${user}.shell.toolset.zellij = {
|
|
||||||
enable = mkEnableOption "terminal multiplexer";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf config.modules.${user}.shell.toolset.zellij.enable {
|
|
||||||
home-manager.users.${user} = {
|
|
||||||
home.packages = with pkgs; [ zellij ];
|
|
||||||
|
|
||||||
programs.zellij = {
|
|
||||||
enable = true;
|
|
||||||
attachExistingSession = true;
|
|
||||||
|
|
||||||
settings = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue