diff --git a/PRIVACY.md b/PRIVACY.md
index 8c141a9b..bdb022e3 100644
--- a/PRIVACY.md
+++ b/PRIVACY.md
@@ -108,7 +108,7 @@ When you explicitly click one of the links in **Settings → About**, CoPanda op
- **Sponsor the project** → `https://github.com/sponsors/rgdevment`
- **Buy me a coffee** → `https://buymeacoffee.com/rgdevment`
- **Rate it on the Store** (Windows only) → opens the Microsoft Store app on CoPanda's review page
-- **Other tools** → `https://rgdevment.com/tisty/` and `https://rgdevment.com/linkunbound/`
+- **Other tools** → `https://www.tisty.app/` and `https://www.linkunbound.app/`
The same goes for a link you open from a card in the panel. If [LinkUnbound](https://github.com/rgdevment/LinkUnbound) is installed, these web links go through it so it can pick the browser; otherwise they go straight to your default browser.
diff --git a/README.md b/README.md
index 8f302f07..32b2357a 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
CoPanda (formerly CopyPaste) — Free Open Source Clipboard Manager
An extra thumb for your clipboard.
@@ -92,23 +92,23 @@ This isn't a company product. I'm a developer who needed a better **copy paste**
## See CoPanda in Action
-
+
Fast search, clean cards, and a native feel across Windows and macOS.
-
+
-
-
+
+
-
-
+
+
-
-
+
+
---
@@ -675,19 +675,13 @@ way you work.
I build free, open source tools focused on privacy and productivity. If you like CoPanda, you might also find these useful:
-
-
-
-
-
-
-### [LinkUnbound](https://rgdevment.com/linkunbound/)
+###
[LinkUnbound](https://www.linkunbound.app/)
A free, open source browser picker for Windows and Mac. Every link you click gets intercepted — domain rules open the assigned browser instantly, or a small picker appears near your cursor to let you choose. Resolves Microsoft SafeLinks and redirect wrappers before matching rules.
No ads. No telemetry. No accounts. Everything local.
-### [Tisty](https://rgdevment.com/tisty/)
+###
[Tisty](https://www.tisty.app/)
Notes, documents and tasks that stay on your machine, in plain files you can read
without it. Same rules as everything else here: no accounts, no telemetry, no cloud.
diff --git a/app/src-tauri/capabilities/default.json b/app/src-tauri/capabilities/default.json
index b6168aca..c653017a 100644
--- a/app/src-tauri/capabilities/default.json
+++ b/app/src-tauri/capabilities/default.json
@@ -17,6 +17,12 @@
{
"url": "https://rgdevment.com/*"
},
+ {
+ "url": "https://www.tisty.app/*"
+ },
+ {
+ "url": "https://www.linkunbound.app/*"
+ },
{
"url": "https://github.com/*"
},
diff --git a/app/src/index.css b/app/src/index.css
index 19c4c28b..38a0deac 100644
--- a/app/src/index.css
+++ b/app/src/index.css
@@ -873,15 +873,10 @@ button:disabled {
}
.tool .ico {
- width: 24px;
- height: 24px;
+ width: 28px;
+ height: 28px;
flex: none;
- display: grid;
- place-items: center;
- border-radius: var(--r-inset);
- color: #ffffff;
- font-size: var(--fs-small);
- font-weight: 600;
+ object-fit: contain;
}
.tool b {
@@ -1508,7 +1503,8 @@ button:disabled {
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .welcome-panda,
:root:not([data-theme="light"]) .welcome-mark,
- :root:not([data-theme="light"]) .brow .mark {
+ :root:not([data-theme="light"]) .brow .mark,
+ :root:not([data-theme="light"]) .tool .ico {
filter: drop-shadow(0 0 1px rgb(248 250 255 / 0.9))
drop-shadow(0 0 10px rgb(248 250 255 / 0.25));
}
@@ -1516,7 +1512,8 @@ button:disabled {
:root[data-theme="dark"] .welcome-panda,
:root[data-theme="dark"] .welcome-mark,
-:root[data-theme="dark"] .brow .mark {
+:root[data-theme="dark"] .brow .mark,
+:root[data-theme="dark"] .tool .ico {
filter: drop-shadow(0 0 1px rgb(248 250 255 / 0.9)) drop-shadow(0 0 10px rgb(248 250 255 / 0.25));
}
diff --git a/app/src/linkunbound.svg b/app/src/linkunbound.svg
new file mode 100644
index 00000000..7470f0dd
--- /dev/null
+++ b/app/src/linkunbound.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/tests/links.test.ts b/app/src/tests/links.test.ts
index a9cd6071..1d7ebb51 100644
--- a/app/src/tests/links.test.ts
+++ b/app/src/tests/links.test.ts
@@ -5,7 +5,7 @@ import { LINKS } from "../ui/About";
type Allowed = { url: string };
type Permission = string | { identifier: string; allow?: Allowed[] };
-const TOOLS = ["https://rgdevment.com/tisty/", "https://rgdevment.com/linkunbound/"];
+const TOOLS = ["https://www.tisty.app/", "https://www.linkunbound.app/"];
function allowed(): string[] {
const said = readFileSync("src-tauri/capabilities/default.json", "utf8");
@@ -40,7 +40,7 @@ describe("the links in About", () => {
it("the other tools lead to their own page, not to the repository", () => {
for (const url of TOOLS) {
- expect(url.startsWith("https://rgdevment.com/")).toBe(true);
+ expect(url.startsWith("https://github.com/")).toBe(false);
}
});
});
diff --git a/app/src/tisty.svg b/app/src/tisty.svg
new file mode 100644
index 00000000..8a91cb0b
--- /dev/null
+++ b/app/src/tisty.svg
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/ui/About.tsx b/app/src/ui/About.tsx
index 3d099cda..81fc0dc9 100644
--- a/app/src/ui/About.tsx
+++ b/app/src/ui/About.tsx
@@ -3,9 +3,11 @@ import { invoke } from "@tauri-apps/api/core";
import { openUrl, revealItemInDir } from "@tauri-apps/plugin-opener";
import { useEffect, useRef, useState } from "react";
import { licences, notices, type Route, useUpdate } from "../core";
+import linkunbound from "../linkunbound.svg";
import { fill, t } from "../locales";
import { composed } from "../markdown";
import panda from "../panda.svg";
+import tisty from "../tisty.svg";
import { CloudOff, Code, Gift, Info, Key } from "./Icons";
const STARS = "https://github.com/rgdevment/CopyPaste";
@@ -57,15 +59,15 @@ function Newer() {
const TOOLS = [
{
name: "Tisty",
- hue: "#7c6cf0",
+ icon: tisty,
says: "toolTisty",
- at: "https://rgdevment.com/tisty/",
+ at: "https://www.tisty.app/",
},
{
name: "LinkUnbound",
- hue: "#3fbfa6",
+ icon: linkunbound,
says: "toolLinkUnbound",
- at: "https://rgdevment.com/linkunbound/",
+ at: "https://www.linkunbound.app/",
},
];
@@ -266,9 +268,7 @@ export default function About() {
{t("otherTools")}
{TOOLS.map((tool) => (
go(tool.at)}>
-
- {tool.name.slice(0, 1)}
-
+
{tool.name}
diff --git a/resources/CoPanda/copanda-guardian.svg b/resources/brand/copanda-guardian.svg
similarity index 100%
rename from resources/CoPanda/copanda-guardian.svg
rename to resources/brand/copanda-guardian.svg
diff --git a/resources/CoPanda/copanda-head.svg b/resources/brand/copanda-head.svg
similarity index 100%
rename from resources/CoPanda/copanda-head.svg
rename to resources/brand/copanda-head.svg
diff --git a/resources/CoPanda/copanda-mono.svg b/resources/brand/copanda-mono.svg
similarity index 100%
rename from resources/CoPanda/copanda-mono.svg
rename to resources/brand/copanda-mono.svg
diff --git a/resources/CoPanda/copanda-shield.svg b/resources/brand/copanda-shield.svg
similarity index 100%
rename from resources/CoPanda/copanda-shield.svg
rename to resources/brand/copanda-shield.svg
diff --git a/resources/legacy/Config.png b/resources/legacy/v1/Config.png
similarity index 100%
rename from resources/legacy/Config.png
rename to resources/legacy/v1/Config.png
diff --git a/resources/legacy/ConfigCopyPaste.png b/resources/legacy/v1/ConfigCopyPaste.png
similarity index 100%
rename from resources/legacy/ConfigCopyPaste.png
rename to resources/legacy/v1/ConfigCopyPaste.png
diff --git a/resources/legacy/CopyPasteCompactMode.png b/resources/legacy/v1/CopyPasteCompactMode.png
similarity index 100%
rename from resources/legacy/CopyPasteCompactMode.png
rename to resources/legacy/v1/CopyPasteCompactMode.png
diff --git a/resources/legacy/CopyPasteCompactModeFill.png b/resources/legacy/v1/CopyPasteCompactModeFill.png
similarity index 100%
rename from resources/legacy/CopyPasteCompactModeFill.png
rename to resources/legacy/v1/CopyPasteCompactModeFill.png
diff --git a/resources/CopyPasteLogo.ico b/resources/legacy/v1/CopyPasteLogo.ico
similarity index 100%
rename from resources/CopyPasteLogo.ico
rename to resources/legacy/v1/CopyPasteLogo.ico
diff --git a/resources/CopyPasteLogo.png b/resources/legacy/v1/CopyPasteLogo.png
similarity index 100%
rename from resources/CopyPasteLogo.png
rename to resources/legacy/v1/CopyPasteLogo.png
diff --git a/resources/CopyPasteLogoSimple.ico b/resources/legacy/v1/CopyPasteLogoSimple.ico
similarity index 100%
rename from resources/CopyPasteLogoSimple.ico
rename to resources/legacy/v1/CopyPasteLogoSimple.ico
diff --git a/resources/CopyPasteLogoSimple.png b/resources/legacy/v1/CopyPasteLogoSimple.png
similarity index 100%
rename from resources/CopyPasteLogoSimple.png
rename to resources/legacy/v1/CopyPasteLogoSimple.png
diff --git a/resources/CopyPasteNotification.ico b/resources/legacy/v1/CopyPasteNotification.ico
similarity index 100%
rename from resources/CopyPasteNotification.ico
rename to resources/legacy/v1/CopyPasteNotification.ico
diff --git a/resources/CopyPasteNotification.png b/resources/legacy/v1/CopyPasteNotification.png
similarity index 100%
rename from resources/CopyPasteNotification.png
rename to resources/legacy/v1/CopyPasteNotification.png
diff --git a/resources/HeroImage.png b/resources/legacy/v1/HeroImage.png
similarity index 100%
rename from resources/HeroImage.png
rename to resources/legacy/v1/HeroImage.png
diff --git a/resources/legacy/SampleCompact.png b/resources/legacy/v1/SampleCompact.png
similarity index 100%
rename from resources/legacy/SampleCompact.png
rename to resources/legacy/v1/SampleCompact.png
diff --git a/resources/legacy/Samples.gif b/resources/legacy/v1/Samples.gif
similarity index 100%
rename from resources/legacy/Samples.gif
rename to resources/legacy/v1/Samples.gif
diff --git a/resources/social.png b/resources/legacy/v1/social.png
similarity index 100%
rename from resources/social.png
rename to resources/legacy/v1/social.png
diff --git a/resources/copypaste_v2_en_1_panel.png b/resources/legacy/v2/copypaste_v2_en_1_panel.png
similarity index 100%
rename from resources/copypaste_v2_en_1_panel.png
rename to resources/legacy/v2/copypaste_v2_en_1_panel.png
diff --git a/resources/copypaste_v2_en_2_categories.png b/resources/legacy/v2/copypaste_v2_en_2_categories.png
similarity index 100%
rename from resources/copypaste_v2_en_2_categories.png
rename to resources/legacy/v2/copypaste_v2_en_2_categories.png
diff --git a/resources/copypaste_v2_en_3_settings.png b/resources/legacy/v2/copypaste_v2_en_3_settings.png
similarity index 100%
rename from resources/copypaste_v2_en_3_settings.png
rename to resources/legacy/v2/copypaste_v2_en_3_settings.png
diff --git a/resources/copypaste_v2_en_4_multiplatform.png b/resources/legacy/v2/copypaste_v2_en_4_multiplatform.png
similarity index 100%
rename from resources/copypaste_v2_en_4_multiplatform.png
rename to resources/legacy/v2/copypaste_v2_en_4_multiplatform.png
diff --git a/resources/icon_app_256.png b/resources/legacy/v2/icon_app_256.png
similarity index 100%
rename from resources/icon_app_256.png
rename to resources/legacy/v2/icon_app_256.png
diff --git a/resources/3.2/en-1-hero.png b/resources/screens/3.2/en-1-hero.png
similarity index 100%
rename from resources/3.2/en-1-hero.png
rename to resources/screens/3.2/en-1-hero.png
diff --git a/resources/3.2/en-2-filters.png b/resources/screens/3.2/en-2-filters.png
similarity index 100%
rename from resources/3.2/en-2-filters.png
rename to resources/screens/3.2/en-2-filters.png
diff --git a/resources/3.2/en-3-paste-as.png b/resources/screens/3.2/en-3-paste-as.png
similarity index 100%
rename from resources/3.2/en-3-paste-as.png
rename to resources/screens/3.2/en-3-paste-as.png
diff --git a/resources/3.2/en-4-privacy.png b/resources/screens/3.2/en-4-privacy.png
similarity index 100%
rename from resources/3.2/en-4-privacy.png
rename to resources/screens/3.2/en-4-privacy.png
diff --git a/resources/3.2/en-5-settings.png b/resources/screens/3.2/en-5-settings.png
similarity index 100%
rename from resources/3.2/en-5-settings.png
rename to resources/screens/3.2/en-5-settings.png
diff --git a/resources/3.2/en-6-free.png b/resources/screens/3.2/en-6-free.png
similarity index 100%
rename from resources/3.2/en-6-free.png
rename to resources/screens/3.2/en-6-free.png
diff --git a/resources/3.2/en-7-panda.png b/resources/screens/3.2/en-7-panda.png
similarity index 100%
rename from resources/3.2/en-7-panda.png
rename to resources/screens/3.2/en-7-panda.png
diff --git a/resources/3.2/es-1-hero.png b/resources/screens/3.2/es-1-hero.png
similarity index 100%
rename from resources/3.2/es-1-hero.png
rename to resources/screens/3.2/es-1-hero.png
diff --git a/resources/3.2/es-2-filters.png b/resources/screens/3.2/es-2-filters.png
similarity index 100%
rename from resources/3.2/es-2-filters.png
rename to resources/screens/3.2/es-2-filters.png
diff --git a/resources/3.2/es-3-paste-as.png b/resources/screens/3.2/es-3-paste-as.png
similarity index 100%
rename from resources/3.2/es-3-paste-as.png
rename to resources/screens/3.2/es-3-paste-as.png
diff --git a/resources/3.2/es-4-privacy.png b/resources/screens/3.2/es-4-privacy.png
similarity index 100%
rename from resources/3.2/es-4-privacy.png
rename to resources/screens/3.2/es-4-privacy.png
diff --git a/resources/3.2/es-5-settings.png b/resources/screens/3.2/es-5-settings.png
similarity index 100%
rename from resources/3.2/es-5-settings.png
rename to resources/screens/3.2/es-5-settings.png
diff --git a/resources/3.2/es-6-free.png b/resources/screens/3.2/es-6-free.png
similarity index 100%
rename from resources/3.2/es-6-free.png
rename to resources/screens/3.2/es-6-free.png
diff --git a/resources/3.2/es-7-panda.png b/resources/screens/3.2/es-7-panda.png
similarity index 100%
rename from resources/3.2/es-7-panda.png
rename to resources/screens/3.2/es-7-panda.png
diff --git a/resources/demo.gif b/resources/screens/demo.gif
similarity index 100%
rename from resources/demo.gif
rename to resources/screens/demo.gif