refactor: Split nix config

This commit is contained in:
Ahmad Ansori Palembani 2024-07-11 11:51:23 +07:00
parent 37b30544c1
commit 2faf9059b8
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
4 changed files with 121 additions and 67 deletions

View file

@ -0,0 +1,60 @@
{ pkgs, vars, ... }:
let
python = pkgs.python310Full.override {
# FIXME: Build failed, maybe override postInstall instead?
#enableFramework = true;
};
in
{
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = [
pkgs.zsh
pkgs.git
pkgs.vim
pkgs.neovim
pkgs.pass
pkgs.passExtensions.pass-otp
pkgs.pinentry_mac
pkgs.gnupg
pkgs.htop-vim
python
# FIXME: Build failed, dnspython pytest keep returning FAILED caused by timeout. Maybe find a way to bypass check for them
# (pkgs.poetry.override { python3 = python; })
pkgs.python310Packages.pip
pkgs.python310Packages.tkinter
pkgs.fastfetch
pkgs.eza
pkgs.lf
pkgs.wimlib
pkgs.google-cloud-sdk
pkgs.nmap
pkgs.cargo
pkgs.android-tools
# pkgs.browserpass
pkgs.coreutils-full
];
# 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";
# Create /etc/zshrc that loads the nix-darwin environment.
programs.zsh.enable = true; # default shell on catalina
# programs.fish.enable = true;
# Set Git commit hash for darwin-version.
system.configurationRevision = vars.rev or null;
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
# The platform the configuration will be used on.
nixpkgs.hostPlatform = vars.arch;
}
# vim:set ts=2 sw=2 et:

View file

@ -0,0 +1,42 @@
{ inputs, nixpkgs, nix-darwin, vars, ... }:
let
systemConfig = system: {
system = system;
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
};
in
{
# Host list
# Build with darwin flake: `darwin-rebuild build --flake .#<host>`
# e.g. `darwin-rebuild build --flake .#"ThiccBook-Pro"`
# Switch to current build: `darwin-rebuild switch --flake .#<host>`
# Lenovo ThinkPad L460; Intel Core i5-6300U
"ThiccBook-Pro" =
let
vars.arch = "x86_64-darwin";
inherit (systemConfig vars.arch) system pkgs;
in
nix-darwin.lib.darwinSystem {
inherit system;
specialArgs = { inherit inputs pkgs vars; };
modules = [ ./configuration.nix ];
};
# Imaginary M1, just for reference
MacBookProM1 =
let
vars.arch = "aarch64-darwin";
inherit (systemConfig vars.arch) system pkgs;
in
nix-darwin.lib.darwinSystem {
inherit system;
specialArgs = { inherit inputs pkgs vars; };
modules = [ ./configuration.nix ];
};
}
# vim:set ts=2 sw=2 et:

View file

@ -1,5 +1,5 @@
{
description = "Example Darwin system flake";
description = "null2264's Nix Setup";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-24.05-darwin";
@ -9,75 +9,17 @@
outputs = inputs@{ self, nix-darwin, nixpkgs }:
let
configuration = { pkgs, ... }: let
python = pkgs.python310Full.override {
# FIXME: Build failed, maybe override postInstall instead?
#enableFramework = true;
vars = {
rev = self.rev or self.dirtyRev or null;
};
in
{
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = [
pkgs.zsh
pkgs.git
pkgs.vim
pkgs.neovim
pkgs.pass
pkgs.passExtensions.pass-otp
pkgs.pinentry_mac
pkgs.gnupg
pkgs.htop-vim
python
# FIXME: Build failed, dnspython pytest keep returning FAILED caused by timeout. Maybe find a way to bypass check for them
# (pkgs.poetry.override { python3 = python; })
pkgs.python310Packages.pip
pkgs.python310Packages.tkinter
pkgs.fastfetch
pkgs.eza
pkgs.lf
pkgs.wimlib
pkgs.google-cloud-sdk
pkgs.nmap
pkgs.cargo
pkgs.android-tools
# pkgs.browserpass
pkgs.coreutils-full
];
# 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";
# Create /etc/zshrc that loads the nix-darwin environment.
programs.zsh.enable = true; # default shell on catalina
# programs.fish.enable = true;
# Set Git commit hash for darwin-version.
system.configurationRevision = self.rev or self.dirtyRev or null;
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
# The platform the configuration will be used on.
nixpkgs.hostPlatform = "x86_64-darwin";
};
in
{
# TODO: Split configurations
# Build darwin flake using:
# $ darwin-rebuild build --flake .#ThiccBook-Pro
darwinConfigurations."ThiccBook-Pro" = nix-darwin.lib.darwinSystem {
modules = [ configuration ];
};
# Expose the package set, including overlays, for convenience.
darwinPackages = self.darwinConfigurations."ThiccBook-Pro".pkgs;
darwinConfigurations = (
import ./darwin {
inherit (nixpkgs) lib;
inherit inputs nixpkgs nix-darwin vars;
}
);
};
}
# vim:set ts=2 sw=2 et:

View file

@ -55,6 +55,16 @@ return {
keys = {
{ "gc", mode = { "n", "v", "i" } },
},
init = function ()
vim.api.nvim_create_autocmd("FileType", {
pattern = { "nix" },
callback = function()
vim.opt_local.commentstring = "# %s"
end,
group = generalSettingsGroup,
})
end,
},
{
"dstein64/vim-startuptime",