diff --git a/src/renderer/src/components/app/Sidebar.tsx b/src/renderer/src/components/app/Sidebar.tsx
index db9f1198..8b2a7674 100644
--- a/src/renderer/src/components/app/Sidebar.tsx
+++ b/src/renderer/src/components/app/Sidebar.tsx
@@ -22,7 +22,7 @@ const Sidebar: FC = () => {
const { generating } = useRuntime()
const { t } = useTranslation()
const navigate = useNavigate()
- const { windowStyle } = useSettings()
+ const { windowStyle, showMinappIcon, showFilesIcon } = useSettings()
const { theme, toggleTheme } = useTheme()
const isRoute = (path: string): string => (pathname === path ? 'active' : '')
@@ -79,20 +79,24 @@ const Sidebar: FC = () => {
-
- to('/apps')}>
-
-
-
-
-
-
- to('/files')}>
-
-
-
-
-
+ {showMinappIcon && (
+
+ to('/apps')}>
+
+
+
+
+
+ )}
+ {showFilesIcon && (
+
+ to('/files')}>
+
+
+
+
+
+ )}
diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json
index 9d6c22b1..60a43839 100644
--- a/src/renderer/src/i18n/locales/en-us.json
+++ b/src/renderer/src/i18n/locales/en-us.json
@@ -378,6 +378,11 @@
"general.user_name": "User Name",
"general.user_name.placeholder": "Enter your name",
"general.view_webdav_settings": "View WebDAV settings",
+ "general.display.title": "Display Settings",
+ "display.sidebar.minapp.icon": "Show MinApp icon",
+ "display.sidebar.files.icon": "Show Files icon",
+ "display.sidebar.title": "Sidebar Settings",
+ "display.topic.title": "Topic Settings",
"input.auto_translate_with_space": "Quickly translate with 3 spaces",
"messages.divider": "Show divider between messages",
"messages.input.paste_long_text_as_file": "Paste long text as file",
diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json
index 1fff8ae2..675d711c 100644
--- a/src/renderer/src/i18n/locales/ru-ru.json
+++ b/src/renderer/src/i18n/locales/ru-ru.json
@@ -378,6 +378,11 @@
"general.user_name": "Имя пользователя",
"general.user_name.placeholder": "Введите ваше имя",
"general.view_webdav_settings": "Просмотр настроек WebDAV",
+ "general.display.title": "Настройки отображения",
+ "display.sidebar.minapp.icon": "Показывать иконку мини-приложения",
+ "display.sidebar.files.icon": "Показывать иконку файлов",
+ "display.sidebar.title": "Настройки боковой панели",
+ "display.topic.title": "Настройки топиков",
"input.auto_translate_with_space": "Быстрый перевод с помощью 3-х пробелов",
"messages.divider": "Показывать разделитель между сообщениями",
"messages.input.paste_long_text_as_file": "Вставлять длинный текст как файл",
diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json
index 92c26120..055d040c 100644
--- a/src/renderer/src/i18n/locales/zh-cn.json
+++ b/src/renderer/src/i18n/locales/zh-cn.json
@@ -378,6 +378,11 @@
"general.user_name": "用户名",
"general.user_name.placeholder": "请输入用户名",
"general.view_webdav_settings": "查看 WebDAV 设置",
+ "general.display.title": "显示设置",
+ "display.sidebar.minapp.icon": "显示小程序图标",
+ "display.sidebar.files.icon": "显示文件图标",
+ "display.sidebar.title": "侧边栏设置",
+ "display.topic.title": "话题设置",
"input.auto_translate_with_space": "快速敲击3次空格翻译",
"messages.divider": "消息分割线",
"messages.input.paste_long_text_as_file": "长文本粘贴为文件",
diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json
index c230edda..d583e87a 100644
--- a/src/renderer/src/i18n/locales/zh-tw.json
+++ b/src/renderer/src/i18n/locales/zh-tw.json
@@ -378,6 +378,11 @@
"general.user_name": "使用者名稱",
"general.user_name.placeholder": "輸入您的名稱",
"general.view_webdav_settings": "查看 WebDAV 設定",
+ "general.display.title": "顯示設定",
+ "display.sidebar.minapp.icon": "顯示小程序圖示",
+ "display.sidebar.files.icon": "顯示文件圖示",
+ "display.sidebar.title": "側邊欄設定",
+ "display.topic.title": "話題設定",
"input.auto_translate_with_space": "快速敲擊3次空格翻譯",
"messages.divider": "訊息間顯示分隔線",
"messages.input.paste_long_text_as_file": "將長文本貼上為檔案",
diff --git a/src/renderer/src/pages/home/Tabs/SettingsTab.tsx b/src/renderer/src/pages/home/Tabs/SettingsTab.tsx
index ce7eef2b..35643417 100644
--- a/src/renderer/src/pages/home/Tabs/SettingsTab.tsx
+++ b/src/renderer/src/pages/home/Tabs/SettingsTab.tsx
@@ -15,7 +15,6 @@ import { SettingDivider, SettingRow, SettingRowTitle, SettingSubtitle } from '@r
import { useAppDispatch } from '@renderer/store'
import {
setAutoTranslateWithSpace,
- setClickAssistantToShowTopic,
setCodeCollapsible,
setCodeShowLineNumbers,
setCodeStyle,
@@ -26,8 +25,7 @@ import {
setPasteLongTextAsFile,
setRenderInputMessageAsMarkdown,
setShowInputEstimatedTokens,
- setShowMessageDivider,
- setShowTopicTime
+ setShowMessageDivider
} from '@renderer/store/settings'
import { Assistant, AssistantSettings, ThemeMode } from '@renderer/types'
import { Col, Row, Select, Slider, Switch, Tooltip } from 'antd'
@@ -64,11 +62,7 @@ const SettingsTab: FC = (props) => {
codeShowLineNumbers,
codeCollapsible,
mathEngine,
- topicPosition,
- showTopicTime,
- clickAssistantToShowTopic,
- autoTranslateWithSpace,
- setTopicPosition
+ autoTranslateWithSpace
} = useSettings()
const onUpdateAssistantSettings = (settings: Partial) => {
@@ -366,41 +360,6 @@ const SettingsTab: FC = (props) => {
/>
-
- {t('settings.display.title')}
-
-
- {t('settings.topic.position')}
-
-
-
- {topicPosition === 'left' && (
- <>
-
- {t('settings.advanced.auto_switch_to_topics')}
- dispatch(setClickAssistantToShowTopic(checked))}
- />
-
-
- >
- )}
-
- {t('settings.topic.show.time')}
- dispatch(setShowTopicTime(checked))} />
-
-
)
}
diff --git a/src/renderer/src/pages/settings/DisplaySettings.tsx b/src/renderer/src/pages/settings/DisplaySettings.tsx
new file mode 100644
index 00000000..55dd838f
--- /dev/null
+++ b/src/renderer/src/pages/settings/DisplaySettings.tsx
@@ -0,0 +1,118 @@
+import { isMac } from '@renderer/config/constant'
+import { useTheme } from '@renderer/context/ThemeProvider'
+import { useSettings } from '@renderer/hooks/useSettings'
+import { useAppDispatch } from '@renderer/store'
+import {
+ setClickAssistantToShowTopic,
+ setShowFilesIcon,
+ setShowMinappIcon,
+ setShowTopicTime
+} from '@renderer/store/settings'
+import { ThemeMode } from '@renderer/types'
+import { Select, Switch } from 'antd'
+import { FC } from 'react'
+import { useTranslation } from 'react-i18next'
+
+import { SettingContainer, SettingDivider, SettingGroup, SettingRow, SettingRowTitle, SettingTitle } from '.'
+
+const DisplaySettings: FC = () => {
+ const {
+ setTheme,
+ theme,
+ windowStyle,
+ setWindowStyle,
+ showMinappIcon,
+ showFilesIcon,
+ topicPosition,
+ setTopicPosition,
+ clickAssistantToShowTopic,
+ showTopicTime
+ } = useSettings()
+ const { theme: themeMode } = useTheme()
+
+ const { t } = useTranslation()
+ const dispatch = useAppDispatch()
+
+ const handleWindowStyleChange = (checked: boolean) => {
+ setWindowStyle(checked ? 'transparent' : 'opaque')
+ }
+
+ return (
+
+
+ {t('settings.display.title')}
+
+
+ {t('settings.theme.title')}
+
+
+ {isMac && (
+ <>
+
+
+ {t('settings.theme.window.style.transparent')}
+
+
+ >
+ )}
+
+
+ {t('settings.display.topic.title')}
+
+
+ {t('settings.topic.position')}
+
+
+
+ {topicPosition === 'left' && (
+ <>
+
+ {t('settings.advanced.auto_switch_to_topics')}
+ dispatch(setClickAssistantToShowTopic(checked))}
+ />
+
+
+ >
+ )}
+
+ {t('settings.topic.show.time')}
+ dispatch(setShowTopicTime(checked))} />
+
+
+
+ {t('settings.display.sidebar.title')}
+
+
+ {t('settings.display.sidebar.minapp.icon')}
+ dispatch(setShowMinappIcon(value))} />
+
+
+
+ {t('settings.display.sidebar.files.icon')}
+ dispatch(setShowFilesIcon(value))} />
+
+
+
+ )
+}
+
+export default DisplaySettings
diff --git a/src/renderer/src/pages/settings/GeneralSettings.tsx b/src/renderer/src/pages/settings/GeneralSettings.tsx
index d0ff8e93..f8e10bb1 100644
--- a/src/renderer/src/pages/settings/GeneralSettings.tsx
+++ b/src/renderer/src/pages/settings/GeneralSettings.tsx
@@ -1,11 +1,10 @@
-import { isMac } from '@renderer/config/constant'
import { useTheme } from '@renderer/context/ThemeProvider'
import { useSettings } from '@renderer/hooks/useSettings'
import i18n from '@renderer/i18n'
import { useAppDispatch } from '@renderer/store'
import { setLanguage } from '@renderer/store/settings'
import { setProxyMode, setProxyUrl as _setProxyUrl } from '@renderer/store/settings'
-import { LanguageVarious, ThemeMode } from '@renderer/types'
+import { LanguageVarious } from '@renderer/types'
import { isValidProxyUrl } from '@renderer/utils'
import { Input, Select, Space, Switch } from 'antd'
import { FC, useState } from 'react'
@@ -14,17 +13,7 @@ import { useTranslation } from 'react-i18next'
import { SettingContainer, SettingDivider, SettingGroup, SettingRow, SettingRowTitle, SettingTitle } from '.'
const GeneralSettings: FC = () => {
- const {
- language,
- proxyUrl: storeProxyUrl,
- setTheme,
- theme,
- setTray,
- tray,
- windowStyle,
- setWindowStyle,
- proxyMode: storeProxyMode
- } = useSettings()
+ const { language, proxyUrl: storeProxyUrl, theme, setTray, tray, proxyMode: storeProxyMode } = useSettings()
const [proxyUrl, setProxyUrl] = useState(storeProxyUrl)
const { theme: themeMode } = useTheme()
@@ -98,37 +87,6 @@ const GeneralSettings: FC = () => {
-
- {t('settings.theme.title')}
-
-
- {isMac && (
- <>
-
-
- {t('settings.theme.window.style.title')}
-
-
- >
- )}
-
{t('settings.proxy.mode.title')}