Compare commits
83 commits
8095c32def
...
a88c1ee96a
Author | SHA1 | Date | |
---|---|---|---|
a88c1ee96a | |||
c8d75099a7 | |||
4608d5ba14 | |||
e32444c3fe | |||
ffb8268256 | |||
138db2308e | |||
3878414e79 | |||
80b82953a7 | |||
731c63d3a1 | |||
dd7948f050 | |||
c914c51b3e | |||
54303845a3 | |||
8b877be846 | |||
92955d8b40 | |||
e1ae3d02ec | |||
8e4f4b022d | |||
9858f9db72 | |||
d57b9199dd | |||
8ee93a09ea | |||
cf63501710 | |||
cbba8daaf7 | |||
06833d5d39 | |||
3a636488f1 | |||
2455afaa75 | |||
af52c6ded9 | |||
5eada39aef | |||
40a29b67ea | |||
ba16732686 | |||
e91c1d9ae1 | |||
699794674c | |||
266f2f96a6 | |||
da683fab0e | |||
1bcad957b3 | |||
056511f2a7 | |||
422f6f3fd6 | |||
42c0942c46 | |||
5ba9210e62 | |||
040cd367c9 | |||
a9bcb8a18f | |||
61b2c0cda8 | |||
1a596a5359 | |||
e2fe3c76d7 | |||
0d76722192 | |||
24e5dac2fe | |||
c754742a3a | |||
49aedbd79a | |||
3f219d0677 | |||
dcabd9585b | |||
cc42a1b77a | |||
99c40c25bd | |||
aa06b4bb2c | |||
f4fa53efee | |||
4fe72f00f8 | |||
1eccb5a94c | |||
c5c113f233 | |||
f3a6614631 | |||
dd5a864785 | |||
118088a3ef | |||
ce7505bd12 | |||
6230a87500 | |||
f63142f9a2 | |||
d05a9ab0c9 | |||
f61119c484 | |||
d330ff5bd8 | |||
095257509c | |||
f9e8ca41c4 | |||
ee35e49d1a | |||
d56b3fe5b1 | |||
4c5dc311f5 | |||
4da50c7fdc | |||
67c7d6b38e | |||
a9b24989ac | |||
2751536816 | |||
ab7e7606f0 | |||
4d77320203 | |||
a9235ece23 | |||
a4bf22a6ee | |||
4a09f05183 | |||
6bfa47caaf | |||
5077e9bc21 | |||
bfcfbbe7c2 | |||
f4a32b7546 | |||
bfb06ba476 |
48 changed files with 712 additions and 565 deletions
144
flake.lock
generated
144
flake.lock
generated
|
@ -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": {
|
||||
|
|
|
@ -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
|
||||
|
|
1
global/auth/pub/hakugyokurou.pub
Normal file
1
global/auth/pub/hakugyokurou.pub
Normal file
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHKCA0/6dsdVyLEgzWt8+u5lWVc0o6A3MY4M2Hf2BT8h koishi@hakugyokurou
|
17
global/flatpak/default.nix
Normal file
17
global/flatpak/default.nix
Normal 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" ];
|
||||
};
|
||||
}
|
|
@ -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) // {
|
||||
|
|
|
@ -11,6 +11,7 @@ in mkIf cfg.enable {
|
|||
commonArgs = [
|
||||
"--recursive"
|
||||
"--mbuffer-size=128M"
|
||||
"--delete-target-snapshots"
|
||||
"--sshport=${toString cfg.port}"
|
||||
];
|
||||
localSourceAllow = mkOptionDefault [ "mount" ];
|
||||
|
|
|
@ -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" ];
|
||||
}
|
||||
|
|
|
@ -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" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
BIN
home/catppuccin/flake.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
62
home/catppuccin/gui.nix
Normal file
62
home/catppuccin/gui.nix
Normal 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
9
home/catppuccin/home.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
accent = "pink";
|
||||
flavor = "mocha";
|
||||
};
|
||||
|
||||
imports = [ ./gui.nix ];
|
||||
}
|
|
@ -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 |
|
@ -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";
|
||||
};
|
||||
|
|
|
@ -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")
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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" ];
|
||||
}
|
||||
|
|
|
@ -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 |
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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"; }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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
|
||||
];
|
||||
|
||||
|
|
|
@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 = [ ];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
106
spec/eientei/minecraft.nix
Normal 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 ];
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
services.tubesync = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
stateDir = "/nix/persist/service/tubesync";
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
61
spec/hakugyokurou/default.nix
Normal file
61
spec/hakugyokurou/default.nix
Normal 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;
|
||||
}
|
|
@ -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
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{ pkgs, jovian, ... }: {
|
||||
imports = [
|
||||
jovian.nixosModules.jovian
|
||||
];
|
||||
{ pkgs, lib, config, ... }: with lib; {
|
||||
options.global.jovian = mkEnableOption "set up Jovian NixOS" // { default = true; };
|
||||
|
||||
config = mkIf config.global.jovian {
|
||||
jovian = {
|
||||
hardware.has.amd.gpu = true;
|
||||
steamos.useSteamOSConfig = true;
|
||||
|
@ -17,11 +16,13 @@
|
|||
};
|
||||
|
||||
users.home.persistApp.directories = [
|
||||
".steam" ".local/share/Steam" ".config/gamescope"
|
||||
".steam" ".local/share/Steam"
|
||||
".config/gamescope" ".config/hhd"
|
||||
".kodi"
|
||||
];
|
||||
|
||||
users.users.app.extraGroups = [ "networkmanager" ];
|
||||
users.users.app.extraGroups = [ "networkmanager" "gamemode" ];
|
||||
programs.gamemode.enable = true;
|
||||
programs.regreet.enable = false;
|
||||
home.plasma.enable = true;
|
||||
home.plasma.extraConfig = {
|
||||
|
@ -31,7 +32,8 @@
|
|||
};
|
||||
};
|
||||
|
||||
home-manager.users.app.home.packages = with pkgs; [
|
||||
home-manager.users.app = {
|
||||
home.packages = with pkgs; [
|
||||
(pkgs.kodi-wayland.passthru.withPackages (kodiPkgs: with kodiPkgs; [
|
||||
joystick # keymap steam-controller
|
||||
#controller-topology-project
|
||||
|
@ -41,11 +43,38 @@
|
|||
jellycon
|
||||
]))
|
||||
];
|
||||
} // {
|
||||
#users.users.decky.uid = 514;
|
||||
#users.groups.decky.gid = 514;
|
||||
#jovian.decky-loader = {
|
||||
# enable = true;
|
||||
# stateDir = "/nix/persist/decky";
|
||||
#};
|
||||
|
||||
home.pointerCursor = {
|
||||
package = pkgs.steamdeck-hw-theme;
|
||||
name = "steam";
|
||||
};
|
||||
};
|
||||
|
||||
services.handheld-daemon = {
|
||||
enable = true;
|
||||
user = "app";
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
boot.kernelParams = [
|
||||
"iomem=relaxed"
|
||||
"amd_pstate=passive"
|
||||
];
|
||||
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${pkgs.ryzenadj}/bin/ryzenadj --max-performance"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
34
spec/shatter/default.nix
Normal 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 = [ ];
|
||||
}
|
|
@ -14,7 +14,7 @@
|
|||
};
|
||||
|
||||
home = {
|
||||
plasma.enable = true;
|
||||
plasma.specialise = true;
|
||||
gyroflow.enable = true;
|
||||
vscode.enable = true;
|
||||
libreoffice.enable = true;
|
||||
|
|
|
@ -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" ];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue