diff --git a/hosts/mac/configuration.nix b/hosts/mac/configuration.nix index 58ee3e3..4507b90 100755 --- a/hosts/mac/configuration.nix +++ b/hosts/mac/configuration.nix @@ -4,9 +4,14 @@ # List packages installed in system profile. To search by name, run: # $ nix-env -qaP | grep wget - environment.systemPackages = [ - pkgs.vim - pkgs.asitop + environment.systemPackages = with pkgs; [ + asitop + mas + python3 + python3Packages.beautifulsoup4 + python3Packages.requests + python3Packages.selenium + vim ]; # Homebrew @@ -14,34 +19,27 @@ homebrew.casks = [ "spotify" "protonvpn" - "firefox" - "discord" - "vmware-horizon-client" + "omnissa-horizon-client" "tg-pro" "steam" "orcaslicer" "vscodium" "epic-games" "wine-stable" + "scroll-reverser" ]; homebrew.masApps = { - # Tailscale = 1475387142; - # Infuse = 1136220934; + Tailscale = 1475387142; + Infuse = 1136220934; Amphetamine = 937984704; - # LunaTask = 1583719331; }; - homebrew.global.autoUpdate = true; + # homebrew.global.autoUpdate = true; - system.defaults.trackpad.Clicking = true; - system.defaults.NSGlobalDomain."com.apple.mouse.tapBehavior" = 1; - system.defaults.dock.autohide = false; - system.defaults.NSGlobalDomain.AppleInterfaceStyle = "Dark"; - system.defaults.NSGlobalDomain."com.apple.keyboard.fnState" = false; - security.pam.enableSudoTouchIdAuth = true; + security.pam.services.sudo_local.touchIdAuth = true; # Auto upgrade nix package and the daemon service. - services.nix-daemon.enable = true; + # services.nix-daemon.enable = true; # nix.package = pkgs.nix; # Necessary for using flakes on this system. @@ -51,12 +49,24 @@ nixpkgs.config.allowUnfree = true; # Create /etc/zshrc that loads the nix-darwin environment. - # programs.zsh.enable = true; # default shell on catalina - programs.fish.enable = true; + programs.zsh.enable = true; # default shell on catalina - # Used for backwards compatibility, please read the changelog before changing. - # $ darwin-rebuild changelog - system.stateVersion = 4; + system = { + defaults = { + trackpad.Clicking = true; + dock.autohide = false; + + NSGlobalDomain = { + AppleInterfaceStyle = "Dark"; + "com.apple.mouse.tapBehavior" = 1; + "com.apple.keyboard.fnState" = false; + }; + }; + + # Used for backwards compatibility, please read the changelog before changing. + # $ darwin-rebuild changelog + stateVersion = 5; + }; # The platform the configuration will be used on. nixpkgs.hostPlatform = "aarch64-darwin"; diff --git a/hosts/mac/home.nix b/hosts/mac/home.nix index 6135d9a..b17214a 100755 --- a/hosts/mac/home.nix +++ b/hosts/mac/home.nix @@ -1,5 +1,22 @@ { ... }: +let + shellAliases = { + update-switch = "darwin-rebuild switch --flake ~/nix-config"; + update-flake = "nix flake update ~/nix-config"; + ducks = "du -cksh * | sort -hr | head -n 15"; + }; + gitAliases = { + co = "checkout"; + ci = "commit"; + cia = "commit --amend"; + s = "status"; + st = "status"; + b = "branch"; + p = "pull --rebase"; + pu = "push"; + }; +in { imports = [ ./trampoline-apps ]; # Home Manager needs a bit of information about you and the @@ -27,23 +44,66 @@ enable = true; }; - htop.enable = true; + btop.enable = true; + + zsh = { + enable = true; + enableCompletion = true; + autosuggestion.enable = true; + syntaxHighlighting.enable = true; + + shellAliases = shellAliases; + + oh-my-zsh = { + enable = true; + plugins = [ "git" ]; + theme = "fishy"; + }; + }; + + librewolf = { + enable = true; + settings = { + "identity.fxaccounts.enabled" = true; # Enable Firefox Accounts + "privacy.clearOnShutdown.history" = false; # Disable clearing history on shutdown + "privacy.clearOnShutdown.downloads" = false; # Disable clearing downloads on shutdown + "privacy.clearOnShutdown.cache" = false; # Disable clearing cache on shutdown + "privacy.clearOnShutdown.cookiesAndStorage" = false; # Disable clearing cookies and storage on shutdown + "privacy.clearOnShutdown.cookies" = false; # Disable clearing cookies on shutdown + "privacy.clearOnShutdown_v2.cache" = false; # Disable clearing cache on shutdown + "privacy.clearOnShutdown_v2.cookiesAndStorage" = false; # Disable clearing cookies and storage on shutdown + "privacy.clearOnShutdown.formdata" = false; # Disable clearing form data on shutdown + "privacy.clearOnShutdown.offlineApps" = false; # Disable clearing offline apps on shutdown + "privacy.clearHistory.cache" = false; # Disable clearing cache on history clear + "privacy.clearHistory.cookiesAndStorage" = false; # Disable clearing cookies on history clear + "privacy.clearHistory.historyFormDataAndDownloads" = false; # Disable clearing history, form data, and downloads on history clear + "privacy.clearHistory.browsingHistoryAndDownloads" = false; # Disable clearing browsing history and downloads on history clear + "privacy.clearSiteData.cache" = false; # Disable clearing cache on site data clear + "privacy.clearSiteData.cookiesAndStorage" = false; # Disable clearing cookies on site data clear + "services.sync.prefs.sync.privacy.clearOnShutdown.cache" = true; # Enable syncing cache clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown.cookies" = true; # Enable syncing cookies clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown.downloads" = true; # Enable syncing downloads clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown.formdata" = true; # Enable syncing form data clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown.history" = true; # Enable syncing history clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps" = true; # Enable syncing offline apps clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown.sessions" = true; # Enable syncing sessions clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings" = true; # Enable syncing site settings clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown_v2.cache" = true; # Enable syncing cache clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown_v2.cookiesAndStorage" = true; # Enable syncing cookies clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown_v2.downloads" = true; # Enable syncing downloads clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown_v2.historyFormDataAndDownloads" = true; # Enable syncing form data clear on shutdown + "services.sync.prefs.sync.privacy.clearOnShutdown_v2.siteSettings" = true; # Enable syncing site settings clear on shutdown + "browser.newtabpage.activity-stream.feeds.topsites" = true; # Enable top sites on new tab page + "browser.newtabpage.activity-stream.topSitesRows" = 3; # Set number of rows for top sites on new tab page + }; + }; }; programs.git = { enable = true; userName = "mjallen18"; userEmail = "matt.l.jallen@gmail.com"; - aliases = { - co = "checkout"; - ci = "commit"; - cia = "commit --amend"; - s = "status"; - st = "status"; - b = "branch"; - # p = "pull --rebase"; - pu = "push"; - }; + aliases = gitAliases; }; # Manage bug in compilations - who uses manpages in 2024 anyways? :P