From 0959c9c2c3ad26a9819c10f888bc48f9039060a3 Mon Sep 17 00:00:00 2001 From: Natalie Date: Thu, 1 May 2025 12:41:47 -0700 Subject: [PATCH] add defaults.nix --- hosts/desktop/configuration.nix | 5 +- hosts/laptop/configuration.nix | 88 +--------------------- lib/mkSystem.nix | 3 +- modules/macos/default.nix | 7 ++ modules/macos/system.nix | 94 +++++++++++++++++++++++ modules/macos/tiling/aerospace.nix | 117 +++++++++++++++++++++++++++++ modules/macos/tiling/default.nix | 5 ++ modules/nixos/default.nix | 8 ++ modules/shared/default.nix | 6 ++ 9 files changed, 240 insertions(+), 93 deletions(-) create mode 100644 modules/macos/default.nix create mode 100644 modules/macos/system.nix create mode 100644 modules/macos/tiling/aerospace.nix create mode 100644 modules/macos/tiling/default.nix create mode 100644 modules/nixos/default.nix create mode 100644 modules/shared/default.nix diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 5571838..d2b5048 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -8,10 +8,7 @@ # Include the results of the hardware scan. ./hardware-configuration.nix - ../../modules/nixos/nvidia.nix - ../../modules/nixos/boot.nix - ../../modules/nixos/ld.nix - ../../modules/nixos/services.nix + ../../modules/nixos ]; programs = { gamemode.enable = true; diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index f1915a0..bed5bba 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -1,6 +1,6 @@ {pkgs, ...}: { imports = [ - ../../modules/macos/homebrew.nix + ../../modules/macos ]; environment.systemPackages = with pkgs; [ @@ -25,90 +25,4 @@ fi ''; }; - - #Use touchid or watch to activate sudo - security.pam.services.sudo_local = { - enable = true; - reattach = true; - touchIdAuth = true; - }; - - # set some OSX preferences that I always end up hunting down and changing. - system = { - # Used for backwards compatibility, please read the changelog before changing. - # $ darwin-rebuild changelog - stateVersion = 6; - - defaults = { - # Turn quaranite off - LaunchServices = { - LSQuarantine = false; - }; - - NSGlobalDomain = { - # Show extensions in finder - AppleShowAllExtensions = true; - #Turn off the hold and press to input special chars - ApplePressAndHoldEnabled = false; - - # 120, 90, 60, 30, 12, 6, 2 - KeyRepeat = 2; - - # 120, 94, 68, 35, 25, 15 - InitialKeyRepeat = 15; - - #Turn off beep noise in terminal - "com.apple.mouse.tapBehavior" = 1; - "com.apple.sound.beep.volume" = 0.0; - "com.apple.sound.beep.feedback" = 0; - - #Ew. - NSAutomaticCapitalizationEnabled = false; - NSAutomaticDashSubstitutionEnabled = false; - NSAutomaticInlinePredictionEnabled = false; - NSAutomaticPeriodSubstitutionEnabled = false; - NSAutomaticQuoteSubstitutionEnabled = false; - NSAutomaticSpellingCorrectionEnabled = false; - NSDisableAutomaticTermination = true; - NSDocumentSaveNewDocumentsToCloud = false; - AppleICUForce24HourTime = true; - }; - # minimal dock - dock = { - autohide = true; - #instant hide and show - autohide-time-modifier = 0.0; - show-process-indicators = true; - - expose-group-apps = true; - - show-recents = true; - static-only = true; - - # Scale instead of shrink - mineffect = "scale"; - - orientation = "bottom"; - }; - # Better finder settings - finder = { - _FXShowPosixPathInTitle = true; - FXDefaultSearchScope = "SCcf"; - AppleShowAllExtensions = true; - ShowPathbar = true; - FXEnableExtensionChangeWarning = false; - }; - CustomSystemPreferences = { - "com.apple.universalaccess" = { - closeViewTrackpadGestureZoomEnabled = 1; - }; - }; - }; - - # Bind caps to escape for better normal mode stuff - keyboard = { - enableKeyMapping = true; - remapCapsLockToEscape = true; - }; - }; } diff --git a/lib/mkSystem.nix b/lib/mkSystem.nix index 435f9fd..10ced2c 100644 --- a/lib/mkSystem.nix +++ b/lib/mkSystem.nix @@ -63,8 +63,7 @@ in # Enable caching for nix-index so we dont have to rebuild it #shared modules - ../modules/shared/extras.nix - ../modules/shared/nix.nix + ../modules/shared # Link to config.nix hostConfig diff --git a/modules/macos/default.nix b/modules/macos/default.nix new file mode 100644 index 0000000..6296980 --- /dev/null +++ b/modules/macos/default.nix @@ -0,0 +1,7 @@ +{pkgs, ...}: { + imports = [ + ./homebrew.nix + ./system.nix + # ./tiling + ]; +} diff --git a/modules/macos/system.nix b/modules/macos/system.nix new file mode 100644 index 0000000..36d4a6d --- /dev/null +++ b/modules/macos/system.nix @@ -0,0 +1,94 @@ +{pkgs, ...}: { + #Use touchid or watch to activate sudo + security.pam.services.sudo_local = { + enable = true; + reattach = true; + touchIdAuth = true; + }; + # set some OSX preferences that I always end up hunting down and changing. + system = { + # Used for backwards compatibility, please read the changelog before changing. + # $ darwin-rebuild changelog + stateVersion = 6; + + defaults = { + # Turn quaranite off + LaunchServices = { + LSQuarantine = false; + }; + + NSGlobalDomain = { + # Show extensions in finder + AppleShowAllExtensions = true; + #Turn off the hold and press to input special chars + ApplePressAndHoldEnabled = false; + + # 120, 90, 60, 30, 12, 6, 2 + KeyRepeat = 2; + + # 120, 94, 68, 35, 25, 15 + InitialKeyRepeat = 15; + + #Turn off beep noise in terminal + "com.apple.mouse.tapBehavior" = 1; + "com.apple.sound.beep.volume" = 0.0; + "com.apple.sound.beep.feedback" = 0; + + #Ew. + NSAutomaticCapitalizationEnabled = false; + NSAutomaticDashSubstitutionEnabled = false; + NSAutomaticInlinePredictionEnabled = false; + NSAutomaticPeriodSubstitutionEnabled = false; + NSAutomaticQuoteSubstitutionEnabled = false; + NSAutomaticSpellingCorrectionEnabled = false; + NSDisableAutomaticTermination = true; + NSDocumentSaveNewDocumentsToCloud = false; + AppleICUForce24HourTime = true; + }; + # minimal dock + dock = { + autohide = true; + #instant hide and show + autohide-time-modifier = 0.0; + show-process-indicators = true; + + expose-group-apps = true; + + show-recents = true; + static-only = true; + + # Scale instead of shrink + mineffect = "scale"; + + orientation = "bottom"; + }; + # Better finder settings + finder = { + _FXShowPosixPathInTitle = true; + FXDefaultSearchScope = "SCcf"; + AppleShowAllExtensions = true; + ShowPathbar = true; + FXEnableExtensionChangeWarning = false; + }; + CustomSystemPreferences = { + "com.apple.universalaccess" = { + closeViewTrackpadGestureZoomEnabled = 1; + }; + + "com.apple.symbolichotkeys" = { + AppleSymbolicHotKeys = { + "64" = { + enabled = false; + }; + }; + }; + }; + }; + + # Bind caps to escape for better normal mode stuff + keyboard = { + enableKeyMapping = true; + remapCapsLockToEscape = true; + }; + }; +} diff --git a/modules/macos/tiling/aerospace.nix b/modules/macos/tiling/aerospace.nix new file mode 100644 index 0000000..8d042d8 --- /dev/null +++ b/modules/macos/tiling/aerospace.nix @@ -0,0 +1,117 @@ +{pkgs, ...}: { + services.aerospace = { + enable = true; + settings = { + # Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization + enable-normalization-flatten-containers = true; + enable-normalization-opposite-orientation-for-nested-containers = true; + + # See: https://nikitabobko.github.io/AeroSpace/guide#layouts + # The 'accordion-padding' specifies the size of accordion padding + # You can set 0 to disable the padding feature + accordion-padding = 0; + + # Possible values: tiles|accordion + default-root-container-layout = "tiles"; + + # Possible values: horizontal|vertical|auto + # "auto" means: wide monitor (anything wider than high) gets horizontal orientation, + # tall monitor (anything higher than wide) gets vertical orientation + default-root-container-orientation = "auto"; + + key-mapping.preset = "qwerty"; + + gaps = { + inner = { + horizontal = 0; + vertical = 0; + }; + outer = { + left = 0; + bottom = 0; + top = 0; + right = 0; + }; + }; + # You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag + # Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key + # Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app + automatically-unhide-macos-hidden-apps = true; + + mode.main.binding = { + # See: https://nikitabobko.github.io/AeroSpace/commands#layout + alt-slash = "layout tiles horizontal vertical"; + alt-comma = "layout accordion horizontal vertical"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#focus + alt-h = "focus left"; + alt-j = "focus down"; + alt-k = "focus up"; + alt-l = "focus right"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#move + alt-shift-h = "move left"; + alt-shift-j = "move down"; + alt-shift-k = "move up"; + alt-shift-l = "move right"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#resize + alt-minus = "resize smart -50"; + alt-equal = "resize smart +50"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#workspace + cmd-1 = "workspace 1"; + cmd-2 = "workspace 2"; + cmd-3 = "workspace 3"; + cmd-4 = "workspace 4"; + cmd-5 = "workspace 5"; + cmd-6 = "workspace 6"; + cmd-7 = "workspace 7"; + cmd-8 = "workspace 8"; + cmd-9 = "workspace 9"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace + cmd-shift-1 = "move-node-to-workspace 1"; + cmd-shift-2 = "move-node-to-workspace 2"; + cmd-shift-3 = "move-node-to-workspace 3"; + cmd-shift-4 = "move-node-to-workspace 4"; + cmd-shift-5 = "move-node-to-workspace 5"; + cmd-shift-6 = "move-node-to-workspace 6"; + cmd-shift-7 = "move-node-to-workspace 7"; + cmd-shift-8 = "move-node-to-workspace 8"; + cmd-shift-9 = "move-node-to-workspace 9"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth + alt-tab = "workspace-back-and-forth"; + # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor + alt-shift-tab = "move-workspace-to-monitor --wrap-around next"; + + # See: https://nikitabobko.github.io/AeroSpace/commands#mode + alt-shift-semicolon = "mode service"; + }; + mode.service.binding = { + esc = ["reload-config" "mode main"]; + r = ["flatten-workspace-tree" "mode main"]; # reset layout + f = ["layout floating tiling" "mode main"]; # Toggle between floating and tiling layout + backspace = ["close-all-windows-but-current" "mode main"]; + + # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2 + #s = ["layout sticky tiling", "mode main"] + + alt-shift-h = ["join-with left" "mode main"]; + alt-shift-j = ["join-with down" "mode main"]; + alt-shift-k = ["join-with up" "mode main"]; + alt-shift-l = ["join-with right" "mode main"]; + + down = "volume down"; + up = "volume up"; + shift-down = ["volume set 0" "mode main"]; + }; + exec-on-workspace-change = [ + "/bin/bash" + "-c" + "/run/current-system/sw/bin/sketchybar --trigger aerospace_workspace_change FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE" + ]; + }; + }; +} diff --git a/modules/macos/tiling/default.nix b/modules/macos/tiling/default.nix new file mode 100644 index 0000000..b817a6a --- /dev/null +++ b/modules/macos/tiling/default.nix @@ -0,0 +1,5 @@ +{pkgs, ...}: { + imports = [ + ./aerospace.nix + ]; +} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix new file mode 100644 index 0000000..7ae65d7 --- /dev/null +++ b/modules/nixos/default.nix @@ -0,0 +1,8 @@ +{pkgs, ...}: { + imports = [ + ./boot.nix + ./ld.nix + ./nvidia.nix + ./services.nix + ]; +} diff --git a/modules/shared/default.nix b/modules/shared/default.nix new file mode 100644 index 0000000..383c1a1 --- /dev/null +++ b/modules/shared/default.nix @@ -0,0 +1,6 @@ +{pkgs, ...}: { + imports = [ + ./extras.nix + ./nix.nix + ]; +}