mirror of
https://github.com/davegallant/nix-config
synced 2025-08-06 03:13:38 +00:00
Fix home-manager impurity and add brew configuration
This commit is contained in:
@@ -18,7 +18,6 @@ sudo ./rebuild.sh switch
|
|||||||
|
|
||||||
1. Install the latest unstable nix from https://github.com/numtide/nix-unstable-installer (to get nix flakes)
|
1. Install the latest unstable nix from https://github.com/numtide/nix-unstable-installer (to get nix flakes)
|
||||||
1. Install nix-darwin: https://github.com/LnL7/nix-darwin
|
1. Install nix-darwin: https://github.com/LnL7/nix-darwin
|
||||||
1. Add home-manager channel: `nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager; nix-channel --update` (TODO: this requirement should be removed in the future)
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./rebuild.sh switch
|
./rebuild.sh switch
|
||||||
|
@@ -92,7 +92,6 @@ in
|
|||||||
|
|
||||||
# imaging
|
# imaging
|
||||||
gifsicle
|
gifsicle
|
||||||
gimp
|
|
||||||
|
|
||||||
# video
|
# video
|
||||||
youtube-dl
|
youtube-dl
|
||||||
@@ -195,6 +194,7 @@ in
|
|||||||
deluge
|
deluge
|
||||||
discord
|
discord
|
||||||
firefox
|
firefox
|
||||||
|
gimp
|
||||||
minecraft
|
minecraft
|
||||||
postman
|
postman
|
||||||
signal-desktop
|
signal-desktop
|
||||||
|
6
flake.lock
generated
6
flake.lock
generated
@@ -27,11 +27,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1624746582,
|
"lastModified": 1624796413,
|
||||||
"narHash": "sha256-5RXicZDUxLjzz64oWXoRqAaTsfnG1oucIB3UIQa0rMI=",
|
"narHash": "sha256-uQWxfcs4MGeWNUJxTRfuPvqaTVLTJAngc4IvxWNaCXs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "8d3b273afef0e6c3d6d6e4239c9c9d79b1ab6ed7",
|
"rev": "f4998f0adccc60a2b463f1892e3eb42b9715a8ee",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
17
flake.nix
17
flake.nix
@@ -1,15 +1,20 @@
|
|||||||
{
|
{
|
||||||
|
description = "nixos and macos configurations";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "/nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
|
||||||
darwin.url = "github:lnl7/nix-darwin";
|
darwin = {
|
||||||
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
url = "github:lnl7/nix-darwin";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, darwin, home-manager, nixpkgs, nixos-hardware }: {
|
outputs = { self, darwin, home-manager, nixpkgs, nixos-hardware }: {
|
||||||
@@ -42,7 +47,7 @@
|
|||||||
trustedUsers = [ "root" "dave" ];
|
trustedUsers = [ "root" "dave" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.overlays = [ (import ./overlays) ];
|
nixpkgs.overlays = [ (import ./modules/overlays) ];
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
@@ -65,13 +70,15 @@
|
|||||||
darwinConfigurations = {
|
darwinConfigurations = {
|
||||||
demeter = darwin.lib.darwinSystem {
|
demeter = darwin.lib.darwinSystem {
|
||||||
modules = [
|
modules = [
|
||||||
|
home-manager.darwinModules.home-manager
|
||||||
./common/darwin.nix
|
./common/darwin.nix
|
||||||
./common/packages.nix
|
./common/packages.nix
|
||||||
./machines/demeter/configuration.nix
|
./machines/demeter/configuration.nix
|
||||||
|
./modules/darwin/default.nix
|
||||||
|
|
||||||
({ config, ... }: {
|
({ config, ... }: {
|
||||||
config = {
|
config = {
|
||||||
nixpkgs.overlays = [ (import ./overlays) ];
|
nixpkgs.overlays = [ (import ./modules/overlays) ];
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
|
@@ -1,49 +1,12 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ <home-manager/nix-darwin> ];
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
environment = { variables = { LANG = "en_US.UTF-8"; }; };
|
environment = { variables = { LANG = "en_US.UTF-8"; }; };
|
||||||
|
|
||||||
networking = { hostName = "demeter"; };
|
networking = { hostName = "demeter"; };
|
||||||
|
|
||||||
system.defaults = {
|
|
||||||
NSGlobalDomain = {
|
|
||||||
AppleMeasurementUnits = "Centimeters";
|
|
||||||
AppleMetricUnits = 1;
|
|
||||||
AppleShowScrollBars = "Automatic";
|
|
||||||
AppleTemperatureUnit = "Celsius";
|
|
||||||
AppleKeyboardUIMode = 3;
|
|
||||||
ApplePressAndHoldEnabled = false;
|
|
||||||
InitialKeyRepeat = 10;
|
|
||||||
KeyRepeat = 3;
|
|
||||||
_HIHideMenuBar = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
dock = {
|
|
||||||
autohide = true;
|
|
||||||
mru-spaces = false;
|
|
||||||
tilesize = 512;
|
|
||||||
};
|
|
||||||
|
|
||||||
finder = {
|
|
||||||
AppleShowAllExtensions = true;
|
|
||||||
QuitMenuItem = true;
|
|
||||||
FXEnableExtensionChangeWarning = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
trackpad = {
|
|
||||||
Clicking = true;
|
|
||||||
TrackpadThreeFingerDrag = true;
|
|
||||||
TrackpadRightClick = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Login and lock screen
|
|
||||||
loginwindow = { GuestEnabled = false; };
|
|
||||||
};
|
|
||||||
|
|
||||||
# Auto upgrade nix package and the daemon service.
|
# Auto upgrade nix package and the daemon service.
|
||||||
services.nix-daemon.enable = true;
|
services.nix-daemon.enable = true;
|
||||||
nix.package = pkgs.nixFlakes;
|
nix.package = pkgs.nixFlakes;
|
||||||
|
43
modules/darwin/brew.nix
Normal file
43
modules/darwin/brew.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
checkBrew = "command -v brew > /dev/null";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
environment = {
|
||||||
|
extraInit = ''
|
||||||
|
${checkBrew} || >&2 echo "brew is not installed (install it via https://brew.sh)"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
homebrew = {
|
||||||
|
enable = true;
|
||||||
|
autoUpdate = true;
|
||||||
|
global = {
|
||||||
|
brewfile = true;
|
||||||
|
noLock = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
brews = [
|
||||||
|
"aws-sam-cli"
|
||||||
|
"fabianishere/personal/pam_reattach"
|
||||||
|
"netdata"
|
||||||
|
];
|
||||||
|
|
||||||
|
casks = [
|
||||||
|
"1password"
|
||||||
|
"visual-studio-code"
|
||||||
|
];
|
||||||
|
|
||||||
|
taps = [
|
||||||
|
"aws/tap"
|
||||||
|
"homebrew/bundle"
|
||||||
|
"homebrew/cask"
|
||||||
|
"homebrew/cask-fonts"
|
||||||
|
"homebrew/cask-versions"
|
||||||
|
"homebrew/core"
|
||||||
|
"homebrew/services"
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
6
modules/darwin/default.nix
Normal file
6
modules/darwin/default.nix
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{ pkgs, ... }: {
|
||||||
|
imports = [
|
||||||
|
./brew.nix
|
||||||
|
./preferences.nix
|
||||||
|
];
|
||||||
|
}
|
57
modules/darwin/preferences.nix
Normal file
57
modules/darwin/preferences.nix
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{ config, pkgs, ... }: {
|
||||||
|
|
||||||
|
system.defaults = {
|
||||||
|
loginwindow = {
|
||||||
|
GuestEnabled = false;
|
||||||
|
SHOWFULLNAME = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
finder = {
|
||||||
|
AppleShowAllExtensions = true;
|
||||||
|
FXEnableExtensionChangeWarning = true;
|
||||||
|
_FXShowPosixPathInTitle = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
trackpad = {
|
||||||
|
ActuationStrength = 0;
|
||||||
|
Clicking = true;
|
||||||
|
FirstClickThreshold = 1;
|
||||||
|
SecondClickThreshold = 1;
|
||||||
|
TrackpadRightClick = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# firewall
|
||||||
|
alf = {
|
||||||
|
# 0 = disabled 1 = enabled 2 = blocks all connections except for essential services
|
||||||
|
globalstate = 1;
|
||||||
|
loggingenabled = 0;
|
||||||
|
stealthenabled = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
dock = {
|
||||||
|
autohide = true;
|
||||||
|
autohide-delay = "0.0";
|
||||||
|
autohide-time-modifier = "1.0";
|
||||||
|
tilesize = 50;
|
||||||
|
static-only = false;
|
||||||
|
showhidden = false;
|
||||||
|
show-recents = false;
|
||||||
|
show-process-indicators = true;
|
||||||
|
orientation = "bottom";
|
||||||
|
mru-spaces = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
NSGlobalDomain = {
|
||||||
|
"com.apple.sound.beep.feedback" = 0;
|
||||||
|
"com.apple.sound.beep.volume" = "0.000";
|
||||||
|
ApplePressAndHoldEnabled = false;
|
||||||
|
# delay before repeating keystrokes
|
||||||
|
InitialKeyRepeat = 10;
|
||||||
|
# delay between repeated keystrokes upon holding a key
|
||||||
|
KeyRepeat = 1;
|
||||||
|
AppleShowAllExtensions = true;
|
||||||
|
AppleShowScrollBars = "Automatic";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
22
rebuild.sh
22
rebuild.sh
@@ -4,17 +4,17 @@ cd "$(dirname "$0")" || exit
|
|||||||
|
|
||||||
uname="$(uname -s)"
|
uname="$(uname -s)"
|
||||||
case "${uname}" in
|
case "${uname}" in
|
||||||
Linux*) machine=linux;;
|
Linux*) machine=linux ;;
|
||||||
Darwin*) machine=mac;;
|
Darwin*) machine=mac ;;
|
||||||
*) machine="unknown"
|
*) machine="unknown" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [[ "$machine" == "linux" ]]; then
|
if [[ "$machine" == "linux" ]]; then
|
||||||
exec nixos-rebuild -I nixos-config="machines/$(hostname)/configuration.nix" "$@" --flake '.#'
|
exec nixos-rebuild -I nixos-config="machines/$(hostname)/configuration.nix" "$@" --flake '.#'
|
||||||
elif [[ "$machine" == "mac" ]]; then
|
elif [[ "$machine" == "mac" ]]; then
|
||||||
exec darwin-rebuild "$@" --flake . --impure # TODO: What is causing this impurity?
|
exec darwin-rebuild "$@" --flake .
|
||||||
else
|
else
|
||||||
echo 'Unsupported OS.'
|
echo 'Unsupported OS.'
|
||||||
echo 'Exiting...'
|
echo 'Exiting...'
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
Reference in New Issue
Block a user