feat(darwin): Big messy darwin bootstrap
I thought about splitting this into smaller commits but fuck it
This commit is contained in:
parent
ea190b1a63
commit
cc51153ece
15 changed files with 352 additions and 27 deletions
15
Justfile
15
Justfile
|
@ -1,22 +1,33 @@
|
||||||
default:
|
default:
|
||||||
@just --list
|
@just --list
|
||||||
|
|
||||||
|
defhost := `hostname`
|
||||||
|
defuser := env_var('USER')
|
||||||
|
|
||||||
alias dh := deployhome
|
alias dh := deployhome
|
||||||
[group('home')]
|
[group('home')]
|
||||||
deployhome user=env_var('USER'):
|
deployhome user=defuser host=defhost:
|
||||||
nh home switch -c marley@nyx -b bak
|
nh home switch -c {{user}}@{{host}} -b bak .
|
||||||
|
|
||||||
[group('home')]
|
[group('home')]
|
||||||
refreshhome:
|
refreshhome:
|
||||||
home-manager switch --refresh -b bak --flake .
|
home-manager switch --refresh -b bak --flake .
|
||||||
|
|
||||||
|
alias dd := deploydarwin
|
||||||
|
[group('darwin')]
|
||||||
|
deploydarwin host=defhost:
|
||||||
|
darwin-rebuild switch --flake .#{{host}}
|
||||||
|
|
||||||
alias up := update
|
alias up := update
|
||||||
|
[group('update')]
|
||||||
update:
|
update:
|
||||||
nix flake update
|
nix flake update
|
||||||
|
|
||||||
|
[group('update')]
|
||||||
updatejust this:
|
updatejust this:
|
||||||
nix flake update {{this}}
|
nix flake update {{this}}
|
||||||
|
|
||||||
alias gc := collectgarbage
|
alias gc := collectgarbage
|
||||||
|
[group('maintainence')]
|
||||||
collectgarbage:
|
collectgarbage:
|
||||||
nh clean all
|
nh clean all
|
||||||
|
|
131
flake.lock
131
flake.lock
|
@ -28,6 +28,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732016537,
|
||||||
|
"narHash": "sha256-XwXUK+meYnlhdQz2TVE4Wv+tsx1CkdGbDPt1tRzCNH4=",
|
||||||
|
"owner": "LnL7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "61cee20168a3ebb71a9efd70a55adebaadfbe4d4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "LnL7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"devenv": {
|
"devenv": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"cachix": "cachix",
|
"cachix": "cachix",
|
||||||
|
@ -37,11 +57,11 @@
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731501663,
|
"lastModified": 1732121232,
|
||||||
"narHash": "sha256-+yXfV7WLU9PAMRcggwWGxar97MZw1pcg9EDQ0YARDPA=",
|
"narHash": "sha256-CmJt7aeSCJnJYGtYpyslRI+pC28RPVD43PD/7kkIVuM=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "devenv",
|
"repo": "devenv",
|
||||||
"rev": "b48b0d8018e0dc8c14d9dca47cd6e55add94a603",
|
"rev": "6ff1e5f92c0d74bbb12f7454a239ca2f02e05ea1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -109,11 +129,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1694529238,
|
"lastModified": 1726560853,
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -124,7 +144,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils-plus": {
|
"flake-utils-plus": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils"
|
"flake-utils": "flake-utils_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715533576,
|
"lastModified": 1715533576,
|
||||||
|
@ -141,6 +161,39 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694529238,
|
||||||
|
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flakey-profile": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712898590,
|
||||||
|
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
|
||||||
|
"owner": "lf-",
|
||||||
|
"repo": "flakey-profile",
|
||||||
|
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lf-",
|
||||||
|
"repo": "flakey-profile",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"git-hooks": {
|
"git-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": [
|
"flake-compat": [
|
||||||
|
@ -198,11 +251,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730837930,
|
"lastModified": 1732025103,
|
||||||
"narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=",
|
"narHash": "sha256-qjEI64RKvDxRyEarY0jTzrZMa8ebezh2DEZmJJrpVdo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2f607e07f3ac7e53541120536708e824acccfaa8",
|
"rev": "a46e702093a5c46e192243edbd977d5749e7f294",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -227,6 +280,41 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"lix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"flakey-profile": "flakey-profile",
|
||||||
|
"lix": "lix_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729360442,
|
||||||
|
"narHash": "sha256-6U0CyPycIBc04hbYy2hBINnVso58n/ZyywY2BD3hu+s=",
|
||||||
|
"rev": "9098ac95768f7006d7e070b88bae76939f6034e6",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/9098ac95768f7006d7e070b88bae76939f6034e6.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lix_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729298361,
|
||||||
|
"narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
|
||||||
|
"rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix": {
|
"nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": [
|
"flake-compat": [
|
||||||
|
@ -310,11 +398,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730785428,
|
"lastModified": 1732014248,
|
||||||
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
"narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
|
"rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -342,8 +430,10 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
"devenv": "devenv",
|
"devenv": "devenv",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"lix": "lix",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"rofi-themes": "rofi-themes",
|
"rofi-themes": "rofi-themes",
|
||||||
"rose-pine": "rose-pine",
|
"rose-pine": "rose-pine",
|
||||||
|
@ -435,6 +525,21 @@
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
22
flake.nix
22
flake.nix
|
@ -12,6 +12,18 @@
|
||||||
title = "marleyOS";
|
title = "marleyOS";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
channels-config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
overlays = with inputs; [
|
||||||
|
lix.overlays.default
|
||||||
|
];
|
||||||
|
|
||||||
|
systems.modules.darwin = with inputs; [
|
||||||
|
lix.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
homes.modules = with inputs; [
|
homes.modules = with inputs; [
|
||||||
rose-pine.homeManagerModules.rose-pine
|
rose-pine.homeManagerModules.rose-pine
|
||||||
];
|
];
|
||||||
|
@ -28,11 +40,21 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
lix = {
|
||||||
|
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
snowfall-lib = {
|
snowfall-lib = {
|
||||||
url = "github:snowfallorg/lib";
|
url = "github:snowfallorg/lib";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
darwin = {
|
||||||
|
url = "github:LnL7/nix-darwin";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
45
homes/aarch64-darwin/marley@mairley/default.nix
Normal file
45
homes/aarch64-darwin/marley@mairley/default.nix
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib.marleyos) enabled;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
marleyos = {
|
||||||
|
isDesktop = true;
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
amfora = enabled;
|
||||||
|
bat = enabled;
|
||||||
|
btop = enabled;
|
||||||
|
cheat = enabled;
|
||||||
|
curl = enabled;
|
||||||
|
eza = enabled;
|
||||||
|
figlet = enabled;
|
||||||
|
fish = enabled;
|
||||||
|
fzf = enabled;
|
||||||
|
gh = enabled;
|
||||||
|
git = enabled;
|
||||||
|
glow = enabled;
|
||||||
|
gpg = enabled;
|
||||||
|
hyfetch = enabled;
|
||||||
|
just = enabled;
|
||||||
|
lazygit = enabled;
|
||||||
|
less = enabled;
|
||||||
|
man = enabled;
|
||||||
|
neo = enabled;
|
||||||
|
nh = enabled;
|
||||||
|
rbw = enabled;
|
||||||
|
ripgrep = enabled;
|
||||||
|
ssh = enabled;
|
||||||
|
starship = enabled;
|
||||||
|
tmux = enabled;
|
||||||
|
wezterm = enabled;
|
||||||
|
wget = enabled;
|
||||||
|
zoxide = enabled;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.stateVersion = "24.05";
|
||||||
|
}
|
20
modules/darwin/appearance/base/default.nix
Normal file
20
modules/darwin/appearance/base/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
cfg = config.marleyos.appearance.base;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.marleyos.appearance.base.enable = mkEnableOption "base";
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
maple-mono-NF
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
18
modules/darwin/base/homebrew/default.nix
Normal file
18
modules/darwin/base/homebrew/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
homebrew = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
onActivation = {
|
||||||
|
autoUpdate = true;
|
||||||
|
cleanup = "zap";
|
||||||
|
upgrade = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
modules/darwin/base/nix/default.nix
Normal file
9
modules/darwin/base/nix/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
config.nix = {
|
||||||
|
package = pkgs.lix;
|
||||||
|
};
|
||||||
|
}
|
24
modules/darwin/programs/fish/default.nix
Normal file
24
modules/darwin/programs/fish/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkEnableOption;
|
||||||
|
|
||||||
|
cfg = config.marleyos.programs.fish;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.marleyos.programs.fish.enable = mkEnableOption "fish";
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
useBabelfish = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.shells = [ pkgs.fish ];
|
||||||
|
};
|
||||||
|
}
|
17
modules/darwin/programs/wezterm/default.nix
Normal file
17
modules/darwin/programs/wezterm/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
|
||||||
|
cfg = config.marleyos.programs.wezterm;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.marleyos.programs.wezterm.enable = mkEnableOption "wezterm";
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
homebrew.casks = [ "wezterm" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,10 +1,16 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
inherit (lib.snowfall.system) is-linux;
|
||||||
inherit (lib.marleyos) enabled;
|
inherit (lib.marleyos) enabled;
|
||||||
|
|
||||||
|
isGenericLinux = config.targets.genericLinux.enable;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# Anything in this folder should not include an enable/disable option. This is
|
# Anything in this folder should not include an enable/disable option. This is
|
||||||
|
@ -17,14 +23,11 @@ in
|
||||||
email = "marley@punkfairie.net";
|
email = "marley@punkfairie.net";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Tell nix what version it is.
|
|
||||||
nix.package = pkgs.nix;
|
|
||||||
|
|
||||||
home.language.base = "en_US.UTF-8";
|
home.language.base = "en_US.UTF-8";
|
||||||
|
|
||||||
programs.home-manager = enabled;
|
programs.home-manager = enabled;
|
||||||
|
|
||||||
# Autostart wanted systemd services.
|
# Autostart wanted systemd services.
|
||||||
systemd.user.startServices = true;
|
systemd.user.startServices = mkIf (is-linux system) true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
system,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (lib) mkMerge mkIf;
|
inherit (lib) mkMerge mkIf;
|
||||||
|
inherit (lib.snowfall.system) is-linux;
|
||||||
|
|
||||||
inherit (config.marleyos) isDesktop;
|
inherit (config.marleyos) isDesktop;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -25,7 +28,8 @@ in
|
||||||
dataHome = "${homeDir}/.local/share";
|
dataHome = "${homeDir}/.local/share";
|
||||||
stateHome = "${homeDir}/.local/state";
|
stateHome = "${homeDir}/.local/state";
|
||||||
}
|
}
|
||||||
(mkIf isDesktop {
|
|
||||||
|
(mkIf (isDesktop && (is-linux system)) {
|
||||||
userDirs = {
|
userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
createDirectories = true;
|
createDirectories = true;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
@ -13,6 +14,8 @@ let
|
||||||
mkIf
|
mkIf
|
||||||
mkDefault
|
mkDefault
|
||||||
;
|
;
|
||||||
|
inherit (lib.snowfall.system) is-linux;
|
||||||
|
|
||||||
cfg = config.marleyos.theme;
|
cfg = config.marleyos.theme;
|
||||||
|
|
||||||
colorThemes = lib.types.enum [
|
colorThemes = lib.types.enum [
|
||||||
|
@ -152,7 +155,7 @@ in
|
||||||
})
|
})
|
||||||
|
|
||||||
# pinentry
|
# pinentry
|
||||||
{
|
(mkIf (is-linux system) {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
cfg.pinentry
|
cfg.pinentry
|
||||||
];
|
];
|
||||||
|
@ -164,6 +167,6 @@ in
|
||||||
services.gpg-agent = mkIf config.services.gpg-agent.enable (mkDefault {
|
services.gpg-agent = mkIf config.services.gpg-agent.enable (mkDefault {
|
||||||
pinentryPackage = cfg.pinentry;
|
pinentryPackage = cfg.pinentry;
|
||||||
});
|
});
|
||||||
}
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,12 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (lib) mkEnableOption mkIf;
|
inherit (lib) mkEnableOption mkIf optionals;
|
||||||
|
inherit (lib.snowfall.system) is-linux is-darwin;
|
||||||
inherit (lib.marleyos) enabled;
|
inherit (lib.marleyos) enabled;
|
||||||
|
|
||||||
cfg = config.marleyos.programs.fish;
|
cfg = config.marleyos.programs.fish;
|
||||||
|
@ -30,8 +32,10 @@ in
|
||||||
gzip
|
gzip
|
||||||
unzip
|
unzip
|
||||||
pax
|
pax
|
||||||
unrar-free
|
]
|
||||||
];
|
# unrar-free is broken on darwin :(
|
||||||
|
++ (optionals (is-linux system) [ unrar-free ])
|
||||||
|
++ (optionals (is-darwin system) [ unrar ]);
|
||||||
|
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
system,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (lib) mkEnableOption mkIf;
|
inherit (lib) mkEnableOption mkIf;
|
||||||
|
inherit (lib.snowfall.system) is-darwin;
|
||||||
|
|
||||||
cfg = config.marleyos.programs.wezterm;
|
cfg = config.marleyos.programs.wezterm;
|
||||||
inherit (config.marleyos.theme) colors;
|
inherit (config.marleyos.theme) colors;
|
||||||
|
|
||||||
isGenericLinux = config.targets.genericLinux.enable;
|
isGenericLinux = config.targets.genericLinux.enable;
|
||||||
|
isNotNixOS = isGenericLinux || (is-darwin system);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.marleyos.programs.wezterm.enable = mkEnableOption "wezterm";
|
options.marleyos.programs.wezterm.enable = mkEnableOption "wezterm";
|
||||||
|
@ -21,7 +24,7 @@ in
|
||||||
|
|
||||||
# Non-NixOS Linux systems don't have proper GPU integration, so we
|
# Non-NixOS Linux systems don't have proper GPU integration, so we
|
||||||
# unfortunately need to use the native package manager version.
|
# unfortunately need to use the native package manager version.
|
||||||
package = mkIf isGenericLinux pkgs.emptyDirectory;
|
package = mkIf isNotNixOS pkgs.emptyDirectory;
|
||||||
|
|
||||||
# TODO: create `local config` & return it seperately, so other modules can
|
# TODO: create `local config` & return it seperately, so other modules can
|
||||||
# insert config in the middle
|
# insert config in the middle
|
||||||
|
@ -76,7 +79,7 @@ in
|
||||||
})
|
})
|
||||||
|
|
||||||
-- TODO: on mairley this should be set to 14.0
|
-- TODO: on mairley this should be set to 14.0
|
||||||
config.font_size = 11.0
|
config.font_size = ${if (is-darwin system) then "14.0" else "11.0"}
|
||||||
|
|
||||||
return config
|
return config
|
||||||
'';
|
'';
|
||||||
|
|
37
systems/aarch64-darwin/mairley/default.nix
Normal file
37
systems/aarch64-darwin/mairley/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lib.marleyos) enabled;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
computerName = "mairley";
|
||||||
|
hostName = "mairley";
|
||||||
|
localHostName = "mairley";
|
||||||
|
};
|
||||||
|
|
||||||
|
marleyos = {
|
||||||
|
appearance = {
|
||||||
|
base = enabled;
|
||||||
|
};
|
||||||
|
programs = {
|
||||||
|
fish = enabled;
|
||||||
|
wezterm = enabled;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users = {
|
||||||
|
knownUsers = [ "marley" ];
|
||||||
|
users."marley" = {
|
||||||
|
# This is required for some reason.
|
||||||
|
uid = 501;
|
||||||
|
|
||||||
|
shell = pkgs.fish;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = 5;
|
||||||
|
}
|
Loading…
Reference in a new issue