refactor: split poppy config into homebrew.nix, system.nix, default.nix

This commit is contained in:
mikl 2026-06-29 16:33:53 +03:00
parent cecb47ceb9
commit e358c2cb15
3 changed files with 170 additions and 184 deletions

View file

@ -1,200 +1,22 @@
{ pkgs, ... }: { { pkgs, ... }: {
imports = [ ./homebrew.nix ./system.nix ];
networking.hostName = "poppy"; networking.hostName = "poppy";
# Allow unfree packages (some macOS-ported tools need it)
nixpkgs.config.allowUnfree = true;
system.primaryUser = "michaotic"; system.primaryUser = "michaotic";
system.stateVersion = 7;
# nix settings nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [ nix.settings.experimental-features = [ "nix-command" "flakes" ];
"nix-command"
"flakes"
];
users.users.michaotic = { users.users.michaotic = {
home = "/Users/michaotic"; home = "/Users/michaotic";
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
environment.systemPackages = [ environment.systemPackages = [ pkgs.vim ];
pkgs.vim
];
# Homebrew - CRITICAL: cleanup = "zap" means unused casks get removed!
homebrew.enable = true;
homebrew.onActivation.cleanup = "zap";
homebrew.taps = [
"tw93/tap"
"typewhisper/tap"
];
homebrew.brews = [
"kew"
"mole"
];
homebrew.casks = [
"google-chrome"
"google-drive"
"krishkrosh/apps/trackweight"
"bitwarden"
"marta"
"vscodium"
"github"
"docker-desktop"
"ollama-app"
"opencode-desktop"
"microsoft-word"
"microsoft-excel"
"microsoft-powerpoint"
"obsidian"
"anki"
"calibre"
"telegram"
"maccy"
"mos"
"caffeine"
"typewhisper/tap/typewhisper"
"lunacy"
"skim"
];
# System defaults
system.defaults = {
NSGlobalDomain.AppleInterfaceStyle = "Dark";
NSGlobalDomain._HIHideMenuBar = false;
CustomUserPreferences = {
"com.apple.HIToolbox" = {
AppleEnabledInputSources = [
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 0;
"KeyboardLayout Name" = "U.S.";
}
{
"Bundle ID" = "com.apple.CharacterPaletteIM";
InputSourceKind = "Non Keyboard Input Method";
}
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 19456;
"KeyboardLayout Name" = "Russian";
}
];
AppleSelectedInputSources = [
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 0;
"KeyboardLayout Name" = "U.S.";
}
];
};
"com.apple.symbolichotkeys".AppleSymbolicHotKeys = {
"28" = {
enabled = 1;
value = {
type = "standard";
parameters = [ 51 20 1441792 ];
};
};
"29" = {
enabled = 1;
value = {
type = "standard";
parameters = [ 51 20 1179648 ];
};
};
"30" = {
enabled = 1;
value = {
type = "standard";
parameters = [ 52 21 1441792 ];
};
};
"31" = {
enabled = 1;
value = {
type = "standard";
parameters = [ 52 21 1179648 ];
};
};
};
"NSGlobalDomain" = {
"AppleMenuBarVisibleInFullscreen" = true;
};
};
controlcenter = {
BatteryShowPercentage = true;
};
trackpad = {
Clicking = true;
TrackpadThreeFingerDrag = false;
TrackpadRightClick = true;
};
finder = {
AppleShowAllExtensions = true;
ShowPathbar = true;
ShowStatusBar = true;
FXPreferredViewStyle = "clmv";
NewWindowTarget = "Home";
ShowExternalHardDrivesOnDesktop = false;
ShowHardDrivesOnDesktop = false;
FXEnableExtensionChangeWarning = false;
_FXShowPosixPathInTitle = true;
};
dock = {
tilesize = 48;
largesize = 64;
magnification = true;
orientation = "bottom";
mineffect = "scale";
autohide = true;
autohide-time-modifier = 0.8;
show-recents = false;
show-process-indicators = true;
static-only = false;
wvous-tl-corner = 1;
wvous-tr-corner = 4;
wvous-bl-corner = 1;
wvous-br-corner = 1;
persistent-apps = [
"/System/Applications/System Settings.app"
"/Applications/Google Chrome.app"
"/System/Applications/Mail.app"
"/Applications/Telegram.app"
"/System/Applications/Calendar.app"
"/Applications/Obsidian.app"
"/Applications/VSCodium.app"
"/Users/michaotic/Applications/Home Manager Apps/kitty.app"
"/System/Applications/Books.app"
"/System/Applications/QuickTime Player.app"
];
};
};
system.activationScripts.postActivation.text = ''
echo "Restarting Dock..."
sudo -u michaotic /usr/bin/killall Dock
'';
# Touch ID for sudo
security.pam.services.sudo_local.touchIdAuth = true;
system.stateVersion = 7;
# Home-manager configuration specific to poppy
home-manager.users.michaotic = { home-manager.users.michaotic = {
imports = [ ../../home/kitty.nix ]; imports = [ ../../home/kitty.nix ];
programs.zsh.shellAliases = { programs.zsh.shellAliases = {
switch = "darwin-rebuild switch --flake .#poppy"; switch = "darwin-rebuild switch --flake .#poppy";
update = "nix flake update && darwin-rebuild switch --flake .#poppy"; update = "nix flake update && darwin-rebuild switch --flake .#poppy";

37
hosts/poppy/homebrew.nix Normal file
View file

@ -0,0 +1,37 @@
{
homebrew.enable = true;
homebrew.onActivation.cleanup = "zap";
homebrew.taps = [
"tw93/tap"
"typewhisper/tap"
];
homebrew.brews = [
"kew"
"mole"
];
homebrew.casks = [
"google-chrome"
"google-drive"
"bitwarden"
"marta"
"vscodium"
"github"
"docker-desktop"
"ollama-app"
"microsoft-word"
"microsoft-excel"
"microsoft-powerpoint"
"obsidian"
"anki"
"calibre"
"telegram"
"maccy"
"mos"
"caffeine"
"lunacy"
"skim"
];
}

127
hosts/poppy/system.nix Normal file
View file

@ -0,0 +1,127 @@
{ pkgs, ... }: {
system.defaults = {
NSGlobalDomain.AppleInterfaceStyle = "Dark";
NSGlobalDomain._HIHideMenuBar = false;
CustomUserPreferences = {
"com.apple.HIToolbox" = {
AppleEnabledInputSources = [
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 0;
"KeyboardLayout Name" = "U.S.";
}
{
"Bundle ID" = "com.apple.CharacterPaletteIM";
InputSourceKind = "Non Keyboard Input Method";
}
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 19456;
"KeyboardLayout Name" = "Russian";
}
];
AppleSelectedInputSources = [
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 0;
"KeyboardLayout Name" = "U.S.";
}
];
};
"com.apple.symbolichotkeys".AppleSymbolicHotKeys = {
"28" = {
enabled = 1;
value = {
type = "standard";
parameters = [ 51 20 1441792 ];
};
};
"29" = {
enabled = 1;
value = {
type = "standard";
parameters = [ 51 20 1179648 ];
};
};
"30" = {
enabled = 1;
value = {
type = "standard";
parameters = [ 52 21 1441792 ];
};
};
"31" = {
enabled = 1;
value = {
type = "standard";
parameters = [ 52 21 1179648 ];
};
};
};
"NSGlobalDomain" = {
"AppleMenuBarVisibleInFullscreen" = true;
};
};
controlcenter = {
BatteryShowPercentage = true;
};
trackpad = {
Clicking = true;
TrackpadThreeFingerDrag = false;
TrackpadRightClick = true;
};
finder = {
AppleShowAllExtensions = true;
ShowPathbar = true;
ShowStatusBar = true;
FXPreferredViewStyle = "clmv";
NewWindowTarget = "Home";
ShowExternalHardDrivesOnDesktop = false;
ShowHardDrivesOnDesktop = false;
FXEnableExtensionChangeWarning = false;
_FXShowPosixPathInTitle = true;
};
dock = {
tilesize = 48;
largesize = 64;
magnification = true;
orientation = "bottom";
mineffect = "scale";
autohide = true;
autohide-time-modifier = 0.8;
show-recents = false;
show-process-indicators = true;
static-only = false;
wvous-tl-corner = 1;
wvous-tr-corner = 4;
wvous-bl-corner = 1;
wvous-br-corner = 1;
persistent-apps = [
"/System/Applications/System Settings.app"
"/Applications/Google Chrome.app"
"/System/Applications/Mail.app"
"/Applications/Telegram.app"
"/System/Applications/Calendar.app"
"/Applications/Obsidian.app"
"/Applications/VSCodium.app"
"/Users/michaotic/Applications/Home Manager Apps/kitty.app"
"/System/Applications/Books.app"
"/System/Applications/QuickTime Player.app"
];
};
};
system.activationScripts.postActivation.text = ''
echo "Restarting Dock..."
sudo -u michaotic /usr/bin/killall Dock
'';
security.pam.services.sudo_local.touchIdAuth = true;
}