diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7157e56..ce843c4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,8 +57,8 @@ jobs: - name: Install app dependencies and build it run: yarn && yarn build:fe - - name: Rewrite tauri.conf.json - run: yarn fix:conf + # - name: Rewrite tauri.conf.json + # run: yarn fix:conf - name: fix tray icon if: matrix.platform != 'macos-latest' diff --git a/README-ZH_CN.md b/README-ZH_CN.md index a3486a4..7582711 100644 --- a/README-ZH_CN.md +++ b/README-ZH_CN.md @@ -16,7 +16,8 @@ ## 📦 安装 -[📝 更新日志](./UPDATE_LOG.md) +- [📝 更新日志](./UPDATE_LOG.md) +- [🕒 历史版本...](https://github.com/lencx/ChatGPT/releases) @@ -24,8 +25,8 @@ - [ChatGPT_0.7.4_x64_en-US.msi](https://github.com/lencx/ChatGPT/releases/download/v0.7.4/ChatGPT_0.7.4_x64_en-US.msi) - 或者使用 [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/): - - `winget install --id=lencx.ChatGPT -e` - - `winget install --id=lencx.ChatGPT -e --version 0.7.4` + - `winget install --id=lencx.ChatGPT -e` + - `winget install --id=lencx.ChatGPT -e --version 0.7.4` **注意:如果安装路径和应用名称相同,会导致冲突 ([#142](https://github.com/lencx/ChatGPT/issues/142#issuecomment-1371166972))** @@ -50,6 +51,7 @@ - [chat-gpt_0.7.4_amd64.deb](https://github.com/lencx/ChatGPT/releases/download/v0.7.4/chat-gpt_0.7.4_amd64.deb) - [chat-gpt_0.7.4_amd64.AppImage](https://github.com/lencx/ChatGPT/releases/download/v0.7.4/chat-gpt_0.7.4_amd64.AppImage): **工作可靠,`.deb` 运行失败时可以尝试它** +- [chatgpt-desktop-bin](https://aur.archlinux.org/packages/chatgpt-desktop-bin): 使用 AUR 来安装 @@ -134,7 +136,7 @@ 目前同步自定文件仅支持 json 和 csv,且需要满足以下格式,否则会导致应用异常: -> JSON 格式 +`JSON 格式` ```json [ @@ -151,7 +153,7 @@ ] ``` -> CSV 格式 +`CSV 格式` ```csv "cmd","act","prompt" diff --git a/README.md b/README.md index ccbc88a..9afc75f 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,8 @@ ## 📦 Install -[📝 Update Log](./UPDATE_LOG.md) +- [📝 Update Log](./UPDATE_LOG.md) +- [🕒 History versions...](https://github.com/lencx/ChatGPT/releases) @@ -27,8 +28,8 @@ - From our github releases: [ChatGPT_0.7.4_x64_en-US.msi](https://github.com/lencx/ChatGPT/releases/download/v0.7.4/ChatGPT_0.7.4_x64_en-US.msi) - Or install with [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/): - - `winget install --id=lencx.ChatGPT -e` - - `winget install --id=lencx.ChatGPT -e --version 0.7.4` + - `winget install --id=lencx.ChatGPT -e` + - `winget install --id=lencx.ChatGPT -e --version 0.7.4` **Note: If the installation path and application name are the same, it will lead to conflict ([#142](https://github.com/lencx/ChatGPT/issues/142#issuecomment-1371166972))** @@ -53,8 +54,7 @@ - [chat-gpt_0.7.4_amd64.deb](https://github.com/lencx/ChatGPT/releases/download/v0.7.4/chat-gpt_0.7.4_amd64.deb) - [chat-gpt_0.7.4_amd64.AppImage](https://github.com/lencx/ChatGPT/releases/download/v0.7.4/chat-gpt_0.7.4_amd64.AppImage): **works reliably, you can try it if `.deb` fails to run** - -[History versions...](https://github.com/lencx/ChatGPT/releases) +- Available on [AUR](https://aur.archlinux.org/packages/chatgpt-desktop-bin) with the package name `chatgpt-desktop-bin`, and you can use your favourite AUR package manager to install it. diff --git a/src-tauri/src/app/cmd.rs b/src-tauri/src/app/cmd.rs index 81657b8..fd92724 100644 --- a/src-tauri/src/app/cmd.rs +++ b/src-tauri/src/app/cmd.rs @@ -5,7 +5,7 @@ use crate::{ }; use log::info; use std::{collections::HashMap, fs, path::PathBuf}; -use tauri::{api, command, AppHandle, Manager}; +use tauri::{api, command, AppHandle, Manager, Theme}; use walkdir::WalkDir; #[command] @@ -45,6 +45,11 @@ pub fn get_chat_conf() -> ChatConfJson { ChatConfJson::get_chat_conf() } +#[command] +pub fn get_theme() -> String { + ChatConfJson::theme().unwrap_or(Theme::Light).to_string() +} + #[command] pub fn reset_chat_conf() -> ChatConfJson { ChatConfJson::reset_chat_conf() diff --git a/src-tauri/src/app/menu.rs b/src-tauri/src/app/menu.rs index 285d84b..abd4bc9 100644 --- a/src-tauri/src/app/menu.rs +++ b/src-tauri/src/app/menu.rs @@ -103,14 +103,13 @@ pub fn init() -> Menu { update_silent.selected() } else { update_silent - }) - // .add_item(if chat_conf.auto_update == "Disable" { - // update_disable.selected() - // } else { - // update_disable - // }) - , - ).into(), + }), // .add_item(if chat_conf.auto_update == "Disable" { + // update_disable.selected() + // } else { + // update_disable + // }) + ) + .into(), stay_on_top_menu.into(), #[cfg(target_os = "macos")] titlebar_menu.into(), @@ -273,22 +272,31 @@ pub fn menu_handler(event: WindowMenuEvent) { ChatConfJson::amend(&serde_json::json!({ "theme": theme }), Some(app)).unwrap(); } "update_prompt" | "update_silent" | "update_disable" => { - for id in ["update_prompt" , "update_silent" , "update_disable"] { + for id in ["update_prompt", "update_silent", "update_disable"] { menu_handle.get_item(id).set_selected(false).unwrap(); } let auto_update = match menu_id { "update_silent" => { - menu_handle.get_item("update_silent").set_selected(true).unwrap(); + menu_handle + .get_item("update_silent") + .set_selected(true) + .unwrap(); "Silent" - }, + } "update_disable" => { - menu_handle.get_item("update_disable").set_selected(true).unwrap(); + menu_handle + .get_item("update_disable") + .set_selected(true) + .unwrap(); "Disable" - }, + } _ => { - menu_handle.get_item("update_prompt").set_selected(true).unwrap(); + menu_handle + .get_item("update_prompt") + .set_selected(true) + .unwrap(); "Prompt" - }, + } }; ChatConfJson::amend(&serde_json::json!({ "auto_update": auto_update }), None).unwrap(); } diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 6224712..5b54118 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -52,6 +52,7 @@ async fn main() { cmd::download, cmd::open_link, cmd::get_chat_conf, + cmd::get_theme, cmd::reset_chat_conf, cmd::run_check_update, cmd::form_cancel, diff --git a/src/layout/index.scss b/src/layout/index.scss index 00ef8bf..07d5cf5 100644 --- a/src/layout/index.scss +++ b/src/layout/index.scss @@ -1,16 +1,23 @@ .chat-logo { text-align: center; - padding: 5px 0; + height: 48px; img { - width: 48px; - height: 48px; + width: 44px; + height: 44px; + margin-top: 4px; } } + .chat-info { text-align: center; font-weight: bold; + + .ant-tag { + margin: 2px; + } } + .ant-layout-sider-trigger { user-select: none; -webkit-user-select: none; @@ -24,9 +31,6 @@ .ant-menu { user-select: none; -webkit-user-select: none; - .ant-menu-item { - background-color: #f8f8f8; - } } .ant-layout-footer { diff --git a/src/layout/index.tsx b/src/layout/index.tsx index 82cf74a..99f70d4 100644 --- a/src/layout/index.tsx +++ b/src/layout/index.tsx @@ -1,5 +1,5 @@ -import { FC, useState } from 'react'; -import {Layout, Menu, Button, Tooltip, message} from 'antd'; +import { useState } from 'react'; +import {Layout, Menu, Tooltip, ConfigProvider, theme, Tag } from 'antd'; import { SyncOutlined } from '@ant-design/icons'; import { useNavigate, useLocation } from 'react-router-dom'; import { getName, getVersion } from '@tauri-apps/api/app'; @@ -12,24 +12,22 @@ const { Content, Footer, Sider } = Layout; const appName = await getName(); const appVersion = await getVersion(); +const appTheme = await invoke("get_theme"); -interface ChatLayoutProps { - children?: React.ReactNode; -} - -const ChatLayout: FC = ({ children }) => { +export default function ChatLayout() { const [collapsed, setCollapsed] = useState(false); const location = useLocation(); const go = useNavigate(); const checkAppUpdate = async () => { - await invoke('run_check_update', {silent: false}); + await invoke('run_check_update', { silent: false }); } return ( + setCollapsed(value)} @@ -45,21 +43,19 @@ const ChatLayout: FC = ({ children }) => { >
- {appName} -
-
- {appVersion} - - { - - - - } + {appName} + + {appVersion} + + + +
= ({ children }) => { ChatGPT Desktop Application ©2022 Created by lencx + ); -}; - -export default ChatLayout; \ No newline at end of file +}; \ No newline at end of file diff --git a/src/main.scss b/src/main.scss index 96ebea4..afba087 100644 --- a/src/main.scss +++ b/src/main.scss @@ -63,7 +63,7 @@ html, body { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - color: #2a2a2a; + // color: #2a2a2a; } span { diff --git a/src/view/General.tsx b/src/view/General.tsx index 1291baf..ce4416e 100644 --- a/src/view/General.tsx +++ b/src/view/General.tsx @@ -114,20 +114,23 @@ export default function General() { labelCol={{ span: 8 }} wrapperCol={{ span: 15, offset: 1 }} > + + + + {platformInfo === 'darwin' && ( + + + + )} Light Dark - { - (["darwin", "windows"].includes(platformInfo) ) && ( - System - ) - } + {["darwin", "windows"].includes(platformInfo) && ( + System + )} - - - } name="auto_update"> Prompt @@ -138,11 +141,6 @@ export default function General() { } name="global_shortcut"> - {platformInfo === 'darwin' && ( - - - - )} } name="origin">