diff --git a/app.vue b/app.vue index 7aefe7f..23cefe2 100644 --- a/app.vue +++ b/app.vue @@ -33,9 +33,9 @@ {{ truncateContent(item.content) }} -
+ {{ filteredHistory[selectedIndex]?.content || '' }} -
+ @@ -44,18 +44,19 @@ import { ref, computed, onMounted, watch, nextTick } from 'vue'; import Database from '@tauri-apps/plugin-sql'; import { register, unregister, isRegistered } from '@tauri-apps/plugin-global-shortcut'; -import { writeText } from '@tauri-apps/plugin-clipboard-manager'; +import { writeText, paste } from '@tauri-apps/plugin-clipboard-manager'; import { OverlayScrollbarsComponent } from "overlayscrollbars-vue"; import 'overlayscrollbars/overlayscrollbars.css'; import { app, window } from '@tauri-apps/api'; import { platform } from '@tauri-apps/plugin-os'; import { invoke } from '@tauri-apps/api/core'; import { enable, isEnabled } from "@tauri-apps/plugin-autostart"; +import { listen } from '@tauri-apps/api/event'; +const db = ref(null); const history = ref([]); const searchQuery = ref(''); const selectedIndex = ref(0); -const isVisible = ref(false); const resultsContainer = ref(null); const selectedElement = ref(null); const os = platform(); @@ -127,11 +128,8 @@ const pasteSelectedItem = async () => { const selectedItem = filteredHistory.value[selectedIndex.value]; if (selectedItem) { await writeText(selectedItem.content); - isVisible.value = false; - await app.hide(); - await window.getCurrent().hide(); - await window.getCurrent().setFocus(); - await invoke('simulate_paste'); + await hideApp(); + await invoke("simulate_paste"); } }; @@ -143,31 +141,32 @@ const truncateContent = (content) => { }; onMounted(async () => { - const db = await Database.load('sqlite:data.db'); - history.value = await db.select('SELECT * FROM history ORDER BY timestamp DESC'); - - if (await isRegistered("MetaLeft+V")) { - await unregister("MetaLeft+V") - } - - await register('MetaLeft+V', (event) => { - if (event.state === "MetaLeft+V") { - if (isVisible.value == true) { - app.hide() - isVisible.value = false; - } else { - app.show() - isVisible.value = true; - selectedIndex.value = 0; - } - } - }); + db.value = await Database.load('sqlite:data.db'); + await refreshHistory(); if (!await isEnabled()) { await enable() } + + await listen('tauri://blur', hideApp); }); +const refreshHistory = async () => { + history.value = await db.value.select('SELECT * FROM history ORDER BY timestamp DESC'); +}; + +const hideApp = async () => { + await app.hide(); + await window.getCurrent().hide(); +}; + +const showApp = async () => { + await refreshHistory(); + await app.show(); + await window.getCurrent().show(); + selectedIndex.value = 0; +}; + watch(selectedIndex, scrollToSelectedItem); diff --git a/assets/css/style.scss b/assets/css/style.scss index a84b154..bd0a1e6 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss @@ -90,7 +90,7 @@ body, flex-direction: column; padding-inline: 8px; padding-top: 14px; - padding-bottom: 8px; + padding-bottom: 49px; overflow-y: auto; overflow-x: hidden; @@ -115,17 +115,27 @@ body, } .content { - position: fixed; + position: absolute; top: 53px; left: 284px; padding: 10px; + height: calc(100vh - 96px); padding-inline: 14px; - font-family: SFMonoRegular; + font-family: SFMonoRegular !important; font-size: 12px; + border-radius: 10px; + width: calc(100vw - 286px); + white-space: pre-wrap; + word-wrap: break-word; + + div { + border-radius: 10px; + font-family: SFMonoRegular !important; + } } .bottom-bar { - height: 40px; + height: 41px; width: calc(100vw - 2px); backdrop-filter: blur(18px); background-color: rgba(46, 45, 43, 0.8); @@ -140,6 +150,7 @@ body, padding-inline: 12px; align-items: center; font-size: 14px; + border-top: 1px solid $divider; p { color: $text2; diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 051713d..8395e99 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -4078,6 +4078,7 @@ dependencies = [ "gtk", "heck 0.5.0", "http", + "image 0.24.9", "jni", "libc", "log", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index e3a9a30..3c48ff3 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -18,16 +18,16 @@ crate-type = ["staticlib", "cdylib", "rlib"] tauri-build = { version = "2.0.0-beta.18", features = [] } [dependencies] -tauri = { version = "2.0.0-beta.23", features = ["unstable"] } +tauri = { version = "2.0.0-beta.23", features = ["unstable", "tray-icon", "image-png"] } tauri-plugin-clipboard-manager = "2.1.0-beta.5" tauri-plugin-window-state = "2.0.0-beta.10" tauri-plugin-sql = {version = "2.0.0-beta.8", features = ["sqlite"] } tauri-plugin-global-shortcut = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } tauri-plugin-autostart = "2.0.0-beta.8" +tauri-plugin-os = "2.0.0-beta.7" sqlx = { version = "0.7.4", features = ["runtime-tokio-native-tls", "sqlite"] } serde = { version = "1.0", features = ["derive"] } tokio = { version = "1.0", features = ["full"] } serde_json = "1.0" rdev = "0.5.3" rand = "0.8" -tauri-plugin-os = "2.0.0-beta.7" diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index 218f239..20a43ed 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -37,6 +37,8 @@ "app:allow-app-show", "window:allow-hide", "window:allow-show", - "window:allow-set-focus" + "window:allow-set-focus", + "window:allow-is-focused", + "window:allow-is-visible" ] } \ No newline at end of file diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png index 77e7d23..3f050cf 100644 Binary files a/src-tauri/icons/128x128.png and b/src-tauri/icons/128x128.png differ diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png index 0f7976f..fdf2380 100644 Binary files a/src-tauri/icons/128x128@2x.png and b/src-tauri/icons/128x128@2x.png differ diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png index 98fda06..a0d1940 100644 Binary files a/src-tauri/icons/32x32.png and b/src-tauri/icons/32x32.png differ diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png index f35d84f..e04bced 100644 Binary files a/src-tauri/icons/Square107x107Logo.png and b/src-tauri/icons/Square107x107Logo.png differ diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png index 1823bb2..7c8d8f7 100644 Binary files a/src-tauri/icons/Square142x142Logo.png and b/src-tauri/icons/Square142x142Logo.png differ diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png index dc2b22c..43becc2 100644 Binary files a/src-tauri/icons/Square150x150Logo.png and b/src-tauri/icons/Square150x150Logo.png differ diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png index 0ed3984..bda92c6 100644 Binary files a/src-tauri/icons/Square284x284Logo.png and b/src-tauri/icons/Square284x284Logo.png differ diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png index 60bf0ea..d802ee6 100644 Binary files a/src-tauri/icons/Square30x30Logo.png and b/src-tauri/icons/Square30x30Logo.png differ diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png index c8ca0ad..fe00838 100644 Binary files a/src-tauri/icons/Square310x310Logo.png and b/src-tauri/icons/Square310x310Logo.png differ diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png index 8756459..333af1e 100644 Binary files a/src-tauri/icons/Square44x44Logo.png and b/src-tauri/icons/Square44x44Logo.png differ diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png index 2c8023c..321e370 100644 Binary files a/src-tauri/icons/Square71x71Logo.png and b/src-tauri/icons/Square71x71Logo.png differ diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png index 2c5e603..7ce6968 100644 Binary files a/src-tauri/icons/Square89x89Logo.png and b/src-tauri/icons/Square89x89Logo.png differ diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png index 17d142c..2ee3b0f 100644 Binary files a/src-tauri/icons/StoreLogo.png and b/src-tauri/icons/StoreLogo.png differ diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..2869013 Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..352e4d4 Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..2869013 Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..0218cda Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..e638b6d Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..0218cda Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..4fc8537 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..6dfc727 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..4fc8537 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..72f6d88 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..0c93f0c Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..72f6d88 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..dffb6ea Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..5f580ac Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..dffb6ea Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns index a2993ad..d6129f5 100644 Binary files a/src-tauri/icons/icon.icns and b/src-tauri/icons/icon.icns differ diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico index 06c23c8..cef5c15 100644 Binary files a/src-tauri/icons/icon.ico and b/src-tauri/icons/icon.ico differ diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png index d1756ce..3a2cab0 100644 Binary files a/src-tauri/icons/icon.png and b/src-tauri/icons/icon.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@1x.png b/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000..6d36b86 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/src-tauri/icons/ios/AppIcon-20x20@2x-1.png new file mode 100644 index 0000000..9f4c57b Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x.png b/src-tauri/icons/ios/AppIcon-20x20@2x.png new file mode 100644 index 0000000..9f4c57b Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@3x.png b/src-tauri/icons/ios/AppIcon-20x20@3x.png new file mode 100644 index 0000000..2211213 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@1x.png b/src-tauri/icons/ios/AppIcon-29x29@1x.png new file mode 100644 index 0000000..aa6bd05 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/src-tauri/icons/ios/AppIcon-29x29@2x-1.png new file mode 100644 index 0000000..65bf8e2 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x.png b/src-tauri/icons/ios/AppIcon-29x29@2x.png new file mode 100644 index 0000000..65bf8e2 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@3x.png b/src-tauri/icons/ios/AppIcon-29x29@3x.png new file mode 100644 index 0000000..07278e2 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@1x.png b/src-tauri/icons/ios/AppIcon-40x40@1x.png new file mode 100644 index 0000000..9f4c57b Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png new file mode 100644 index 0000000..e647e4f Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x.png b/src-tauri/icons/ios/AppIcon-40x40@2x.png new file mode 100644 index 0000000..e647e4f Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@3x.png b/src-tauri/icons/ios/AppIcon-40x40@3x.png new file mode 100644 index 0000000..59c8119 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-512@2x.png b/src-tauri/icons/ios/AppIcon-512@2x.png new file mode 100644 index 0000000..e75b342 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-512@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-60x60@2x.png b/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000..59c8119 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-60x60@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-60x60@3x.png b/src-tauri/icons/ios/AppIcon-60x60@3x.png new file mode 100644 index 0000000..860c0db Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-60x60@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-76x76@1x.png b/src-tauri/icons/ios/AppIcon-76x76@1x.png new file mode 100644 index 0000000..dab65f7 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-76x76@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-76x76@2x.png b/src-tauri/icons/ios/AppIcon-76x76@2x.png new file mode 100644 index 0000000..9a6ff01 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-76x76@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000..c5437fc Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png differ diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 5e5d32b..dfcf29a 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -25,7 +25,7 @@ "center": true, "shadow": false, "transparent": true, - "visible": false + "skipTaskbar": true } ], "security": {