Compare commits

...

83 commits

Author SHA1 Message Date
a88c1ee96a
chore(flake)!: bump inputs 2024-12-14 17:58:40 +08:00
c8d75099a7
spec(eientei): add minecraft greedycraft instance 2024-12-14 17:47:10 +08:00
4608d5ba14
home(gnome): link monitors.xml 2024-11-26 22:42:49 +08:00
e32444c3fe
spec(shatter): initial configuration 2024-11-22 04:52:45 +08:00
ffb8268256
flake: bump inputs 2024-11-22 04:48:24 +08:00
138db2308e
flake: bump inputs 2024-11-14 11:00:55 +08:00
3878414e79
flake: bump inputs 2024-11-08 14:54:30 +08:00
80b82953a7
flake: bump inputs 2024-10-26 01:33:16 +08:00
731c63d3a1
flake: bump inputs 2024-10-26 01:14:54 +08:00
dd7948f050
global(zfs): split setup depend on secret mountpoint 2024-10-26 01:02:09 +08:00
c914c51b3e
spec(chireiden): enable gnome 2024-10-26 01:01:06 +08:00
54303845a3
spec(focus): nextcloud 29 -> 30 2024-10-24 15:08:00 +08:00
8b877be846
spec(eientei): nextcloud 29 -> 30 2024-10-21 22:11:31 +08:00
92955d8b40
flake: bump inputs 2024-10-21 20:48:13 +08:00
e1ae3d02ec
spec(yume): enable android 2024-10-21 20:48:04 +08:00
8e4f4b022d
flake: bump inputs 2024-09-28 16:52:28 +08:00
9858f9db72
home(gnome): intellihide from focused windows 2024-09-19 09:25:48 +08:00
d57b9199dd
flake: bump inputs 2024-09-18 19:23:46 +08:00
8ee93a09ea
spec(hakugyokurou): remove jovian mode 2024-09-13 12:32:12 +08:00
cf63501710
flake: bump inputs 2024-09-13 12:28:17 +08:00
cbba8daaf7
home(gnome): update package 2024-09-13 12:14:49 +08:00
06833d5d39
flake: bump inputs 2024-09-10 22:53:05 +08:00
3a636488f1
home(gnome): add monitors persist 2024-09-02 22:14:26 +08:00
2455afaa75
home(gnome): add some gnome-specific theming 2024-08-31 21:25:47 +08:00
af52c6ded9
flake: bump inputs 2024-08-28 22:15:58 +08:00
5eada39aef
spec(reimaden): disable unsandboxed minecraft 2024-08-18 13:33:29 +08:00
40a29b67ea
global(io): udisks ignore zvols 2024-08-17 20:08:25 +08:00
ba16732686
global(fs): add zfs option 2024-08-17 20:08:02 +08:00
e91c1d9ae1
spec(reimaden): enable gnome 2024-08-17 20:07:47 +08:00
699794674c
home(gnome): add extensions 2024-08-15 20:50:14 +08:00
266f2f96a6
home(gnome): disable d2p multi-monitor 2024-08-15 18:26:59 +08:00
da683fab0e
flake: bump inputs 2024-08-13 10:10:58 +08:00
1bcad957b3
home(util): remove persist unnecessary for flatpak 2024-08-07 23:01:06 +08:00
056511f2a7
global(flatpak): add var persist 2024-08-07 22:49:43 +08:00
422f6f3fd6
home(gnome): set power profile toggle 2024-08-04 17:20:50 +08:00
42c0942c46
home(gnome): add more shortcuts 2024-08-04 13:05:00 +08:00
5ba9210e62
flake: bump inputs 2024-08-04 12:28:13 +08:00
040cd367c9
spec(hakugyokurou): enable android 2024-08-04 12:27:11 +08:00
a9bcb8a18f
home(gnome): add more shortcuts 2024-08-03 18:02:17 +08:00
61b2c0cda8
home(gnome): improve gtk3 theme consistency 2024-07-30 18:51:45 +08:00
1a596a5359
home(gnome): add some gnome-specific theming 2024-07-30 18:45:20 +08:00
e2fe3c76d7
home(gnome): move applications to flatpak 2024-07-29 23:44:44 +08:00
0d76722192
spec(hakugyokurou): set plymouth scale 2024-07-29 20:01:06 +08:00
24e5dac2fe
home(gnome): disable theme 2024-07-29 19:56:16 +08:00
c754742a3a
home(gnome): enable flatpak by default 2024-07-29 15:40:59 +08:00
49aedbd79a
global(flatpak): add portals and persist 2024-07-29 15:40:41 +08:00
3f219d0677
spec(hakugyokurou): enable gnome 2024-07-29 14:43:01 +08:00
dcabd9585b
home(gnome): update gtk theme names 2024-07-29 14:19:20 +08:00
cc42a1b77a
flake: bump inputs 2024-07-28 16:06:12 +08:00
99c40c25bd
spec(koumakyou): set cursor theme 2024-07-27 23:05:13 +08:00
aa06b4bb2c
spec(hakugyokurou): correct Xwayland scale value 2024-07-27 23:03:53 +08:00
f4fa53efee
spec(hakugyokurou): initial configuration 2024-07-27 18:18:35 +08:00
4fe72f00f8
chore(flake)!: bump inputs 2024-07-26 15:46:49 +08:00
1eccb5a94c
fix(catppuccin): remove catppuccin module ui check 2024-07-21 16:37:39 +08:00
c5c113f233
chore(expresslrs-configurator): 1.6.1 -> 1.7.2 2024-07-21 10:59:09 +08:00
f3a6614631
chore(photoview): 2.3.13 -> 2.4.0 2024-07-21 10:54:14 +08:00
dd5a864785
fix(chireiden): disable catppuccin for plymouth 2024-07-18 17:36:44 +08:00
118088a3ef
fix(catppuccin): add i3status colours 2024-07-18 17:36:24 +08:00
ce7505bd12
feat(shinkirou): specialise plasma 2024-07-18 17:06:03 +08:00
6230a87500
chore(flake)!: bump inputs 2024-07-18 11:01:19 +08:00
f63142f9a2
fix(gpu): enable 32-bit drivers 2024-07-13 21:34:25 +08:00
d05a9ab0c9
fix(catppuccin): fix gtk theme name again 2024-07-13 21:05:28 +08:00
f61119c484
fix(tubesync): allow obsolete dependency 2024-07-12 23:42:33 +08:00
d330ff5bd8
fix(catppuccin): set qt style 2024-07-12 19:41:43 +08:00
095257509c
chore(flake)!: bump inputs 2024-07-12 17:10:48 +08:00
f9e8ca41c4
fix(yume): enable lanzaboote 2024-07-12 17:10:40 +08:00
ee35e49d1a
fix(gui): add nvidia options 2024-06-24 20:28:49 +08:00
d56b3fe5b1
fix(io): switch audio system to pipewire 2024-06-24 18:22:30 +08:00
4c5dc311f5
chore(flake)!: bump inputs 2024-06-24 16:32:20 +08:00
4da50c7fdc
fix(vscode): update vscode color theme 2024-06-24 10:04:43 +08:00
67c7d6b38e
chore(flake)!: bump inputs 2024-06-24 09:56:37 +08:00
a9b24989ac
feat(gui): switch to catppuccin module 2024-06-24 09:56:31 +08:00
2751536816
fix(koumakyou): set max-performance on disconnect 2024-06-13 08:56:50 +08:00
ab7e7606f0
refactor(koumakyou): clean up jovian config 2024-06-11 11:53:49 +08:00
4d77320203
feat(koumakyou): enable jetbrains defaults 2024-06-11 08:24:40 +08:00
a9235ece23
fix(koumakyou): add gamemode and enable decky 2024-06-10 17:08:44 +08:00
a4bf22a6ee
chore(flake)!: bump inputs 2024-06-10 10:11:39 +08:00
4a09f05183
fix(eientei): remove minecraft reverse proxy 2024-06-03 16:03:15 +08:00
6bfa47caaf
feat(eientei): add minecraft services 2024-06-03 11:05:58 +08:00
5077e9bc21
chore(flake)!: bump inputs 2024-06-02 23:01:58 +08:00
bfcfbbe7c2
fix(fs): syncoid delete target snapshots 2024-06-02 22:19:21 +08:00
f4a32b7546
fix(koumakyou): minecraft retain app user 2024-05-31 14:01:32 +08:00
bfb06ba476
feat(minecraft): make username configurable 2024-05-31 14:00:52 +08:00
48 changed files with 712 additions and 565 deletions

144
flake.lock generated
View file

@ -1,30 +1,33 @@
{
"nodes": {
"catppuccin": {
"locked": {
"lastModified": 1734057772,
"narHash": "sha256-waF/2Y39JXJ4kG3zawmw1J1GxPHopyoOkJKJhfJ7RBs=",
"owner": "catppuccin",
"repo": "nix",
"rev": "20b6328df20ae45752c81311d225fd47cba32483",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "nix",
"type": "github"
}
},
"crane": {
"inputs": {
"flake-compat": [
"lanzaboote",
"flake-compat"
],
"flake-utils": [
"lanzaboote",
"flake-utils"
],
"nixpkgs": [
"lanzaboote",
"nixpkgs"
],
"rust-overlay": [
"lanzaboote",
"rust-overlay"
]
},
"locked": {
"lastModified": 1681177078,
"narHash": "sha256-ZNIjBDou2GOabcpctiQykEQVkI8BDwk7TyvlWlI4myE=",
"lastModified": 1717535930,
"narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=",
"owner": "ipetkov",
"repo": "crane",
"rev": "0c9f468ff00576577d83f5019a66c557ede5acf6",
"rev": "55e7754ec31dac78980c8be45f8a28e80e370946",
"type": "github"
},
"original": {
@ -36,11 +39,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
@ -56,11 +59,11 @@
]
},
"locked": {
"lastModified": 1715865404,
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
@ -77,11 +80,11 @@
]
},
"locked": {
"lastModified": 1680392223,
"narHash": "sha256-n3g7QFr85lDODKt250rkZj2IFS3i4/8HBU2yKHO3tqw=",
"lastModified": 1717285511,
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "dcc36e45d054d7bb554c9cdab69093debd91a0b5",
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
"type": "github"
},
"original": {
@ -95,11 +98,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -113,11 +116,11 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
@ -135,11 +138,11 @@
]
},
"locked": {
"lastModified": 1660459072,
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
@ -155,11 +158,11 @@
]
},
"locked": {
"lastModified": 1716930911,
"narHash": "sha256-t4HT5j3Jy7skRB5PINnxcEBCkgE89rGBpwTI7YS4Ffo=",
"lastModified": 1734093295,
"narHash": "sha256-hSwgGpcZtdDsk1dnzA0xj5cNaHgN9A99hRF/mxMtwS4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a9b36cbe9292a649222b89fdb9ae9907e9c74086",
"rev": "66c5d8b62818ec4c1edb3e941f55ef78df8141a8",
"type": "github"
},
"original": {
@ -170,11 +173,11 @@
},
"impermanence": {
"locked": {
"lastModified": 1708968331,
"narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=",
"lastModified": 1731242966,
"narHash": "sha256-B3C3JLbGw0FtLSWCjBxU961gLNv+BOOBC6WvstKLYMw=",
"owner": "nix-community",
"repo": "impermanence",
"rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30",
"rev": "3ed3f0eaae9fcc0a8331e77e9319c8a4abd8a71a",
"type": "github"
},
"original": {
@ -190,11 +193,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1716618639,
"narHash": "sha256-H3kcJDVqDmXZ9IfVtqObL3JUx/a0ERn6gWBTn+7vwN4=",
"lastModified": 1734162608,
"narHash": "sha256-m2AX+3eiVqIK6uO7GbGY7SFnkkYOlR5fQiNI0eRvWOQ=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "a358c56a163b3b7d149571e853a8f75b2c1ceb38",
"rev": "31bdf4c7c91204d65afbde01146deee0259a8fb7",
"type": "github"
},
"original": {
@ -216,16 +219,16 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1682802423,
"narHash": "sha256-Fb5TeRTdvUlo/5Yi2d+FC8a6KoRLk2h1VE0/peMhWPs=",
"lastModified": 1718178907,
"narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "64b903ca87d18cef2752c19c098af275c6e51d63",
"rev": "b627ccd97d0159214cee5c7db1412b75e4be6086",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.3.0",
"ref": "v0.4.1",
"repo": "lanzaboote",
"type": "github"
}
@ -238,11 +241,11 @@
]
},
"locked": {
"lastModified": 1690328911,
"narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=",
"lastModified": 1729697500,
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
"owner": "zhaofengli",
"repo": "nix-github-actions",
"rev": "96df4a39c52f53cb7098b923224d8ce941b64747",
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
"type": "github"
},
"original": {
@ -254,11 +257,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1716330097,
"narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=",
"lastModified": 1733392399,
"narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2",
"rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
"type": "github"
},
"original": {
@ -270,27 +273,27 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1678872516,
"narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=",
"lastModified": 1710695816,
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8",
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-22.11",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1716509168,
"narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=",
"lastModified": 1733940404,
"narHash": "sha256-Pj39hSoUA86ZePPF/UXiYHHM7hMIkios8TYG29kQT4g=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "bfb7a882678e518398ce9a31a881538679f6f092",
"rev": "5d67ea6b4b63378b9c13be21e2ec9d1afc921713",
"type": "github"
},
"original": {
@ -310,11 +313,11 @@
]
},
"locked": {
"lastModified": 1716902607,
"narHash": "sha256-jShqpVupP/7ksp6gCBVG9/05zYSX8Q+z6eGe9HLYtUs=",
"lastModified": 1733858086,
"narHash": "sha256-h2BDIDKiqgMpA6E+mu0RgMGy3FeM6k+EuJ9xgOQ1+zw=",
"owner": "pjones",
"repo": "plasma-manager",
"rev": "4a255e5ea6bf2c7815d893a693c5c801d835ba6b",
"rev": "7e2010249529931a3848054d5ff0dbf24675ab68",
"type": "github"
},
"original": {
@ -329,10 +332,6 @@
"lanzaboote",
"flake-compat"
],
"flake-utils": [
"lanzaboote",
"flake-utils"
],
"gitignore": "gitignore",
"nixpkgs": [
"lanzaboote",
@ -341,11 +340,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1681413034,
"narHash": "sha256-/t7OjNQcNkeWeSq/CFLYVBfm+IEnkjoSm9iKvArnUUI=",
"lastModified": 1717664902,
"narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "d3de8f69ca88fb6f8b09e5b598be5ac98d28ede5",
"rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1",
"type": "github"
},
"original": {
@ -356,6 +355,7 @@
},
"root": {
"inputs": {
"catppuccin": "catppuccin",
"flake-parts": "flake-parts",
"flake-utils": "flake-utils",
"home-manager": "home-manager",
@ -378,11 +378,11 @@
]
},
"locked": {
"lastModified": 1682129965,
"narHash": "sha256-1KRPIorEL6pLpJR04FwAqqnt4Tzcm4MqD84yhlD+XSk=",
"lastModified": 1717813066,
"narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "2c417c0460b788328220120c698630947547ee83",
"rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465",
"type": "github"
},
"original": {

View file

@ -12,7 +12,8 @@
plasma-manager.url = "github:pjones/plasma-manager";
plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
plasma-manager.inputs.home-manager.follows = "home-manager";
lanzaboote.url = "github:nix-community/lanzaboote/v0.3.0";
catppuccin.url = "github:catppuccin/nix";
lanzaboote.url = "github:nix-community/lanzaboote/v0.4.1";
lanzaboote.inputs.nixpkgs.follows = "nixpkgs";
# steamdeck

View file

@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHKCA0/6dsdVyLEgzWt8+u5lWVc0o6A3MY4M2Hf2BT8h koishi@hakugyokurou

View file

@ -0,0 +1,17 @@
{ pkgs
, lib
, config
, ... }: with lib; let
cfg = config.global.flatpak;
in {
options.global.flatpak = {
enable = mkEnableOption "flatpak sandbox";
};
config = mkIf cfg.enable {
services.flatpak.enable = true;
xdg.portal.enable = true;
users.home.persist.directories = [ ".local/share/flatpak" ".var" ];
environment.persistence."/nix/persist/fhs".directories = [ "/var/lib/flatpak" ];
};
}

View file

@ -83,6 +83,7 @@ in {
fileSystems = (mapAttrs (path: dataset: {
device = "${cfg.zfs.persist}/${dataset}";
fsType = "zfs";
options = [ "zfsutil" ];
# required by impermanence
neededForBoot = true;
}) cfg.zfs.mountpoints) // {

View file

@ -11,6 +11,7 @@ in mkIf cfg.enable {
commonArgs = [
"--recursive"
"--mbuffer-size=128M"
"--delete-target-snapshots"
"--sshport=${toString cfg.port}"
];
localSourceAllow = mkOptionDefault [ "mount" ];

View file

@ -31,5 +31,5 @@ in mkIf cfg.enable {
};
# import system state pool after encrypted filesystems become available for key loading
boot.initrd.systemd.services."zfs-import-${config.global.fs.store}".after = [ "cryptsetup.target" ];
boot.initrd.systemd.services."zfs-import-${config.global.fs.store}".after = [ "sysroot-nix-var-secret.mount" "cryptsetup.target" ];
}

View file

@ -29,10 +29,9 @@ in {
};
config = mkIf cfg.enable {
hardware.opengl = {
hardware.graphics = {
enable = true;
driSupport = true;
driSupport32Bit = true;
enable32Bit = true;
# https://nixos.wiki/wiki/Accelerated_Video_Playback
extraPackages = with pkgs; optionals intel [
@ -75,7 +74,7 @@ in {
# work around broken nvidia hw cursor on wayland
WLR_NO_HARDWARE_CURSORS = mkIf (cfg.type == "nvidia") "1";
# work around wlroots flickering on pure nvidia
WLR_RENDERER = mkIf (cfg.type == "nvidia") "vulkan";
#WLR_RENDERER = mkIf (cfg.type == "nvidia") "vulkan";
};
specialisation.integratedGraphics = mkIf (cfg.type == "prime") {
@ -105,6 +104,8 @@ in {
options vfio-pci ids=${cfg.arc}
'';
boot.kernelParams = optional intel "i915.fastboot=1";
boot.kernelParams =
optional intel "i915.fastboot=1" ++
optionals nvidia [ "nvidia_drm.modeset=1" "nvidia_drm.fbdev=1" ];
};
}

View file

@ -13,7 +13,10 @@ in {
};
config = {
services.udev.extraRules = "" + (if cfg.betaflight then ''
services.udev.extraRules = ''
# ignore zvols
KERNEL=="zd*", ENV{UDISKS_IGNORE}="1"
'' + (if cfg.betaflight then ''
# DFU (Internal bootloader for STM32 and AT32 MCUs)
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
@ -30,22 +33,30 @@ in {
networking.firewall.logRefusedConnections = true;
hardware.bluetooth.enable = mkDefault cfg.bluetooth;
hardware.pulseaudio = mkIf cfg.audio {
# rtkit is optional but recommended
security.rtkit.enable = cfg.audio;
services.pipewire = mkIf cfg.audio {
enable = true;
support32Bit = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
#nixpkgs.config.pulseaudio = mkIf cfg.audio;
security.pam.loginLimits = mkIf (!cfg.coredump) (singleton { domain = "*"; item = "core"; type = "hard"; value = "0"; });
systemd.coredump.extraConfig = mkIf (!cfg.coredump) "Storage=none";
environment.persistence."/nix/persist/fhs".directories = [
"/var/log"
"/var/lib/nixos"
"/var/lib/systemd/backlight"
] ++
optional config.networking.networkmanager.enable "/etc/NetworkManager/system-connections" ++
optional cfg.bluetooth "/var/lib/bluetooth" ++
optional cfg.coredump "/var/lib/systemd/coredump";
environment.persistence."/nix/persist/fhs".hideMounts = true;
users.home.persist.directories = [ ] ++
optional cfg.audio ".local/state/wireplumber";
};
}

View file

@ -7,95 +7,7 @@ in mkIf cfg.enable {
programs.btop = {
enable = true;
settings = {
color_theme = "catppuccin";
theme_background = false;
};
};
home.file."${config.xdg.configHome}/btop/themes/catppuccin.theme".text = with (import ../gui/catppuccin/palette.nix)
.${config.passthrough.catppuccin.palette}; ''
# Main background, empty for terminal default, need to be empty if you want transparent background
theme[main_bg]="${base}"
# Main text color
theme[main_fg]="${text}"
# Title color for boxes
theme[title]="${text}"
# Highlight color for keyboard shortcuts
theme[hi_fg]="${blue}"
# Background color of selected item in processes box
theme[selected_bg]="${surface1}"
# Foreground color of selected item in processes box
theme[selected_fg]="${blue}"
# Color of inactive/disabled text
theme[inactive_fg]="${overlay1}"
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
theme[graph_text]="${rosewater}"
# Background color of the percentage meters
theme[meter_bg]="${surface1}"
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
theme[proc_misc]="${rosewater}"
# CPU, Memory, Network, Proc box outline colors
theme[cpu_box]="${mauve}" #Mauve
theme[mem_box]="${green}" #Green
theme[net_box]="${maroon}" #Maroon
theme[proc_box]="${blue}" #Blue
# Box divider line and small boxes line color
theme[div_line]="${overlay0}"
# Temperature graph color (Green -> Yellow -> Red)
theme[temp_start]="${green}"
theme[temp_mid]="${yellow}"
theme[temp_end]="${red}"
# CPU graph colors (Teal -> Lavender)
theme[cpu_start]="${teal}"
theme[cpu_mid]="${sapphire}"
theme[cpu_end]="${lavender}"
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
theme[free_start]="${mauve}"
theme[free_mid]="${lavender}"
theme[free_end]="${blue}"
# Mem/Disk cached meter (Sapphire -> Lavender)
theme[cached_start]="${sapphire}"
theme[cached_mid]="${blue}"
theme[cached_end]="${lavender}"
# Mem/Disk available meter (Peach -> Red)
theme[available_start]="${peach}"
theme[available_mid]="${maroon}"
theme[available_end]="${red}"
# Mem/Disk used meter (Green -> Sky)
theme[used_start]="${green}"
theme[used_mid]="${teal}"
theme[used_end]="${sky}"
# Download graph colors (Peach -> Red)
theme[download_start]="${peach}"
theme[download_mid]="${maroon}"
theme[download_end]="${red}"
# Upload graph colors (Green -> Sky)
theme[upload_start]="${green}"
theme[upload_mid]="${teal}"
theme[upload_end]="${sky}"
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
theme[process_start]="${sapphire}"
theme[process_mid]="${lavender}"
theme[process_end]="${mauve}"
'';
}

BIN
home/catppuccin/flake.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

62
home/catppuccin/gui.nix Normal file
View file

@ -0,0 +1,62 @@
{ pkgs
, lib
, config
, ... }: with lib; let
cfg = config.passthrough.catppuccin;
palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${config.catppuccin.flavor}.colors;
in mkIf cfg.enable {
gtk.theme = { inherit (cfg.gtk) package name; };
qt.style.name = "kvantum";
qt.platformTheme.name = "kvantum";
home.pointerCursor = { inherit (cfg.cursor) package name; };
# sway colour palette override
wayland.windowManager.sway.config = {
colors = {
focused = { border = "$lavender"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$lavender"; };
focusedInactive = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; };
unfocused = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; };
urgent = { border = "$peach"; background = "$base"; text = "$peach"; indicator = "$overlay0"; childBorder = "$peach"; };
placeholder = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$overlay0"; childBorder = "$overlay0"; };
background = "$base";
};
bars = mkForce [ {
colors = {
background = "$base";
statusline = "$text";
focusedStatusline = "$text";
focusedSeparator = "$base";
focusedWorkspace = { border = "$base"; background = "$base"; text = "$green"; };
activeWorkspace = { border = "$base"; background = "$base"; text = "$blue"; };
inactiveWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; };
urgentWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; };
bindingMode = { border = "$base"; background = "$base"; text = "$surface1"; };
};
mode = "dock";
position = "bottom";
workspaceButtons = true;
workspaceNumbers = true;
statusCommand = "${pkgs.i3status}/bin/i3status";
fonts = {
names = [ "monospace" ];
size = 8.0;
};
trayOutput = "primary";
} ];
output."*".bg = mkForce "${./flake.png} fill";
gaps.inner = 12;
gaps.outer = 5;
# dodge the status bar
gaps.bottom = 0;
};
# i3status colour palette override
programs.i3status.general = with palette; {
color_good = lavender.hex;
color_degraded = yellow.hex;
color_bad = red.hex;
};
}

9
home/catppuccin/home.nix Normal file
View file

@ -0,0 +1,9 @@
{
catppuccin = {
enable = true;
accent = "pink";
flavor = "mocha";
};
imports = [ ./gui.nix ];
}

View file

@ -8,26 +8,30 @@ in {
options.home.catppuccin = {
enable = mkEnableOption "catppuccin colour scheme" // { default = gui; };
palette = mkOption {
type = with types; str;
default = "frappe";
description = "colour palette in use";
};
gtk = {
package = mkOption {
type = with types; package;
default = pkgs.catppuccin-gtk.override {
default = (pkgs.catppuccin-gtk.overrideAttrs {
src = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "gtk";
rev = "v1.0.3";
fetchSubmodules = true;
hash = "sha256-q5/VcFsm3vNEw55zq/vcM11eo456SYE5TQA3g2VQjGc=";
};
postUnpack = "";
}).override {
accents = [ "pink" ];
size = "compact";
#tweaks = [ "rimless" "black" ];
variant = "frappe";
variant = "mocha";
};
description = "catppuccin gtk theme package";
};
name = mkOption {
type = with types; str;
default = "Catppuccin-Frappe-Compact-Pink-Dark";
default = "catppuccin-mocha-pink-compact";
description = "name of catppuccin gtk theme";
};
};
@ -35,12 +39,12 @@ in {
cursor = {
package = mkOption {
type = with types; package;
default = pkgs.catppuccin-cursors.frappeDark;
default = pkgs.catppuccin-cursors.mochaDark;
description = "catppuccin cursor theme package";
};
name = mkOption {
type = with types; str;
default = "Catppuccin-Frappe-Dark-Cursors";
default = "catppuccin-mocha-dark-cursors";
description = "name of catppuccin cursor theme";
};
};
@ -52,19 +56,23 @@ in {
{ passthrough.catppuccin = cfg; }
];
catppuccin.enable = cfg.enable;
# gtk and cursor themes
environment.systemPackages = with cfg; mkIf cfg.enable [
environment.systemPackages = with cfg; mkIf enable [
gtk.package cursor.package
];
# override greetd theme
programs.regreet = mkIf cfg.enable {
theme = {
inherit (cfg.gtk) name package;
};
cursorTheme = {
inherit (cfg.cursor) name package;
};
settings = {
background.path = ./solid.png;
GTK = {
theme_name = cfg.gtk.name;
cursor_theme_name = cfg.cursor.name;
};
};
};
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Before After
Before After

View file

@ -3,6 +3,7 @@
, config
, ... }: with lib; let
cfg = config.passthrough.gnome;
bg = ../../../share/54345906_p0.jpg;
in mkIf cfg.enable {
dconf.settings = let
p = "org/gnome";
@ -26,18 +27,18 @@ in mkIf cfg.enable {
"${pd}/background" = {
color-shading-type = "solid";
picture-options = "zoom";
picture-uri = "file://${../../../share/catppuccin-nix.png}";
picture-uri-dark = "file://${../../../share/catppuccin-nix.png}";
picture-uri = "file://${bg}";
picture-uri-dark = "file://${bg}";
primary-color = "#000000000000";
secondary-color = "#000000000000";
};
"${pd}/interface" = {
color-scheme = "prefer-dark";
cursor-theme = "Catppuccin-Frappe-Dark-Cursors";
cursor-theme = "Bibata-Modern-Classic";
font-antialiasing = "grayscale";
font-hinting = "slight";
gtk-theme = "Catppuccin-Frappe-Compact-Pink-Dark";
gtk-theme = "adw-gtk3-dark";
icon-theme = "Papirus-Dark";
};
@ -45,7 +46,7 @@ in mkIf cfg.enable {
color-shading-type = "solid";
lock-enabled = false;
picture-options = "zoom";
picture-uri = "file://${../../../share/catppuccin-nix.png}";
picture-uri = "file://${bg}";
primary-color = "#000000000000";
secondary-color = "#000000000000";
};
@ -53,11 +54,64 @@ in mkIf cfg.enable {
"${pd}/wm/preferences" = {
action-double-click-titlebar = "toggle-maximize";
action-middle-click-titlebar = "minimize";
button-layout = "close,minimize,maximize:appmenu";
button-layout = "close:appmenu";
resize-with-right-button = true;
};
"${pd}/wm/keybindings" = {
panel-run-dialog = [ ];
begin-resize = [ "<Super>r" ];
close = [ "<Shift><Super>q" ];
minimize = [ "<Super>BackSpace" ];
move-to-workspace-1 = [ "<Shift><Super>1" ];
move-to-workspace-2 = [ "<Shift><Super>2" ];
move-to-workspace-3 = [ "<Shift><Super>3" ];
move-to-workspace-4 = [ "<Shift><Super>4" ];
move-to-workspace-left = [ "<Shift><Super>h" ];
move-to-workspace-right = [ "<Shift><Super>l" ];
switch-to-workspace-1 = [ "<Super>1" ];
switch-to-workspace-2 = [ "<Super>2" ];
switch-to-workspace-3 = [ "<Super>3" ];
switch-to-workspace-4 = [ "<Super>4" ];
toggle-maximized = [ "<Super>f" ];
};
"${ps}/keybindings" = {
switch-to-application-1 = [ ];
switch-to-application-2 = [ ];
switch-to-application-3 = [ ];
switch-to-application-4 = [ ];
switch-to-application-5 = [ ];
switch-to-application-6 = [ ];
switch-to-application-7 = [ ];
switch-to-application-8 = [ ];
switch-to-application-9 = [ ];
toggle-application-view = [ "<Super>d" ];
};
"${p}/settings-daemon/plugins/media-keys" = {
custom-keybindings = [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
];
logout = [ ];
screensaver = [ "<Control><Alt>l" ];
};
"${p}/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Super>Return";
command = "kgx";
name = "Launch console";
};
"${p}/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
binding = "<Super>q";
command = "google-chrome-stable";
name = "Launch Google Chrome";
};
"${ptlp}" = {
default = "71a9971e-e829-43a9-9b2f-4565c855d664";
#default = "95894cfd-82f7-430d-af6e-84d168bc34f5";
list = [
"de8a9081-8352-4ce4-9519-5de655ad9361"
"71a9971e-e829-43a9-9b2f-4565c855d664"
@ -151,41 +205,80 @@ in mkIf cfg.enable {
"windowsNavigator@gnome-shell-extensions.gcampax.github.com"
"window-list@gnome-shell-extensions.gcampax.github.com"
"workspace-indicator@gnome-shell-extensions.gcampax.github.com"
"dash-to-panel@jderose9.github.com"
"dash-to-dock@micxgx.gmail.com"
];
enabled-extensions = [
"user-theme@gnome-shell-extensions.gcampax.github.com"
"apps-menu@gnome-shell-extensions.gcampax.github.com"
"drive-menu@gnome-shell-extensions.gcampax.github.com"
"dash-to-dock@micxgx.gmail.com"
"appindicatorsupport@rgcjonas.gmail.com"
"dash-to-panel@jderose9.github.com"
"caffeine@patapon.info"
"PrivacyMenu@stuarthayhurst"
];
last-selected-power-profile = "performance";
welcome-dialog-last-shown-version = "45.3";
};
"${pse}/user-theme".name = "Catppuccin-Frappe-Compact-Pink-Dark";
#"${pse}/user-theme".name = "catppuccin-mocha-pink-compact";
"${pse}/caffeine" = {
screen-blank = "never";
};
"${pse}/dash-to-dock" = {
background-opacity = 0.80000000000000004;
dash-max-icon-size = 48;
dock-position = "BOTTOM";
height-fraction = 0.90000000000000002;
multi-monitor = true;
multi-monitor = false;
running-indicator-style = "DOTS";
custom-theme-shrink = true;
};
"${pse}/dash-to-panel" = {
animate-appicon-hover-animation-extent = ''{'RIPPLE': 4, 'PLANK': 4, 'SIMPLE': 1}'';
animate-appicon-hover = false;
animate-appicon-hover-animation-type = "SIMPLE";
appicon-margin = 0;
appicon-padding = 4;
appicon-style= "NORMAL";
available-monitors = [ 0 ];
dot-position = "BOTTOM";
dot-style-focused = "METRO";
dot-style-unfocused = "DOTS";
group-apps = true;
hide-overview-on-startup = true;
hotkeys-overlay-combo = "TEMPORARILY";
intellihide = true;
intellihide-behaviour = "FOCUSED_WINDOWS";
intellihide-hide-from-windows = true;
isolate-workspaces = false;
leftbox-padding = -1;
overview-click-to-exit = true;
panel-anchors = ''{"0":"MIDDLE"}'';
panel-lengths=''{"0":100}'';
panel-sizes=''{"0":42}'';
panel-element-positions = ''{"0":[{"element":"showAppsButton","visible":true,"position":"stackedTL"},{"element":"activitiesButton","visible":true,"position":"stackedTL"},{"element":"leftBox","visible":false,"position":"stackedTL"},{"element":"taskbar","visible":true,"position":"centerMonitor"},{"element":"centerBox","visible":true,"position":"stackedBR"},{"element":"rightBox","visible":true,"position":"stackedBR"},{"element":"dateMenu","visible":true,"position":"stackedBR"},{"element":"systemMenu","visible":true,"position":"stackedBR"},{"element":"desktopButton","visible":false,"position":"stackedBR"}]}'';
panel-lengths = ''{"0":100}'';
panel-positions = ''{"0":"BOTTOM"}'';
panel-sizes = ''{"0":42}'';
primary-monitor = 0;
secondarymenu-contains-showdetails = true;
show-showdesktop-hover = true;
status-icon-padding = -1;
trans-use-custom-bg = false;
stockgs-force-hotcorner = false;
stockgs-keep-dash = false;
stockgs-keep-top-panel = false;
stockgs-panelbtn-click-only = false;
trans-bg-color = "#2a2a2a";
trans-dynamic-anim-target = 1.0;
trans-dynamic-behavior = "MAXIMIZED_WINDOWS";
trans-gradient-bottom-color = "#000000";
trans-gradient-bottom-opacity = 0.5;
trans-gradient-top-opacity = 0.0;
trans-panel-opacity = 0.0;
trans-use-custom-bg = true;
trans-use-custom-gradient = true;
trans-use-custom-opacity = true;
trans-use-dynamic-opacity = true;
tray-padding = -1;
window-preview-title-position = "TOP";
};

View file

@ -8,12 +8,25 @@ in mkIf cfg.enable {
with pkgs;
with gnome;
with gnomeExtensions; [
# gnome
gnome-terminal
# gtk3 theme
adw-gtk3
# gnomeExtensions
caffeine
dash-to-panel
dash-to-dock
appindicator
privacy-settings-menu
];
catppuccin.enable = mkForce false;
home.pointerCursor = mkForce null;
gtk.enable = false;
home.persistence."/nix/persist/home/${config.home.username}" = {
removePrefixDirectory = true;
files = [
(if config.specialisation != {} then "gnome/.config/monitors.xml" else "extern/.config/monitors.xml")
];
};
}

View file

@ -4,13 +4,46 @@
, ... }: with lib; let
cfg = config.home.gnome;
in mkIf cfg.enable {
global.flatpak.enable = mkDefault true;
home.catppuccin.enable = mkDefault false;
catppuccin.enable = false;
programs.regreet.enable = false;
services.xserver.enable = true;
services.xserver.displayManager.startx.enable = false;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
services.udev.packages = with pkgs; [ gnome-settings-daemon ];
services.hardware.bolt.enable = true;
xdg.portal.configPackages = with pkgs; [ gnome-session ];
hardware.pulseaudio.enable = false;
users.home.persist.directories = [ ];
environment.persistence."/nix/persist/fhs".directories = [ ];
environment.gnome.excludePackages = (with pkgs; [
snapshot
gnome-tour
] ++ optionals config.global.flatpak.enable [
baobab
simple-scan
evince
file-roller
geary
loupe
seahorse
totem
epiphany
gnome-calculator
gnome-calendar
gnome-connections
gnome-font-viewer
gnome-text-editor
gnome-characters
gnome-clocks
gnome-contacts
gnome-logs
gnome-maps
gnome-music
gnome-weather
]) ++ (with pkgs.gnome; [ ] ++ optionals config.global.flatpak.enable [
]);
users.home.persist.directories = [ ".config/dconf" ];
}

View file

@ -13,7 +13,7 @@ in {
config = {
users.homeModules = [
# this module passes gnome configuration to home-manager
{ passthrough.gnome= cfg; }
{ passthrough.gnome = cfg; }
];
specialisation.nognome = with cfg; mkIf enable {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

View file

@ -1,135 +0,0 @@
{ pkgs
, lib
, config
, ... }: with lib; let
cfg = config.passthrough.catppuccin;
palette = (import ./palette.nix).${cfg.palette};
in mkIf cfg.enable {
# cursor theme
home.pointerCursor = { inherit (cfg.cursor) package name; };
gtk.cursorTheme = { inherit (cfg.cursor) package name; };
# gtk theme
gtk.theme = { inherit (cfg.gtk) package name; };
gtk.iconTheme = {
package = pkgs.catppuccin-papirus-folders.override {
flavor = cfg.palette;
accent = "pink";
};
name = "Papirus-Dark";
};
# sway colour palette override
wayland.windowManager.sway.config = {
colors = with palette; {
focused = { border = lavender; background = base; text = text; indicator = rosewater; childBorder = lavender; };
focusedInactive = { border = overlay0; background = base; text = text; indicator = rosewater; childBorder = overlay0; };
unfocused = { border = overlay0; background = base; text = text; indicator = rosewater; childBorder = overlay0; };
urgent = { border = peach; background = base; text = peach; indicator = overlay0; childBorder = peach; };
placeholder = { border = overlay0; background = base; text = text; indicator = overlay0; childBorder = overlay0; };
background = base;
};
bars = mkForce [ {
colors = let
p = palette;
in {
background = p.base;
statusline = p.text;
focusedStatusline = p.text;
focusedSeparator = p.base;
focusedWorkspace = { border = p.base; background = p.base; text = p.green; };
activeWorkspace = { border = p.base; background = p.base; text = p.blue; };
inactiveWorkspace = { border = p.base; background = p.base; text = p.surface1; };
urgentWorkspace = { border = p.base; background = p.base; text = p.surface1; };
bindingMode = { border = p.base; background = p.base; text = p.surface1; };
};
mode = "dock";
position = "bottom";
workspaceButtons = true;
workspaceNumbers = true;
statusCommand = "${pkgs.i3status}/bin/i3status";
fonts = {
names = [ "monospace" ];
size = 8.0;
};
trayOutput = "primary";
} ];
output."*".bg = mkForce "${./flake.png} fill";
gaps.inner = 12;
gaps.outer = 5;
# dodge the status bar
gaps.bottom = 0;
};
# swaylock colour palette override
programs.swaylock.settings = with palette; let
transparent = "00000000";
in {
color = base;
bs-hl-color = rosewater;
caps-lock-bs-hl-color = rosewater;
caps-lock-key-hl-color = green;
inside-color = transparent;
inside-clear-color = transparent;
inside-caps-lock-color = transparent;
inside-ver-color = transparent;
inside-wrong-color = transparent;
key-hl-color = green;
layout-bg-color = transparent;
layout-border-color = transparent;
layout-text-color = text;
line-color = transparent;
line-clear-color = transparent;
line-caps-lock-color = transparent;
line-ver-color = transparent;
line-wrong-color = transparent;
ring-color = lavender;
ring-clear-color = rosewater;
ring-caps-lock-color = peach;
ring-ver-color = blue;
ring-wrong-color = maroon;
separator-color = transparent;
text-color = text;
text-clear-color = rosewater;
text-caps-lock-color = peach;
text-ver-color = blue;
text-wrong-color = maroon;
};
# i3status colour palette override
programs.i3status.general = with palette; {
color_good = lavender;
color_degraded = yellow;
color_bad = red;
};
# mako colour palette override
services.mako = with palette; {
backgroundColor = base;
textColor = text;
borderColor = blue;
progressColor = "over ${surface0}";
extraConfig = ''
[urgency=high]
border-color=${peach}
'';
};
# foot colour palette override
programs.foot.settings.colors = with palette; let
c = substring 1 7;
in {
foreground = c text; background = c base;
regular0 = c overlay2; regular1 = c red;
regular2 = c green; regular3 = c yellow;
regular4 = c blue; regular5 = c pink;
regular6 = c teal; regular7 = c surface2;
bright0 = c subtext0; bright1 = c red;
bright2 = c green; bright3 = c yellow;
bright4 = c blue; bright5 = c pink;
bright6 = c teal; bright7 = c surface1;
};
}

View file

@ -1,117 +0,0 @@
{
latte = {
rosewater = "#dc8a78";
flamingo = "#dd7878";
pink = "#ea76cb";
mauve = "#8839ef";
red = "#d20f39";
maroon = "#e64553";
peach = "#fe640b";
yellow = "#df8e1d";
green = "#40a02b";
teal = "#179299";
sky = "#04a5e5";
sapphire = "#209fb5";
blue = "#1e66f5";
lavender = "#7287fd";
text = "#4c4f69";
subtext1 = "#5c5f77";
subtext0 = "#6c6f85";
overlay2 = "#7c7f93";
overlay1 = "#8c8fa1";
overlay0 = "#9ca0b0";
surface2 = "#acb0be";
surface1 = "#bcc0cc";
surface0 = "#ccd0da";
base = "#eff1f5";
mantle = "#e6e9ef";
crust = "#dce0e8";
};
frappe = {
rosewater = "#f2d5cf";
flamingo = "#eebebe";
pink = "#f4b8e4";
mauve = "#ca9ee6";
red = "#e78284";
maroon = "#ea999c";
peach = "#ef9f76";
yellow = "#e5c890";
green = "#a6d189";
teal = "#81c8be";
sky = "#99d1db";
sapphire = "#85c1dc";
blue = "#8caaee";
lavender = "#babbf1";
text = "#c6d0f5";
subtext1 = "#b5bfe2";
subtext0 = "#a5adce";
overlay2 = "#949cbb";
overlay1 = "#838ba7";
overlay0 = "#737994";
surface2 = "#626880";
surface1 = "#51576d";
surface0 = "#414559";
base = "#303446";
mantle = "#292c3c";
crust = "#232634";
};
macchiato = {
rosewater = "#f4dbd6";
flamingo = "#f0c6c6";
pink = "#f5bde6";
mauve = "#c6a0f6";
red = "#ed8796";
maroon = "#ee99a0";
peach = "#f5a97f";
yellow = "#eed49f";
green = "#a6da95";
teal = "#8bd5ca";
sky = "#91d7e3";
sapphire = "#7dc4e4";
blue = "#8aadf4";
lavender = "#b7bdf8";
text = "#cad3f5";
subtext1 = "#b8c0e0";
subtext0 = "#a5adcb";
overlay2 = "#939ab7";
overlay1 = "#8087a2";
overlay0 = "#6e738d";
surface2 = "#5b6078";
surface1 = "#494d64";
surface0 = "#363a4f";
base = "#24273a";
mantle = "#1e2030";
crust = "#181926";
};
mocha = {
rosewater = "#f5e0dc";
flamingo = "#f2cdcd";
pink = "#f5c2e7";
mauve = "#cba6f7";
red = "#f38ba8";
maroon = "#eba0ac";
peach = "#fab387";
yellow = "#f9e2af";
green = "#a6e3a1";
teal = "#94e2d5";
sky = "#89dceb";
sapphire = "#74c7ec";
blue = "#89b4fa";
lavender = "#b4befe";
text = "#cdd6f4";
subtext1 = "#bac2de";
subtext0 = "#a6adc8";
overlay2 = "#9399b2";
overlay1 = "#7f849c";
overlay0 = "#6c7086";
surface2 = "#585b70";
surface1 = "#45475a";
surface0 = "#313244";
base = "#1e1e2e";
mantle = "#181825";
crust = "#11111b";
};
}

View file

@ -1,15 +1,17 @@
{ pkgs
, lib
, config
, ... }: with lib; {
imports = [ ./catppuccin/home.nix ];
, ... }: with lib; let
catppuccin = config.passthrough.catppuccin.enable;
in {
config = mkIf config.passthrough.gui {
# cursor theme
home.pointerCursor = mkDefault {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
home.pointerCursor = {
package = mkDefault pkgs.bibata-cursors;
name = mkDefault "Bibata-Modern-Classic";
size = 24;
x11.enable = true;
gtk.enable = true;
};
# gtk theme

View file

@ -5,8 +5,6 @@
gui = with config.global.gpu; enable && session;
catppuccin = config.home.catppuccin;
in {
imports = [ ./catppuccin/nixos.nix ];
config = {
users.homeModules = [
# this module passes gui configuration to home-manager
@ -32,7 +30,7 @@ in {
dconf.enable = true;
};
services = mkIf gui {
blueman.enable = true;
blueman.enable = !config.global.flatpak.enable;
};
};
}

View file

@ -4,7 +4,8 @@
, ... }: with lib; let
cfg = config.passthrough.gyroflow;
in mkIf cfg.enable {
home.packages = [ cfg.package ];
# temporarily gone until regression is fixed
#home.packages = [ cfg.package ];
wayland.windowManager.sway.config.window.commands = [
{ criteria.app_id = "xyz.gyroflow.gyroflow"; command = "floating enable"; }

View file

@ -4,7 +4,7 @@
, ... }: with lib; let
inherit (config.passthrough) gui;
cfg = config.passthrough.minecraft;
enable = cfg.enable && config.home.username == "minecraft";
enable = cfg.enable && config.home.username == cfg.user;
in mkIf enable {
home.packages = with pkgs; [
jdk8

View file

@ -7,6 +7,11 @@
in {
options.home.minecraft = {
enable = mkEnableOption "minecraft game launcher and jvm";
user = mkOption {
type = with types; str;
default = "minecraft";
description = "username which minecraft game client runs under";
};
};
config = {
@ -15,14 +20,14 @@ in {
{ passthrough.minecraft = cfg; }
];
users.profiles.minecraft = mkIf cfg.enable {
users.profiles.minecraft = mkIf (cfg.enable && cfg.user == "minecraft") {
uid = 5801;
description = "Minecraft";
picture = ../picture/aux.png;
};
environment.persistence."/nix/persist".users.minecraft.directories = mkIf (cfg.enable && gui) [
".local/share/PrismLauncher"
];
environment.persistence."/nix/persist".users.${cfg.user} = mkIf (cfg.enable && gui) {
directories = [ ".local/share/PrismLauncher" ];
};
};
}

View file

@ -1,6 +1,7 @@
{ pkgs
, lib
, config
, inputs
, ... }: with lib; let
cfg = config.users;
in {
@ -137,7 +138,10 @@ in {
(filterAttrs (n: _: n != "root") config.users.profiles);
home-manager.users = mapAttrs (name: opts: {
imports = cfg.homeModules;
imports = with inputs; cfg.homeModules ++ [
impermanence.homeManagerModules.impermanence
catppuccin.homeManagerModules.catppuccin
];
home.file.".face" = mkIf (opts.picture != null) {
source = opts.picture;
};

View file

@ -14,14 +14,15 @@ in {
] ++ optionals config.passthrough.gui [
gtk-engine-murrine
gnome-themes-extra
xfce.thunar gimp
jellyfin-media-player
mission-planner
betaflight-configurator
inav-configurator
inav-blackbox-tools
(blhelisuite32.override { workdir = "${config.home.homeDirectory}/.blhelisuite32"; })
] ++ optionals (config.passthrough.gui && !config.passthrough.flatpak.enable) [
xfce.thunar gimp
jellyfin-media-player
betaflight-configurator
expresslrs-configurator
];

View file

@ -13,6 +13,8 @@ in {
users.homeModules = [
# this module passes util configuration to home-manager
{ passthrough.util = cfg; }
# this module passes flatpak configuration to home-manager
{ passthrough.flatpak = config.global.flatpak; }
];
programs.zsh.enable = true;
@ -23,18 +25,20 @@ in {
".cache/nix-index"
] ++
optionals gui [
# mission-planner
".local/share/Mission Planner"
# inav-configurator
".config/inav-configurator"
] ++
optionals (gui && !config.global.flatpak.enable) [
# jellyfin-media-player
".config/jellyfin.org"
".local/share/jellyfinmediaplayer"
".local/share/Jellyfin Media Player"
# mission-planner
".local/share/Mission Planner"
# expresslrs-configurator
".config/ExpressLRS Configurator"
# betaflight-configurator
".config/betaflight-configurator"
# inav-configurator
".config/inav-configurator"
];
};
}

View file

@ -16,8 +16,8 @@ in mkIf cfg.enable {
bbenoist.nix golang.go rust-lang.rust-analyzer
];
userSettings = {
"workbench.colorTheme" = mkIf theme "Catppuccin Frappé";
"workbench.iconTheme" = mkIf theme "catppuccin-frappe";
"workbench.colorTheme" = mkIf theme "Catppuccin Mocha";
"workbench.iconTheme" = mkIf theme "catppuccin-mocha";
"[nix]"."editor.tabSize" = 2;
};
};

View file

@ -5,13 +5,13 @@
, buildFHSUserEnv }: let
name = "ExpressLRS-Configurator";
pname = "expresslrs-configurator";
version = "1.6.1";
version = "1.7.2";
dist = fetchzip {
name = "${pname}-dist";
url = "https://github.com/ExpressLRS/ExpressLRS-Configurator/releases/download/v${version}/${pname}-${version}.zip";
stripRoot = false;
hash = "sha256-m/e8dsOadjk63cwfnnCBbjXzI/ooWZUGRM5n267JmhQ=";
hash = "sha256-pXmJ420HeJaMjAZCzlIriuFrTK5xabxTrSy3PDVisgU=";
};
desktopItem = makeDesktopItem {

View file

@ -14,18 +14,18 @@
, runCommandLocal
, makeWrapper }: buildGoModule rec {
pname = "photoview";
version = "2.3.13";
version = "2.4.0";
source = fetchFromGitHub {
name = "${pname}-src";
owner = pname;
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-O6k5nbiWTsuOi8YLX0rsZJ9dOIo5d6pdwjhFZrdwI0E=";
hash = "sha256-ZfvBdQlyqONsrviZGL22Kt+AiPaVWwdoREDUrHDYyIs=";
};
src = source + "/api";
vendorHash = "sha256-0SWywy9YdPtgvxRhwKhKvspPmhbnibSuhvzhsjIQvZk=";
vendorHash = "sha256-Tn4OxSV41s/4n2Q3teJRJNc39s6eKW4xE9wW/CIR5Fg=";
nativeBuildInputs = [
pkg-config
makeWrapper
@ -48,7 +48,7 @@
REACT_APP_BUILD_DATE = builtins.readFile (runCommandLocal "date" { } "date -uI > $out" );
REACT_APP_BUILD_COMMIT_SHA = "nix";
npmDepsHash = "sha256-31CyjyNd85hNg4MXIWctoQ3YgorGqCMz+wDAu/K1lWo=";
npmDepsHash = "sha256-wUbfq+7SuJUBxfy9TxHVda8A0g4mmYCbzJT64XBN2mI=";
};
postInstall = ''

View file

@ -182,7 +182,7 @@ in {
# package is local-only, will allow this for now
nixpkgs.config.permittedInsecurePackages = [
"python3.11-django-3.2.25"
"python3.12-django-3.2.25"
];
};
}

View file

@ -18,6 +18,7 @@
};
home = {
gnome.enable = true;
vscode.enable = true;
libreoffice.enable = true;
minecraft.enable = true;
@ -37,6 +38,7 @@
nvidiaBusId = "PCI:5:0:0";
};
boot.plymouth.catppuccin.enable = false;
hardware.enableRedistributableFirmware = true;
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];

View file

@ -12,6 +12,7 @@
./channel.nix
impermanence.nixosModules.impermanence
home-manager.nixosModules.home-manager
catppuccin.nixosModules.catppuccin
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;

View file

@ -42,6 +42,5 @@
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
networking.firewall.allowedTCPPorts = [ 25565 ];
environment.systemPackages = with pkgs; [ python3 ];
}

106
spec/eientei/minecraft.nix Normal file
View file

@ -0,0 +1,106 @@
{ pkgs, lib, config, ... }: let
inherit (lib) mapAttrs' nameValuePair;
servers = {
#bungeecord = {
# cmdline = "${pkgs.graalvmCEPackages.graalvm-ce}/bin/java -Xms2G -Xmx4G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -jar waterfall-1.20-578.jar";
# stop = "end";
#};
#limbo = {
# cmdline = "${pkgs.graalvmCEPackages.graalvm-ce}/bin/java -Xms1G -Xmx1G -jar NanoLimbo-1.8-all.jar";
# stop = "stop";
#};
greedycraft = {
cmdline = "${pkgs.jdk8}/bin/java -Xmx10G -Xms10G -Xss4M -Dfile.encoding=GBK -Dsun.rmi.dgc.server.gcInterval=1800000 -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true -XX:-OmitStackTraceInFastThrow -XX:+OptimizeStringConcat -XX:+UseAdaptiveGCBoundary -XX:G1HeapRegionSize=32M -jar forge-1.12.2-14.23.5.2855.jar nogui";
stop = "stop";
};
nfwc = {
cmdline = "${pkgs.jdk}/bin/java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.19.2-43.3.8/unix_args.txt";
stop = "stop";
};
};
prefix = "minecraft-server-";
data = "/nix/persist/service/minecraft";
in {
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/games/minecraft-server.nix
users.users.minecraft = {
description = "Minecraft server service user";
home = data;
createHome = true;
isSystemUser = true;
uid = 1021;
group = "minecraft";
};
users.groups.minecraft.gid = 1021;
systemd.sockets = mapAttrs' (name: value: with value; (nameValuePair "${prefix}${name}" {
bindsTo = [ "${prefix}${name}.service" ];
socketConfig = {
ListenFIFO = "/run/minecraft-server/${name}.stdin";
SocketMode = "0660";
SocketUser = "minecraft";
SocketGroup = "minecraft";
RemoveOnStop = true;
FlushPending = true;
};
})) servers;
systemd.services = let
stopScript = { name, stop }: pkgs.writeShellScript "minecraft-server-stop" ''
echo ${stop} > ${config.systemd.sockets."${prefix}${name}".socketConfig.ListenFIFO}
# Wait for the PID of the minecraft server to disappear before
# returning, so systemd doesn't attempt to SIGKILL it.
while kill -0 "$1" 2> /dev/null; do
sleep 1s
done
'';
in mapAttrs' (name: value: with value; (nameValuePair "${prefix}${name}" {
description = "Minecraft Server Service for ${name}";
wantedBy = [ "multi-user.target" ];
requires = [ "${prefix}${name}.socket" ];
after = [ "network.target" "${prefix}${name}.socket" ];
path = [ pkgs.bash ];
serviceConfig = {
ExecStart = cmdline;
ExecStop = "${stopScript { inherit name stop; }} $MAINPID";
Restart = "always";
User = "minecraft";
WorkingDirectory = "${data}/${name}";
StandardInput = "socket";
StandardOutput = "journal";
StandardError = "journal";
# Hardening
CapabilityBoundingSet = [ "" ];
DeviceAllow = [ "" ];
LockPersonality = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
UMask = "0077";
};
})) servers;
global.fs.zfs.mountpoints.${data} = "service/minecraft";
networking.firewall.allowedTCPPorts = [ 25565 ];
}

View file

@ -4,9 +4,9 @@
in {
services.nextcloud = {
enable = true;
package = pkgs.nextcloud29;
package = pkgs.nextcloud30;
extraApps = {
inherit (pkgs.nextcloud29Packages.apps)
inherit (pkgs.nextcloud30Packages.apps)
notify_push impersonate spreed
contacts bookmarks deck polls notes forms
twofactor_webauthn;

View file

@ -1,6 +1,6 @@
{
services.tubesync = {
enable = true;
enable = false;
stateDir = "/nix/persist/service/tubesync";
};

View file

@ -4,9 +4,9 @@
in {
services.nextcloud = {
enable = true;
package = pkgs.nextcloud29;
package = pkgs.nextcloud30;
extraApps = {
inherit (pkgs.nextcloud29Packages.apps)
inherit (pkgs.nextcloud30Packages.apps)
notify_push impersonate spreed
contacts bookmarks deck polls notes forms
twofactor_webauthn;

View file

@ -0,0 +1,61 @@
{ pkgs, lib, config, ... }: {
global = {
id = "09a2900f15b74f36b023a9ebcd539f6a";
fs.esp.uuid = "AE73-B83E";
fs.type = "xfs";
fs.store = "e4c673cb-03c5-44ac-b2f1-1085a7f7a553";
fs.cryptsetup.enable = true;
fs.cryptsetup.uuids.persist = "122001b1-7a43-4bab-ae7c-ba8eeb1cc864";
boot.lanzaboote = true;
gpu.enable = true;
gpu.type = "amdgpu";
android.enable = true;
};
home = {
gnome.enable = true;
jetbrains.enable = true;
vscode.enable = true;
steam.enable = true;
minecraft.enable = true;
minecraft.user = "app";
};
users.homeModules = [ {
wayland.windowManager.sway.config = {
input = {
"9610:30:HID_258a:001e_Mouse".natural_scroll = "disabled";
"1539:61441:NVTK0603:00_0603:F001_UNKNOWN".map_to_output = "eDP-1";
"1539:61441:NVTK0603:00_0603:F001".map_to_output = "eDP-1";
};
output = {
eDP-1.scale = "2";
eDP-1.transform = "270";
};
};
} ];
powerManagement.enable = true;
powerManagement.cpuFreqGovernor = "performance";
boot.kernelParams = [
"video=eDP-1:panel_orientation=left_side_up"
];
boot.plymouth.extraConfig = ''
DeviceScale=2
'';
services.greetd.settings.default_session.command = let
cfg = config.programs.regreet;
in lib.mkOverride 999 "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" ''
${lib.getExe pkgs.wlr-randr} --output eDP-1 --scale 2 --transform 90
${lib.getExe cfg.package}
''}";
hardware.sensor.iio.enable = true;
hardware.enableRedistributableFirmware = true;
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usbhid" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
hardware.cpu.intel.updateMicrocode = true;
}

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, ... }: {
{ pkgs, lib, config, jovian, ... }: {
global = {
id = "0a920a834b5f480bab258040096d4c6e";
fs.esp.uuid = "ACB3-4AFF";
@ -12,8 +12,10 @@
};
home = {
jetbrains.enable = true;
vscode.enable = true;
minecraft.enable = true;
minecraft.user = "app";
};
users.homeModules = [ {
@ -39,10 +41,8 @@
console.earlySetup = true;
specialisation.desktop.configuration = {
programs.regreet.enable = lib.mkForce true;
jovian.steam.autoStart = lib.mkForce false;
jovian.steam.desktopSession = lib.mkForce "sway";
home.plasma.enable = lib.mkForce false;
global.jovian = false;
jovian.steamos.useSteamOSConfig = false;
services.greetd.settings.default_session.command = let
cfg = config.programs.regreet;
in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" ''
@ -64,5 +64,8 @@
boot.extraModulePackages = [ ];
hardware.cpu.intel.updateMicrocode = true;
imports = [ ./jovian.nix ];
imports = [
jovian.nixosModules.jovian
./jovian.nix
];
}

View file

@ -1,51 +1,80 @@
{ pkgs, jovian, ... }: {
imports = [
jovian.nixosModules.jovian
];
{ pkgs, lib, config, ... }: with lib; {
options.global.jovian = mkEnableOption "set up Jovian NixOS" // { default = true; };
jovian = {
hardware.has.amd.gpu = true;
steamos.useSteamOSConfig = true;
steamos.enableDefaultCmdlineConfig = false;
config = mkIf config.global.jovian {
jovian = {
hardware.has.amd.gpu = true;
steamos.useSteamOSConfig = true;
steamos.enableDefaultCmdlineConfig = false;
steam = {
steam = {
enable = true;
autoStart = true;
desktopSession = "plasma";
user = "app";
};
};
users.home.persistApp.directories = [
".steam" ".local/share/Steam"
".config/gamescope" ".config/hhd"
".kodi"
];
users.users.app.extraGroups = [ "networkmanager" "gamemode" ];
programs.gamemode.enable = true;
programs.regreet.enable = false;
home.plasma.enable = true;
home.plasma.extraConfig = {
configFile = {
kwinrc.Xwayland.Scale = 1.75;
kscreenlockerrc.Daemon.Autolock = false;
};
};
home-manager.users.app = {
home.packages = with pkgs; [
(pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [
joystick # keymap steam-controller
#controller-topology-project
libretro libretro-2048
libretro-fuse libretro-genplus libretro-mgba
libretro-nestopia libretro-snes9x
jellycon
]))
];
home.pointerCursor = {
package = pkgs.steamdeck-hw-theme;
name = "steam";
};
};
services.handheld-daemon = {
enable = true;
autoStart = true;
desktopSession = "plasma";
user = "app";
};
};
users.home.persistApp.directories = [
".steam" ".local/share/Steam" ".config/gamescope"
".kodi"
];
users.users.app.extraGroups = [ "networkmanager" ];
programs.regreet.enable = false;
home.plasma.enable = true;
home.plasma.extraConfig = {
configFile = {
kwinrc.Xwayland.Scale = 1.75;
kscreenlockerrc.Daemon.Autolock = false;
jovian.decky-loader = {
# ~/.steam/steam/.cef-enable-remote-debugging
enable = true;
user = "app";
extraPackages = with pkgs; [
curl unzip util-linux gnugrep procps pciutils kmod ryzenadj
];
extraPythonPackages = pythonPackages: with pythonPackages; [
hid pyyaml
];
stateDir = "/nix/persist/decky";
};
};
home-manager.users.app.home.packages = with pkgs; [
(pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [
joystick # keymap steam-controller
#controller-topology-project
libretro libretro-2048
libretro-fuse libretro-genplus libretro-mgba
libretro-nestopia libretro-snes9x
jellycon
]))
];
} // {
#users.users.decky.uid = 514;
#users.groups.decky.gid = 514;
#jovian.decky-loader = {
# enable = true;
# stateDir = "/nix/persist/decky";
#};
boot.kernelParams = [
"iomem=relaxed"
"amd_pstate=passive"
];
services.udev.extraRules = ''
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${pkgs.ryzenadj}/bin/ryzenadj --max-performance"
'';
};
}

View file

@ -11,13 +11,12 @@
};
home = {
plasma.specialise = true;
gnome.enable = true;
#headless.enable = "eDP-1";
gyroflow.enable = true;
jetbrains.enable = true;
vscode.enable = true;
libreoffice.enable = true;
minecraft.enable = true;
steam.enable = true;
};

34
spec/shatter/default.nix Normal file
View file

@ -0,0 +1,34 @@
{ lib
, pkgs
, ... }: {
global = {
id = "f16d3a87afdd4eb2b1fa4c098d4a9c1a";
auth.openssh.enable = true;
fs.esp.uuid = "153D-AA49";
fs.type = "xfs";
fs.store = "67878f8f-3724-4551-a2e2-f43d674e1d93";
fs.cryptsetup.enable = true;
fs.cryptsetup.uuids.persist = "3633e292-59e8-497d-9e51-0186ca73c25c";
gpu.enable = true;
gpu.type = "intel";
gpu.session = false;
boot.lanzaboote = true;
};
services.udev.extraRules = ''
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="88:c9:b3:b5:15:0e", NAME="i225-v"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="8c:a6:82:70:08:ca", NAME="aqc113c"
'';
boot.kernelParams = [ "zfs.zfs_arc_max=2147483648" ];
networking.firewall.checkReversePath = false;
boot.swraid.enable = true;
boot.swraid.mdadmConf = ''
PROGRAM /run/current-system/sw/bin/true
'';
hardware.enableRedistributableFirmware = true;
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ "i915" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
}

View file

@ -14,7 +14,7 @@
};
home = {
plasma.enable = true;
plasma.specialise = true;
gyroflow.enable = true;
vscode.enable = true;
libreoffice.enable = true;

View file

@ -8,12 +8,14 @@
fs.esp.uuid = "6CEB-765A";
fs.type = "xfs";
fs.store = "b80e8bbe-d1ff-4d2e-ae25-9e9048d67355";
boot.lanzaboote = true;
gpu.enable = true;
gpu.type = "nvidia";
android.enable = true;
};
home = {
plasma.enable = true;
gnome.enable = true;
gyroflow.enable = true;
jetbrains.enable = true;
vscode.enable = true;
@ -22,27 +24,12 @@
steam.enable = true;
};
home.plasma.extraConfig = {
configFile = {
kscreenlockerrc.Daemon.Autolock = false;
kcminputrc."Libinput/16700/9486/Dell Computer Corp Dell Laser Mouse MS3220".NaturalScroll = true;
};
};
imports = lib.pipe ./. [
builtins.readDir
(lib.filterAttrs (n: ty: ty == "regular" && n != "default.nix"))
(lib.mapAttrsToList (n: _: ./${n}))
] ++ [ (modulesPath + "/profiles/qemu-guest.nix") ];
# work around low cage resolution on pure nvidia
services.greetd.settings.default_session.command = let
cfg = config.programs.regreet;
in "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${pkgs.writeShellScript "cageResolution" ''
${lib.getExe pkgs.wlr-randr} --output DP-2 --mode 1920x1080@60.000000Hz
${lib.getExe cfg.package}
''}";
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "usbhid" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];