diff --git a/hosts/darwin/home-default.nix b/hosts/darwin/home-default.nix index 0cb61ca..6795947 100644 --- a/hosts/darwin/home-default.nix +++ b/hosts/darwin/home-default.nix @@ -18,7 +18,6 @@ ../../modules/tex.nix ../../modules/fonts.nix ../../modules/linearmouse.nix - ../../modules/cursor.nix ]; nixpkgs.config.allowUnfree = true; @@ -233,44 +232,44 @@ # Uses duti to set default applications for file types via Launch Services home.activation.setFileAssociations = config.lib.dag.entryAfter ["writeBoundary"] '' # Text and code files - open with TextMate - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .txt all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .md all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .markdown all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .nix all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .sh all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .bash all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .zsh all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .fish all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .py all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .js all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .ts all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .jsx all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .tsx all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .json all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .yaml all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .yml all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .toml all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .xml all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .css all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .log all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .csv all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .conf all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .config all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .ini all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .env all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .c all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .cpp all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .h all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .hpp all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .rs all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .go all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .java all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .rb all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .php all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .lua all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .vim all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .tex all - run ${pkgs.duti}/bin/duti -s com.todesktop.230313mzl4w4u92 .bib all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .txt all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .md all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .markdown all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .nix all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .sh all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .bash all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .zsh all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .fish all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .py all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .js all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .ts all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .jsx all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .tsx all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .json all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .yaml all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .yml all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .toml all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .xml all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .css all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .log all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .csv all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .conf all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .config all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .ini all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .env all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .c all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .cpp all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .h all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .hpp all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .rs all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .go all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .java all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .rb all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .php all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .lua all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .vim all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .tex all + run ${pkgs.duti}/bin/duti -s com.macromates.TextMate .bib all # Documents - PDF with PDF Expert run ${pkgs.duti}/bin/duti -s com.readdle.PDFExpert-Mac .pdf all diff --git a/hosts/darwin/system-default.nix b/hosts/darwin/system-default.nix index e845945..e21b316 100644 --- a/hosts/darwin/system-default.nix +++ b/hosts/darwin/system-default.nix @@ -49,7 +49,6 @@ dashboard-in-overlay = false; # Show Dashboard as overlay persistent-apps = [ "/Applications/Ghostty.app" - "/Applications/Cursor.app" "/Applications/Firefox.app" "/Applications/Obsidian.app" "/Applications/KeePassXC.app" diff --git a/modules/cursor.nix b/modules/cursor.nix deleted file mode 100644 index 32e9a6e..0000000 --- a/modules/cursor.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ config, pkgs, lib, ... }: - -with lib; - -let - cfg = config.programs.cursor; - - configDir = if pkgs.stdenv.isDarwin - then "Library/Application Support/Cursor/User" - else ".config/Cursor/User"; - - cursorCmd = if pkgs.stdenv.isDarwin - then "/opt/homebrew/bin/cursor" - else "cursor"; - - extensions = [ - "vscodevim.vim" - "jdinhlife.gruvbox" - "jnoortheen.nix-ide" - "tomoki1207.pdf" - ]; - - ideSettings = { - "editor.fontFamily" = "'JetBrainsMono Nerd Font Mono', 'Noto Sans CJK SC', 'Noto Sans CJK TC', 'Noto Sans CJK JP', monospace"; - "editor.fontSize" = 14; - "editor.tabSize" = 2; - "editor.insertSpaces" = true; - "editor.wordWrap" = "off"; - "editor.lineNumbers" = "on"; - "editor.autoIndent" = "advanced"; - - "workbench.colorTheme" = "Gruvbox Dark Hard"; - - "git.openRepositoryInParentFolders" = "never"; - "extensions.ignoreRecommendations" = true; - "cursor.cpp.disabledLanguages" = [ - "plaintext" - ]; - - "vim.leader" = ""; - "vim.useSystemClipboard" = true; - "vim.normalModeKeyBindingsNonRecursive" = [ - { before = ["" "w"]; commands = ["workbench.action.files.save"]; } - { before = ["" "q"]; commands = ["workbench.action.closeActiveEditor"]; } - { before = ["" "e"]; commands = ["workbench.action.toggleSidebarVisibility"]; } - { before = [""]; commands = ["workbench.action.previousEditor"]; } - { before = [""]; commands = ["workbench.action.nextEditor"]; } - { before = ["" "x"]; commands = ["workbench.action.closeActiveEditor"]; } - { before = ["" "X"]; commands = ["workbench.action.closeOtherEditors"]; } - { before = ["" "t"]; commands = ["workbench.action.quickOpen"]; } - { before = ["" "g"]; commands = ["workbench.action.findInFiles"]; } - { before = ["" "f"]; commands = ["revealFileInOS"]; } - { before = [""]; commands = ["workbench.action.focusSideBar"]; } - { before = [""]; commands = ["workbench.action.focusActiveEditorGroup"]; } - ]; - }; - - cliConfig = {}; - -in -{ - options.programs.cursor = { - package = mkOption { - type = types.nullOr types.package; - default = null; - example = "pkgs.code-cursor"; - description = "Cursor package to use. Set to null on Darwin to use Homebrew-installed Cursor, or pkgs.code-cursor on NixOS."; - }; - }; - - config = { - home.packages = mkIf (cfg.package != null) [ cfg.package ]; - - home.file."${configDir}/settings.json" = { - text = builtins.toJSON ideSettings; - }; - - home.file.".cursor/cli-config.json" = { - text = builtins.toJSON cliConfig; - }; - - home.activation.installCursorExtensions = config.lib.dag.entryAfter ["writeBoundary"] '' - if command -v ${cursorCmd} &> /dev/null; then - desired="${lib.concatStringsSep " " extensions}" - installed=$(${cursorCmd} --list-extensions 2>/dev/null | tr '[:upper:]' '[:lower:]') - - for ext in $installed; do - if ! echo "$desired" | tr '[:upper:]' '[:lower:]' | grep -qw "$ext"; then - run ${cursorCmd} --uninstall-extension "$ext" &> /dev/null || true - fi - done - - for ext in ${lib.concatStringsSep " " extensions}; do - run ${cursorCmd} --install-extension "$ext" &> /dev/null || true - done - fi - ''; - }; -} diff --git a/modules/homebrew.nix b/modules/homebrew.nix index 2f58c56..965b664 100644 --- a/modules/homebrew.nix +++ b/modules/homebrew.nix @@ -14,7 +14,7 @@ ]; casks = [ # GUI applications - manually installed apps now managed by Homebrew - "cursor" + "textmate" "keepassxc" "keycastr" "inkscape"