Compare commits
181 commits
26b0b450c6
...
8b06796596
Author | SHA1 | Date | |
---|---|---|---|
8b06796596 | |||
b5a5b2c727 | |||
cff0ea5cac | |||
f87f6f1546 | |||
c7da17b79d | |||
a2e122e75d | |||
0a3075f675 | |||
2f6ed21f0c | |||
0ace76d28b | |||
e55314c922 | |||
979d3dba03 | |||
d244b5d2a5 | |||
26a49acbc1 | |||
7d6e9c5e2b | |||
9c6bc0630d | |||
9a18c250df | |||
49f1f933d0 | |||
b176aa7368 | |||
10d169e85b | |||
b73e2eecc5 | |||
411080df71 | |||
3fbc4c0642 | |||
854edf73a0 | |||
4a6f1a035e | |||
a0dff23259 | |||
53eee10dc1 | |||
7855b51297 | |||
a0fe695cbc | |||
7faa72dcd7 | |||
6a43ef3bd9 | |||
76224a7113 | |||
00a252a009 | |||
fd4481a2e1 | |||
b3fe1164fd | |||
b8f1295953 | |||
57a6f61802 | |||
1922579c77 | |||
5633ed5914 | |||
80db008bb7 | |||
16f2e7fd18 | |||
854b296c07 | |||
bad48abd05 | |||
f717547060 | |||
68c0738d05 | |||
cb6e5d21d1 | |||
1a288babfc | |||
99a600c253 | |||
f9af0ee523 | |||
9978c79bd1 | |||
281ebd52f0 | |||
23c028f620 | |||
bcab411b3a | |||
a2708e7c33 | |||
82b1d1da11 | |||
e9d85deaa6 | |||
66e104d402 | |||
6908755316 | |||
5b0774350f | |||
fb29126d4c | |||
1a998d1edb | |||
a8fa9c6c04 | |||
1f388342bb | |||
9576a8a998 | |||
f8adbd437a | |||
233d03639c | |||
0333e31aac | |||
ff92fb22ff | |||
fbfec1f8da | |||
aa53aea6cf | |||
21ea51b78d | |||
d22ff8cbe4 | |||
760cfcc059 | |||
d952121242 | |||
f00f6b55fc | |||
b3de4567ff | |||
ee879be648 | |||
54cac7ed48 | |||
c6a7cc9a3f | |||
75e037b7f8 | |||
671b9e94e3 | |||
d19b849577 | |||
73aa0bdcca | |||
af432693bd | |||
334d3ae658 | |||
b18d5e4d9d | |||
da9ca5a563 | |||
57b58d78ea | |||
3a3d1e6cdf | |||
baa1766186 | |||
a57da685a7 | |||
ede3d69907 | |||
230e2d0e3a | |||
badd1aa7ad | |||
f9f9abf279 | |||
0ba745d792 | |||
ead6eb1832 | |||
a813e5a010 | |||
5ce5eb0a8f | |||
6ea68a2b25 | |||
106b0d752e | |||
ccfb74fa5c | |||
540bd601e2 | |||
6ab38a390f | |||
181970f273 | |||
79d253f2d7 | |||
2b98d371f1 | |||
fc4764ef04 | |||
6be6e4db46 | |||
93ba9bfdaa | |||
0d098f3823 | |||
fb8ad18439 | |||
c4d46e7987 | |||
a27b3ffdd5 | |||
546f73b42b | |||
ba90c05b2d | |||
8c014a0a97 | |||
783502952c | |||
555471d5f3 | |||
8f12b248d5 | |||
24ffd6d7ce | |||
8f64cd0822 | |||
f9d633f4c2 | |||
8f10d3a6cf | |||
979929ea32 | |||
4b27f1db40 | |||
1df6787b36 | |||
29f77cd309 | |||
e0087d7668 | |||
b73a7a33b1 | |||
72c9eec2d8 | |||
c0c67efdd8 | |||
39f89b8965 | |||
53340764e3 | |||
839728539b | |||
37912e91eb | |||
41154db1b5 | |||
b7537fafda | |||
3f26e32ebe | |||
1c99ea2b99 | |||
1eba02f65f | |||
449d972d14 | |||
19de7d7076 | |||
c365d09f9f | |||
486c304fff | |||
ee90d3577f | |||
99623ce473 | |||
809e11313a | |||
87d7454dd1 | |||
ed196164d0 | |||
a9f699c4e1 | |||
1483f1f045 | |||
fc8534dc04 | |||
b30f617f44 | |||
2c4c938b1f | |||
fa75d5fa72 | |||
3d4a645cc4 | |||
7f1bcaa4b0 | |||
ab0e5117fa | |||
b3be8a6c27 | |||
4211c16005 | |||
90245758a8 | |||
050112880f | |||
196af0549c | |||
7201c083f0 | |||
928adc261f | |||
5b96e77e14 | |||
1562b2d179 | |||
ce706dd76a | |||
367db24109 | |||
41295cff75 | |||
f6b9287dfc | |||
30330d4e0e | |||
bd19395d69 | |||
d3c62bce06 | |||
f3177404a8 | |||
8811040e5b | |||
3e58dc70e4 | |||
53de3f8c6c | |||
75ecd80aa4 | |||
85e333bea8 | |||
e9262a37b7 |
314 changed files with 2309 additions and 3556 deletions
8
Justfile
8
Justfile
|
@ -74,6 +74,14 @@ genFirefoxAddons:
|
|||
secret name:
|
||||
cd secrets && agenix --edit {{name}}.age --identity ~/.ssh/marley@nyx && cd -
|
||||
|
||||
[group('maintainence')]
|
||||
check:
|
||||
nix flake check
|
||||
|
||||
[group('maintainence')]
|
||||
checkall:
|
||||
nix flake check --all-systems
|
||||
|
||||
alias s := search
|
||||
search this:
|
||||
nh search {{this}}
|
||||
|
|
242
flake.lock
242
flake.lock
|
@ -168,6 +168,21 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"easy-hosts": {
|
||||
"locked": {
|
||||
"lastModified": 1747174689,
|
||||
"narHash": "sha256-WEA2HdjC90GLf5VpMLpvOF3/uSSq6AV4DQ4ezLFspc0=",
|
||||
"owner": "tgirlcloud",
|
||||
"repo": "easy-hosts",
|
||||
"rev": "e1210563fc527221e12544ce55cd954acf94e7ed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tgirlcloud",
|
||||
"repo": "easy-hosts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -247,22 +262,6 @@
|
|||
}
|
||||
},
|
||||
"flake-compat_5": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1650374568,
|
||||
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_6": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
|
@ -279,6 +278,26 @@
|
|||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"marleyvim",
|
||||
|
@ -301,7 +320,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"marleyvim",
|
||||
|
@ -323,7 +342,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_3": {
|
||||
"flake-parts_4": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"marleyvim",
|
||||
|
@ -345,7 +364,7 @@
|
|||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"flake-parts_4": {
|
||||
"flake-parts_5": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
|
@ -384,59 +403,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils-plus": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715533576,
|
||||
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1694529238,
|
||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"inputs": {
|
||||
"systems": [
|
||||
"stylix",
|
||||
|
@ -457,9 +424,9 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_5": {
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_6"
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
|
@ -704,7 +671,7 @@
|
|||
},
|
||||
"hercules-ci-effects": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_3",
|
||||
"flake-parts": "flake-parts_4",
|
||||
"nixpkgs": [
|
||||
"marleyvim",
|
||||
"neovim-nightly-overlay",
|
||||
|
@ -864,7 +831,7 @@
|
|||
"neovim-nightly-overlay": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"git-hooks": "git-hooks_2",
|
||||
"hercules-ci-effects": "hercules-ci-effects",
|
||||
"neovim-src": "neovim-src",
|
||||
|
@ -963,7 +930,7 @@
|
|||
"marleyvim",
|
||||
"devenv"
|
||||
],
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"libgit2": "libgit2",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-23-11": [
|
||||
|
@ -1030,27 +997,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixgl": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713543440,
|
||||
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixGL",
|
||||
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixGL",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1733212471,
|
||||
|
@ -1067,6 +1013,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-darwin": {
|
||||
"locked": {
|
||||
"lastModified": 1748037224,
|
||||
"narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f09dede81861f3a83f7f06641ead34f02f37597f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-24.11-darwin",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1747862697,
|
||||
|
@ -1083,6 +1045,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1747958103,
|
||||
"narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1717432640,
|
||||
|
@ -1213,7 +1191,7 @@
|
|||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_4",
|
||||
"flake-parts": "flake-parts_5",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
|
@ -1301,17 +1279,18 @@
|
|||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"darwin": "darwin",
|
||||
"easy-hosts": "easy-hosts",
|
||||
"flake-parts": "flake-parts",
|
||||
"home-manager": "home-manager",
|
||||
"lix": "lix",
|
||||
"marleyvim": "marleyvim",
|
||||
"niri-flake": "niri-flake",
|
||||
"nixcord": "nixcord",
|
||||
"nixgl": "nixgl",
|
||||
"nixpkgs": "nixpkgs_8",
|
||||
"nixpkgs-darwin": "nixpkgs-darwin",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nur": "nur",
|
||||
"snowfall-lib": "snowfall-lib",
|
||||
"stylix": "stylix",
|
||||
"unstable": "unstable",
|
||||
"wezterm": "wezterm"
|
||||
}
|
||||
},
|
||||
|
@ -1336,28 +1315,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"snowfall-lib": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_5",
|
||||
"flake-utils-plus": "flake-utils-plus",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736130495,
|
||||
"narHash": "sha256-4i9nAJEZFv7vZMmrE0YG55I3Ggrtfo5/T07JEpEZ/RM=",
|
||||
"owner": "snowfallorg",
|
||||
"repo": "lib",
|
||||
"rev": "02d941739f98a09e81f3d2d9b3ab08918958beac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "snowfallorg",
|
||||
"repo": "lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
|
@ -1365,13 +1322,13 @@
|
|||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-compat": "flake-compat_6",
|
||||
"flake-utils": "flake-utils_4",
|
||||
"flake-compat": "flake-compat_5",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"git-hooks": "git-hooks_3",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": "nixpkgs_9",
|
||||
"systems": "systems_5",
|
||||
"systems": "systems_4",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-tmux": "tinted-tmux"
|
||||
|
@ -1465,21 +1422,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_6": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -1594,25 +1536,9 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1748026106,
|
||||
"narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wezterm": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_5",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"freetype2": "freetype2",
|
||||
"harfbuzz": "harfbuzz",
|
||||
"libpng": "libpng",
|
||||
|
|
57
flake.nix
57
flake.nix
|
@ -2,50 +2,12 @@
|
|||
description = "marleyOS";
|
||||
|
||||
outputs = inputs:
|
||||
inputs.snowfall-lib.mkFlake {
|
||||
inherit inputs;
|
||||
src = ./.;
|
||||
|
||||
snowfall = {
|
||||
namespace = "marleyos";
|
||||
title = "marleyOS";
|
||||
};
|
||||
|
||||
channels-config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
|
||||
overlays = with inputs; [
|
||||
lix.overlays.default
|
||||
nur.overlays.default
|
||||
agenix.overlays.default
|
||||
niri-flake.overlays.niri
|
||||
];
|
||||
|
||||
systems.modules.nixos = with inputs; [
|
||||
agenix.nixosModules.default
|
||||
stylix.nixosModules.stylix
|
||||
niri-flake.nixosModules.niri
|
||||
];
|
||||
|
||||
systems.modules.darwin = with inputs; [
|
||||
agenix.darwinModules.default
|
||||
lix.nixosModules.default
|
||||
];
|
||||
|
||||
homes.modules = with inputs; [
|
||||
agenix.homeManagerModules.default
|
||||
nixcord.homeModules.nixcord
|
||||
];
|
||||
|
||||
outputs-builder = channels: {
|
||||
formatter = channels.nixpkgs.alejandra;
|
||||
};
|
||||
};
|
||||
inputs.flake-parts.lib.mkFlake {inherit inputs;} {imports = [./flake];};
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-24.11-darwin";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
nur = {
|
||||
url = "github:nix-community/NUR";
|
||||
|
@ -57,11 +19,13 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
snowfall-lib = {
|
||||
url = "github:snowfallorg/lib";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
flake-parts = {
|
||||
url = "github:hercules-ci/flake-parts";
|
||||
inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
easy-hosts.url = "github:tgirlcloud/easy-hosts";
|
||||
|
||||
darwin = {
|
||||
url = "github:LnL7/nix-darwin/nix-darwin-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -81,11 +45,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
nixgl = {
|
||||
url = "github:nix-community/nixGL";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
stylix.url = "github:danth/stylix/release-24.11";
|
||||
|
||||
niri-flake.url = "github:sodiboo/niri-flake";
|
||||
|
|
22
flake/config.nix
Normal file
22
flake/config.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{inputs, ...}: {
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
|
||||
### Nixpkgs Config ###
|
||||
perSystem = {system, ...}: {
|
||||
_module.args.pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
|
||||
# TODO: Move these to custom modules
|
||||
overlays = [
|
||||
(import ./overlays/wezterm.nix {inherit inputs;})
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
7
flake/default.nix
Normal file
7
flake/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
imports = [
|
||||
./config.nix
|
||||
|
||||
../hosts
|
||||
];
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.marleyos) enabled;
|
||||
in {
|
||||
marleyos = {
|
||||
bundles.mac = enabled;
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.marleyos) enabled;
|
||||
in {
|
||||
marleyos = {
|
||||
bundles.server = enabled;
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.marleyos) enabled;
|
||||
in {
|
||||
marleyos = {
|
||||
bundles.server = enabled;
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.marleyos) enabled;
|
||||
in {
|
||||
marleyos = {
|
||||
bundles.desktop = enabled;
|
||||
|
||||
wayland.niri = {
|
||||
enable = true;
|
||||
monitors = ["DP-1" "HDMI-A-1"];
|
||||
};
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
}
|
43
hosts/default.nix
Normal file
43
hosts/default.nix
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
inputs,
|
||||
lib,
|
||||
self,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.easy-hosts.flakeModule];
|
||||
|
||||
config.easy-hosts = {
|
||||
shared.specialArgs.marleylib = import ../lib {inherit lib;};
|
||||
|
||||
perClass = class: {
|
||||
modules = ["${self}/modules/${class}/default.nix"];
|
||||
};
|
||||
|
||||
hosts = {
|
||||
### Desktop ###
|
||||
nyx = {
|
||||
arch = "x86_64";
|
||||
class = "nixos";
|
||||
};
|
||||
|
||||
### Macbook Air ###
|
||||
mairley = {
|
||||
arch = "aarch64";
|
||||
class = "darwin";
|
||||
nixpkgs = inputs.nixpkgs-darwin;
|
||||
};
|
||||
|
||||
### Servers ###
|
||||
|
||||
marleycentre = {
|
||||
arch = "x86_64";
|
||||
class = "nixos";
|
||||
};
|
||||
|
||||
marleynet = {
|
||||
arch = "x86_64";
|
||||
class = "nixos";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,9 +1,5 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.marleyos) enabled;
|
||||
{config, ...}: let
|
||||
inherit (config.marleycfg.my) name;
|
||||
in {
|
||||
networking = {
|
||||
computerName = "mairley";
|
||||
|
@ -11,19 +7,11 @@ in {
|
|||
localHostName = "mairley";
|
||||
};
|
||||
|
||||
marleyos = {
|
||||
appearance = {
|
||||
base = enabled;
|
||||
};
|
||||
programs = {
|
||||
fish = enabled;
|
||||
wezterm = enabled;
|
||||
};
|
||||
};
|
||||
marleycfg.profiles.desktop = true;
|
||||
|
||||
users = {
|
||||
knownUsers = ["marley"];
|
||||
users."marley" = {
|
||||
knownUsers = [name];
|
||||
users."${name}" = {
|
||||
# This is required for some reason.
|
||||
uid = 501;
|
||||
|
||||
|
@ -31,5 +19,9 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
home-manager.users."${name}" = {
|
||||
home.stateVersion = "24.05";
|
||||
};
|
||||
|
||||
system.stateVersion = 5;
|
||||
}
|
|
@ -1,13 +1,11 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.marleyos) enabled;
|
||||
{config, ...}: let
|
||||
inherit (config.marleycfg.my) name;
|
||||
in {
|
||||
imports = [./hardware-configuration.nix];
|
||||
|
||||
networking.hostName = "marleycentre";
|
||||
|
||||
marleyos = {
|
||||
bundles.server = enabled;
|
||||
};
|
||||
marleycfg.profiles.server = true;
|
||||
|
||||
users.users = {
|
||||
marley.openssh.authorizedKeys.keys = [
|
||||
|
@ -27,5 +25,9 @@ in {
|
|||
allowedUDPPorts = [6881];
|
||||
};
|
||||
|
||||
home-manager.users."${name}" = {
|
||||
home.stateVersion = "24.05";
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
}
|
|
@ -1,12 +1,18 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.marleyos) enabled;
|
||||
{
|
||||
config,
|
||||
marleylib,
|
||||
...
|
||||
}: let
|
||||
inherit (config.marleycfg.my) name;
|
||||
inherit (marleylib.module) enabled;
|
||||
in {
|
||||
imports = [./hardware-configuration.nix];
|
||||
|
||||
networking.hostName = "marleynet";
|
||||
|
||||
marleycfg.profiles.server = true;
|
||||
|
||||
marleyos = {
|
||||
bundles.server = enabled;
|
||||
services.ddclient = enabled;
|
||||
};
|
||||
|
||||
|
@ -25,5 +31,9 @@ in {
|
|||
|
||||
services.openssh.ports = [222];
|
||||
|
||||
home-manager.users."${name}" = {
|
||||
home.stateVersion = "24.05";
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
_: {
|
||||
{
|
||||
services.autorandr = {
|
||||
enable = true;
|
||||
|
35
hosts/nyx/default.nix
Normal file
35
hosts/nyx/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
marleylib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (marleylib.module) enabled;
|
||||
inherit (config.marleycfg.my) name;
|
||||
in {
|
||||
imports = [./hardware-configuration.nix ./mounts.nix ./autorandr.nix];
|
||||
|
||||
networking.hostName = "nyx";
|
||||
|
||||
# For local dev.
|
||||
networking.firewall.allowedTCPPorts = [8080];
|
||||
|
||||
marleycfg.profiles.desktop = true;
|
||||
|
||||
marleyos = {
|
||||
hardware = {
|
||||
# nvidia = enabled;
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.users."${name}" = {
|
||||
marleyos = {
|
||||
shell.niri.monitors = ["DP-1" "HDMI-A-1"];
|
||||
programs.calibre = enabled;
|
||||
services.syncthing = enabled;
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
_: {
|
||||
{
|
||||
systemd = {
|
||||
mounts = [
|
||||
{
|
43
layout.txt
Normal file
43
layout.txt
Normal file
|
@ -0,0 +1,43 @@
|
|||
modules/${class}/default.nix # imported by easy-hosts.perClass.modules
|
||||
|
||||
imports = [
|
||||
../base # common across all systems
|
||||
|
||||
./base
|
||||
./hardware
|
||||
./shell # WM/DE
|
||||
./programs
|
||||
./services
|
||||
|
||||
./profiles.nix # enable/disable items
|
||||
];
|
||||
|
||||
|
||||
|
||||
modules/base/default.nix
|
||||
|
||||
imports = [
|
||||
../options # custom options used for deciding other config
|
||||
|
||||
{...} # modules w/i base
|
||||
|
||||
./home.nix # home-manager setup; imports modules/home
|
||||
];
|
||||
|
||||
|
||||
|
||||
modules/home/default.nix # HOME MANAGER OPTIONS ONLY
|
||||
|
||||
imports = [
|
||||
../options
|
||||
|
||||
{...}
|
||||
|
||||
./shell # WM/DE
|
||||
./programs
|
||||
# ${program}.nix - OS check here if needed
|
||||
./services
|
||||
# ${service}.nix - OS check here if needed
|
||||
|
||||
./profiles.nix # enable/disable items
|
||||
];
|
3
lib/default.nix
Normal file
3
lib/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{lib}: {
|
||||
module = import ./module.nix {inherit lib;};
|
||||
}
|
57
lib/module.nix
Normal file
57
lib/module.nix
Normal file
|
@ -0,0 +1,57 @@
|
|||
{lib}: {
|
||||
## Quickly enable an option.
|
||||
##
|
||||
## ```nix
|
||||
## services.nginx = enabled;
|
||||
## ```
|
||||
##
|
||||
#@ true
|
||||
enabled = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
## Quickly disable an option.
|
||||
##
|
||||
## ```nix
|
||||
## services.nginx = enabled;
|
||||
## ```
|
||||
##
|
||||
#@ false
|
||||
disabled = {
|
||||
enable = false;
|
||||
};
|
||||
|
||||
## Like lib.mkEnableOption, but allows specifying the default.
|
||||
##
|
||||
## ```nix
|
||||
## options.marleyos.wayland = mkEnableOption' "wayland" false;
|
||||
## ```
|
||||
mkEnableOption' = name: default:
|
||||
lib.mkOption {
|
||||
inherit default;
|
||||
example = true;
|
||||
description =
|
||||
if name ? _type && name._type == "mdDoc"
|
||||
then lib.mdDoc "Whether to enable ${name.text}."
|
||||
else "Whether to enable ${name}.";
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
## Like lib.mkDefault, but uses lib.mapAttrsRecursive to apply mkDefault to
|
||||
## every attr in the set.
|
||||
##
|
||||
## ```nix
|
||||
## starship.settings.username = mkDefault' {
|
||||
## enabled = true;
|
||||
## show_always = false;
|
||||
## };
|
||||
## ```
|
||||
## is equivalent to:
|
||||
## ```nix
|
||||
## starship.settings.username = {
|
||||
## enabled = mkDefault true;
|
||||
## show_always = mkDefault false;
|
||||
## };
|
||||
## ```
|
||||
mkDefault' = set: lib.mapAttrsRecursive (_: value: lib.mkDefault value) set;
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
_: {
|
||||
enabled = {
|
||||
## Quickly enable an option.
|
||||
##
|
||||
## ```nix
|
||||
## services.nginx = enabled;
|
||||
## ```
|
||||
##
|
||||
#@ true
|
||||
enable = true;
|
||||
};
|
||||
|
||||
disabled = {
|
||||
## Quickly disable an option.
|
||||
##
|
||||
## ```nix
|
||||
## services.nginx = enabled;
|
||||
## ```
|
||||
##
|
||||
#@ false
|
||||
enable = false;
|
||||
};
|
||||
}
|
14
modules/base/default.nix
Normal file
14
modules/base/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
imports = [
|
||||
../options
|
||||
|
||||
./nix.nix
|
||||
./stylix
|
||||
|
||||
./programs
|
||||
./services
|
||||
|
||||
./profiles.nix
|
||||
./home.nix
|
||||
];
|
||||
}
|
33
modules/base/home.nix
Normal file
33
modules/base/home.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
marleylib,
|
||||
inputs,
|
||||
inputs',
|
||||
...
|
||||
}: let
|
||||
my = rec {
|
||||
name = "marley";
|
||||
fullName = "Marley Rae";
|
||||
username = "punkfairie";
|
||||
email = "marley@punkfairie.net";
|
||||
git = {
|
||||
name = username;
|
||||
inherit email;
|
||||
};
|
||||
};
|
||||
in {
|
||||
config = {
|
||||
marleycfg.my = my;
|
||||
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
backupFileExtension = "bak";
|
||||
|
||||
users."${my.name}" = {
|
||||
home.username = my.name;
|
||||
};
|
||||
|
||||
sharedModules = [../home];
|
||||
extraSpecialArgs = {inherit marleylib inputs inputs';};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,13 +1,15 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.lix.nixosModules.default # this is universal, despite the 'nixos'
|
||||
];
|
||||
|
||||
config = {
|
||||
nix = {
|
||||
package = lib.mkForce pkgs.lix;
|
||||
package = pkgs.lix;
|
||||
|
||||
# Pin system <nixpkgs> to flake nixpkgs version.
|
||||
# i.e. for use in pkgs = import <nixpkgs> {}.
|
||||
|
@ -20,15 +22,11 @@
|
|||
};
|
||||
|
||||
settings = {
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
trusted-users = [
|
||||
"root"
|
||||
"@wheel"
|
||||
];
|
||||
|
||||
# Enable flakes.
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
# @wheel/@admin are added in OS specific modules.
|
||||
];
|
||||
|
||||
# Set up caches.
|
||||
|
@ -47,28 +45,20 @@
|
|||
warn-dirty = false;
|
||||
|
||||
auto-optimise-store = true;
|
||||
};
|
||||
|
||||
# Garbage collection.
|
||||
gc.automatic = true;
|
||||
use-xdg-base-directories = true;
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.config.import = "${config.xdg.configHome}/nixpkgs/config.nix";
|
||||
nixpkgs = import ./nixpkgs.nix {inherit inputs;};
|
||||
|
||||
xdg.configFile."nixpkgs/config.nix".text =
|
||||
# nix
|
||||
''
|
||||
{
|
||||
allowUnfree = true;
|
||||
}
|
||||
'';
|
||||
|
||||
home.packages = let
|
||||
# More useful repl.
|
||||
environment.systemPackages = let
|
||||
nrepl =
|
||||
pkgs.writeShellScriptBin "nrepl"
|
||||
# sh
|
||||
''
|
||||
nix repl "${toString ./.}/repl.nix" "$@"
|
||||
nix repl --file "${toString ../../repl.nix}" "$@"
|
||||
'';
|
||||
in [
|
||||
nrepl
|
12
modules/base/nixpkgs.nix
Normal file
12
modules/base/nixpkgs.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{inputs, ...}: {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
|
||||
overlays = [
|
||||
inputs.nur.overlays.default
|
||||
|
||||
# Custom packages.
|
||||
(import ../../overlays/marleyos.nix)
|
||||
];
|
||||
}
|
39
modules/base/profiles.nix
Normal file
39
modules/base/profiles.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
config,
|
||||
marleylib,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleycfg.profiles;
|
||||
|
||||
inherit (marleylib.module) enabled;
|
||||
in {
|
||||
marleyos = lib.mkMerge [
|
||||
# Universal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
{
|
||||
programs = {
|
||||
btop = enabled;
|
||||
curl = enabled;
|
||||
fish = enabled;
|
||||
jq = enabled;
|
||||
less = enabled;
|
||||
neovim = enabled;
|
||||
nix-output-monitor = enabled;
|
||||
ripgrep = enabled;
|
||||
wget = enabled;
|
||||
};
|
||||
|
||||
services = {
|
||||
openssh = enabled; # required for agenix
|
||||
};
|
||||
}
|
||||
#
|
||||
#
|
||||
# Graphical Desktop - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
(lib.optionalAttrs cfg.desktop {})
|
||||
#
|
||||
#
|
||||
# Server - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
(lib.optionalAttrs cfg.server {})
|
||||
];
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.btop;
|
||||
|
@ -8,13 +9,8 @@ in {
|
|||
options.marleyos.programs.btop.enable = lib.mkEnableOption "btop";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
truecolor = true;
|
||||
vim_keys = true;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
btop
|
||||
];
|
||||
};
|
||||
}
|
16
modules/base/programs/curl.nix
Normal file
16
modules/base/programs/curl.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.curl;
|
||||
in {
|
||||
options.marleyos.programs.curl.enable = lib.mkEnableOption "curl";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
curl
|
||||
];
|
||||
};
|
||||
}
|
13
modules/base/programs/default.nix
Normal file
13
modules/base/programs/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
imports = [
|
||||
./btop.nix
|
||||
./curl.nix
|
||||
./fish.nix
|
||||
./jq.nix
|
||||
./less.nix
|
||||
./neovim.nix
|
||||
./nix-output-monitor.nix
|
||||
./ripgrep.nix
|
||||
./wget.nix
|
||||
];
|
||||
}
|
|
@ -10,10 +10,7 @@ in {
|
|||
config = lib.mkIf cfg.enable {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
useBabelfish = true;
|
||||
};
|
||||
|
||||
environment.shells = [config.programs.fish.package];
|
||||
};
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.jq;
|
||||
|
@ -8,8 +9,8 @@ in {
|
|||
options.marleyos.programs.jq.enable = lib.mkEnableOption "jq";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.jq = {
|
||||
enable = true;
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
jq
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.less;
|
||||
|
@ -8,12 +9,14 @@ in {
|
|||
options.marleyos.programs.less.enable = lib.mkEnableOption "less";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.less.enable = true;
|
||||
programs.less = {
|
||||
enable = true;
|
||||
|
||||
home.sessionVariables = {
|
||||
LESS = "-R";
|
||||
envVariables = {
|
||||
LESS = "-R";
|
||||
};
|
||||
|
||||
lessopen = "|${pkgs.lesspipe}/bin/lesspipe.sh %s";
|
||||
};
|
||||
|
||||
programs.lesspipe.enable = true;
|
||||
};
|
||||
}
|
|
@ -9,14 +9,8 @@ in {
|
|||
options.marleyos.programs.neovim.enable = lib.mkEnableOption "neovim";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
nvim
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
];
|
||||
|
||||
home.sessionVariables = rec {
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "${EDITOR}";
|
||||
SUDO_EDITOR = "${EDITOR}";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,15 +1,16 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.nix-output-monitor;
|
||||
in {
|
||||
options.marleyos.programs.nix-output-monitor.enable = lib.mkEnableOption "nix-output-monitor";
|
||||
options.marleyos.programs.nix-output-monitor.enable =
|
||||
lib.mkEnableOption "nix-output-monitor";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
environment.systemPackages = with pkgs; [
|
||||
nix-output-monitor
|
||||
];
|
||||
};
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.ripgrep;
|
||||
|
@ -8,6 +9,8 @@ in {
|
|||
options.marleyos.programs.ripgrep.enable = lib.mkEnableOption "ripgrep";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.ripgrep.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
ripgrep
|
||||
];
|
||||
};
|
||||
}
|
16
modules/base/programs/wget.nix
Normal file
16
modules/base/programs/wget.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.wget;
|
||||
in {
|
||||
options.marleyos.programs.wget.enable = lib.mkEnableOption "wget";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
wget
|
||||
];
|
||||
};
|
||||
}
|
5
modules/base/services/default.nix
Normal file
5
modules/base/services/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./openssh.nix
|
||||
];
|
||||
}
|
|
@ -10,6 +10,7 @@ in {
|
|||
config = lib.mkIf cfg.enable {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
PermitRootLogin = "prohibit-password";
|
||||
};
|
25
modules/base/stylix/default.nix
Normal file
25
modules/base/stylix/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{pkgs, ...}: {
|
||||
config = {
|
||||
nixpkgs.overlays = [(import ../../../overlays/maple-mono-NF.nix)];
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml";
|
||||
override = {slug = "rose-pine";};
|
||||
|
||||
image = ./wallpaper.png;
|
||||
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.maple-mono-NF;
|
||||
name = "Maple Mono";
|
||||
};
|
||||
|
||||
sizes = {
|
||||
terminal = 11;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 4.7 MiB After Width: | Height: | Size: 4.7 MiB |
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.appearance.base;
|
||||
in {
|
||||
options.marleyos.appearance.base.enable = lib.mkEnableOption "base";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
fonts.packages = with pkgs; [
|
||||
maple-mono-NF
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
config.nix = {
|
||||
package = pkgs.lix;
|
||||
};
|
||||
}
|
15
modules/darwin/default.nix
Normal file
15
modules/darwin/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{inputs, ...}: {
|
||||
imports = [
|
||||
inputs.agenix.darwinModules.default
|
||||
|
||||
../base
|
||||
|
||||
./home.nix
|
||||
./stylix.nix
|
||||
|
||||
./system
|
||||
./programs
|
||||
|
||||
./profiles.nix
|
||||
];
|
||||
}
|
15
modules/darwin/home.nix
Normal file
15
modules/darwin/home.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.marleycfg.my) name;
|
||||
in {
|
||||
imports = [inputs.home-manager.darwinModules.home-manager];
|
||||
|
||||
config = {
|
||||
home-manager.users."${name}" = {
|
||||
home.homeDirectory = "/Users/${name}";
|
||||
};
|
||||
};
|
||||
}
|
16
modules/darwin/profiles.nix
Normal file
16
modules/darwin/profiles.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{marleylib, ...}: let
|
||||
inherit (marleylib.module) enabled;
|
||||
in {
|
||||
marleyos = {
|
||||
programs = {
|
||||
fish = enabled;
|
||||
floorp = enabled;
|
||||
nh = enabled;
|
||||
phpstorm = enabled;
|
||||
pidgin = enabled;
|
||||
thunderbird = enabled;
|
||||
wezterm = enabled;
|
||||
wireguard = enabled;
|
||||
};
|
||||
};
|
||||
}
|
12
modules/darwin/programs/default.nix
Normal file
12
modules/darwin/programs/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
imports = [
|
||||
./fish.nix
|
||||
./floorp.nix
|
||||
./nh.nix
|
||||
./phpstorm.nix
|
||||
./pidgin.nix
|
||||
./thunderbird.nix
|
||||
./wezterm.nix
|
||||
./wireguard.nix
|
||||
];
|
||||
}
|
11
modules/darwin/programs/fish.nix
Normal file
11
modules/darwin/programs/fish.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.fish;
|
||||
in {
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.shells = [config.programs.fish.package];
|
||||
};
|
||||
}
|
13
modules/darwin/programs/floorp.nix
Normal file
13
modules/darwin/programs/floorp.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.floorp;
|
||||
in {
|
||||
options.marleyos.programs.floorp.enable = lib.mkEnableOption "floorp";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
homebrew.casks = ["floorp"];
|
||||
};
|
||||
}
|
|
@ -1,11 +1,10 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.nh;
|
||||
home = config.home.homeDirectory;
|
||||
in {
|
||||
options.marleyos.programs.nh.enable = lib.mkEnableOption "nh";
|
||||
|
||||
|
@ -13,11 +12,5 @@ in {
|
|||
home.packages = with pkgs; [
|
||||
nh
|
||||
];
|
||||
|
||||
home.sessionVariables.FLAKE = lib.mkDefault "${home}/marleyos";
|
||||
|
||||
home.shellAbbrs = {
|
||||
nhs = "nh search";
|
||||
};
|
||||
};
|
||||
}
|
13
modules/darwin/programs/phpstorm.nix
Normal file
13
modules/darwin/programs/phpstorm.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.phpstorm;
|
||||
in {
|
||||
options.marleyos.programs.phpstorm.enable = lib.mkEnableOption "phpstorm";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
homebrew.casks = ["phpstorm"];
|
||||
};
|
||||
}
|
13
modules/darwin/programs/pidgin.nix
Normal file
13
modules/darwin/programs/pidgin.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.pidgin;
|
||||
in {
|
||||
options.marleyos.programs.pidgin.enable = lib.mkEnableOption "pidgin";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
homebrew.casks = ["pidgin"];
|
||||
};
|
||||
}
|
13
modules/darwin/programs/thunderbird.nix
Normal file
13
modules/darwin/programs/thunderbird.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.thunderbird;
|
||||
in {
|
||||
options.marleyos.programs.thunderbird.enable = lib.mkEnableOption "thunderbird";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
homebrew.casks = ["thunderbird"];
|
||||
};
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.wezterm;
|
15
modules/darwin/programs/wireguard.nix
Normal file
15
modules/darwin/programs/wireguard.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.wireguard;
|
||||
in {
|
||||
options.marleyos.programs.wireguard.enable = lib.mkEnableOption "wireguard";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
homebrew.masApps = {
|
||||
"WireGuard" = 1451685025;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
|
||||
cfg = config.marleyos.programs.wireguard;
|
||||
in
|
||||
{
|
||||
options.marleyos.programs.wireguard.enable = mkEnableOption "wireguard";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
homebrew.masApps = {
|
||||
"WireGuard" = 1451685025;
|
||||
};
|
||||
};
|
||||
}
|
5
modules/darwin/services/default.nix
Normal file
5
modules/darwin/services/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
imports = [
|
||||
./openssh.nix
|
||||
];
|
||||
}
|
13
modules/darwin/services/openssh.nix
Normal file
13
modules/darwin/services/openssh.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.services.openssh;
|
||||
in {
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.openssh.extraConfig = ''
|
||||
PermitRootLogin prohibit-password
|
||||
'';
|
||||
};
|
||||
}
|
3
modules/darwin/stylix.nix
Normal file
3
modules/darwin/stylix.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{inputs, ...}: {
|
||||
imports = [inputs.stylix.darwinModules.stylix];
|
||||
}
|
6
modules/darwin/system/default.nix
Normal file
6
modules/darwin/system/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./homebrew.nix
|
||||
./nix.nix
|
||||
];
|
||||
}
|
11
modules/darwin/system/nix.nix
Normal file
11
modules/darwin/system/nix.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
config = {
|
||||
nix = {
|
||||
settings = {
|
||||
trusted-users = [
|
||||
"@darwin"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
system,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.snowfall.system) is-darwin;
|
||||
|
||||
cfg = config.marleyos.appearance.base;
|
||||
inherit (config.marleyos) isDesktop;
|
||||
in {
|
||||
options.marleyos.appearance.base.enable = lib.mkEnableOption "base";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
marleyos = {
|
||||
apps = {
|
||||
pinentry =
|
||||
if isDesktop
|
||||
then pkgs.pinentry-gtk2
|
||||
else pkgs.pinentry-curses;
|
||||
};
|
||||
};
|
||||
|
||||
stylix = {
|
||||
iconTheme = {
|
||||
package = pkgs.kora-icon-theme;
|
||||
dark = "kora";
|
||||
light = "kora-light-panel";
|
||||
};
|
||||
|
||||
fonts.sizes.terminal = lib.mkIf (is-darwin system) 14;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
kora-icon-theme
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.appearance.qt;
|
||||
in {
|
||||
options.marleyos.appearance.qt.enable = lib.mkEnableOption "qt";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
qt = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.snowfall.system) is-linux;
|
||||
in {
|
||||
# Anything in this folder should not include an enable/disable option. This is
|
||||
# the only folder that is always applied.
|
||||
config = {
|
||||
marleyos.my = {
|
||||
name = "marley";
|
||||
username = "punkfairie";
|
||||
fullName = "Marley Rae";
|
||||
email = "marley@punkfairie.net";
|
||||
};
|
||||
|
||||
home.language.base = "en_US.UTF-8";
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# Autostart wanted systemd services.
|
||||
systemd.user.startServices = lib.mkIf (is-linux system) true;
|
||||
};
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{config, ...}: {
|
||||
config.home = {
|
||||
sessionPath = [
|
||||
"${config.home.homeDirectory}/.local/bin"
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
HACK = "${config.home.homeDirectory}/hackin";
|
||||
};
|
||||
|
||||
shellAbbrs = {
|
||||
c = "clear";
|
||||
e = "${config.home.sessionVariables.EDITOR}";
|
||||
v = "${config.home.sessionVariables.EDITOR}";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.bundles.desktop;
|
||||
|
||||
inherit (lib.marleyos) enabled;
|
||||
in {
|
||||
options.marleyos.bundles.desktop.enable = lib.mkEnableOption "desktop";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
marleyos = {
|
||||
isDesktop = true;
|
||||
|
||||
appearance = {
|
||||
base = enabled;
|
||||
gtk = enabled;
|
||||
qt = enabled;
|
||||
};
|
||||
|
||||
programs = {
|
||||
cli = enabled;
|
||||
tui = enabled;
|
||||
gui = enabled;
|
||||
};
|
||||
|
||||
services = {
|
||||
# syncthing = enabled;
|
||||
udiskie = enabled;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.bundles.mac;
|
||||
|
||||
inherit (lib.marleyos) enabled disabled;
|
||||
in {
|
||||
options.marleyos.bundles.mac.enable = lib.mkEnableOption "mac";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
marleyos = {
|
||||
isDesktop = true;
|
||||
|
||||
programs = {
|
||||
cli = enabled;
|
||||
journalctl = disabled;
|
||||
systemctl = disabled;
|
||||
|
||||
tui = enabled;
|
||||
cava = disabled;
|
||||
ncmpcpp = disabled;
|
||||
|
||||
wezterm = enabled;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.bundles.server;
|
||||
|
||||
inherit (lib.marleyos) enabled disabled;
|
||||
in {
|
||||
options.marleyos.bundles.server.enable = lib.mkEnableOption "server";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
marleyos = {
|
||||
isServer = true;
|
||||
|
||||
programs = {
|
||||
cli = enabled;
|
||||
tui = enabled;
|
||||
|
||||
neo = lib.mkForce disabled;
|
||||
rbw = lib.mkForce disabled;
|
||||
amfora = lib.mkForce disabled;
|
||||
cava = lib.mkForce disabled;
|
||||
ncmpcpp = lib.mkForce disabled;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
17
modules/home/default.nix
Normal file
17
modules/home/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
imports = [
|
||||
../options
|
||||
./option-inheritance.nix
|
||||
./options
|
||||
|
||||
./home-manager.nix
|
||||
./nix.nix
|
||||
|
||||
./system
|
||||
./shell
|
||||
./programs
|
||||
./services
|
||||
|
||||
./profiles.nix
|
||||
];
|
||||
}
|
10
modules/home/home-manager.nix
Normal file
10
modules/home/home-manager.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
config = {
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.language.base = "en_US.UTF-8";
|
||||
|
||||
# Autostart wanted systemd services on Linux.
|
||||
systemd.user.startServices = true;
|
||||
};
|
||||
}
|
3
modules/home/nix.nix
Normal file
3
modules/home/nix.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{inputs, ...}: {
|
||||
config.nixpkgs = import ../base/nixpkgs.nix {inherit inputs;};
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.nixGL;
|
||||
in {
|
||||
options.marleyos.nixGL.enable = lib.mkEnableOption "nixGL";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
nixGL = {
|
||||
inherit (inputs.nixgl) packages;
|
||||
defaultWrapper = "nvidia";
|
||||
};
|
||||
};
|
||||
}
|
9
modules/home/option-inheritance.nix
Normal file
9
modules/home/option-inheritance.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{osConfig, ...}: let
|
||||
cfg = osConfig.marleycfg;
|
||||
in {
|
||||
config = {
|
||||
marleycfg = {
|
||||
inherit (cfg) my profiles;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -2,14 +2,9 @@
|
|||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.snowfall.system) is-linux;
|
||||
|
||||
cfg = config.marleyos.apps;
|
||||
in {
|
||||
options.marleyos.apps = {
|
||||
}: {
|
||||
options.marleycfg.apps = {
|
||||
pinentry = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.pinentry-gtk2;
|
||||
|
@ -46,7 +41,7 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
default = default;
|
||||
inherit default;
|
||||
};
|
||||
|
||||
terminal = lib.mkOption {
|
||||
|
@ -77,15 +72,10 @@ in {
|
|||
options = {
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default =
|
||||
if config.marleyos.wayland.hyprland.enable
|
||||
then config.programs.wofi.package
|
||||
else config.programs.rofi.package;
|
||||
description = "The launcher to use.";
|
||||
};
|
||||
command = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "--show drun";
|
||||
description = ''
|
||||
The command appended after the launcher binary to run it.
|
||||
'';
|
||||
|
@ -95,18 +85,10 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf (is-linux system) {
|
||||
home.packages = [
|
||||
cfg.pinentry
|
||||
cfg.clipboard.package
|
||||
];
|
||||
|
||||
programs.rbw = lib.mkDefault {
|
||||
settings.pinentry = cfg.pinentry;
|
||||
};
|
||||
|
||||
services.gpg-agent = lib.mkDefault {
|
||||
pinentryPackage = cfg.pinentry;
|
||||
};
|
||||
};
|
||||
# config = lib.mkIf pkgs.stdenv.isLinux {
|
||||
# # TODO: move these to respective modules
|
||||
# programs.rbw = lib.mkDefault {
|
||||
# settings.pinentry = cfg.pinentry;
|
||||
# };
|
||||
# };
|
||||
}
|
6
modules/home/options/default.nix
Normal file
6
modules/home/options/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./apps.nix
|
||||
./shellAbbrs.nix
|
||||
];
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{lib, ...}: {
|
||||
options.marleyos.isDesktop = lib.mkOption {
|
||||
type = with lib.types; bool;
|
||||
default = false;
|
||||
description = "Whether this machine is used as a graphical desktop.";
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{lib, ...}: {
|
||||
options.marleyos.isServer = lib.mkOption {
|
||||
type = with lib.types; bool;
|
||||
default = false;
|
||||
description = "Whether this machine is a server.";
|
||||
};
|
||||
}
|
83
modules/home/profiles.nix
Normal file
83
modules/home/profiles.nix
Normal file
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
config,
|
||||
marleylib,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleycfg.profiles;
|
||||
|
||||
inherit (marleylib.module) enabled;
|
||||
in {
|
||||
marleyos = lib.mkMerge [
|
||||
# Universal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
{
|
||||
programs = {
|
||||
agenix = enabled;
|
||||
bat = enabled;
|
||||
btop = enabled;
|
||||
curl = enabled;
|
||||
eza = enabled;
|
||||
figlet = enabled;
|
||||
fish = enabled;
|
||||
git = enabled;
|
||||
gpg = enabled;
|
||||
httpie = enabled;
|
||||
hyfetch = enabled;
|
||||
journalctl = enabled;
|
||||
jq = enabled;
|
||||
just = enabled;
|
||||
lazydocker = enabled;
|
||||
lazygit = enabled;
|
||||
less = enabled;
|
||||
man = enabled;
|
||||
nh = enabled;
|
||||
ripgrep = enabled;
|
||||
ssh = enabled;
|
||||
starship = enabled;
|
||||
systemctl = enabled;
|
||||
tmux = enabled;
|
||||
wget = enabled;
|
||||
zoxide = enabled;
|
||||
};
|
||||
}
|
||||
#
|
||||
#
|
||||
# Graphical Desktop - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
(lib.optionalAttrs cfg.desktop {
|
||||
shell.niri = enabled;
|
||||
|
||||
programs = {
|
||||
amfora = enabled;
|
||||
cava = enabled;
|
||||
CEmu = enabled;
|
||||
cheat = enabled;
|
||||
discord = enabled;
|
||||
floorp = enabled;
|
||||
fzf = enabled;
|
||||
gh = enabled;
|
||||
glow = enabled;
|
||||
jqp = enabled;
|
||||
ncmpcpp = enabled;
|
||||
nemo = enabled;
|
||||
neo = enabled;
|
||||
neovim = enabled;
|
||||
phpstorm = enabled;
|
||||
pidgin = enabled;
|
||||
superfile = enabled;
|
||||
tea = enabled;
|
||||
thunderbird = enabled;
|
||||
vlc = enabled;
|
||||
wezterm = enabled;
|
||||
zathura = enabled;
|
||||
};
|
||||
|
||||
services = {
|
||||
udiskie = enabled;
|
||||
};
|
||||
})
|
||||
#
|
||||
#
|
||||
# Server - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
(lib.optionalAttrs cfg.server {})
|
||||
];
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
|
@ -8,7 +8,7 @@
|
|||
in {
|
||||
options.marleyos.programs.CEmu.enable = lib.mkEnableOption "CEmu";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
config = lib.mkIf (cfg.enable && pkgs.stdenv.isLinux) {
|
||||
home.packages = with pkgs; [
|
||||
# cemu-ti
|
||||
marleyos.CEmu-TI-84-Plus-CE
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs',
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.agenix;
|
||||
|
@ -9,8 +9,9 @@ in {
|
|||
options.marleyos.programs.agenix.enable = lib.mkEnableOption "agenix";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
agenix
|
||||
home.packages = [
|
||||
# The overlay doesn't work for some reason...
|
||||
inputs'.agenix.packages.default
|
||||
];
|
||||
};
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.amfora;
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
# pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.bat;
|
||||
|
@ -12,21 +11,11 @@ in {
|
|||
programs.bat = {
|
||||
enable = true;
|
||||
|
||||
# FIX: Currently broken. Re-enable when not broken.
|
||||
# extraPackages = with pkgs.bat-extras; [
|
||||
# batdiff
|
||||
# batman
|
||||
# ];
|
||||
|
||||
config = {
|
||||
style = "auto";
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = lib.mkIf config.programs.git.delta.enable {
|
||||
# BATDIFF_USE_DELTA = "true";
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
functions = {
|
||||
cat = {
|
25
modules/home/programs/btop.nix
Normal file
25
modules/home/programs/btop.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
marleylib,
|
||||
lib,
|
||||
config,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (marleylib.module) mkEnableOption';
|
||||
|
||||
cfg = config.marleyos.programs.btop;
|
||||
osCfg = osConfig.marleyos.programs.btop;
|
||||
in {
|
||||
options.marleyos.programs.btop.enable = mkEnableOption' "btop" osCfg.enable;
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
truecolor = true;
|
||||
vim_keys = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
|
@ -1,22 +1,21 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
osConfig,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.cava;
|
||||
has-mpd = osConfig.services.mpd.enable || config.services.mpd.enable;
|
||||
in {
|
||||
options.marleyos.programs.cava.enable = lib.mkEnableOption "cava";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
config = lib.mkIf (cfg.enable && pkgs.stdenv.isLinux) {
|
||||
programs.cava = {
|
||||
# FIX: Re-enable once https://github.com/NixOS/nixpkgs/pull/355948 is
|
||||
# ported to nixpkgs/unstable
|
||||
enable = false;
|
||||
enable = true;
|
||||
|
||||
# TODO: disable this when mpd is not enabled? Can that be detected on non
|
||||
# NixOS systems?
|
||||
settings = {
|
||||
input = {
|
||||
input = lib.mkIf has-mpd {
|
||||
method = "fifo";
|
||||
source = "/tmp/mpd.fifo";
|
||||
};
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.cheat;
|
|
@ -1,47 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.cli;
|
||||
|
||||
inherit (lib.marleyos) enabled;
|
||||
in {
|
||||
options.marleyos.programs.cli.enable = lib.mkEnableOption "cli";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
marleyos.programs = {
|
||||
agenix = enabled;
|
||||
bat = enabled;
|
||||
# cheat = enabled;
|
||||
curl = enabled;
|
||||
eza = enabled;
|
||||
figlet = enabled;
|
||||
fish = enabled;
|
||||
fzf = enabled;
|
||||
gh = enabled;
|
||||
git = enabled;
|
||||
glow = enabled;
|
||||
gpg = enabled;
|
||||
httpie = enabled;
|
||||
hyfetch = enabled;
|
||||
journalctl = enabled;
|
||||
jq = enabled;
|
||||
just = enabled;
|
||||
less = enabled;
|
||||
man = enabled;
|
||||
neo = enabled;
|
||||
nh = enabled;
|
||||
nix-output-monitor = enabled;
|
||||
rbw = enabled;
|
||||
ripgrep = enabled;
|
||||
ssh = enabled;
|
||||
starship = enabled;
|
||||
systemctl = enabled;
|
||||
tea = enabled;
|
||||
tmux = enabled;
|
||||
wget = enabled;
|
||||
zoxide = enabled;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.journalctl;
|
||||
in {
|
||||
options.marleyos.programs.journalctl.enable = lib.mkEnableOption "journalctl";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.shellAbbrs = {
|
||||
jctlf = "sudo journalctl --follow --unit";
|
||||
jctle = "sudo journalctl --pager-end --unit";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.rbw;
|
||||
in {
|
||||
options.marleyos.programs.rbw.enable = lib.mkEnableOption "rbw";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
|
||||
settings.email = "bitwarden@punkfairie.net";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,208 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkDefault;
|
||||
|
||||
cfg = config.marleyos.programs.starship;
|
||||
in {
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.starship.settings = with config.lib.stylix.colors.withHashtag; let
|
||||
mkFormat = t: " [](fg:${base02})[${t}]($style)[](fg:${base02}) ";
|
||||
langFormat = mkFormat "$symbol$version";
|
||||
in {
|
||||
format = mkDefault (lib.concatStrings [
|
||||
"$username"
|
||||
"$hostname"
|
||||
"$directory"
|
||||
"$nix_shell"
|
||||
"$git_branch"
|
||||
"$git_status"
|
||||
"$fill"
|
||||
"$c"
|
||||
"$elixir"
|
||||
"$elm"
|
||||
"$golang"
|
||||
"$haskell"
|
||||
"$java"
|
||||
"$julia"
|
||||
"$nodejs"
|
||||
"$nim"
|
||||
"$rust"
|
||||
"$scala"
|
||||
"$python"
|
||||
"$time"
|
||||
"$line_break"
|
||||
"$character"
|
||||
]);
|
||||
|
||||
username = {
|
||||
disabled = mkDefault false;
|
||||
format = mkDefault " [](fg:${base02})[ $user@]($style)";
|
||||
show_always = mkDefault true;
|
||||
style_root = mkDefault "bg:${base02} fg:${base0D}";
|
||||
style_user = mkDefault "bg:${base02} fg:${base0D}";
|
||||
};
|
||||
|
||||
hostname = {
|
||||
ssh_only = mkDefault false;
|
||||
format = mkDefault "[$hostname ]($style)[](fg:${base02}) ";
|
||||
style = mkDefault "bg:${base02} fg:${base0D}";
|
||||
};
|
||||
|
||||
directory = {
|
||||
format = mkDefault (mkFormat " $path ");
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
truncation_length = mkDefault 3;
|
||||
truncation_symbol = mkDefault "…/";
|
||||
|
||||
substitutions = {
|
||||
Documents = mkDefault "";
|
||||
Downloads = mkDefault " ";
|
||||
Music = mkDefault " ";
|
||||
Pictures = mkDefault " ";
|
||||
};
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
format = mkDefault (mkFormat " $symbol $branch ");
|
||||
style = mkDefault "bg:${base02} fg:${base0C}";
|
||||
symbol = mkDefault "";
|
||||
};
|
||||
|
||||
git_status = {
|
||||
disabled = mkDefault false;
|
||||
style = mkDefault "bg:${base02} fg:${base08}";
|
||||
format = mkDefault (mkFormat "$all_status$ahead_behind");
|
||||
up_to_date = mkDefault "[ ✓ ](bg:${base02} fg:${base0D})";
|
||||
untracked = mkDefault "[?\\($count\\)](bg:${base02} fg:${base09})";
|
||||
stashed = mkDefault "[\\$](bg:${base02} fg:${base0D})";
|
||||
modified = mkDefault "[!\\($count\\)](bg:${base02} fg:${base09})";
|
||||
renamed = mkDefault "[»\\($count\\)](bg:${base02} fg:${base0D})";
|
||||
deleted = mkDefault "[✘\\($count\\)](style)";
|
||||
staged = mkDefault "[++\\($count\\)](bg:${base02} fg:${base09})";
|
||||
ahead = mkDefault "[⇡\\(\${count}\\)](bg:${base02} fg:${base0C})";
|
||||
diverged = mkDefault "⇕[\\[](bg:${base02} fg:${base0D})[⇡\\(\${ahead_count}\\)](bg:${base02} fg:${base0C})[⇣\\(\${behind_count}\\)](bg:${base02} fg:${base0A})[\\]](bg:${base02} fg:${base0D})";
|
||||
behind = mkDefault "[⇣\\(\${count}\\)](bg:${base02} fg:${base0A})";
|
||||
};
|
||||
|
||||
fill = {
|
||||
style = mkDefault "fg:${base02}";
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
time = {
|
||||
disabled = mkDefault false;
|
||||
format = mkDefault (mkFormat " $time ");
|
||||
style = mkDefault "bg:${base02} fg:${base0A}";
|
||||
time_format = mkDefault "%I:%M%P";
|
||||
use_12hr = mkDefault true;
|
||||
};
|
||||
|
||||
character = let
|
||||
vim = "";
|
||||
mkChar = sym: col: " [${sym}](fg:${col}) [](fg:${base0C})";
|
||||
in {
|
||||
success_symbol = mkChar "" "${base0D}";
|
||||
error_symbol = mkChar "" "${base08}";
|
||||
vimcmd_symbol = mkChar vim "${base0A}";
|
||||
vimcmd_replace_one_symbol = mkChar vim "${base0C}";
|
||||
vimcmd_replace_symbol = mkChar vim "${base0C}";
|
||||
vimcmd_visual_symbol = mkChar vim "${base0D}";
|
||||
};
|
||||
|
||||
### Languages ###
|
||||
c = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
elixir = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
elm = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
haskell = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
java = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
julia = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
nodejs = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
nim = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
python = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
|
||||
rust = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault "";
|
||||
};
|
||||
|
||||
scala = {
|
||||
style = "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault langFormat;
|
||||
disabled = false;
|
||||
symbol = " ";
|
||||
};
|
||||
|
||||
### Tools ###
|
||||
conda = {
|
||||
style = mkDefault "bg:${base02} fg:${base0B}";
|
||||
format = mkDefault (mkFormat "$symbol$environment");
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault "🅒 ";
|
||||
};
|
||||
|
||||
nix_shell = {
|
||||
style = "bg:${base02} fg:${base0C}";
|
||||
format = mkDefault (mkFormat " $symbol $state( \($name\)) ");
|
||||
disabled = mkDefault false;
|
||||
symbol = mkDefault " ";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.systemctl;
|
||||
in {
|
||||
options.marleyos.programs.systemctl.enable = lib.mkEnableOption "systemctl";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.shellAbbrs = {
|
||||
sctl = "sudo systemctl";
|
||||
sctls = "sudo systemctl status";
|
||||
sctle = "sudo systemctl enable --now";
|
||||
sctld = "sudo systemctl disable --now";
|
||||
sctlr = "sudo systemctl restart";
|
||||
sctla = "sudo systemctl start";
|
||||
sctlo = "sudo systemctl stop";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
|
||||
cfg = config.marleyos.programs.tea;
|
||||
in
|
||||
{
|
||||
options.marleyos.programs.tea.enable = mkEnableOption "tea";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
tea
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,12 +1,17 @@
|
|||
{
|
||||
lib,
|
||||
marleylib,
|
||||
config,
|
||||
osConfig,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (marleylib.module) mkEnableOption';
|
||||
|
||||
cfg = config.marleyos.programs.curl;
|
||||
osCfg = osConfig.marleyos.programs.curl;
|
||||
in {
|
||||
options.marleyos.programs.curl.enable = lib.mkEnableOption "curl";
|
||||
options.marleyos.programs.curl.enable = mkEnableOption' "curl" osCfg.enable;
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
60
modules/home/programs/default.nix
Normal file
60
modules/home/programs/default.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
imports = [
|
||||
./agenix.nix
|
||||
./amfora
|
||||
./bat.nix
|
||||
./btop.nix
|
||||
./calibre.nix
|
||||
./cava.nix
|
||||
./CEmu.nix
|
||||
./cheat.nix
|
||||
./curl.nix
|
||||
./discord.nix
|
||||
./eza.nix
|
||||
./figlet.nix
|
||||
./fish.nix
|
||||
./floorp.nix
|
||||
./fuzzel.nix
|
||||
./fzf.nix
|
||||
./gh.nix
|
||||
./git
|
||||
./glow.nix
|
||||
./gpg.nix
|
||||
./httpie.nix
|
||||
./hyfetch
|
||||
./journalctl.nix
|
||||
./jq.nix
|
||||
./jqp.nix
|
||||
./just.nix
|
||||
./lazydocker.nix
|
||||
./lazygit.nix
|
||||
./less.nix
|
||||
./man.nix
|
||||
./ncmpcpp.nix
|
||||
./nemo.nix
|
||||
./neo.nix
|
||||
./neovim.nix
|
||||
./nh.nix
|
||||
./phpstorm
|
||||
./pidgin
|
||||
./ripgrep.nix
|
||||
./ssh.nix
|
||||
./starship
|
||||
./superfile.nix
|
||||
./systemctl.nix
|
||||
./tea.nix
|
||||
./thunderbird.nix
|
||||
./tmux.nix
|
||||
./vlc.nix
|
||||
./waybar.nix
|
||||
./wezterm.nix
|
||||
./wget.nix
|
||||
./zathura.nix
|
||||
./zoxide.nix
|
||||
|
||||
# TODO: uncomment when swaylock is figured out
|
||||
# ./wlogout
|
||||
|
||||
./xwayland-satellite.nix
|
||||
];
|
||||
}
|
|
@ -1,14 +1,20 @@
|
|||
{
|
||||
lib,
|
||||
marleylib,
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.marleyos) enabled disabled;
|
||||
inherit (marleylib.module) enabled disabled;
|
||||
|
||||
cfg = config.marleyos.programs.discord;
|
||||
in {
|
||||
options.marleyos.programs.discord.enable = lib.mkEnableOption "discord";
|
||||
|
||||
imports = [
|
||||
inputs.nixcord.homeModules.nixcord
|
||||
];
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.nixcord = {
|
||||
enable = true;
|
||||
|
@ -117,7 +123,7 @@ in {
|
|||
theme = themes."${scheme}" or defaultTheme;
|
||||
in {
|
||||
enable = true;
|
||||
theme = theme;
|
||||
inherit theme;
|
||||
useDevIcon = "COLOR";
|
||||
};
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.marleyos.programs.eza;
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue