GrainFull
9e5da1a851
feat(tray): 恢复并重构托盘显示速率功能 ( #6487 )
...
* feat(tray): 恢复并重构托盘显示速率功能
* docs(changelog): add tray speed feature entry for v2.4.7
* refactor(tray): 将托盘速率显示限制为仅 macOS
* chore(style): 统一托盘速率设置相关代码风格
* refactor(tray): 统一 speed 任务调度并移除循环内配置轮询
* chore(tauri): enable createUpdaterArtifacts for updater support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(tray): refine macOS tray speed formatting and two-line alignment
* refactor(tray): move to utils
* refactor(tray): improve macOS speed display formatting, alignment, and structure
* chore: 降级 Node.js 版本至 21.7.1
* refactor(tray): 优化 macOS 托盘速率流与显示逻辑
* refactor(tray): 将速率任务重构为独立控制器并切换至 /traffic 流
* refactor(tray): 缩短速率宽度
* refactor(tray): 收敛测速流抽象并修正停止清理时序
* docs(changelog): 更新变更日志
* refactor(tray): simplify speed formatting logic and remove redundant functions
* refactor(tray): optimize speed display logic and reduce redundant attribute initialization
* refactor(tray): enhance traffic event parsing and improve stale event handling
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2026-04-09 14:40:32 +00:00
Tunglies
670d7bae3b
refactor(tray): deduplicate icon getters, update_icon, and menu+icon combo
...
- Consolidate 3 near-identical icon getter functions into load_icon/default_icon with IconKind enum
- Merge two platform-gated update_icon implementations into one
- Extract update_menu_and_icon to eliminate duplicate combo in feat/config.rs and feat/clash.rs
2026-03-23 22:37:09 +08:00
AetherWing
09ea979cf7
chore: tray hotkey ( #6373 )
2026-03-01 09:13:42 +00:00
yuanyan3060
5f9096dd6e
perf: update_tooltip ( #6283 )
2026-02-10 03:14:49 +00:00
Tunglies
88764d763c
refactor(tray): simplify tray event handling and improve menu event processing ( #6278 )
...
* refactor(tray): simplify tray event handling and improve menu event processing
* refactor(tray): enhance error handling in tray menu and icon updates
* refactor(tray): enhance tray icon event handling and add debounce for click events
* fix: remove duplicated set tooltip
* refactor(tray): simplify tray icon event handling by removing redundant parameters
2026-02-08 13:05:07 +00:00
Tunglies
ae5d3c478a
fix: resolve issue with tray operations after system resume ( #6216 )
...
* feat(limiter): add Limiter struct with clock interface and tests
* feat(limiter): integrate Limiter into tray and window management for rate limiting
* fix(tray, window_manager): update debounce timing for tray click and window operations
* refactor(limiter): change time representation from u64 to u128 for improved precision
* fix: resolve issue with tray operations after system resume
* Revert "refactor(limiter): change time representation from u64 to u128 for improved precision"
This reverts commit 2198f40f7fcecbb755deb38af005c28e993db970.
2026-01-31 09:23:20 +00:00
Tunglies
95281632a1
fix(tray): correct spelling of 'TrayMenu' in TrayAction enum and usage
2026-01-29 19:44:24 +08:00
Tunglies
9e4e0c81a4
refactor: clean up and improve code structure ( #6010 )
2026-01-04 19:21:45 +08:00
Tunglies
eb8ba8b369
refactor(tray): replace Arc<str> with Cow<'static, str> for menu texts and update tray event handling
2026-01-03 19:25:36 +08:00
Slinetrac
bb72b92ae9
refactor(tray): unify tray icon retrieval into get_tray_icon
2026-01-02 14:28:17 +08:00
Tunglies
c41db51f81
feat: add governor crate for rate limiting and improve window/tray operation handling
2025-12-27 20:27:49 +08:00
Sline
c8aeae3f83
crate(i18n): add clash-verge-i18n crate and integrate localization support ( #5961 )
...
* crate(i18n): add clash-verge-i18n crate and integrate localization support
* refactor(service): remove redundant reinstall_service functions for Windows, Linux, and macOS
* chore(i18n): align i18n key
* feat(i18n): unify scan roots and add backend Rust/YAML support to cleanup script
* chore(i18n): add scripts to package.json
* fix(tray): initialize i18n locale before setup
* refactor(i18n): move locale initialization into Config::init_config
* fix(i18n): refresh systray tooltip on language change and correct docs reference
* fix(tray): remove unnecessary locale synchronization to improve performance
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2025-12-27 15:03:19 +08:00
Slinetrac
5aba848741
Revert "crate(i18n): add clash-verge-i18n crate and integrate localization support ( #5959 )"
...
This reverts commit 593751eda2c1c6c4c274792578ee98f75cdde8e4.
2025-12-27 12:07:56 +08:00
Tunglies
593751eda2
crate(i18n): add clash-verge-i18n crate and integrate localization support ( #5959 )
...
* crate(i18n): add clash-verge-i18n crate and integrate localization support
* refactor(service): remove redundant reinstall_service functions for Windows, Linux, and macOS
* chore(i18n): align i18n key
* feat(i18n): unify scan roots and add backend Rust/YAML support to cleanup script
* chore(i18n): add scripts to package.json
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com>
2025-12-27 11:33:58 +08:00
歳納七夏
2417d064e1
feat: allow disabling proxy groups in tray icon ( #5946 )
...
* feat: allow disabling proxy groups in tray icon
* feat: allow disabling proxy groups in tray icon (update i11n)
* feat: allow disabling proxy groups in tray icon (fix)
* feat: allow disabling proxy groups in tray icon (less nesting)
* feat: allow disabling proxy groups in tray icon (changelog)
2025-12-26 16:29:05 +08:00
Slinetrac
23e551e384
feat(tray): add optional inline outbound modes in tray menu #5881
...
Closes #5881
2025-12-21 10:33:19 +08:00
oomeow
da7faf815f
Revert "perf: improve check tun mode available when update tray menu"
...
This reverts commit af7b33d35ba3de9ab32fd91aba7c726b7094b0f0.
Closes: https://github.com/clash-verge-rev/clash-verge-rev/issues/5806
2025-12-13 18:26:27 +08:00
oomeow
af9b67186e
perf: handle tray icon event to reduce always spawn thread
2025-12-13 16:49:55 +08:00
oomeow
3c1bcd7d72
fix: macOS tray icon color flickers during app launch
2025-12-13 13:46:49 +08:00
Tunglies
7838fa1e75
refactor(tray): remove timer for updating tray in plan, use update manually to prevent needless refresh to cause visuual flash
2025-12-10 23:40:17 +08:00
oomeow
af7b33d35b
perf: improve check tun mode available when update tray menu
2025-12-09 19:06:57 +08:00
oomeow
3ab985aacc
fix: failed to restart core ( #5754 )
...
* fix: failed to restart core after install service
* chore: update tauri-plugin-mihomo deps
* fix: update dependencies for tauri-plugin-mihomo and related packages
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2025-12-07 12:42:32 +08:00
Tunglies
2ca8e6716d
style: adjust rustfmt max_width to 120
2025-12-06 10:31:31 +08:00
Slinetrac
28f8bb9199
fix(tray): remove checkmark from proxy group entries
2025-12-05 13:46:22 +08:00
oomeow
9388b73c1f
fix: upgrade mihomo core failed ( #5646 )
...
* fix: upgrade mihomo core failed
* fix: upgrade core failed when run core by service
* fix: app freeze when restart core on windows
* deps: bump clash-verge-rev-ipc version lock
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2025-12-03 21:48:30 +08:00
Tunglies
ecc272aa20
feat: integrate tauri-plugin-clipboard-manager and add system info commands ( #5593 )
2025-11-25 16:58:25 +08:00
Tunglies
d8090277af
refactor: replace singleton_lazy with singleton macro across multiple modules
2025-11-19 22:40:52 +08:00
Tunglies
3ec7c6d2b8
feat(profiles): add profile preview structure and update profile menu handling
2025-11-18 19:08:07 +08:00
Tunglies
a6cb903fe6
refactor: simplify function return types and remove unnecessary wraps
2025-11-15 08:56:58 +08:00
Sline
2a2de29224
feat: tray menu enhance ( #5412 )
...
* feat(tray): move outbound modes into a dedicated submenu
* refactor: Enable 'Show Proxy Groups Inline' by default
* refactor(tray): move `copyEnv` to `more` submenu
2025-11-12 14:10:20 +08:00
Tunglies
f3a3d0e8b0
refactor: update update_icon method to require a non-optional verge reference and adjust related calls ( #5417 )
2025-11-12 07:36:24 +08:00
Tunglies
33f575ed4d
refactor: update icon handling in tray methods to accept IVerge reference and improve logging #5379 ( #5387 )
...
* refactor: update icon handling in tray methods to accept IVerge reference and improve logging #5379
* refactor: simplify icon retrieval logic in Tray implementation
2025-11-10 19:06:37 +08:00
Sline
c8aa72186e
chore: i18n ( #5276 )
...
* chore: notice i18n
* feat: add script to clean up unused i18n keys
* chore: cleanup i18n keys
* refactor(i18n/proxies): migrate proxies UI to structured locale keys
* chore: i18n for rule module
* chore: i18n for profile module
* chore: i18n for connections module
* chore: i18n for settings module
* chore: i18n for verge settings
* chore: i18n for theme settings
* chore: i18n for theme
* chore(i18n): components.home.*
* chore(i18n): remove unused i18n keys
* chore(i18n): components.profile.*
* chore(i18n): components.connection
* chore(i18n): pages.logs.*
* chore(i18n): pages.*.provider
* chore(i18n): components.settings.externalCors.*
* chore(i18n): components.settings.clash.*
* chore(i18n): components.settings.liteMode.*
* chore(i18n): components.settings.backup.*
* chore(i18n): components.settings.clash.port.*
* chore(i18n): components.settings.misc.*
* chore(i18n): components.settings.update.*
* chore(i18n): components.settings.sysproxy.*
* chore(i18n): components.settings.sysproxy.*
* chore(i18n): pages.profiles.notices/components.providers.notices
* refactor(notice): unify showNotice usage
* refactor(notice): add typed showNotice shortcuts, centralize defaults, and simplify subscriptions
* refactor: unify showNotice usage
* refactor(notice): unify showNotice API
* refactor(notice): unify showNotice usage
* chore(i18n): components.test.*
* chore(i18n): components.settings.dns.*
* chore(i18n): components.home.clashInfo.*
* chore(i18n): components.home.systemInfo.*
* chore(i18n): components.home.ipInfo/traffic.*
* chore(i18n): navigation.*
* refactor(i18n): remove pages.* namespace and migrate route texts under module-level page keys
* chore(i18n): common.*
* chore(i18n): common.*
* fix: change error handling in patch_profiles_config to return false when a switch is in progress
* fix: improve error handling in patch_profiles_config to prevent requests during profile switching
* fix: change error handling in patch_profiles_config to return false when a switch is in progress
fix: ensure CURRENT_SWITCHING_PROFILE is reset after config updates in perform_config_update and patch_profiles_config
* chore(i18n): restructure root-level locale keys into namespaces
* chore(i18n): add missing i18n keys
* docs: i18n guide
* chore: adjust i18n
* refactor(i18n): align UI actions and status labels with common keys
* refactor(i18n): unify two-name locale namespaces
* refactor(i18n/components): unify locale keys and update component references
* chore(i18n): add shared and entities namespaces to all locale files
* refactor(i18n): consolidate shared and entity namespaces across features
* chore(deps): update npm dependencies to ^7.3.5 (#5310 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* refactor(i18n): migrate shared editor modes and consolidate entities namespaces
* tmp
* refactor(i18n): flatten locales and move theme/validation strings
* docs: CONTRIBUTING_i18n.md
* refactor(i18n): restructure feedback and profile namespaces for better organization
* refactor(i18n): unify settings locale structure and update references
* refactor(i18n): reorganize locale keys for home, proxies, rules, connections, logs, unlock, and tests
* refactor(i18n/feedback/layout): unify shared toasts & normalize layout namespace
* refactor(i18n): centralize common UI strings in shared
* refactor(i18n): flatten headers and unify locale schema
* refactor(i18n): consolidate duplicate per-feature translations into shared namespace
* refactor(i18n): split locales into per-namespace files
* style: lint
* refactor(i18n): unify unlock UI translations under tests namespace
* feat(i18n): add type-checked translation keys
* style: eslint import order
* feat(i18n): replace ad-hoc loader with rust-i18n backend bundles
* chore(prebuild): remove locale-copy step
* fix(i18n, notice): propagate runtime params and update cleanup script path
* fix(i18n,notice): make locale formatting idempotent and guard early notice translations
* fix(i18n): resolve locale aliases and match OS codes correctly
* fix(unlock): use i18next-compatible double-brace interpolation in failure notice
* fix(i18n): route unlock error notices through translation keys
* fix(i18n): i18n types
* feat(i18n): localize upgrade notice for Clash core viewer
* fix(notice): ensure runtime overrides apply to prefix translations
* chore(i18n): replace literal notices with translation keys
* chore(i18n): types
* chore(i18n): regen typings before formatting to keep keys in sync
* chore(i18n): simply labels
* chore(i18n): adjust translation
* chore: remove eslint-plugin-i18next
* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend (#5341 )
* chore(i18n): translate settings.json (missed in previous pass) (#5343 )
* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend
* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend
* fix(i18n-tauri): quote placeholder-leading value in ko.yml to prevent rust_i18n parse panic
* chore(i18n): translate settings.json (forgot to include previously)
---------
Co-authored-by: rozan <34974262+thelojan@users.noreply.github.com>
2025-11-08 19:40:38 +08:00
oomeow
81e35e2ead
chore: optimize ( #5319 )
...
* chore: optimize and reduce spawn
* chore: optimize
2025-11-07 06:06:09 +08:00
Tunglies
69a706b438
refactor: streamline error handling and resource management in various modules
2025-11-06 10:19:06 +08:00
Tunglies
671ac2ebed
refactor: replace type references with Self in various structs and methods for consistency
2025-11-06 10:19:06 +08:00
Tunglies
3e2f605e77
fix: improve error handling and logging in various modules
2025-11-05 02:11:43 +08:00
Tunglies
97769cf93a
feat: add methods to retrieve current subscription details in PrfItem and refactor profile handling in IProfiles
2025-11-04 12:03:03 +08:00
Tunglies
0306f73841
fix: replace update_tray_display with update_menu for consistency across tray updates
2025-11-04 12:03:03 +08:00
Tunglies
bae584b1ab
perf: optimize profile handle memory usage
2025-11-04 10:05:17 +08:00
Tunglies
2287ea5f0b
Refactor configuration access to use latest_arc() instead of latest_ref()
...
- Updated multiple instances in the codebase to replace calls to latest_ref() with latest_arc() for improved performance and memory management.
- This change affects various modules including validate, enhance, feat (backup, clash, config, profile, proxy, window), utils (draft, i18n, init, network, resolve, server).
- Ensured that all references to configuration data are now using the new arc-based approach to enhance concurrency and reduce cloning overhead.
refactor: update imports to explicitly include ClashInfo and Config in command files
2025-11-04 06:06:20 +08:00
oomeow
d4cb16f4ff
perf: select proxy ( #5284 )
...
* perf: improve select proxy for group
* chore: update
2025-11-02 22:33:50 +08:00
Tunglies
fb5bf72fb9
feat: add function to retrieve profile name by UID and improve error logging for profile updates
2025-11-02 20:07:47 +08:00
Tunglies
fb260fb33d
Refactor logging to use a centralized logging utility across the application ( #5277 )
...
- Replaced direct log calls with a new logging macro that includes a logging type for better categorization.
- Updated logging in various modules including `merge.rs`, `mod.rs`, `tun.rs`, `clash.rs`, `profile.rs`, `proxy.rs`, `window.rs`, `lightweight.rs`, `guard.rs`, `autostart.rs`, `dirs.rs`, `dns.rs`, `scheme.rs`, `server.rs`, and `window_manager.rs`.
- Introduced logging types such as `Core`, `Network`, `ProxyMode`, `Window`, `Lightweight`, `Service`, and `File` to enhance log clarity and filtering.
2025-11-01 20:47:01 +08:00
Tunglies
b3b8eeb577
refactor: convert file operations to async using tokio fs ( #5267 )
...
* refactor: convert file operations to async using tokio fs
* refactor: integrate AsyncHandler for file operations in backup processes
2025-11-01 19:24:52 +08:00
oomeow
8c734a5a35
fix: disable tun mode menu on tray when tun mode is unavailable ( #4975 )
...
* fix: check if service installed when toggle tun mode on tray
* chore: cargo fmt
* fix: auto disable tun mode
* docs: update UPDATELOG.md
* fix: init Tun mode status
* chore: update
* feat: disable tun mode tray menu when tun mode is unavailable
* fix: restart core when uninstall service is canceled
* chore: remove check notification when toggle tun mode
* chore: fix updatelog
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2025-10-31 17:31:40 +08:00
Tunglies
c27ad3fdcb
feat: add log opening functionality in tray menu and update localization
2025-10-30 17:34:41 +08:00
Tunglies
f39436f1d0
refactor(i18n): optimize translation handling with Arc<str> for better memory efficiency
...
refactor(tray): change menu text storage to use Arc<str> for improved performance
refactor(service): utilize SmartString for error messages to enhance memory management
2025-10-28 00:26:20 +08:00
Tunglies
87168b6ce0
perf(tray): improve menu handling localization support
...
refactor(tray): replace string literals with MenuIds for menu event handling
2025-10-27 23:08:05 +08:00
Tunglies
c736796380
feat(clippy): cognitive-complexity rule ( #5215 )
...
* feat(config): enhance configuration initialization and validation process
* refactor(profile): streamline profile update logic and enhance error handling
* refactor(config): simplify profile item checks and streamline update flag processing
* refactor(disney_plus): add cognitive complexity allowance for check_disney_plus function
* refactor(enhance): restructure configuration and profile item handling for improved clarity and maintainability
* refactor(tray): add cognitive complexity allowance for create_tray_menu function
* refactor(config): add cognitive complexity allowance for patch_config function
* refactor(profiles): simplify item removal logic by introducing take_item_file_by_uid helper function
* refactor(profile): add new validation logic for profile configuration syntax
* refactor(profiles): improve formatting and readability of take_item_file_by_uid function
* refactor(cargo): change cognitive complexity level from warn to deny
* refactor(cargo): ensure cognitive complexity is denied in Cargo.toml
* refactor(i18n): clean up imports and improve code readability
refactor(proxy): simplify system proxy toggle logic
refactor(service): remove unnecessary `as_str()` conversion in error handling
refactor(tray): modularize tray menu creation for better maintainability
* refactor(tray): update menu item text handling to use references for improved performance
2025-10-27 20:55:51 +08:00