diff --git a/.github/workflows/main.yml b/.github/workflows/contribute_list.yml
similarity index 92%
rename from .github/workflows/main.yml
rename to .github/workflows/contribute_list.yml
index 7693d6f..5ba5239 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/contribute_list.yml
@@ -1,3 +1,4 @@
+name: Build Contribute List
on:
push:
branches:
diff --git a/.github/workflows/editorconfig-check.yml b/.github/workflows/editorconfig-check.yml
index b8fcbc8..8615b88 100644
--- a/.github/workflows/editorconfig-check.yml
+++ b/.github/workflows/editorconfig-check.yml
@@ -1,4 +1,4 @@
-name: Check if the codebase matches the EditorConfig rules
+name: Check EditorConfig
on:
push:
diff --git a/.github/workflows/pake_build.yaml b/.github/workflows/pake_build.yaml
index 9629479..5dff046 100644
--- a/.github/workflows/pake_build.yaml
+++ b/.github/workflows/pake_build.yaml
@@ -1,10 +1,9 @@
-name: build
+name: Build App
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- "V*"
- workflow_dispatch:
jobs:
build:
@@ -66,24 +65,6 @@ jobs:
run: |
npm run build:all-windows
- # - name: Create Release and Upload Release Asset
- # uses: softprops/action-gh-release@v1
- # if: startsWith(github.ref, 'refs/tags/')
- # with:
- # tag_name: ${{ github.ref }}
- # name: Release ${{ github.ref }}
- # body: TODO New Release.
- # draft: false
- # prerelease: false
- # files: |
- # output/*/*.*
-
- # - uses: ncipollo/release-action@v1
- # if: startsWith(github.ref, 'refs/tags/v')
- # with:
- # allowUpdates: true
- # artifacts: "output/*/*.*"
- # token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload files
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/rust-code-quality-check.yml b/.github/workflows/rust-code-quality-check.yml
index a04433c..0236cf7 100644
--- a/.github/workflows/rust-code-quality-check.yml
+++ b/.github/workflows/rust-code-quality-check.yml
@@ -1,4 +1,4 @@
-name: Check, test and format the Rust part of codebase
+name: Check Rust Code
on:
push:
@@ -40,9 +40,7 @@ jobs:
if: matrix.os == 'ubuntu-latest'
uses: awalsh128/cache-apt-pkgs-action@latest
with:
- packages: >
- libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev
- libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
+ packages: libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev gnome-video-effects gnome-video-effects-extra
version: 1.0
- name: Run unit & integration tests with nextest
run: cargo hack --feature-powerset nextest run
@@ -69,9 +67,7 @@ jobs:
if: matrix.os == 'ubuntu-latest'
uses: awalsh128/cache-apt-pkgs-action@latest
with:
- packages: >
- libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev
- libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev
+ packages: libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev gnome-video-effects gnome-video-effects-extra
version: 1.0
- name: Run all-features code quality checks
run: cargo hack --feature-powerset --no-dev-deps clippy
diff --git a/README.md b/README.md
index 23cfba5..9fc4ea7 100644
--- a/README.md
+++ b/README.md
@@ -262,21 +262,28 @@ Pake 的发展离不开这些 Hacker 们,一起贡献了大量能力,也欢
Dengju Deng
+
+
+
+
+ Fechin
+
+ |
Po Chen
- |
+
+
Hyzhao
- |
-
+
diff --git a/app.csv b/app.csv
index a40c738..d7e2a0d 100644
--- a/app.csv
+++ b/app.csv
@@ -8,5 +8,6 @@ chatgpt,ChatGPT,ChatGPT,https://chat.openai.com/chat
flomo,Flomo,浮墨,https://v.flomoapp.com/mine
qwerty,Qwerty,Qwerty,https://qwerty.kaiyi.cool/
zlibrary,ZLibrary,ZLibrary,https://zlib.cydiar.com/
+tableconvert,TableConvert,TableConvert,https://tableconvert.com/
lizhi,LiZhi,李志,https://lizhi.turkyden.com/?from=pake
weread,WeRead,微信阅读,https://weread.qq.com/
diff --git a/bin/builders/LinuxBuilder.ts b/bin/builders/LinuxBuilder.ts
index cec50b1..df1ee6e 100644
--- a/bin/builders/LinuxBuilder.ts
+++ b/bin/builders/LinuxBuilder.ts
@@ -46,31 +46,31 @@ export default class LinuxBuilder implements IBuilder {
const { name } = options;
await mergeTauriConfig(url, options, tauriConf);
- const _ = await shellExec(`cd ${npmDirectory} && npm install && npm run build`);
- let arch = "";
+ await shellExec(`cd ${npmDirectory} && npm install && npm run build`);
+
+ let arch: string;
if (process.arch === "x64") {
arch = "amd64";
} else {
arch = process.arch;
}
const debName = `${name}_${tauriConf.package.version}_${arch}.deb`;
- const appPath = this.getBuildedAppPath(npmDirectory, "deb", debName);
+ const appPath = this.getBuildAppPath(npmDirectory, "deb", debName);
const distPath = path.resolve(`${name}.deb`);
await fs.copyFile(appPath, distPath);
await fs.unlink(appPath);
-
const appImageName = `${name}_${tauriConf.package.version}_${arch}.AppImage`;
- const appImagePath = this.getBuildedAppPath(npmDirectory, "appimage", appImageName);
+ const appImagePath = this.getBuildAppPath(npmDirectory, "appimage", appImageName);
const distAppPath = path.resolve(`${name}.AppImage`);
await fs.copyFile(appImagePath, distAppPath);
await fs.unlink(appImagePath);
logger.success('Build success!');
logger.success('You can find the deb app installer in', distPath);
- logger.success('You can find the Appimage app installer in', distAppPath);
+ logger.success('You can find the AppImage app installer in', distAppPath);
}
- getBuildedAppPath(npmDirectory: string,packageType: string, packageName: string) {
+ getBuildAppPath(npmDirectory: string, packageType: string, packageName: string) {
return path.join(
npmDirectory,
'src-tauri/target/release/bundle/',
@@ -78,4 +78,4 @@ export default class LinuxBuilder implements IBuilder {
packageName
);
}
-}
\ No newline at end of file
+}
diff --git a/bin/builders/MacBuilder.ts b/bin/builders/MacBuilder.ts
index 8a5fdcb..4fedbc7 100644
--- a/bin/builders/MacBuilder.ts
+++ b/bin/builders/MacBuilder.ts
@@ -29,7 +29,7 @@ export default class MacBuilder implements IBuilder {
// TODO 国内有可能会超时
await installRust();
} else {
- log.error('Error: Pake need Rust to package your webapp!!!');
+ log.error('Error: Pake need Rust to package your webapp!');
process.exit(2);
}
}
@@ -40,15 +40,11 @@ export default class MacBuilder implements IBuilder {
await mergeTauriConfig(url, options, tauriConf);
- const _ = await shellExec(`cd ${npmDirectory} && npm install && npm run build`);
- let arch = "x64";
- if (process.arch === "arm64") {
- arch = "aarch64";
- } else {
- arch = process.arch;
- }
- const dmgName = `${name}_${tauriConf.package.version}_${arch}.dmg`;
- const appPath = this.getBuildedAppPath(npmDirectory, dmgName);
+ //这里直接使用 universal-apple-darwin 的打包,而非当前系统的包
+ await shellExec(`cd ${npmDirectory} && npm install && npm run build:mac`);
+
+ const dmgName = `${name}_${tauriConf.package.version}_universal.dmg`;
+ const appPath = this.getBuildAppPath(npmDirectory, dmgName);
const distPath = path.resolve(`${name}.dmg`);
await fs.copyFile(appPath, distPath);
await fs.unlink(appPath);
@@ -57,10 +53,10 @@ export default class MacBuilder implements IBuilder {
logger.success('You can find the app installer in', distPath);
}
- getBuildedAppPath(npmDirectory: string, dmgName: string) {
+ getBuildAppPath(npmDirectory: string, dmgName: string) {
return path.join(
npmDirectory,
- 'src-tauri/target/release/bundle/dmg',
+ 'src-tauri/target/universal-apple-darwin/release/bundle/dmg',
dmgName
);
}
diff --git a/bin/builders/WinBulider.ts b/bin/builders/WinBulider.ts
index 2ca2958..dfd5026 100644
--- a/bin/builders/WinBulider.ts
+++ b/bin/builders/WinBulider.ts
@@ -5,11 +5,9 @@ import { checkRustInstalled, installRust } from '@/helpers/rust.js';
import { PakeAppOptions } from '@/types.js';
import { IBuilder } from './base.js';
import { shellExec } from '@/utils/shell.js';
-// @ts-expect-error 加上resolveJsonModule rollup会打包报错
-// import tauriConf from '../../src-tauri/tauri.windows.conf.json';
+// @ts-expect-error
import tauriConf from './tauriConf.js';
-import { fileURLToPath } from 'url';
import logger from '@/options/logger.js';
import { mergeTauriConfig } from './common.js';
import { npmDirectory } from '@/utils/dir.js';
@@ -47,11 +45,11 @@ export default class WinBuilder implements IBuilder {
await mergeTauriConfig(url, options, tauriConf);
- const _ = await shellExec(`cd ${npmDirectory} && npm install && npm run build`);
+ await shellExec(`cd ${npmDirectory} && npm install && npm run build`);
const language = tauriConf.tauri.bundle.windows.wix.language[0];
const arch = process.arch;
const msiName = `${name}_${tauriConf.package.version}_${arch}_${language}.msi`;
- const appPath = this.getBuildedAppPath(npmDirectory, msiName);
+ const appPath = this.getBuildAppPath(npmDirectory, msiName);
const distPath = path.resolve(`${name}.msi`);
await fs.copyFile(appPath, distPath);
await fs.unlink(appPath);
@@ -59,7 +57,7 @@ export default class WinBuilder implements IBuilder {
logger.success('You can find the app installer in', distPath);
}
- getBuildedAppPath(npmDirectory: string, dmgName: string) {
+ getBuildAppPath(npmDirectory: string, dmgName: string) {
return path.join(
npmDirectory,
'src-tauri/target/release/bundle/msi',
diff --git a/bin/builders/common.ts b/bin/builders/common.ts
index 06b2d19..3c0dc37 100644
--- a/bin/builders/common.ts
+++ b/bin/builders/common.ts
@@ -51,7 +51,7 @@ export async function mergeTauriConfig(
const reg = new RegExp(/([0-9]*[a-zA-Z]+[0-9]*)+/);
if (!reg.test(name) || reg.exec(name)[0].length != name.length) {
logger.error("package name is illegal, it must be letters, numbers, and it must contain the letters")
- logger.error("E.g 123pan,123Pan Pan123,weread, WeRead, WERead");
+ logger.error("E.g 123pan,123Pan,Pan123,weread,WeRead,WERead");
process.exit();
}
}
@@ -113,7 +113,7 @@ export async function mergeTauriConfig(
break;
}
}
-
+
let bundleConf = {tauri: {bundle: tauriConf.tauri.bundle}};
await fs.writeFile(
configPath,
diff --git a/bin/cli.ts b/bin/cli.ts
index 14a6d0e..d1a4778 100644
--- a/bin/cli.ts
+++ b/bin/cli.ts
@@ -1,6 +1,5 @@
import { program } from 'commander';
import log from 'loglevel';
-import chalk from 'chalk';
import { DEFAULT_PAKE_OPTIONS } from './defaults.js';
import { PakeCliOptions } from './types.js';
import { validateNumberInput, validateUrlInput } from './utils/validate.js';
@@ -9,7 +8,6 @@ import BuilderFactory from './builders/BuilderFactory.js';
import { checkUpdateTips } from './helpers/updater.js';
// @ts-expect-error
import packageJson from '../package.json';
-import logger from './options/logger.js';
program.version(packageJson.version).description('A cli application can package a web page to desktop application.');
@@ -25,7 +23,8 @@ program
.option('--transparent', 'transparent title bar', DEFAULT_PAKE_OPTIONS.transparent)
.option('--debug', 'debug', DEFAULT_PAKE_OPTIONS.transparent)
.action(async (url: string, options: PakeCliOptions) => {
- checkUpdateTips();
+
+ await checkUpdateTips();
if (!url) {
// 直接 pake 不需要出现url提示
@@ -42,7 +41,7 @@ program
const appOptions = await handleInputOptions(options, url);
- builder.build(url, appOptions);
+ await builder.build(url, appOptions);
});
program.parse();
diff --git a/bin/options/icon.ts b/bin/options/icon.ts
index 8aff0d6..9fddd2c 100644
--- a/bin/options/icon.ts
+++ b/bin/options/icon.ts
@@ -33,43 +33,6 @@ export async function getDefaultIcon() {
return path.join(npmDirectory, iconPath);
}
-// export async function getIconFromPageUrl(url: string) {
-// const icon = await pageIcon(url);
-// console.log(icon);
-// if (icon.ext === '.ico') {
-// const a = await ICO.parse(icon.data);
-// icon.data = Buffer.from(a[0].buffer);
-// }
-
-// const iconDir = (await dir()).path;
-// const iconPath = path.join(iconDir, `/icon.icns`);
-
-// const out = png2icons.createICNS(icon.data, png2icons.BILINEAR, 0);
-
-// await fs.writeFile(iconPath, out);
-// return iconPath;
-// }
-
-// export async function getIconFromMacosIcons(name: string) {
-// const data = {
-// query: name,
-// filters: 'approved:true',
-// hitsPerPage: 10,
-// page: 1,
-// };
-// const res = await axios.post('https://p1txh7zfb3-2.algolianet.com/1/indexes/macOSicons/query?x-algolia-agent=Algolia%20for%20JavaScript%20(4.13.1)%3B%20Browser', data, {
-// headers: {
-// 'x-algolia-api-key': '0ba04276e457028f3e11e38696eab32c',
-// 'x-algolia-application-id': 'P1TXH7ZFB3',
-// },
-// });
-// if (!res.data.hits.length) {
-// return '';
-// } else {
-// return downloadIcon(res.data.hits[0].icnsUrl);
-// }
-// }
-
export async function downloadIcon(iconUrl: string) {
let iconResponse;
try {
diff --git a/dist/cli.js b/dist/cli.js
index 468a13b..6cb3ac5 100644
--- a/dist/cli.js
+++ b/dist/cli.js
@@ -1646,7 +1646,7 @@ function mergeTauriConfig(url, options, tauriConf) {
const reg = new RegExp(/([0-9]*[a-zA-Z]+[0-9]*)+/);
if (!reg.test(name) || reg.exec(name)[0].length != name.length) {
logger.error("package name is illegal, it must be letters, numbers, and it must contain the letters");
- logger.error("E.g 123pan,123Pan Pan123,weread, WeRead, WERead");
+ logger.error("E.g 123pan,123Pan,Pan123,weread,WeRead,WERead");
process.exit();
}
}
@@ -1752,38 +1752,6 @@ function getDefaultIcon() {
return path.join(npmDirectory, iconPath);
});
}
-// export async function getIconFromPageUrl(url: string) {
-// const icon = await pageIcon(url);
-// console.log(icon);
-// if (icon.ext === '.ico') {
-// const a = await ICO.parse(icon.data);
-// icon.data = Buffer.from(a[0].buffer);
-// }
-// const iconDir = (await dir()).path;
-// const iconPath = path.join(iconDir, `/icon.icns`);
-// const out = png2icons.createICNS(icon.data, png2icons.BILINEAR, 0);
-// await fs.writeFile(iconPath, out);
-// return iconPath;
-// }
-// export async function getIconFromMacosIcons(name: string) {
-// const data = {
-// query: name,
-// filters: 'approved:true',
-// hitsPerPage: 10,
-// page: 1,
-// };
-// const res = await axios.post('https://p1txh7zfb3-2.algolianet.com/1/indexes/macOSicons/query?x-algolia-agent=Algolia%20for%20JavaScript%20(4.13.1)%3B%20Browser', data, {
-// headers: {
-// 'x-algolia-api-key': '0ba04276e457028f3e11e38696eab32c',
-// 'x-algolia-application-id': 'P1TXH7ZFB3',
-// },
-// });
-// if (!res.data.hits.length) {
-// return '';
-// } else {
-// return downloadIcon(res.data.hits[0].icnsUrl);
-// }
-// }
function downloadIcon(iconUrl) {
return __awaiter(this, void 0, void 0, function* () {
let iconResponse;
@@ -2038,7 +2006,7 @@ class MacBuilder {
yield installRust();
}
else {
- log.error('Error: Pake need Rust to package your webapp!!!');
+ log.error('Error: Pake need Rust to package your webapp!');
process.exit(2);
}
});
@@ -2048,16 +2016,10 @@ class MacBuilder {
log.debug('PakeAppOptions', options);
const { name } = options;
yield mergeTauriConfig(url, options, tauriConf);
- yield shellExec(`cd ${npmDirectory} && npm install && npm run build`);
- let arch = "x64";
- if (process.arch === "arm64") {
- arch = "aarch64";
- }
- else {
- arch = process.arch;
- }
- const dmgName = `${name}_${tauriConf.package.version}_${arch}.dmg`;
- const appPath = this.getBuildedAppPath(npmDirectory, dmgName);
+ //这里直接使用 universal-apple-darwin 的打包,而非当前系统的包
+ yield shellExec(`cd ${npmDirectory} && npm install && npm run build:mac`);
+ const dmgName = `${name}_${tauriConf.package.version}_universal.dmg`;
+ const appPath = this.getBuildAppPath(npmDirectory, dmgName);
const distPath = path.resolve(`${name}.dmg`);
yield fs.copyFile(appPath, distPath);
yield fs.unlink(appPath);
@@ -2065,8 +2027,8 @@ class MacBuilder {
logger.success('You can find the app installer in', distPath);
});
}
- getBuildedAppPath(npmDirectory, dmgName) {
- return path.join(npmDirectory, 'src-tauri/target/release/bundle/dmg', dmgName);
+ getBuildAppPath(npmDirectory, dmgName) {
+ return path.join(npmDirectory, 'src-tauri/target/universal-apple-darwin/release/bundle/dmg', dmgName);
}
}
@@ -2102,7 +2064,7 @@ class WinBuilder {
const language = tauriConf.tauri.bundle.windows.wix.language[0];
const arch = process.arch;
const msiName = `${name}_${tauriConf.package.version}_${arch}_${language}.msi`;
- const appPath = this.getBuildedAppPath(npmDirectory, msiName);
+ const appPath = this.getBuildAppPath(npmDirectory, msiName);
const distPath = path.resolve(`${name}.msi`);
yield fs.copyFile(appPath, distPath);
yield fs.unlink(appPath);
@@ -2110,7 +2072,7 @@ class WinBuilder {
logger.success('You can find the app installer in', distPath);
});
}
- getBuildedAppPath(npmDirectory, dmgName) {
+ getBuildAppPath(npmDirectory, dmgName) {
return path.join(npmDirectory, 'src-tauri/target/release/bundle/msi', dmgName);
}
}
@@ -2144,7 +2106,7 @@ class LinuxBuilder {
const { name } = options;
yield mergeTauriConfig(url, options, tauriConf);
yield shellExec(`cd ${npmDirectory} && npm install && npm run build`);
- let arch = "";
+ let arch;
if (process.arch === "x64") {
arch = "amd64";
}
@@ -2152,21 +2114,21 @@ class LinuxBuilder {
arch = process.arch;
}
const debName = `${name}_${tauriConf.package.version}_${arch}.deb`;
- const appPath = this.getBuildedAppPath(npmDirectory, "deb", debName);
+ const appPath = this.getBuildAppPath(npmDirectory, "deb", debName);
const distPath = path.resolve(`${name}.deb`);
yield fs.copyFile(appPath, distPath);
yield fs.unlink(appPath);
const appImageName = `${name}_${tauriConf.package.version}_${arch}.AppImage`;
- const appImagePath = this.getBuildedAppPath(npmDirectory, "appimage", appImageName);
+ const appImagePath = this.getBuildAppPath(npmDirectory, "appimage", appImageName);
const distAppPath = path.resolve(`${name}.AppImage`);
yield fs.copyFile(appImagePath, distAppPath);
yield fs.unlink(appImagePath);
logger.success('Build success!');
logger.success('You can find the deb app installer in', distPath);
- logger.success('You can find the Appimage app installer in', distAppPath);
+ logger.success('You can find the AppImage app installer in', distAppPath);
});
}
- getBuildedAppPath(npmDirectory, packageType, packageName) {
+ getBuildAppPath(npmDirectory, packageType, packageName) {
return path.join(npmDirectory, 'src-tauri/target/release/bundle/', packageType, packageName);
}
}
@@ -2187,7 +2149,7 @@ class BuilderFactory {
}
var name = "pake-cli";
-var version = "1.0.1";
+var version = "1.2.1";
var description = "🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App 🤱🏻 A simple way to make any web page a desktop application using Rust.";
var engines = {
node: "^14.13 || >=16.0.0"
@@ -2303,7 +2265,7 @@ program
.option('--transparent', 'transparent title bar', DEFAULT_PAKE_OPTIONS.transparent)
.option('--debug', 'debug', DEFAULT_PAKE_OPTIONS.transparent)
.action((url, options) => __awaiter(void 0, void 0, void 0, function* () {
- checkUpdateTips();
+ yield checkUpdateTips();
if (!url) {
// 直接 pake 不需要出现url提示
program.help();
@@ -2315,6 +2277,6 @@ program
const builder = BuilderFactory.create();
yield builder.prepare();
const appOptions = yield handleOptions(options, url);
- builder.build(url, appOptions);
+ yield builder.build(url, appOptions);
}));
program.parse();
diff --git a/package.json b/package.json
index fde17bc..d8e5038 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "pake-cli",
- "version": "1.1.0",
+ "version": "1.2.1",
"description": "🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App 🤱🏻 A simple way to make any web page a desktop application using Rust.",
"engines": {
"node": "^14.13 || >=16.0.0"
diff --git a/script/build.sh b/script/build.sh
index 7d370bc..cabd0cf 100755
--- a/script/build.sh
+++ b/script/build.sh
@@ -45,7 +45,6 @@ if [[ "$OSTYPE" =~ ^linux ]]; then
# for linux, package name may be com.xxx.xxx
echo "rename package name"
export desktop_file="src-tauri/assets/${package_prefix}.weread.desktop"
- # sed -i "s/\"productName\": \"weread\"/\"productName\": \"${package_prefix}-weread\"/g" src-tauri/tauri.conf.json
$sd "\"productName\": \"WeRead\"" "\"productName\": \"${package_prefix}-weread\"" src-tauri/tauri.conf.json
fi
@@ -109,7 +108,6 @@ do
if [[ "$OSTYPE" =~ ^darwin ]]; then
npm run tauri build -- --target universal-apple-darwin
- # mv src-tauri/target/release/bundle/dmg/*.dmg output/macos/${package_title}_x64.dmg
mv src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg output/macos/${package_title}.dmg
fi
@@ -119,4 +117,3 @@ done
echo "build all package success!"
echo "you run 'rm src-tauri/assets/*.desktop && git checkout src-tauri' to recovery code"
-# rm src-tauri/assets/*.desktop && git checkout src-tauri
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index a02d382..c4608d7 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -34,9 +34,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.66"
+version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
+checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
[[package]]
name = "app"
@@ -139,11 +139,12 @@ dependencies = [
[[package]]
name = "bstr"
-version = "0.2.17"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
+checksum = "b45ea9b00a7b3f2988e9a65ad3917e62123c38dba709b666506207be96d1790b"
dependencies = [
"memchr",
+ "serde",
]
[[package]]
@@ -196,9 +197,9 @@ dependencies = [
[[package]]
name = "cargo_toml"
-version = "0.13.0"
+version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa0e3586af56b3bfa51fca452bd56e8dbbbd5d8d81cbf0b7e4e35b695b537eb8"
+checksum = "497049e9477329f8f6a559972ee42e117487d01d1e8c2cc9f836ea6fa23a9e1a"
dependencies = [
"serde",
"toml",
@@ -206,9 +207,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.77"
+version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
+checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
[[package]]
name = "cesu8"
@@ -522,6 +523,15 @@ dependencies = [
"crypto-common",
]
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys",
+]
+
[[package]]
name = "dirs-next"
version = "2.0.0"
@@ -532,6 +542,17 @@ dependencies = [
"dirs-sys-next",
]
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
[[package]]
name = "dirs-sys-next"
version = "0.1.2"
@@ -860,7 +881,7 @@ dependencies = [
"libc",
"log",
"rustversion",
- "windows",
+ "windows 0.39.0",
]
[[package]]
@@ -984,15 +1005,15 @@ dependencies = [
[[package]]
name = "glob"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "globset"
-version = "0.4.9"
+version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a"
+checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
dependencies = [
"aho-corasick",
"bstr",
@@ -1069,9 +1090,9 @@ dependencies = [
[[package]]
name = "half"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad6a9459c9c30b177b925162351f97e7d967c7ea8bab3b8352805327daf45554"
+checksum = "6c467d36af040b7b2681f5fddd27427f6da8d3d072f575a265e181d2f8e8d157"
dependencies = [
"crunchy",
]
@@ -1099,9 +1120,9 @@ checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]]
name = "hermit-abi"
-version = "0.1.19"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
dependencies = [
"libc",
]
@@ -1137,7 +1158,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
dependencies = [
"bytes",
"fnv",
- "itoa 1.0.4",
+ "itoa 1.0.5",
]
[[package]]
@@ -1174,11 +1195,10 @@ dependencies = [
[[package]]
name = "ignore"
-version = "0.4.18"
+version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
+checksum = "a05705bc64e0b66a806c3740bd6578ea66051b157ec42dc219c785cbf185aef3"
dependencies = [
- "crossbeam-utils",
"globset",
"lazy_static",
"log",
@@ -1245,9 +1265,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "itoa"
-version = "1.0.4"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
[[package]]
name = "javascriptcore-rs"
@@ -1347,9 +1367,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
[[package]]
name = "libc"
-version = "0.2.138"
+version = "0.2.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
[[package]]
name = "line-wrap"
@@ -1562,9 +1582,9 @@ dependencies = [
[[package]]
name = "num_cpus"
-version = "1.14.0"
+version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
+checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
dependencies = [
"hermit-abi",
"libc",
@@ -1621,9 +1641,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.16.0"
+version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
[[package]]
name = "overload"
@@ -1681,9 +1701,9 @@ dependencies = [
[[package]]
name = "paste"
-version = "1.0.10"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1c2c742266c2f1041c914ba65355a83ae8747b05f208319784083583494b4b"
+checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
[[package]]
name = "percent-encoding"
@@ -1693,9 +1713,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
[[package]]
name = "pest"
-version = "2.5.1"
+version = "2.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0"
+checksum = "0f6e86fb9e7026527a0d46bc308b841d73170ef8f443e1807f6ef88526a816d4"
dependencies = [
"thiserror",
"ucd-trie",
@@ -1912,24 +1932,24 @@ dependencies = [
[[package]]
name = "proc-macro-hack"
-version = "0.5.19"
+version = "0.5.20+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
-version = "1.0.47"
+version = "1.0.49"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.21"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
dependencies = [
"proc-macro2",
]
@@ -2116,20 +2136,20 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
- "semver 1.0.14",
+ "semver 1.0.16",
]
[[package]]
name = "rustversion"
-version = "1.0.9"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8"
+checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"
[[package]]
name = "ryu"
-version = "1.0.11"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
[[package]]
name = "safemem"
@@ -2195,9 +2215,9 @@ dependencies = [
[[package]]
name = "semver"
-version = "1.0.14"
+version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
+checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
dependencies = [
"serde",
]
@@ -2213,18 +2233,18 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.150"
+version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e326c9ec8042f1b5da33252c8a37e9ffbd2c9bef0155215b6e6c80c790e05f91"
+checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.150"
+version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42a3df25b0713732468deadad63ab9da1f1fd75a48a15024b50363f128db627e"
+checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
dependencies = [
"proc-macro2",
"quote",
@@ -2233,20 +2253,20 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.89"
+version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
+checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
dependencies = [
- "itoa 1.0.4",
+ "itoa 1.0.5",
"ryu",
"serde",
]
[[package]]
name = "serde_repr"
-version = "0.1.9"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca"
+checksum = "9a5ec9fa74a20ebbe5d9ac23dac1fc96ba0ecfe9f50f2843b52e537b10fbcb4e"
dependencies = [
"proc-macro2",
"quote",
@@ -2434,9 +2454,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "syn"
-version = "1.0.105"
+version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
dependencies = [
"proc-macro2",
"quote",
@@ -2471,9 +2491,9 @@ dependencies = [
[[package]]
name = "tao"
-version = "0.15.7"
+version = "0.15.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1fa15735311b4816d030ff54da58560b047daca0970e1031aed5502e84231a8"
+checksum = "ac8e6399427c8494f9849b58694754d7cc741293348a6836b6c8d2c5aa82d8e6"
dependencies = [
"bitflags",
"cairo-rs",
@@ -2510,7 +2530,7 @@ dependencies = [
"serde",
"unicode-segmentation",
"uuid 1.2.2",
- "windows",
+ "windows 0.39.0",
"windows-implement",
"x11-dl",
]
@@ -2528,9 +2548,9 @@ dependencies = [
[[package]]
name = "tauri"
-version = "1.2.2"
+version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8ea1d785ab2164373703817bff144c4610a69ad3f659becaca0e1ea004b98d8"
+checksum = "5b48820ee3bb6a5031a83b2b6e11f8630bdc5a2f68cb841ab8ebc7a15a916679"
dependencies = [
"anyhow",
"cocoa",
@@ -2550,7 +2570,7 @@ dependencies = [
"percent-encoding",
"rand 0.8.5",
"raw-window-handle",
- "semver 1.0.14",
+ "semver 1.0.16",
"serde",
"serde_json",
"serde_repr",
@@ -2568,7 +2588,7 @@ dependencies = [
"uuid 1.2.2",
"webkit2gtk",
"webview2-com",
- "windows",
+ "windows 0.39.0",
]
[[package]]
@@ -2581,7 +2601,7 @@ dependencies = [
"cargo_toml",
"heck 0.4.0",
"json-patch",
- "semver 1.0.14",
+ "semver 1.0.16",
"serde_json",
"tauri-utils",
"winres",
@@ -2601,7 +2621,7 @@ dependencies = [
"png",
"proc-macro2",
"quote",
- "semver 1.0.14",
+ "semver 1.0.16",
"serde",
"serde_json",
"sha2",
@@ -2643,7 +2663,7 @@ dependencies = [
"thiserror",
"uuid 1.2.2",
"webview2-com",
- "windows",
+ "windows 0.39.0",
]
[[package]]
@@ -2662,7 +2682,7 @@ dependencies = [
"uuid 1.2.2",
"webkit2gtk",
"webview2-com",
- "windows",
+ "windows 0.39.0",
"wry",
]
@@ -2684,14 +2704,14 @@ dependencies = [
"phf 0.10.1",
"proc-macro2",
"quote",
- "semver 1.0.14",
+ "semver 1.0.16",
"serde",
"serde_json",
"serde_with",
"thiserror",
"url",
"walkdir",
- "windows",
+ "windows 0.39.0",
]
[[package]]
@@ -2727,18 +2747,18 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
[[package]]
name = "thiserror"
-version = "1.0.37"
+version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.37"
+version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
dependencies = [
"proc-macro2",
"quote",
@@ -2780,7 +2800,7 @@ version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
dependencies = [
- "itoa 1.0.4",
+ "itoa 1.0.5",
"serde",
"time-core",
"time-macros",
@@ -2818,9 +2838,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
-version = "1.23.0"
+version = "1.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46"
+checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae"
dependencies = [
"autocfg",
"bytes",
@@ -2832,9 +2852,9 @@ dependencies = [
[[package]]
name = "toml"
-version = "0.5.9"
+version = "0.5.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
+checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"
dependencies = [
"serde",
]
@@ -2930,9 +2950,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
[[package]]
name = "unicode-ident"
-version = "1.0.5"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
[[package]]
name = "unicode-normalization"
@@ -3095,18 +3115,20 @@ dependencies = [
[[package]]
name = "webbrowser"
-version = "0.8.2"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0cc7962b5aaa0dfcebaeef0161eec6edf5f4606c12e6777fd7d392f52033a5"
+checksum = "e74f5ff7786c4c21f61ba8e30ea29c9745f06fca0a4a02d083b3c662583399e8"
dependencies = [
+ "core-foundation",
+ "dirs",
"jni",
+ "log",
"ndk-context",
"objc",
"raw-window-handle",
"url",
"web-sys",
- "widestring",
- "winapi",
+ "windows 0.43.0",
]
[[package]]
@@ -3164,7 +3186,7 @@ checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178"
dependencies = [
"webview2-com-macros",
"webview2-com-sys",
- "windows",
+ "windows 0.39.0",
"windows-implement",
]
@@ -3189,7 +3211,7 @@ dependencies = [
"serde",
"serde_json",
"thiserror",
- "windows",
+ "windows 0.39.0",
"windows-bindgen",
"windows-metadata",
]
@@ -3200,12 +3222,6 @@ version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
-[[package]]
-name = "widestring"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
-
[[package]]
name = "winapi"
version = "0.3.9"
@@ -3251,6 +3267,21 @@ dependencies = [
"windows_x86_64_msvc 0.39.0",
]
+[[package]]
+name = "windows"
+version = "0.43.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc 0.42.0",
+ "windows_i686_gnu 0.42.0",
+ "windows_i686_msvc 0.42.0",
+ "windows_x86_64_gnu 0.42.0",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc 0.42.0",
+]
+
[[package]]
name = "windows-bindgen"
version = "0.39.0"
@@ -3413,7 +3444,7 @@ dependencies = [
"webkit2gtk",
"webkit2gtk-sys",
"webview2-com",
- "windows",
+ "windows 0.39.0",
"windows-implement",
]
diff --git a/src-tauri/icons/tableconvert.icns b/src-tauri/icons/tableconvert.icns
new file mode 100644
index 0000000..2d70b72
Binary files /dev/null and b/src-tauri/icons/tableconvert.icns differ
diff --git a/src-tauri/png/tableconvert_256.ico b/src-tauri/png/tableconvert_256.ico
new file mode 100644
index 0000000..ee397e4
Binary files /dev/null and b/src-tauri/png/tableconvert_256.ico differ
diff --git a/src-tauri/png/tableconvert_32.ico b/src-tauri/png/tableconvert_32.ico
new file mode 100644
index 0000000..ed362d4
Binary files /dev/null and b/src-tauri/png/tableconvert_32.ico differ
diff --git a/src-tauri/png/tableconvert_512.png b/src-tauri/png/tableconvert_512.png
new file mode 100644
index 0000000..a14a554
Binary files /dev/null and b/src-tauri/png/tableconvert_512.png differ
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index fe8714b..d029c0d 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -93,9 +93,14 @@ fn main() -> wry::Result<()> {
None
})
.with_inner_size(wry::application::dpi::LogicalSize::new(width, height));
+
#[cfg(target_os = "windows")]
let window = {
- let icon_path = format!("png/{}_32.ico", package_name);
+ let mut icon_path = format!("png/{}_32.ico", package_name);
+ // 假如没有设置,就使用默认的即可
+ if !std::path::Path::new(&icon_path).exists() {
+ icon_path = "png/icon_32.ico".to_string();
+ }
let icon = load_icon(std::path::Path::new(&icon_path));
common_window
.with_decorations(true)
|