finally set up some of nix-darwin

This commit is contained in:
mjallen18
2025-07-14 08:42:31 -05:00
parent 059e72584f
commit 58ba094456
9 changed files with 416 additions and 194 deletions

209
flake.lock generated
View File

@@ -33,6 +33,23 @@
"type": "github" "type": "github"
} }
}, },
"brew-src": {
"flake": false,
"locked": {
"lastModified": 1751910772,
"narHash": "sha256-jQNdIkq2iRDNWskd5f8kX6q9BO/CBSXhMH41WNRft8E=",
"owner": "Homebrew",
"repo": "brew",
"rev": "700d67a85e0129ab8a893ff69246943479e33df1",
"type": "github"
},
"original": {
"owner": "Homebrew",
"ref": "4.5.9",
"repo": "brew",
"type": "github"
}
},
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1731098351, "lastModified": 1731098351,
@@ -185,6 +202,25 @@
"type": "github" "type": "github"
} }
}, },
"desktop-nix-vscode-extensions": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1752373577,
"narHash": "sha256-5ipIQ1dp4qLfgVOBRU3NqnESjF6CqD/HQVYlEXC4P0s=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "b8780c4b346250b6e86a7127dbe5e43a4bb394eb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"type": "github"
}
},
"desktop-nixos-hardware": { "desktop-nixos-hardware": {
"locked": { "locked": {
"lastModified": 1750837715, "lastModified": 1750837715,
@@ -497,6 +533,24 @@
} }
}, },
"flake-utils": { "flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": { "inputs": {
"systems": [ "systems": [
"nas-authentik-nix", "nas-authentik-nix",
@@ -517,9 +571,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": { "flake-utils_3": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -534,9 +588,9 @@
"type": "indirect" "type": "indirect"
} }
}, },
"flake-utils_3": { "flake-utils_4": {
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -552,9 +606,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_4": { "flake-utils_5": {
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -678,6 +732,38 @@
"type": "github" "type": "github"
} }
}, },
"homebrew-cask": {
"flake": false,
"locked": {
"lastModified": 1752451414,
"narHash": "sha256-XNUBW6GZOWG8kJrju3MIf5GCbNhUA24rArCS/IIkpEE=",
"owner": "homebrew",
"repo": "homebrew-cask",
"rev": "68607571486a0c82a71e0a4c8c8ce8de77164522",
"type": "github"
},
"original": {
"owner": "homebrew",
"repo": "homebrew-cask",
"type": "github"
}
},
"homebrew-core": {
"flake": false,
"locked": {
"lastModified": 1752438625,
"narHash": "sha256-oKbf2JYEevxOJ55+z9t1R1mZDPAA4o3QWKGqgLfambk=",
"owner": "homebrew",
"repo": "homebrew-core",
"rev": "dd264970344897aa005931dec441fa46cbaf0b2c",
"type": "github"
},
"original": {
"owner": "homebrew",
"repo": "homebrew-core",
"type": "github"
}
},
"jovian": { "jovian": {
"inputs": { "inputs": {
"nix-github-actions": "nix-github-actions", "nix-github-actions": "nix-github-actions",
@@ -760,7 +846,7 @@
"mac-nixos-apple-silicon": { "mac-nixos-apple-silicon": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_3",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1751622568, "lastModified": 1751622568,
@@ -843,14 +929,14 @@
"authentik-src": "authentik-src", "authentik-src": "authentik-src",
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_4",
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"flake-utils": "flake-utils", "flake-utils": "flake-utils_2",
"napalm": "napalm", "napalm": "napalm",
"nixpkgs": [ "nixpkgs": [
"nas-nixpkgs" "nas-nixpkgs"
], ],
"pyproject-build-systems": "pyproject-build-systems", "pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix", "pyproject-nix": "pyproject-nix",
"systems": "systems", "systems": "systems_2",
"uv2nix": "uv2nix" "uv2nix": "uv2nix"
}, },
"locked": { "locked": {
@@ -892,7 +978,7 @@
}, },
"nas-crowdsec": { "nas-crowdsec": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_3",
"nixpkgs": [ "nixpkgs": [
"nas-nixpkgs" "nas-nixpkgs"
] ]
@@ -974,8 +1060,8 @@
}, },
"nas-nix-vscode-extensions": { "nas-nix-vscode-extensions": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1749002682, "lastModified": 1749002682,
@@ -993,8 +1079,8 @@
}, },
"nas-nixai": { "nas-nixai": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_4", "flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1749000216, "lastModified": 1749000216,
@@ -1166,6 +1252,24 @@
"type": "github" "type": "github"
} }
}, },
"nix-homebrew": {
"inputs": {
"brew-src": "brew-src"
},
"locked": {
"lastModified": 1752160973,
"narHash": "sha256-BCC8KB7TEtwv7vZN1WDu870tRbXtzUcmF9xNr6ws5Wc=",
"owner": "zhaofengli",
"repo": "nix-homebrew",
"rev": "69c1aa2f136f3c3326d9b6770e0eb54f12832971",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"repo": "nix-homebrew",
"type": "github"
}
},
"nixos-images": { "nixos-images": {
"inputs": { "inputs": {
"nixos-stable": [ "nixos-stable": [
@@ -1196,7 +1300,7 @@
"inputs": { "inputs": {
"argononed": "argononed", "argononed": "argononed",
"nixos-images": "nixos-images", "nixos-images": "nixos-images",
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1749156319, "lastModified": 1749156319,
@@ -1372,6 +1476,22 @@
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": {
"lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
"type": "github"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1748460289, "lastModified": 1748460289,
"narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=",
@@ -1387,7 +1507,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1744868846, "lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
@@ -1403,7 +1523,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1748693115, "lastModified": 1748693115,
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
@@ -1419,7 +1539,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1748882666, "lastModified": 1748882666,
"narHash": "sha256-z2uanxifOXGEqdiprquIGZu0XaRYih3FHXDQwLc1xis=", "narHash": "sha256-z2uanxifOXGEqdiprquIGZu0XaRYih3FHXDQwLc1xis=",
@@ -1435,7 +1555,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1751792365, "lastModified": 1751792365,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
@@ -1828,10 +1948,13 @@
"desktop-home-manager": "desktop-home-manager", "desktop-home-manager": "desktop-home-manager",
"desktop-impermanence": "desktop-impermanence", "desktop-impermanence": "desktop-impermanence",
"desktop-lanzaboote": "desktop-lanzaboote", "desktop-lanzaboote": "desktop-lanzaboote",
"desktop-nix-vscode-extensions": "desktop-nix-vscode-extensions",
"desktop-nixos-hardware": "desktop-nixos-hardware", "desktop-nixos-hardware": "desktop-nixos-hardware",
"desktop-nixpkgs": "desktop-nixpkgs", "desktop-nixpkgs": "desktop-nixpkgs",
"desktop-sops-nix": "desktop-sops-nix", "desktop-sops-nix": "desktop-sops-nix",
"desktop-steam-rom-manager": "desktop-steam-rom-manager", "desktop-steam-rom-manager": "desktop-steam-rom-manager",
"homebrew-cask": "homebrew-cask",
"homebrew-core": "homebrew-core",
"mac-home-manager": "mac-home-manager", "mac-home-manager": "mac-home-manager",
"mac-impermanence": "mac-impermanence", "mac-impermanence": "mac-impermanence",
"mac-nixos-apple-silicon": "mac-nixos-apple-silicon", "mac-nixos-apple-silicon": "mac-nixos-apple-silicon",
@@ -1850,6 +1973,7 @@
"nas-nixpkgs-stable": "nas-nixpkgs-stable", "nas-nixpkgs-stable": "nas-nixpkgs-stable",
"nas-sops-nix": "nas-sops-nix", "nas-sops-nix": "nas-sops-nix",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nix-homebrew": "nix-homebrew",
"nixos-raspberrypi": "nixos-raspberrypi", "nixos-raspberrypi": "nixos-raspberrypi",
"nixpkgs-stable": "nixpkgs-stable_5", "nixpkgs-stable": "nixpkgs-stable_5",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
@@ -2051,7 +2175,7 @@
"flake-schemas": "flake-schemas_2", "flake-schemas": "flake-schemas_2",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"jovian": "jovian_2", "jovian": "jovian_2",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_7",
"rust-overlay": "rust-overlay_7" "rust-overlay": "rust-overlay_7"
}, },
"locked": { "locked": {
@@ -2248,21 +2372,6 @@
} }
}, },
"systems": { "systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -2277,6 +2386,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@@ -2307,6 +2431,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"uv2nix": { "uv2nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [

View File

@@ -58,6 +58,8 @@
inputs.nixpkgs.follows = "desktop-nixpkgs"; inputs.nixpkgs.follows = "desktop-nixpkgs";
}; };
desktop-nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
##################################################### #####################################################
# NAS # # NAS #
##################################################### #####################################################
@@ -278,6 +280,17 @@
url = "github:LnL7/nix-darwin"; url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "desktop-nixpkgs"; inputs.nixpkgs.follows = "desktop-nixpkgs";
}; };
nix-homebrew.url = "github:zhaofengli/nix-homebrew";
homebrew-core = {
url = "github:homebrew/homebrew-core";
flake = false;
};
homebrew-cask = {
url = "github:homebrew/homebrew-cask";
flake = false;
};
##################################################### #####################################################
# Macbook Nix # # Macbook Nix #
@@ -336,6 +349,7 @@
desktop-sops-nix, desktop-sops-nix,
desktop-steam-rom-manager, desktop-steam-rom-manager,
desktop-cosmic, desktop-cosmic,
desktop-nix-vscode-extensions,
# NAS # NAS
nas-nixpkgs, nas-nixpkgs,
@@ -384,6 +398,9 @@
# MacBook # MacBook
nix-darwin, nix-darwin,
nix-homebrew,
homebrew-core,
homebrew-cask,
# MacBook Nix # MacBook Nix
mac-nixpkgs, mac-nixpkgs,
@@ -795,14 +812,27 @@
darwinConfigurations = { darwinConfigurations = {
"MacBook-Pro" = nix-darwin.lib.darwinSystem { "MacBook-Pro" = nix-darwin.lib.darwinSystem {
system = "aarch64-darwin"; system = "aarch64-darwin";
specialArgs = {
inherit inputs outputs;
};
modules = [ modules = [
./hosts/mac/configuration.nix ./hosts/mac/configuration.nix
nix-homebrew.darwinModules.nix-homebrew
desktop-home-manager.darwinModules.home-manager desktop-home-manager.darwinModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.mattjallen = import ./hosts/mac/home.nix; home-manager.users.mattjallen = import ./hosts/mac/home.nix;
home-manager.backupFileExtension = "backup";
} }
(
{ ... }:
{
nixpkgs.overlays = [
desktop-nix-vscode-extensions.overlays.default
];
}
)
]; ];
}; };
}; };

View File

@@ -1,76 +1,24 @@
{ pkgs, ... }: { config, inputs, pkgs, ... }:
{ {
#nix run nix-darwin -- switch --flake ~/nix-config imports = [
./nix.nix
./homebrew.nix
./programs.nix
./system.nix
];
# List packages installed in system profile. To search by name, run: # List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget # $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [ environment = {
asitop systemPackages = with pkgs; [
mas asitop
python3 mas
python3Packages.beautifulsoup4 nh
python3Packages.requests ];
python3Packages.selenium
vim
];
# Homebrew
homebrew.enable = true;
homebrew.casks = [
"spotify"
"protonvpn"
"omnissa-horizon-client"
"tg-pro"
"steam"
"orcaslicer"
"vscodium"
"epic-games"
"wine-stable"
"scroll-reverser"
];
homebrew.masApps = {
Tailscale = 1475387142;
Infuse = 1136220934;
Amphetamine = 937984704;
}; };
# homebrew.global.autoUpdate = true;
security.pam.services.sudo_local.touchIdAuth = true; security.pam.services.sudo_local.touchIdAuth = true;
# Auto upgrade nix package and the daemon service.
# services.nix-daemon.enable = true;
# nix.package = pkgs.nix;
# Necessary for using flakes on this system.
nix.settings.experimental-features = "nix-command flakes";
# Allow unfree
nixpkgs.config.allowUnfree = true;
# Create /etc/zshrc that loads the nix-darwin environment.
programs.zsh.enable = true; # default shell on catalina
system = {
defaults = {
trackpad.Clicking = true;
dock.autohide = false;
NSGlobalDomain = {
AppleInterfaceStyle = "Dark";
"com.apple.mouse.tapBehavior" = 1;
"com.apple.keyboard.fnState" = false;
};
};
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
stateVersion = 5;
};
# The platform the configuration will be used on.
nixpkgs.hostPlatform = "aarch64-darwin";
users.users.mattjallen = { users.users.mattjallen = {
name = "mattjallen"; name = "mattjallen";
home = "/Users/mattjallen"; home = "/Users/mattjallen";

View File

@@ -1,111 +1,59 @@
{ ... }: { lib, pkgs, home, ... }:
let let
shellAliases = { shellAliases = {
update-switch = "darwin-rebuild switch --flake ~/nix-config"; update-switch = "darwin-rebuild switch --flake ~/nix-config";
update-flake = "nix flake update ~/nix-config"; update-flake = "nix flake update ~/nix-config";
ducks = "du -cksh * | sort -hr | head -n 15"; ducks = "du -cksh * | sort -hr | head -n 15";
}; };
packages = with pkgs; [
gitAliases = { age
co = "checkout"; cpufetch
ci = "commit"; deadnix
cia = "commit --amend"; direnv
s = "status"; nixfmt-rfc-style
st = "status"; sops
b = "branch"; tree
p = "pull --rebase"; wget
pu = "push"; ];
};
in in
{ {
imports = [ ./trampoline-apps ]; imports = [
../../modules/home/defaults.nix
../../modules/home/git.nix
../../modules/home/shell.nix
../../modules/home/vscode.nix
];
# Home Manager needs a bit of information about you and the # Home Manager needs a bit of information about you and the
# paths it should manage. # paths it should manage.
home.username = "mattjallen"; home = {
home.homeDirectory = "/Users/mattjallen"; username = "mattjallen";
homeDirectory = "/Users/mattjallen";
# This value determines the Home Manager release that your packages = lib.mkForce packages;
# configuration is compatible with. This helps avoid breakage sessionVariables = {
# when a new Home Manager release introduces backwards NH_DARWIN_FLAKE = "${home.homeDirectory}/nix-config";
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.11";
programs = {
# Let Home Manager install and manage itself.
home-manager = {
enable = true;
};
vscode = {
enable = true;
};
btop.enable = true;
zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = shellAliases;
oh-my-zsh = {
enable = true;
plugins = [ "git" ];
theme = "fishy";
};
};
librewolf = {
enable = true;
settings = {
"identity.fxaccounts.enabled" = true; # Enable Firefox Accounts
"privacy.clearOnShutdown.history" = false; # Disable clearing history on shutdown
"privacy.clearOnShutdown.downloads" = false; # Disable clearing downloads on shutdown
"privacy.clearOnShutdown.cache" = false; # Disable clearing cache on shutdown
"privacy.clearOnShutdown.cookiesAndStorage" = false; # Disable clearing cookies and storage on shutdown
"privacy.clearOnShutdown.cookies" = false; # Disable clearing cookies on shutdown
"privacy.clearOnShutdown_v2.cache" = false; # Disable clearing cache on shutdown
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false; # Disable clearing cookies and storage on shutdown
"privacy.clearOnShutdown.formdata" = false; # Disable clearing form data on shutdown
"privacy.clearOnShutdown.offlineApps" = false; # Disable clearing offline apps on shutdown
"privacy.clearHistory.cache" = false; # Disable clearing cache on history clear
"privacy.clearHistory.cookiesAndStorage" = false; # Disable clearing cookies on history clear
"privacy.clearHistory.historyFormDataAndDownloads" = false; # Disable clearing history, form data, and downloads on history clear
"privacy.clearHistory.browsingHistoryAndDownloads" = false; # Disable clearing browsing history and downloads on history clear
"privacy.clearSiteData.cache" = false; # Disable clearing cache on site data clear
"privacy.clearSiteData.cookiesAndStorage" = false; # Disable clearing cookies on site data clear
"services.sync.prefs.sync.privacy.clearOnShutdown.cache" = true; # Enable syncing cache clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown.cookies" = true; # Enable syncing cookies clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown.downloads" = true; # Enable syncing downloads clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown.formdata" = true; # Enable syncing form data clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown.history" = true; # Enable syncing history clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps" = true; # Enable syncing offline apps clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown.sessions" = true; # Enable syncing sessions clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings" = true; # Enable syncing site settings clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.cache" = true; # Enable syncing cache clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.cookiesAndStorage" = true; # Enable syncing cookies clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.downloads" = true; # Enable syncing downloads clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.historyFormDataAndDownloads" = true; # Enable syncing form data clear on shutdown
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.siteSettings" = true; # Enable syncing site settings clear on shutdown
"browser.newtabpage.activity-stream.feeds.topsites" = true; # Enable top sites on new tab page
"browser.newtabpage.activity-stream.topSitesRows" = 3; # Set number of rows for top sites on new tab page
};
}; };
}; };
programs.git = { programs = {
enable = true; zsh = {
userName = "mjallen18"; shellAliases = shellAliases;
userEmail = "matt.l.jallen@gmail.com"; };
aliases = gitAliases;
}; };
# Manage bug in compilations - who uses manpages in 2024 anyways? :P # Manage bug in compilations - who uses manpages in 2024 anyways? :P
manual.manpages.enable = false; manual.manpages.enable = false;
# Override defaults that arent supported
programs = {
mangohud.enable = lib.mkForce false;
nh = {
flake = "${home.homeDirectory}/nix-config";
};
};
services = {
pass-secret-service.enable = lib.mkForce false;
nextcloud-client.enable = lib.mkForce false;
};
} }

65
hosts/mac/homebrew.nix Normal file
View File

@@ -0,0 +1,65 @@
{ config, inputs, ... }:
{
nix-homebrew = {
user = config.system.primaryUser;
enable = true;
autoMigrate = true;
enableRosetta = true;
mutableTaps = false;
taps = {
"homebrew/homebrew-core" = inputs.homebrew-core;
"homebrew/homebrew-cask" = inputs.homebrew-cask;
};
};
# Homebrew
homebrew = {
enable = true;
taps = builtins.attrNames config.nix-homebrew.taps;
global = {
autoUpdate = false;
brewfile = true;
};
onActivation = {
autoUpdate = false;
cleanup = "zap";
};
casks = [
"aldente"
"bartender"
"betterdisplay"
"chromium"
"discord"
"epic-games"
"gstreamer-runtime"
"iterm2"
"kitty"
"minecraft"
"omnissa-horizon-client"
"onlyoffice"
"orcaslicer"
"proton-drive"
"proton-pass"
"protonvpn"
"scroll-reverser"
"steam"
"tabby"
"tg-pro"
"utm"
"vesktop"
"vlc"
"vscodium"
"wine-stable"
"xquartz"
];
masApps = {
Amphetamine = 937984704;
Infuse = 1136220934;
"Proton Pass for Safari" = 6502835663;
Tailscale = 1475387142;
Termius = 1176074088;
};
};
# homebrew.global.autoUpdate = true;
}

17
hosts/mac/nix.nix Normal file
View File

@@ -0,0 +1,17 @@
{ ... }:
{
# Auto upgrade nix package and the daemon service.
# services.nix-daemon.enable = true;
# nix.package = pkgs.nix;
# Necessary for using flakes on this system.
nix = {
settings.experimental-features = "nix-command flakes";
};
# The platform the configuration will be used on.
nixpkgs = {
config.allowUnfree = true;
hostPlatform = "aarch64-darwin";
};
}

24
hosts/mac/programs.nix Normal file
View File

@@ -0,0 +1,24 @@
{ ... }:
{
programs = {
direnv = {
enable = true;
nix-direnv.enable = true;
};
nix-index = {
enable = true;
};
ssh.knownHosts = {
desktop = {
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPTBMydhOc6SnOdB5WrEd7X07DrboAtagCUgXiOJjLov matt@matt-nixos";
};
nas = {
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIwoHWOLSTGVif9hAhaMLl0qDA4roIzCNuyR6kyIXDOj admin@jallen-nas";
};
};
zsh.enable = true; # default shell on catalina
};
}

50
hosts/mac/system.nix Normal file
View File

@@ -0,0 +1,50 @@
{ config, ... }:
{
system = {
primaryUser = config.users.users.mattjallen.name;
defaults = {
controlcenter = {
AirDrop = true;
BatteryShowPercentage = true;
Bluetooth = true;
Display = true;
FocusModes = true;
NowPlaying = true;
};
dock = {
minimize-to-application = true;
mouse-over-hilite-stack = true;
show-recents = false;
};
finder = {
AppleShowAllExtensions = true;
AppleShowAllFiles = true;
_FXSortFoldersFirst = true;
_FXSortFoldersFirstOnDesktop = true;
FXEnableExtensionChangeWarning = false;
ShowPathbar = true; # breadcrumb nav at bottom
ShowStatusBar = true; # file count & disk space
};
loginwindow = {
GuestEnabled = false;
};
NSGlobalDomain = {
"com.apple.keyboard.fnState" = false;
AppleInterfaceStyle = "Dark";
"com.apple.mouse.tapBehavior" = 1;
AppleShowAllExtensions = true;
AppleShowAllFiles = true;
};
trackpad = {
Clicking = true;
};
WindowManager = {
EnableTiledWindowMargins = false;
};
};
startup.chime = false;
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
stateVersion = 5;
};
}

View File

@@ -36,7 +36,8 @@ in
vscode-extensions.redhat.vscode-yaml vscode-extensions.redhat.vscode-yaml
vscode-extensions.yy0931.vscode-sqlite3-editor vscode-extensions.yy0931.vscode-sqlite3-editor
open-remote-ssh # open-remote-ssh
nix-vscode-extensions.open-vsx.jeanp413.open-remote-ssh
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{ {
name = "copilot-mcp"; name = "copilot-mcp";