Adds nix-darwin
parent
6d7d721bbc
commit
c25c30e461
|
@ -0,0 +1,46 @@
|
||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
{
|
||||||
|
imports = [./nix.nix];
|
||||||
|
security.pam.enableSudoTouchIdAuth = true;
|
||||||
|
system = {
|
||||||
|
defaults = {
|
||||||
|
dock = {
|
||||||
|
appswitcher-all-displays = false;
|
||||||
|
autohide = true;
|
||||||
|
magnification = true;
|
||||||
|
mru-spaces = false;
|
||||||
|
orientation = "bottom";
|
||||||
|
wvous-bl-corner = 13;
|
||||||
|
wvous-br-corner = 14;
|
||||||
|
wvous-tl-corner = 2;
|
||||||
|
wvous-tr-corner = 3;
|
||||||
|
};
|
||||||
|
finder = {
|
||||||
|
AppleShowAllExtensions = true;
|
||||||
|
FXPreferredViewStyle = "Nlsv";
|
||||||
|
};
|
||||||
|
NSGlobalDomain = {
|
||||||
|
AppleEnableMouseSwipeNavigateWithScrolls = true;
|
||||||
|
AppleEnableSwipeNavigateWithScrolls = true;
|
||||||
|
AppleICUForce24HourTime = true;
|
||||||
|
AppleInterfaceStyle = "Dark";
|
||||||
|
AppleInterfaceStyleSwitchesAutomatically = false;
|
||||||
|
NSAutomaticCapitalizationEnabled = false;
|
||||||
|
NSAutomaticDashSubstitutionEnabled = true;
|
||||||
|
NSAutomaticSpellingCorrectionEnabled = false;
|
||||||
|
NSAutomaticPeriodSubstitutionEnabled = false;
|
||||||
|
NSAutomaticQuoteSubstitutionEnabled = true;
|
||||||
|
_HIHideMenuBar = true;
|
||||||
|
};
|
||||||
|
trackpad = {
|
||||||
|
Clicking = true;
|
||||||
|
TrackpadRightClick = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
keyboard = {
|
||||||
|
enableKeyMapping = true;
|
||||||
|
remapCapsLockToControl = true;
|
||||||
|
};
|
||||||
|
stateVersion = 4;
|
||||||
|
};
|
||||||
|
}
|
21
flake.lock
21
flake.lock
|
@ -101,6 +101,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1700795494,
|
||||||
|
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||||
|
"owner": "LnL7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "LnL7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705883077,
|
"lastModified": 1705883077,
|
||||||
|
@ -125,6 +145,7 @@
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"monaspace-font": "monaspace-font",
|
"monaspace-font": "monaspace-font",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
30
flake.nix
30
flake.nix
|
@ -3,6 +3,10 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?rev=5f5210aa20e343b7e35f40c033000db0ef80d7b9";
|
nixpkgs.url = "github:nixos/nixpkgs?rev=5f5210aa20e343b7e35f40c033000db0ef80d7b9";
|
||||||
|
nix-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";
|
||||||
|
@ -29,25 +33,33 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ nixpkgs, home-manager, ... }:
|
outputs = inputs@{ self, nixpkgs, nix-darwin, home-manager, ... }:
|
||||||
let
|
let
|
||||||
system = "x86_64-darwin";
|
system = "x86_64-darwin";
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config = { allowUnfree = true; };
|
config = { allowUnfree = true; };
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
homeConfigurations.abhinav = home-manager.lib.homeManagerConfiguration {
|
{
|
||||||
inherit pkgs;
|
darwinConfigurations."Abhinavs-MacBook-Pro" = nix-darwin.lib.darwinSystem {
|
||||||
modules = [ ./home.nix ];
|
inherit system;
|
||||||
extraSpecialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
home-manager.darwinModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.abhinav = import ./home.nix;
|
||||||
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
devShells.${system}.default = pkgs.mkShell {
|
devShells.${system}.default = pkgs.mkShell {
|
||||||
buildInputs = with pkgs; [ (import home-manager { inherit pkgs; }).home-manager just ];
|
buildInputs = with pkgs; [ (import home-manager { inherit pkgs; }).home-manager just ];
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
export NIX_PATH=$HOME/.hm-nixchannels;
|
export NIXPKGS_PATH=${pkgs.path};
|
||||||
mkdir -p $NIX_PATH;
|
|
||||||
ln -f -s ${pkgs.path} -T $NIX_PATH/nixpkgs;
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
11
home.nix
11
home.nix
|
@ -1,11 +1,12 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
let username = config.home.username;
|
||||||
imports = [ ./programs ./scripts ./launchd.nix ./nix.nix ];
|
in {
|
||||||
|
imports = [ ./programs ./scripts ./launchd.nix ];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
username = "abhinav";
|
username = "abhinav";
|
||||||
homeDirectory = "/Users/abhinav";
|
homeDirectory = lib.mkForce "/Users/${username}";
|
||||||
stateVersion = "22.05";
|
stateVersion = "22.05";
|
||||||
enableNixpkgsReleaseCheck = true;
|
enableNixpkgsReleaseCheck = true;
|
||||||
|
|
||||||
|
@ -23,7 +24,7 @@
|
||||||
|
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
EDITOR = "micro";
|
EDITOR = "micro";
|
||||||
NIX_PATH = "$HOME/.hm-nixchannels";
|
NIX_PATH = "/nix/var/nix/profiles/per-user/${username}/channels";
|
||||||
};
|
};
|
||||||
|
|
||||||
file."Applications/Home Manager Apps".source = let
|
file."Applications/Home Manager Apps".source = let
|
||||||
|
|
16
justfile
16
justfile
|
@ -1,5 +1,6 @@
|
||||||
in_nix_shell := env_var_or_default("IN_NIX_SHELL", "false")
|
in_nix_shell := env_var_or_default("IN_NIX_SHELL", "false")
|
||||||
root_dir := justfile_directory()
|
root_dir := justfile_directory()
|
||||||
|
hostname := `scutil --get LocalHostName`
|
||||||
|
|
||||||
# choose a just command to run
|
# choose a just command to run
|
||||||
default:
|
default:
|
||||||
|
@ -18,24 +19,21 @@ _run cmd:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_build:
|
_build:
|
||||||
home-manager -v build --flake "{{ root_dir }}#abhinav"
|
nix build {{ root_dir }}#darwinConfigurations.{{ hostname }}.system
|
||||||
|
|
||||||
# build latest home-manager generation
|
# build latest home-manager generation
|
||||||
build: (_run "_build")
|
build: (_run "_build")
|
||||||
|
|
||||||
_switch:
|
_switch: _build
|
||||||
home-manager -v switch --flake "{{ root_dir }}#abhinav"
|
./result/sw/bin/darwin-rebuild -v switch --flake "{{ root_dir }}"
|
||||||
report-hm-changes
|
|
||||||
|
|
||||||
# switch to latest home-manager generation
|
# switch to latest home-manager generation
|
||||||
switch: (_run "_switch")
|
switch: (_run "_switch")
|
||||||
|
|
||||||
_update-vscode-extensions:
|
_update: && _switch
|
||||||
$NIX_PATH/nixpkgs/pkgs/applications/editors/vscode/extensions/update_installed_exts.sh > \
|
|
||||||
{{ root_dir }}/programs/vscode/extensions.nix
|
|
||||||
|
|
||||||
_update: _update-vscode-extensions && _switch
|
|
||||||
nix flake update --commit-lock-file "{{ root_dir }}"
|
nix flake update --commit-lock-file "{{ root_dir }}"
|
||||||
|
$NIXPKGS_PATH/pkgs/applications/editors/vscode/extensions/update_installed_exts.sh > \
|
||||||
|
{{ root_dir }}/programs/vscode/extensions.nix
|
||||||
|
|
||||||
# update packages and switch
|
# update packages and switch
|
||||||
update: (_run "_update")
|
update: (_run "_update")
|
||||||
|
|
49
nix.nix
49
nix.nix
|
@ -1,19 +1,36 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
nixpkgs.config.allowUnfree = true;
|
services.nix-daemon.enable = true;
|
||||||
nix.package = pkgs.nixStable;
|
nix = {
|
||||||
nix.settings = {
|
package = pkgs.nixFlakes;
|
||||||
experimental-features = [ "nix-command" "flakes" "repl-flake" ];
|
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||||
max-jobs = 6;
|
nixPath = [{ nixpkgs = inputs.nixpkgs.outPath; }];
|
||||||
cores = 2;
|
extraOptions = ''
|
||||||
auto-optimise-store = true;
|
keep-outputs = true
|
||||||
connect-timeout = 5;
|
keep-derivations = true
|
||||||
log-lines = 25;
|
'';
|
||||||
min-free = 128000000;
|
gc = {
|
||||||
max-free = 1000000000;
|
automatic = true;
|
||||||
fallback = true;
|
interval.Day = 1;
|
||||||
warn-dirty = false;
|
options = "--delete-older-than 7d";
|
||||||
keep-outputs = true;
|
};
|
||||||
|
settings = {
|
||||||
|
auto-optimise-store = true;
|
||||||
|
connect-timeout = 5;
|
||||||
|
cores = 2;
|
||||||
|
experimental-features = [ "nix-command" "flakes" "repl-flake" ];
|
||||||
|
fallback = true;
|
||||||
|
keep-outputs = true;
|
||||||
|
log-lines = 25;
|
||||||
|
max-free = 1000000000;
|
||||||
|
max-jobs = 6;
|
||||||
|
min-free = 128000000;
|
||||||
|
warn-dirty = false;
|
||||||
|
trusted-users = ["@admin"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixpkgs = {
|
||||||
|
hostPlatform = "x86_64-darwin";
|
||||||
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{ inputs, config, pkgs, ... }:
|
{ inputs, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
let username = config.home.username;
|
||||||
|
in {
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
@ -29,7 +30,8 @@
|
||||||
shellInit = ''
|
shellInit = ''
|
||||||
# nix
|
# nix
|
||||||
fenv source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
fenv source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
fish_add_path -m ~/.local/bin ~/.cabal/bin
|
fenv source /etc/profiles/per-user/${username}/etc/profile.d/hm-session-vars.sh
|
||||||
|
fish_add_path -m ~/.local/bin ~/.cabal/bin /etc/profiles/per-user/${username}/bin
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue