Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ SSH paste has to use `~/` because the remote home dir is unknown. Your remote us

Each screenshot is sent to every enabled host you've configured. With one host it's just SSH paste; with multiple it broadcasts (fans out) to all of them. Toggle individual hosts on/off in the menu bar to control which ones receive a given screenshot.

**Why does CopyCat use `~/.cache/copycat/` instead of `~/Library/Caches/`?**

So the same path resolves on both your Mac and remote Linux/NixOS hosts. SSH paste types `~/.cache/copycat/screenshot.jpg` into the terminal — that path needs to work on both sides without platform detection or separate configuration. The cache directory is configurable in Settings if you prefer a different location.

**What's the simplest setup?**

Leave SSH off. CopyCat then only intercepts ⌘V locally — no SSH, no remote hosts, no Tailscale needed. Turn SSH on when you want to paste into a remote shell.
Expand Down
4 changes: 4 additions & 0 deletions Sources/CopyCat/Settings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ enum SettingsDefaults {
static let broadcastHotkey: BroadcastHotkey = .cmdV
static let cacheKeepCount = 50

// ~/.cache/copycat/ on all platforms, not ~/Library/Caches/ on macOS.
// SSH paste types this path into the terminal and it must resolve on
// both the local Mac and remote Linux hosts. A single cross-platform
// path keeps that invariant without platform detection or split config.
static var cacheDir: URL {
FileManager.default.homeDirectoryForCurrentUser
.appendingPathComponent(".cache/copycat", isDirectory: true)
Expand Down
Loading