mirror of
https://github.com/kogakure/dotfiles.git
synced 2026-02-03 20:25:30 +00:00
feat(nix): migrate MacOS settings to nix-darwin
This commit is contained in:
@@ -33,14 +33,169 @@
|
|||||||
# $ darwin-rebuild changelog
|
# $ darwin-rebuild changelog
|
||||||
system.stateVersion = 4;
|
system.stateVersion = 4;
|
||||||
|
|
||||||
system.defaults.NSGlobalDomain.ApplePressAndHoldEnabled = false;
|
# General UI/UX
|
||||||
system.defaults.dock.autohide = true;
|
system.defaults.NSGlobalDomain = {
|
||||||
|
# Set Dark Mode
|
||||||
|
AppleInterfaceStyle = "Dark";
|
||||||
|
|
||||||
system.defaults.NSGlobalDomain.InitialKeyRepeat = 15;
|
# Set language and text formats
|
||||||
system.defaults.NSGlobalDomain.KeyRepeat = 2;
|
AppleMeasurementUnits = "Centimeters";
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
ApplePressAndHoldEnabled = false;
|
||||||
|
|
||||||
|
# Finder: show all filename extensions
|
||||||
|
AppleShowAllExtensions = true;
|
||||||
|
|
||||||
|
# Set a blazingly fast keyboard repeat rate
|
||||||
|
KeyRepeat = 2;
|
||||||
|
InitialKeyRepeat = 15;
|
||||||
|
|
||||||
|
# Disable automatic capitalization as it’s annoying when typing code
|
||||||
|
NSAutomaticCapitalizationEnabled = false;
|
||||||
|
|
||||||
|
# Disable smart dashes as they’re annoying when typing code
|
||||||
|
NSAutomaticDashSubstitutionEnabled = false;
|
||||||
|
|
||||||
|
# Disable automatic period substitution as it’s annoying when typing code
|
||||||
|
NSAutomaticPeriodSubstitutionEnabled = false;
|
||||||
|
|
||||||
|
# Disable smart quotes as they’re annoying when typing code
|
||||||
|
NSAutomaticQuoteSubstitutionEnabled = false;
|
||||||
|
|
||||||
|
# Disable auto-correct
|
||||||
|
NSAutomaticSpellingCorrectionEnabled = false;
|
||||||
|
|
||||||
|
# Expand save panel by default
|
||||||
|
NSNavPanelExpandedStateForSaveMode = true;
|
||||||
|
NSNavPanelExpandedStateForSaveMode2 = true;
|
||||||
|
|
||||||
|
# Set sidebar icon size
|
||||||
|
NSTableViewDefaultSizeMode = 3;
|
||||||
|
|
||||||
|
# Expand print panel by default
|
||||||
|
PMPrintingExpandedStateForPrint = true;
|
||||||
|
PMPrintingExpandedStateForPrint2 = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Disable the “Are you sure you want to open this application?” dialog
|
||||||
|
system.defaults.LaunchServices.LSQuarantine = false;
|
||||||
|
|
||||||
|
# Reduce Motion
|
||||||
|
system.defaults.universalaccess.reduceMotion = true;
|
||||||
|
|
||||||
|
# Finder
|
||||||
|
system.defaults.finder = {
|
||||||
|
# Finder: show all filename extensions
|
||||||
|
AppleShowAllExtensions = true;
|
||||||
|
|
||||||
|
# When performing a search, search the current folder by default
|
||||||
|
FXDefaultSearchScope = "SCcf";
|
||||||
|
|
||||||
|
# Disable the warning when changing a file extension
|
||||||
|
FXEnableExtensionChangeWarning = false;
|
||||||
|
|
||||||
|
# Show path breadcrumbs in finder windows.
|
||||||
|
ShowPathbar = true;
|
||||||
|
|
||||||
|
# Show status bar at bottom of finder windows with item/disk space stats.
|
||||||
|
ShowStatusBar = true;
|
||||||
|
|
||||||
|
# Change the default finder view. “icnv” = Icon view, “Nlsv” = List view, “clmv” = Column View, “Flwv” = Gallery View
|
||||||
|
FXPreferredViewStyle = "clmv";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Magic Mouse
|
||||||
|
system.defaults.magicmouse.MouseButtonMode = "TwoButton";
|
||||||
|
|
||||||
|
# Dock
|
||||||
|
system.defaults.dock = {
|
||||||
|
# Automatically hide and show the Dock
|
||||||
|
autohide = true;
|
||||||
|
|
||||||
|
# Remove the auto-hiding Dock delay
|
||||||
|
autohide-delay = 0.0;
|
||||||
|
|
||||||
|
# Remove the animation when hiding/showing the Dock
|
||||||
|
autohide-time-modifier = 0.0;
|
||||||
|
|
||||||
|
# Speed up Mission Control animations
|
||||||
|
expose-animation-duration = 0.1;
|
||||||
|
|
||||||
|
# Don’t animate opening applications from the Dock
|
||||||
|
launchanim = false;
|
||||||
|
|
||||||
|
# Change minimize/maximize window effect
|
||||||
|
mineffect = "scale";
|
||||||
|
|
||||||
|
# Minimize windows into their application’s icon
|
||||||
|
minimize-to-application = true;
|
||||||
|
|
||||||
|
# Don’t automatically rearrange Spaces based on most recent use
|
||||||
|
mru-spaces = false;
|
||||||
|
|
||||||
|
# Hide indicator lights for open applications in the Dock
|
||||||
|
show-process-indicators = true;
|
||||||
|
|
||||||
|
# Don’t show recent applications in Dock
|
||||||
|
show-recents = false;
|
||||||
|
|
||||||
|
# Make Dock icons of hidden applications translucent
|
||||||
|
showhidden = true;
|
||||||
|
|
||||||
|
# Set the icon size of Dock items to 36 pixels
|
||||||
|
tilesize = 36;
|
||||||
|
|
||||||
|
# Hot corners
|
||||||
|
wvous-br-corner = 10; # bottom right (Put display to sleep)
|
||||||
|
wvous-tl-corner = 4; # top left (Desktop)
|
||||||
|
wvous-tr-corner = 12; # top right (Mission Control)
|
||||||
|
|
||||||
|
# Apps in the Dock
|
||||||
|
persistent-apps = [
|
||||||
|
"/Applications/Things3.app"
|
||||||
|
"/Applications/Proton\ Mail.app"
|
||||||
|
"/System/Applications/Calendar.app"
|
||||||
|
"/Applications/WezTerm.app"
|
||||||
|
"/Applications/Arc.app"
|
||||||
|
"/Applications/Brave\ Browser.app"
|
||||||
|
"/System/Applications/Messages.app"
|
||||||
|
"/Applications/iA\ Writer.app"
|
||||||
|
"/Applications/Obsidian.app"
|
||||||
|
"/Applications/DEVONthink\ 3.app"
|
||||||
|
"/Applications/Eagle.app"
|
||||||
|
"/Applications/Spotify.app"
|
||||||
|
"/Applications/Anki.app"
|
||||||
|
"/Applications/Proton\ Pass.app"
|
||||||
|
"/System/Applications/System\ Settings.app"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Trackpad, mouse, keyboard, Bluetooth accessories, and input
|
||||||
|
system.defaults.trackpad = {
|
||||||
|
# Whether to enable trackpad tap to click.
|
||||||
|
Clicking = true;
|
||||||
|
|
||||||
|
# Whether to enable trackpad right click.
|
||||||
|
TrackpadRightClick = true;
|
||||||
|
|
||||||
|
# Whether to enable tap-to-drag.
|
||||||
|
Dragging = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Finder
|
||||||
|
system.activationScripts.postActivation.text = ''
|
||||||
|
# Show the ~/Library folder
|
||||||
|
chflags nohidden ~/Library
|
||||||
|
|
||||||
|
# Show the /Volumes folder
|
||||||
|
sudo chflags nohidden /Volumes
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Additional system configurations
|
||||||
|
system.defaults.NSGlobalDomain.AppleKeyboardUIMode = 3;
|
||||||
|
system.defaults.NSGlobalDomain.AppleFontSmoothing = 2;
|
||||||
|
|
||||||
|
# Services
|
||||||
services.skhd.enable = true;
|
services.skhd.enable = true;
|
||||||
services.yabai.enable = true;
|
services.yabai.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,6 +74,7 @@
|
|||||||
"ogdesign-eagle" # Organise all your reference images in one place
|
"ogdesign-eagle" # Organise all your reference images in one place
|
||||||
"ollama" # Get up and running with large language models locally
|
"ollama" # Get up and running with large language models locally
|
||||||
"philips-hue-sync" # Control your smart light system
|
"philips-hue-sync" # Control your smart light system
|
||||||
|
"pictogram" # Customise and maintain app icons
|
||||||
"proton-drive" # Client for Proton Drive
|
"proton-drive" # Client for Proton Drive
|
||||||
"proton-mail" # Client for Proton Mail and Proton Calendar
|
"proton-mail" # Client for Proton Mail and Proton Calendar
|
||||||
"proton-pass" # Desktop client for Proton Pass
|
"proton-pass" # Desktop client for Proton Pass
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, ... }:
|
{ config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -10,5 +10,10 @@
|
|||||||
home = "/Users/kogakure";
|
home = "/Users/kogakure";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||||
|
|
||||||
|
# Screenshots
|
||||||
|
system.defaults.screencapture.location = "${config.users.users.kogakure.home}/Dropbox/Bilder/Screenshots";
|
||||||
|
|
||||||
homebrew = import ./homebrew.nix;
|
homebrew = import ./homebrew.nix;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
echo "Setting up the Mac"
|
echo "Installing asdf plugins and versions"
|
||||||
sudo -v
|
sudo -v
|
||||||
|
|
||||||
# Xcode Developer Tools
|
|
||||||
echo "Installing Xcode Developer Tools"
|
|
||||||
xcode-select --install
|
|
||||||
|
|
||||||
# Neovim
|
# Neovim
|
||||||
echo "Installing Neovim"
|
echo "Installing Neovim"
|
||||||
source ./neovim.sh
|
source ./neovim.sh
|
||||||
@@ -38,7 +34,3 @@ source ./ruby.sh
|
|||||||
# Golang
|
# Golang
|
||||||
echo "Installing Go"
|
echo "Installing Go"
|
||||||
source ./golang.sh
|
source ./golang.sh
|
||||||
|
|
||||||
# MacOS Default Settings
|
|
||||||
echo "Restoring default settings for MacOS"
|
|
||||||
source ./macos.sh
|
|
||||||
194
setup/macos.sh
194
setup/macos.sh
@@ -1,194 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Inspired by https://mths.be/macos
|
|
||||||
|
|
||||||
# Close any open System Preferences panes, to prevent them from overriding
|
|
||||||
# settings we’re about to change
|
|
||||||
osascript -e 'tell application "System Preferences" to quit'
|
|
||||||
|
|
||||||
# Ask for the administrator password upfront
|
|
||||||
sudo -v
|
|
||||||
|
|
||||||
# Keep-alive: update existing `sudo` time stamp until `macos.sh` has finished
|
|
||||||
while true; do
|
|
||||||
sudo -n true
|
|
||||||
sleep 60
|
|
||||||
kill -0 "$$" || exit
|
|
||||||
done 2>/dev/null &
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# General UI/UX #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Set Dark Mode
|
|
||||||
defaults write -g AppleInterfaceStyle Dark
|
|
||||||
|
|
||||||
# Set sidebar icon size
|
|
||||||
defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 3
|
|
||||||
|
|
||||||
# Expand save panel by default
|
|
||||||
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
|
|
||||||
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true
|
|
||||||
|
|
||||||
# Expand print panel by default
|
|
||||||
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
|
|
||||||
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true
|
|
||||||
|
|
||||||
# Disable the “Are you sure you want to open this application?” dialog
|
|
||||||
defaults write com.apple.LaunchServices LSQuarantine -bool false
|
|
||||||
|
|
||||||
# Disable automatic capitalization as it’s annoying when typing code
|
|
||||||
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
|
|
||||||
|
|
||||||
# Disable smart dashes as they’re annoying when typing code
|
|
||||||
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
|
|
||||||
|
|
||||||
# Disable automatic period substitution as it’s annoying when typing code
|
|
||||||
defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -bool false
|
|
||||||
|
|
||||||
# Disable smart quotes as they’re annoying when typing code
|
|
||||||
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
|
|
||||||
|
|
||||||
# Disable auto-correct
|
|
||||||
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
|
|
||||||
|
|
||||||
# Reduce Motion
|
|
||||||
defaults write com.apple.universalaccess reduceMotion -bool true
|
|
||||||
|
|
||||||
# Menu Bar Size
|
|
||||||
defaults write NSGlobalDomain NSTitleBarSize 22
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Set a blazingly fast keyboard repeat rate
|
|
||||||
defaults write NSGlobalDomain KeyRepeat -int 1
|
|
||||||
defaults write NSGlobalDomain InitialKeyRepeat -int 10
|
|
||||||
|
|
||||||
# Set language and text formats
|
|
||||||
defaults write NSGlobalDomain AppleLanguages -array "en-DE" "de-DE" "ja-DE"
|
|
||||||
defaults write NSGlobalDomain AppleLocale -string "en_DE@currency=EUR"
|
|
||||||
defaults write NSGlobalDomain AppleMeasurementUnits -string "Centimeters"
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Screen #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Save screenshots to the desktop
|
|
||||||
defaults write com.apple.screencapture location -string "${HOME}/Dropbox/Bilder/Screenshots"
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Finder #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Set Desktop as the default location for new Finder windows
|
|
||||||
# For other paths, use `PfLo` and `file:///full/path/here/`
|
|
||||||
defaults write com.apple.finder NewWindowTarget -string "PfLo"
|
|
||||||
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/Downloads/"
|
|
||||||
|
|
||||||
# Show/hide icons for hard drives, servers, and removable media on the desktop
|
|
||||||
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false
|
|
||||||
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false
|
|
||||||
defaults write com.apple.finder ShowMountedServersOnDesktop -bool false
|
|
||||||
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true
|
|
||||||
|
|
||||||
# Finder: show all filename extensions
|
|
||||||
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
|
|
||||||
|
|
||||||
# Finder: show status bar
|
|
||||||
defaults write com.apple.finder ShowStatusBar -bool true
|
|
||||||
|
|
||||||
# Finder: show path bar
|
|
||||||
defaults write com.apple.finder ShowPathbar -bool true
|
|
||||||
|
|
||||||
# Keep folders on top when sorting by name
|
|
||||||
defaults write com.apple.finder _FXSortFoldersFirst -bool true
|
|
||||||
|
|
||||||
# When performing a search, search the current folder by default
|
|
||||||
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
|
|
||||||
|
|
||||||
# Disable the warning when changing a file extension
|
|
||||||
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
|
|
||||||
|
|
||||||
# Enable spring loading for directories
|
|
||||||
defaults write NSGlobalDomain com.apple.springing.enabled -bool true
|
|
||||||
|
|
||||||
# Remove the spring loading delay for directories
|
|
||||||
defaults write NSGlobalDomain com.apple.springing.delay -float 0.5
|
|
||||||
|
|
||||||
# Avoid creating .DS_Store files on network or USB volumes
|
|
||||||
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
|
|
||||||
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
|
|
||||||
|
|
||||||
# Disable disk image verification
|
|
||||||
defaults write com.apple.frameworks.diskimages skip-verify -bool true
|
|
||||||
defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true
|
|
||||||
defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true
|
|
||||||
|
|
||||||
# Automatically open a new Finder window when a volume is mounted
|
|
||||||
defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true
|
|
||||||
defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true
|
|
||||||
defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true
|
|
||||||
|
|
||||||
# Show the ~/Library folder
|
|
||||||
chflags nohidden ~/Library
|
|
||||||
|
|
||||||
# Show the /Volumes folder
|
|
||||||
sudo chflags nohidden /Volumes
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Dock, Dashboard, and hot corners #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Set the icon size of Dock items to 36 pixels
|
|
||||||
defaults write com.apple.dock tilesize -int 36
|
|
||||||
|
|
||||||
# Change minimize/maximize window effect
|
|
||||||
defaults write com.apple.dock mineffect -string "scale"
|
|
||||||
|
|
||||||
# Minimize windows into their application’s icon
|
|
||||||
defaults write com.apple.dock minimize-to-application -bool true
|
|
||||||
|
|
||||||
# Disable spring loading for all Dock items
|
|
||||||
defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool false
|
|
||||||
|
|
||||||
# Hide indicator lights for open applications in the Dock
|
|
||||||
defaults write com.apple.dock show-process-indicators -bool true
|
|
||||||
|
|
||||||
# Don’t animate opening applications from the Dock
|
|
||||||
defaults write com.apple.dock launchanim -bool false
|
|
||||||
|
|
||||||
# Speed up Mission Control animations
|
|
||||||
defaults write com.apple.dock expose-animation-duration -float 0.1
|
|
||||||
|
|
||||||
# Don’t automatically rearrange Spaces based on most recent use
|
|
||||||
defaults write com.apple.dock mru-spaces -bool false
|
|
||||||
|
|
||||||
# Remove the auto-hiding Dock delay
|
|
||||||
defaults write com.apple.dock autohide-delay -float 0
|
|
||||||
|
|
||||||
# Remove the animation when hiding/showing the Dock
|
|
||||||
defaults write com.apple.dock autohide-time-modifier -float 0
|
|
||||||
|
|
||||||
# Automatically hide and show the Dock
|
|
||||||
defaults write com.apple.dock autohide -bool true
|
|
||||||
|
|
||||||
# Make Dock icons of hidden applications translucent
|
|
||||||
defaults write com.apple.dock showhidden -bool true
|
|
||||||
|
|
||||||
# Don’t show recent applications in Dock
|
|
||||||
defaults write com.apple.dock show-recents -bool false
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Kill affected applications #
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
for app in "Dock" \
|
|
||||||
"Finder" \
|
|
||||||
"Messages" \
|
|
||||||
"SystemUIServer"; do
|
|
||||||
killall "${app}" &>/dev/null
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Done. Note that some of these changes require a logout/restart to take effect."
|
|
||||||
Reference in New Issue
Block a user