remove macos and nix-darwin related config
This commit is contained in:
parent
e8d42b488a
commit
0f8fe62245
16 changed files with 62 additions and 640 deletions
|
|
@ -1,191 +0,0 @@
|
|||
{ config, pkgs, nixvim, claude-code, firefox-addons, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
nixvim.homeModules.nixvim
|
||||
../../modules/nvim.nix
|
||||
../../modules/tmux.nix
|
||||
../../modules/zsh.nix
|
||||
../../modules/ssh.nix
|
||||
../../modules/git.nix
|
||||
../../modules/lazygit.nix
|
||||
../../modules/papis.nix
|
||||
../../modules/termscp.nix
|
||||
../../modules/rsync.nix
|
||||
../../modules/btop.nix
|
||||
../../modules/firefox.nix
|
||||
../../modules/ghostty.nix
|
||||
../../modules/syncthing.nix
|
||||
../../modules/dictionary.nix
|
||||
../../modules/yt-dlp.nix
|
||||
../../modules/claude-code.nix
|
||||
../../modules/tex.nix
|
||||
../../config/fonts.nix
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Firefox configuration
|
||||
programs.firefox-custom = {
|
||||
enable = true;
|
||||
package = null; # Use system Firefox on Darwin
|
||||
};
|
||||
|
||||
# Ghostty configuration
|
||||
programs.ghostty-custom = {
|
||||
enable = true;
|
||||
package = null; # Use Homebrew-installed Ghostty on Darwin
|
||||
windowMode = "windowed";
|
||||
windowWidth = 999;
|
||||
windowHeight = 999;
|
||||
};
|
||||
|
||||
# Claude Code configuration
|
||||
programs.claude-code-custom = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.username = "yanlin";
|
||||
home.homeDirectory = "/Users/yanlin";
|
||||
home.stateVersion = "24.05";
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# darwin-specific alias
|
||||
programs.zsh.shellAliases = {
|
||||
oss = "sudo darwin-rebuild switch --flake ~/.config/nix#$(hostname)";
|
||||
|
||||
preview = "open -a Preview";
|
||||
slide = "open -a SlidePilot";
|
||||
|
||||
# Network monitoring aliases
|
||||
bw = "sudo bandwhich";
|
||||
bw-raw = "sudo bandwhich --raw";
|
||||
bw-dns = "sudo bandwhich --show-dns";
|
||||
};
|
||||
|
||||
# Darwin-specific zsh functions
|
||||
programs.zsh.initContent = ''
|
||||
# Function to search and open all macOS applications
|
||||
function app() {
|
||||
local app_path
|
||||
local file_to_open="$1"
|
||||
|
||||
app_path=$( (find -L /Applications -name "*.app" -maxdepth 2 2>/dev/null; \
|
||||
find -L ~/Applications -name "*.app" -maxdepth 3 2>/dev/null; \
|
||||
find /System/Applications -name "*.app" -maxdepth 2 2>/dev/null; \
|
||||
find /System/Applications/Utilities -name "*.app" -maxdepth 1 2>/dev/null) |
|
||||
sort | uniq |
|
||||
fzf --header="Select app to open''${file_to_open:+ file: $file_to_open}" \
|
||||
--preview 'basename {} .app' \
|
||||
--preview-window=up:1 \
|
||||
--height=40%)
|
||||
|
||||
if [[ -n "$app_path" ]]; then
|
||||
if [[ -n "$file_to_open" ]]; then
|
||||
open -a "$app_path" "$file_to_open"
|
||||
else
|
||||
open "$app_path"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# SSH tunnel functions for easy VPN-like functionality
|
||||
function tunnel-on() {
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Usage: tunnel-on <host>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local host="$1"
|
||||
local port=1080 # Use port 1080 (standard SOCKS port)
|
||||
|
||||
# Check if there's already an active tunnel
|
||||
local existing_tunnel=$(ps aux | grep -E "ssh -D $port" | grep -v grep)
|
||||
if [[ -n "$existing_tunnel" ]]; then
|
||||
echo "Existing tunnel detected. Switching to $host..."
|
||||
echo "Stopping current tunnel..."
|
||||
pkill -f "ssh -D $port"
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
echo "Starting SOCKS tunnel to $host on port $port..."
|
||||
|
||||
# Start SSH tunnel in background
|
||||
ssh -D $port -N -f "$host"
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo "Tunnel established. Configuring system proxy..."
|
||||
|
||||
# Configure system proxy
|
||||
networksetup -setsocksfirewallproxy "Wi-Fi" localhost $port
|
||||
networksetup -setsocksfirewallproxystate "Wi-Fi" on
|
||||
|
||||
echo "✓ System proxy enabled on Wi-Fi (localhost:$port -> $host)"
|
||||
else
|
||||
echo "✗ Failed to establish tunnel to $host"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function tunnel-off() {
|
||||
local port=1080
|
||||
echo "Disabling system proxy..."
|
||||
networksetup -setsocksfirewallproxystate "Wi-Fi" off
|
||||
echo "✓ System proxy disabled"
|
||||
|
||||
echo "Stopping SSH tunnels..."
|
||||
pkill -f "ssh -D $port"
|
||||
echo "✓ SSH tunnels stopped"
|
||||
}
|
||||
|
||||
function tunnel-status() {
|
||||
local port=1080
|
||||
echo "=== System Proxy Status ==="
|
||||
networksetup -getsocksfirewallproxy "Wi-Fi" | grep -E "Enabled|Server|Port"
|
||||
|
||||
echo ""
|
||||
echo "=== Active SSH Tunnels ==="
|
||||
local tunnels=$(ps aux | grep -E "ssh -D $port" | grep -v grep)
|
||||
if [[ -n "$tunnels" ]]; then
|
||||
echo "$tunnels"
|
||||
else
|
||||
echo "No active SSH tunnels"
|
||||
fi
|
||||
}
|
||||
'';
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# Network and file transfer
|
||||
lftp
|
||||
httpie
|
||||
openssh
|
||||
gnumake
|
||||
|
||||
# Network diagnostic tools
|
||||
bind # DNS utilities (dig, nslookup, mdig)
|
||||
inetutils # Network utilities (telnet)
|
||||
netcat-gnu # Network connection utility
|
||||
curl # HTTP client
|
||||
wget # Web downloader
|
||||
bandwhich # Terminal bandwidth utilization tool
|
||||
|
||||
# Command-line utilities
|
||||
ncdu
|
||||
git-credential-oauth
|
||||
zoxide
|
||||
delta
|
||||
fastfetch
|
||||
coreutils # GNU core utilities (base64, etc.)
|
||||
|
||||
# macOS-specific GUI applications
|
||||
maccy # Clipboard manager (macOS-only)
|
||||
iina # Media player (macOS-optimized)
|
||||
hidden-bar # Menu bar organizer (macOS-only)
|
||||
|
||||
# Development and build tools
|
||||
python312
|
||||
uv
|
||||
lazysql
|
||||
sqlite
|
||||
];
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../home-default.nix
|
||||
];
|
||||
|
||||
# MacBook Air-specific home configuration
|
||||
# Example: Laptop-specific tools, power management, etc.
|
||||
|
||||
# yt-dlp configuration
|
||||
programs.yt-dlp-custom = {
|
||||
enable = true;
|
||||
downloadDir = "~/Downloads/Videos";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# MacBook Air-specific configuration
|
||||
networking.computerName = "imac";
|
||||
networking.hostName = "imac";
|
||||
|
||||
# Import common Darwin configuration
|
||||
imports = [
|
||||
../system-default.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../home-default.nix
|
||||
];
|
||||
|
||||
# MacBook Air-specific home configuration
|
||||
# Example: Laptop-specific tools, power management, etc.
|
||||
|
||||
# yt-dlp configuration
|
||||
programs.yt-dlp-custom = {
|
||||
enable = true;
|
||||
downloadDir = "~/Downloads/Videos";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# MacBook Air-specific configuration
|
||||
networking.computerName = "mba";
|
||||
networking.hostName = "mba";
|
||||
|
||||
# Import common Darwin configuration
|
||||
imports = [
|
||||
../system-default.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -1,159 +0,0 @@
|
|||
{ config, pkgs, nix-homebrew, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../modules/homebrew.nix
|
||||
nix-homebrew.darwinModules.nix-homebrew
|
||||
];
|
||||
|
||||
# Nix configuration
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
nix.settings.substituters = [
|
||||
"https://cache.nixos.org/"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://devenv.cachix.org"
|
||||
];
|
||||
nix.settings.trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||
];
|
||||
|
||||
# System configuration
|
||||
system.stateVersion = 6;
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# Set primary user for system preferences
|
||||
system.primaryUser = "yanlin";
|
||||
|
||||
# Security configuration - passwordless sudo for yanlin
|
||||
security.sudo.extraConfig = ''
|
||||
yanlin ALL=(ALL) NOPASSWD: ALL
|
||||
'';
|
||||
|
||||
system.defaults = {
|
||||
dock = {
|
||||
autohide = true; # Automatically hide and show the dock
|
||||
autohide-delay = 0.2; # Delay before showing the dock (in seconds)
|
||||
autohide-time-modifier = 0.5; # Animation duration for dock show/hide
|
||||
orientation = "bottom"; # Dock position: "bottom", "left", or "right"
|
||||
tilesize = 48; # Size of dock icons (16-128)
|
||||
magnification = false; # Enable magnification when hovering
|
||||
minimize-to-application = false; # Minimize windows to application icon
|
||||
show-recents = true; # Show recent applications in dock
|
||||
show-process-indicators = true; # Show dots under running apps
|
||||
static-only = false; # Show only open applications
|
||||
mru-spaces = false; # Automatically rearrange spaces based on use
|
||||
expose-animation-duration = 0.5; # Mission Control animation speed
|
||||
dashboard-in-overlay = false; # Show Dashboard as overlay
|
||||
persistent-apps = [
|
||||
"/Applications/Firefox.app"
|
||||
"/Applications/Obsidian.app"
|
||||
"/Applications/Ghostty.app"
|
||||
"/Applications/KeePassXC.app"
|
||||
];
|
||||
persistent-others = [
|
||||
"/Users/yanlin/Desktop"
|
||||
"/Users/yanlin/Downloads"
|
||||
"/Users/yanlin/Documents"
|
||||
]; # List of folders/files to keep in dock
|
||||
|
||||
# Hot Corners - Actions:
|
||||
# 1 = Disabled, 2 = Mission Control, 3 = Application Windows,
|
||||
# 4 = Desktop, 5 = Start Screen Saver, 6 = Disable Screen Saver,
|
||||
# 7 = Dashboard, 10 = Put Display to Sleep, 11 = Launchpad,
|
||||
# 12 = Notification Center, 13 = Lock Screen, 14 = Quick Note
|
||||
wvous-tl-corner = 1; # Top left corner action
|
||||
wvous-tr-corner = 1; # Top right corner action
|
||||
wvous-bl-corner = 1; # Bottom left corner action
|
||||
wvous-br-corner = 1; # Bottom right corner action
|
||||
};
|
||||
|
||||
finder = {
|
||||
AppleShowAllExtensions = true; # Show all file extensions
|
||||
AppleShowAllFiles = true; # Show hidden files
|
||||
CreateDesktop = true; # Show icons on desktop
|
||||
FXEnableExtensionChangeWarning = false; # Warn when changing file extension
|
||||
FXPreferredViewStyle = "Nlsv"; # Default view: "icnv"=Icon, "Nlsv"=List, "clmv"=Column, "glyv"=Gallery
|
||||
QuitMenuItem = false; # Allow quitting Finder with ⌘Q
|
||||
ShowPathbar = true; # Show path bar at bottom
|
||||
ShowStatusBar = true; # Show status bar at bottom
|
||||
_FXShowPosixPathInTitle = false; # Show full POSIX path in title
|
||||
_FXSortFoldersFirst = true; # Sort folders before files
|
||||
};
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Global Domain Settings (NSGlobalDomain)
|
||||
# --------------------------------------------------------------------------
|
||||
NSGlobalDomain = {
|
||||
AppleInterfaceStyle = "Dark"; # Dark mode: "Dark" or remove for light
|
||||
AppleInterfaceStyleSwitchesAutomatically = false; # Auto switch dark/light
|
||||
NSAutomaticWindowAnimationsEnabled = true; # Window animations
|
||||
NSDocumentSaveNewDocumentsToCloud = false; # Save to iCloud by default
|
||||
NSNavPanelExpandedStateForSaveMode = true; # Expand save panel by default
|
||||
PMPrintingExpandedStateForPrint = true; # Expand print panel by default
|
||||
NSTableViewDefaultSizeMode = 2; # Sidebar icon size: 1=small, 2=medium, 3=large
|
||||
AppleShowScrollBars = "WhenScrolling"; # "WhenScrolling", "Automatic", or "Always"
|
||||
NSScrollAnimationEnabled = true; # Smooth scrolling
|
||||
NSWindowResizeTime = 0.2; # Window resize animation duration
|
||||
_HIHideMenuBar = false; # Auto-hide menu bar
|
||||
|
||||
NSAutomaticCapitalizationEnabled = false; # Disable automatic capitalization
|
||||
NSAutomaticDashSubstitutionEnabled = false; # Disable smart dashes
|
||||
NSAutomaticPeriodSubstitutionEnabled = false; # Disable automatic period with double-space
|
||||
NSAutomaticQuoteSubstitutionEnabled = false; # Disable smart quotes
|
||||
NSAutomaticSpellingCorrectionEnabled = false; # Disable auto-correction
|
||||
NSAutomaticInlinePredictionEnabled = false; # Disable inline predictive text
|
||||
"com.apple.keyboard.fnState" = false; # Use F1, F2, etc. as standard function keys
|
||||
};
|
||||
|
||||
screencapture = {
|
||||
disable-shadow = true; # Disable shadow in screenshots
|
||||
location = "~/Desktop"; # Default save location
|
||||
type = "png"; # Screenshot format: png, jpg, pdf, etc.
|
||||
show-thumbnail = true; # Show thumbnail after taking screenshot
|
||||
};
|
||||
|
||||
loginwindow = {
|
||||
GuestEnabled = false; # Disable guest account
|
||||
ShutDownDisabled = false; # Allow shutdown from login window
|
||||
RestartDisabled = false; # Allow restart from login window
|
||||
SleepDisabled = false; # Allow sleep from login window
|
||||
};
|
||||
|
||||
spaces = {
|
||||
spans-displays = false; # Each display has separate spaces
|
||||
};
|
||||
};
|
||||
|
||||
system.activationScripts.extraActivation.text = ''
|
||||
sudo -u yanlin defaults -currentHost write -globalDomain NSStatusItemSpacing -int 10
|
||||
|
||||
# Disable Spotlight indexing for all volumes
|
||||
# WARNING: This will break Mail.app search, Time Machine, and other features
|
||||
# To re-enable: sudo mdutil -a -i on
|
||||
sudo mdutil -a -i off
|
||||
sudo mdutil -E /
|
||||
|
||||
/System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u
|
||||
'';
|
||||
|
||||
# Key remapping using hidutil via launchd agent
|
||||
# This swaps Control and Caps Lock keys bidirectionally
|
||||
launchd.user.agents.remap-keys = {
|
||||
serviceConfig = {
|
||||
ProgramArguments = [
|
||||
"/usr/bin/hidutil"
|
||||
"property"
|
||||
"--set"
|
||||
''{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x7000000E0},{"HIDKeyboardModifierMappingSrc":0x7000000E0,"HIDKeyboardModifierMappingDst":0xFF00000003}]}''
|
||||
];
|
||||
RunAtLoad = true;
|
||||
KeepAlive = false;
|
||||
Label = "org.nixos.remap-keys";
|
||||
StandardErrorPath = "/tmp/remap-keys.err";
|
||||
StandardOutPath = "/tmp/remap-keys.out";
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue