diff --git a/homes/common.nix b/homes/common.nix index 2b452dd..b68983f 100644 --- a/homes/common.nix +++ b/homes/common.nix @@ -16,7 +16,6 @@ in { ./../programs/lsd.nix ./../programs/neovim.nix ./../programs/starship.nix - ./../programs/yt-dlp.nix ]; home = { stateVersion = "23.11"; @@ -108,6 +107,7 @@ in { gh.enable = true; gpg.enable = true; pandoc.enable = true; + yt-dlp.enable = true; }; xdg = { dataFile = { "julia/config/startup.jl".source = ./../dotfiles/startup.jl; }; diff --git a/homes/darwin.nix b/homes/darwin.nix index d3c2982..4fb4601 100644 --- a/homes/darwin.nix +++ b/homes/darwin.nix @@ -1,10 +1,4 @@ { config, lib, pkgs, pkgs-unstable, ... }: { - - imports = [ - ./../modules/defaults.nix - ./../programs/alttab.nix - ./../programs/taskbar.nix - ]; home = { packages = with pkgs; [ asitop diff --git a/modules/defaults.nix b/modules/defaults.nix deleted file mode 100644 index dd5b2d7..0000000 --- a/modules/defaults.nix +++ /dev/null @@ -1,93 +0,0 @@ -# WARNING: This module was "vibe coded" by Claude Sonnet 4.5 Thinking -# Nix modules are mostly boilerplace, so the logic is (mostly) mine, and the -# rest comes from Claude. For reference, here was my prompt: -# -# I would like to write a new module for managing MacOS apps via the `defaults` -# cli. Ideally, the syntax that I want to include in my home-manager config -# should look like: -# -# ```nix -# darwin-defaults = { -# "com.fpfxtknjju.wbgcdolfev" = { -# centerTasksAndButtons = false; -# pinList = [ -# { action = "finderNewWindow"; bundleIdentifier = "com.apple.finder"; } -# { action = "firefoxNewWindow"; bundleIdentifier = "org.mozilla.firefox"; } -# { action = "launchOrActivateApp"; bundleIdentifier = "com.electron.logseq"; } -# ]; -# }; -# "com.lwouis.alt-tab-macos" = { -# screenRecordingPermissionSkipped = true; -# nextWindowGesture = 1; -# }; -# }; -# ``` -# -# This should be fairly easy to implement, as `defaults` accepts (escaped) plist -# strings, and Nix provides lib.generators.toPlist. Can you help me write the -# module, please? - -{ config, lib, pkgs, ... }: -let - inherit (pkgs.stdenv.hostPlatform) isDarwin; - inherit (lib) mkOption types mkIf; - inherit (lib.generators) toPlist; - - cfg = config.defaults; - - # Convert domain settings to defaults import command - domainToScript = domain: settings: - let - plistContent = toPlist { escape = true; } settings; - escapedDomain = lib.escapeShellArg domain; - in '' - $DRY_RUN_CMD echo "Applying defaults for ${domain}..." - $DRY_RUN_CMD /usr/bin/defaults import -app ${escapedDomain} - <<'EOF' - ${plistContent} - EOF - $DRY_RUN_CMD killall ${escapedDomain} && open -a ${escapedDomain} - ''; - - # Generate all activation scripts - activationScript = - lib.concatStringsSep "\n" (lib.mapAttrsToList domainToScript cfg); - -in { - options.defaults = mkOption { - type = types.attrsOf (types.attrsOf types.anything); - default = { }; - description = '' - Configuration for macOS defaults by domain. - - Each attribute set key represents a domain (typically an app bundle identifier), - and its value is an attribute set of preference keys and values that will be - converted to a plist and imported using the `defaults` command. - - This module only works on macOS (Darwin) systems. - ''; - example = lib.literalExpression '' - { - "com.apple.dock" = { - autohide = true; - tilesize = 48; - orientation = "left"; - }; - "com.apple.finder" = { - AppleShowAllFiles = true; - ShowPathbar = true; - FXEnableExtensionChangeWarning = false; - }; - } - ''; - }; - - config = mkIf (isDarwin && cfg != { }) { - home.activation.defaults = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - if [[ -x /usr/bin/defaults ]]; then - ${activationScript} - else - echo "Warning: /usr/bin/defaults not found. Skipping darwin-defaults configuration." - fi - ''; - }; -} diff --git a/programs/alttab.nix b/programs/alttab.nix deleted file mode 100644 index 1901f4d..0000000 --- a/programs/alttab.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: { - defaults."AltTab" = { - appearanceStyle = 0; - nextWindowGesture = 1; - screenRecordingPermissionSkipped = true; - showFullscreenWindows = 0; - showHiddenWindows = 1; - updatePolicy = 2; - }; -} diff --git a/programs/taskbar.nix b/programs/taskbar.nix deleted file mode 100644 index 992c1f6..0000000 --- a/programs/taskbar.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ ... }: { - defaults."Taskbar" = { - centerTasksAndButtons = false; - hideReviewOptions = true; - permissionsResetOnce = true; - pinList = [ - { - action = "finderNewWindow"; - bundleIdentifier = "com.apple.finder"; - } - { - action = "launchOrActivateApp"; - bundleIdentifier = "com.apple.AppStore"; - } - { - action = "firefoxNewWindow"; - bundleIdentifier = "org.mozilla.firefox"; - } - { - action = "launchOrActivateApp"; - bundleIdentifier = "com.apple.systempreferences"; - } - { - action = "launchOrActivateApp"; - bundleIdentifier = "com.electron.logseq"; - } - { - action = "launchOrActivateApp"; - bundleIdentifier = "org.mozilla.thunderbird"; - } - { - action = "launchOrActivateApp"; - bundleIdentifier = - "com.apple.Safari.WebApp.2F51A6D0-087A-438F-92D3-A73FE09CB4CC"; - } - { - action = "launchOrActivateApp"; - bundleIdentifier = - "com.apple.Safari.WebApp.5EC6478E-03A6-4147-8A4D-6EF3DE3F06D3"; - } - ]; - sendCrashReports = true; - showMenubarIcon = false; - showThumbnails = true; - showWindowTitleInThumbails = true; - taskViewMaxWidth = 200; - updatePolicy = 0; - }; -} diff --git a/programs/yt-dlp.nix b/programs/yt-dlp.nix deleted file mode 100644 index fa2069a..0000000 --- a/programs/yt-dlp.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs-unstable, ... }: { - programs.yt-dlp = { - enable = true; - package = pkgs-unstable.yt-dlp; - }; -} diff --git a/systems/darwin/corianne.nix b/systems/darwin/corianne.nix index db34258..9628dcd 100644 --- a/systems/darwin/corianne.nix +++ b/systems/darwin/corianne.nix @@ -39,10 +39,9 @@ in { system.primaryUser = "millironx"; system.defaults.dock = { - autohide = true; + autohide = false; minimize-to-application = true; mru-spaces = false; - orientation = "left"; persistent-apps = let dedupDotApp = appName: if pkgs.lib.strings.hasSuffix ".app" appName then @@ -70,10 +69,20 @@ in { }; in [ (sysApp "Firefox") + (chromeApp "Messages") + (sysApp "Signal") (sysApp "Thunderbird") + (localApp "Immich") (sysApp "Logseq") (sysApp "Zed") (sysApp "Steam") + (sysApp "Amperfy") + (sysApp "Microsoft Word") + (sysApp "Microsoft Excel") + (sysApp "Microsoft PowerPoint") + (localApp "Canvas") + (sysApp "Zotero") + (localApp "VetPrep") (chromeApp "Instinct Dashboard") (chromeApp "Carestream") ]; @@ -204,7 +213,6 @@ in { "slack" "stats" "steam" - "taskbar" "textmate" "thunderbird@esr" "ungoogled-chromium"