2023-09-19 00:17:43 +00:00
{ lib , pkgs , . . . }:
{
imports = [
./networking
./packages
./users
2023-09-19 22:35:55 +00:00
./input.nix
2023-09-19 00:17:43 +00:00
] ;
fonts . fonts = with pkgs ; [
( nerdfonts . override { fonts = [ " F i r a C o d e " " J e t B r a i n s M o n o " ] ; } )
] ;
# Allow unfree applications
nixpkgs . config . allowUnfreePredicate = pkg : builtins . elem ( lib . getName pkg ) [
#"vscode"
" s p o t i f y "
" k e k a " # i thought it was opensource
] ;
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment . systemPackages = with pkgs ; [
#neovim
#vscode
] ;
# 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";
nix . settings . experimental-features = [ " n i x - c o m m a n d " " f l a k e s " ] ;
# Create /etc/zshrc that loads the nix-darwin environment.
programs . zsh . enable = true ; # default shell on catalina
programs . fish . enable = true ;
2023-09-20 02:07:33 +00:00
services = {
yabai = {
enable = true ;
enableScriptingAddition = true ;
config = {
layout = " b s p " ;
mouse_modifier = " f n " ;
# very broken on slow cpu
#focus_follows_mouse = "autoraise";
#mouse_follows_focus = "on";
top_padding = 10 ;
bottom_padding = 10 ;
left_padding = 10 ;
right_padding = 10 ;
window_gap = 4 ;
} ;
} ;
skhd = {
enable = true ;
skhdConfig = ''
cmd - return : open - n $ { pkgs . alacritty } /Applications/Alacritty.app
2023-09-20 02:35:12 +00:00
cmd - 1 : yabai - m space - - focus 1 # Focus space
cmd - 2 : yabai - m space - - focus 2
cmd - 3 : yabai - m space - - focus 3
cmd - 4 : yabai - m space - - focus 4
cmd - 5 : yabai - m space - - focus 5
shift + cmd - 1 : yabai - m window - - space 1 # Send to space
shift + cmd - 2 : yabai - m window - - space 2
shift + cmd - 3 : yabai - m window - - space 3
shift + cmd - 4 : yabai - m window - - space 4
shift + cmd - 5 : yabai - m window - - space 5
2023-09-20 02:07:33 +00:00
'' ;
} ;
} ;
2023-09-19 23:05:27 +00:00
system . defaults = {
2023-09-19 22:50:52 +00:00
# Apple... Do I really have to change literally
2023-09-20 01:30:29 +00:00
# every setting in macOS to make it actually usable.
#
# Through this... you will see why I say macOS is a terriable mess.
#
2023-09-19 23:05:27 +00:00
# NOTE: default of those options is `null` (unmanaged)
2023-09-20 01:30:29 +00:00
# https://github.com/mathiasbynens/dotfiles/blob/main/.macos for references
2023-09-19 23:05:27 +00:00
finder = {
_FXShowPosixPathInTitle = false ;
AppleShowAllExtensions = true ;
AppleShowAllFiles = true ;
CreateDesktop = false ;
2023-09-20 01:30:29 +00:00
FXDefaultSearchScope = " S C c f " ; # "SCcf" = Current folder
2023-09-19 23:05:27 +00:00
FXEnableExtensionChangeWarning = false ;
2023-09-20 01:30:29 +00:00
FXPreferredViewStyle = " N l s v " ; # "icnv" = Icon view, "Nlsv" = List view, "clmv" = Column View, "Flwv" = Gallery View
2023-09-19 23:05:27 +00:00
QuitMenuItem = true ;
ShowPathbar = true ;
ShowStatusBar = false ;
} ;
2023-09-19 23:10:58 +00:00
loginwindow = {
autoLoginUser = " O f f " ;
DisableConsoleAccess = true ;
GuestEnabled = false ;
} ;
2023-09-19 23:05:27 +00:00
menuExtraClock = {
IsAnalog = false ;
Show24Hour = false ;
ShowAMPM = true ;
2023-09-20 01:30:29 +00:00
ShowDate = 0 ; # 0 = show, 1, 2 = don't show
2023-09-19 23:05:27 +00:00
ShowDayOfMonth = true ;
ShowDayOfWeek = true ;
ShowSeconds = false ;
} ;
2023-09-20 01:30:29 +00:00
NSGlobalDomain = {
" c o m . a p p l e . k e y b o a r d . f n S t a t e " = true ;
" c o m . a p p l e . m o u s e . t a p B e h a v i o r " = 1 ;
" c o m . a p p l e . s o u n d . b e e p . f e e d b a c k " = 0 ;
" c o m . a p p l e . s p r i n g i n g . e n a b l e d " = true ;
" c o m . a p p l e . s w i p e s c r o l l d i r e c t i o n " = true ; # Natrual scrolling
" c o m . a p p l e . t r a c k p a d . e n a b l e S e c o n d a r y C l i c k " = true ;
" c o m . a p p l e . t r a c k p a d . t r a c k p a d C o r n e r C l i c k B e h a v i o r " = null ; # ??? "null or value 1 (singular enum)"
#"com.apple.trackpad.scaling" = -1;
_HIHideMenuBar = false ;
AppleEnableMouseSwipeNavigateWithScrolls = true ; # Magic Mouse
AppleEnableSwipeNavigateWithScrolls = true ; # Trackpad
AppleFontSmoothing = 1 ; # https://github.com/kevinSuttle/macOS-Defaults/issues/17#issuecomment-266633501
AppleICUForce24HourTime = false ;
AppleInterfaceStyle = " D a r k " ; # "null or value "Dark" (singular enum)"
AppleInterfaceStyleSwitchesAutomatically = false ;
AppleKeyboardUIMode = 3 ; # ??? "null or value 3 (singular enum)"
AppleMeasurementUnits = " C e n t i m e t e r s " ; # "null or one of "Centimeters", "Inches""
ApplePressAndHoldEnabled = false ; # DOES NOT WORK... https://stackoverflow.com/questions/33152551/how-can-i-disable-applepressandholdenabled-for-a-specific-application-repeat#33497193
AppleScrollerPagingBehavior = false ;
#AppleShowAllExtensions = true; # Dupelicate?
#AppleShowAllFiles = true;
AppleShowScrollBars = " A l w a y s " ;
AppleTemperatureUnit = " C e l s i u s " ; # "null or one of "Celsius", "Fahrenheit""
#AppleWindowTabbingMode # ?
InitialKeyRepeat = 10 ;
KeyRepeat = 1 ;
NSAutomaticCapitalizationEnabled = false ;
NSAutomaticDashSubstitutionEnabled = false ;
NSAutomaticPeriodSubstitutionEnabled = false ;
NSAutomaticQuoteSubstitutionEnabled = false ;
NSAutomaticSpellingCorrectionEnabled = false ;
#NSAutomaticWindowAnimationsEnabled
NSDisableAutomaticTermination = true ;
NSDocumentSaveNewDocumentsToCloud = false ;
NSNavPanelExpandedStateForSaveMode = true ;
NSNavPanelExpandedStateForSaveMode2 = true ;
NSScrollAnimationEnabled = true ;
#NSTableViewDefaultSizeMode
NSTextShowsControlCharacters = true ;
NSUseAnimatedFocusRing = false ;
NSWindowResizeTime = 0 .001 ;
PMPrintingExpandedStateForPrint = true ;
PMPrintingExpandedStateForPrint2 = true ;
} ;
2023-09-19 22:50:52 +00:00
} ;
2023-09-19 00:17:43 +00:00
# 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 ;
}