libnyanpasu / clash-nyanpasu

Clash Nyanpasu~(∠・ω< )⌒☆​
https://nyanpasu.elaina.moe
GNU General Public License v3.0
9.51k stars 597 forks source link

ubuntu下安装1.5的deb,打开后GUI窗口空白 #685

Open ironWee opened 8 months ago

ironWee commented 8 months ago

复现步骤 / Step to reproduce

  1. 安装软件 sudo dpkg -i clash-nyanpasu_1.5.0_amd64.deb
  2. 打开软件

预期行为 / Expected behaviour

正常情况下,应该显示主界面

实际行为 / Actual Behaviour

打开软件,界面如下 image

应用日志 / App logs

https://gist.github.com/ironWee/2db93e7f8b837936adf06200744c3629

备注 / Addition details

Clash Nyanpasu 版本号 / Clash Nyanpasu

1.5.0

Clash 核心及其版本号 / Clash core and version

无法查看

是否为 Pre-release / Is pre-release version

操作系统及版本 / OS version

ubuntu 2204

自查步骤 / Verify steps

greenhat616 commented 8 months ago

please post the logs

ironWee commented 7 months ago

the log is here:https://gist.github.com/ironWee/2db93e7f8b837936adf06200744c3629

BetterWorld-Liuser commented 6 months ago

deepin 在1.5.1版本 同样无法显示主界面

z20s11q commented 5 months ago

ubuntu22 1.5版本同样问题

kands-code commented 3 months ago

Arch 下,通过 AppImage 也有类似问题

image

终端启动的警告如下:

(clash-nyanpasu:12463): GLib-GObject-WARNING **: 09:35:58.956: instance with invalid (NULL) class pointer

(clash-nyanpasu:12463): GLib-GObject-CRITICAL **: 09:35:58.956: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
Cannot get default EGL display: EGL_BAD_PARAMETER
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)
Asset `proxies` not found; fallback to proxies.html

** (clash-nyanpasu:12463): WARNING **: 09:36:23.433: atk-bridge: get_device_events_reply: unknown signature

版本:1.5.1

ps: 对于 AppImage 版本,如果在终端启动后,尝试使用 tray menu 来重新启动应用会触发如下报错并退出

rust backtrace > 我开启了 `RUST_BACKTRACE=full` > > ```default > thread 'main' panicked at tauri/src/core/commands/mod.rs:50:56: > called `Result::unwrap()` on an `Err` value: single instance check failed: app still exists after 4s > > Stack backtrace: > 0: anyhow::error::::msg > 1: clash_verge::utils::init::check_singleton > 2: clash_verge::main > 3: std::sys_common::backtrace::__rust_begin_short_backtrace > 4: main > 5: > 6: __libc_start_main > 7: _start > stack backtrace: > 0: 0x6494f37cb249 - ::fmt::h9cca0343d66d16a8 > 1: 0x6494f3464470 - core::fmt::write::h4311bce0ee536615 > 2: 0x6494f3794c5e - std::io::Write::write_fmt::h0685c51539d0a0cd > 3: 0x6494f37cd50e - std::sys_common::backtrace::print::h2fb8f70628a241ed > 4: 0x6494f37cce35 - std::panicking::default_hook::{{closure}}::h05093fe2e3ef454d > 5: 0x6494f37cca1f - std::panicking::default_hook::h5ac38aa38e0086d2 > 6: 0x6494f37cdab3 - std::panicking::rust_panic_with_hook::hed79743dc8b4b969 > 7: 0x6494f37cd870 - std::panicking::begin_panic_handler::{{closure}}::ha437b5d58f431abf > 8: 0x6494f37cd7c6 - std::sys_common::backtrace::__rust_end_short_backtrace::hd98e82d5b39ec859 > 9: 0x6494f37cd7b3 - rust_begin_unwind > 10: 0x6494f318dfb4 - core::panicking::panic_fmt::hc69c4d258fe11477 > 11: 0x6494f318e522 - core::result::unwrap_failed::hff299ec748d62aab > 12: 0x6494f33a3c8f - clash_verge::main::h73bdb2457406f8c5 > 13: 0x6494f3237a48 - std::sys_common::backtrace::__rust_begin_short_backtrace::haa4404be0bb6374f > 14: 0x6494f33debff - main > 15: 0x7bca2b145e08 - > 16: 0x7bca2b145ecc - __libc_start_main > 17: 0x6494f31da225 - _start > 18: 0x0 - > ``` > > 不知道具体原因
kands-code commented 3 months ago

刚刚尝试了一下 1.5.2(dev) 版本,目前看来是正常的,但是有个行为不是很能理解,就是这个版本会创建两个 desktop 文件,分别为 clash-nyanpasu-handler-0.desktopclash-nyanpasu-handler-1.desktop,文件内容分别为:

> cat clash-nyanpasu-handler-0.desktop 
[Desktop Entry]
Type=Application
Name=nyanpasu
Exec=/home/kands/.local/sdk/nyanpasu/clash-nyanpasu.AppImage %u
Terminal=false
MimeType=x-scheme-handler/clash-nyanpasu;
NoDisplay=true

> cat clash-nyanpasu-handler-1.desktop 
[Desktop Entry]
Type=Application
Name=nyanpasu
Exec=/home/kands/.local/sdk/nyanpasu/clash-nyanpasu.AppImage %u
Terminal=false
MimeType=x-scheme-handler/clash;
NoDisplay=true

> cat clash-nyanpasu.desktop 
[Desktop Entry]
Categories=Development;
Comment=A Clash GUI based on tauri.
Exec=/home/kands/.local/sdk/nyanpasu/clash-nyanpasu.AppImage %u
Icon=/home/kands/.local/sdk/nyanpasu/nyanpasu-logo.png
Name=Clash Nyanpasu
Terminal=false
Type=Application
MimeType=x-scheme-handler/clash;x-scheme-handler/clash-nyanpasu;

其中 clash-nyanpasu.desktop 是我自己写的桌面文件,同时也有如下警告:

** (clash-nyanpasu:21971): WARNING **: 10:34:30.742: webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
The databases in [/home/kands/.local/share/applications/clash-nyanpasu-handler-0.desktop] could not be updated.
The databases in [/home/kands/.local/share/applications/clash-nyanpasu-handler-1.desktop] could not be updated.

(clash-nyanpasu:21971): GLib-GObject-WARNING **: 10:34:31.418: instance with invalid (NULL) class pointer

(clash-nyanpasu:21971): GLib-GObject-CRITICAL **: 10:34:31.418: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
Asset `dashboard` not found; fallback to dashboard.html
Unhandled network process message 'NetworkStorageManager_DisconnectFromStorageArea'
Unhandled network process message 'NetworkStorageManager_DisconnectFromStorageArea'
kands-code commented 3 months ago

对于 5.1.2(dev) 版本,界面也有不小的问题,动画卡顿就不说了,当我点击 设置->User Interface->主题设置 的时候,,一定会出现界面 freeze,除了部分按钮可以点击外,其余设置选项都是不可以点击的,并且这个版本的文件夹打开功能也有问题,看日志是调用 xdg-open 打开,但是却返回错误,我自己手动尝试是正常的,所有可用日志如下:

clash-nyanpasu.2024-08-15.app.log

clash-nyanpasu.2024-08-16.app.log

我在开启 trace 级别日志后的结果:

clash-nyanpasu.2024-08-16-trace.app.log

不过这个日志(在我看来)似乎没有用信息。

这是相关录像:

录屏 2024-08-16 11-05-06.webm

greenhat616 commented 2 months ago

对于白屏问题,WEBKIT_DISABLE_DMABUF_RENDERER=1 加入 /etc/environment 是否有效?

greenhat616 commented 2 months ago

其他问题应该已经解决了。AppImage 已经移除构建,且不再提供支持。

MimeType=x-scheme-handler/clash;x-scheme-handler/clash-nyanpasu; 这样子是有效的吗?是的话,我明天修改一下生成 desktop 文件的模式。

greenhat616 commented 2 months ago

图片 @kands-code 是跑在 AppImage 下的吗?感觉像是 AppImage 的问题,这也是为啥要弃用他的原因之一……

kands-code commented 2 months ago

@kands-code 是跑在 AppImage 下的吗?感觉像是 AppImage 的问题,这也是为啥要弃用他的原因之一……

是的,因为我现在在 arch,而 release/tags 中没有 arch 的打包,虽然 aur 里有,不过还没有尝试

greenhat616 commented 2 months ago

Mark: https://github.com/AppImage/AppImageKit/issues/132 https://github.com/AppImage/AppImageKit/issues/396

greenhat616 commented 2 months ago

@kands-code 尝试抹去环境变量后调用 xdg-open 是可行的。目前最新的开发分支已经修复了这个问题。 https://github.com/LibNyanpasu/clash-nyanpasu/commit/020e1e35bf54269ad1348d3f3896c49b49cc4b0b 图片

kands-code commented 2 months ago

@kands-code 尝试抹去环境变量后调用 xdg-open 是可行的。目前最新的开发分支已经修复了这个问题。

确实,我这边 AppImage 和 native 都试了一下,基本问题都解决了,但是感觉软件界面还是有少许问题。

首先是动画方面,可能是我的配置不太行,总感觉卡卡的(?),开启减轻动画效果后稍微好了一点。

其次,软件界面相关,每次从托盘点击“打开面板”启动窗口,窗口大小总是会以一个默认大小在一个固定的起始位置启动,而不会记住用户上次调整的大小。

另外在 设置->clash字段 中,四个选项(即 Default 等)下面的内容是在滚动显示的(也有可能是我的屏幕比较小?),我感觉这个没有太大必要,可以取消掉

IMG_20240828_071619.png

总之,辛苦了

greenhat616 commented 2 months ago

@kands-code 尝试抹去环境变量后调用 xdg-open 是可行的。目前最新的开发分支已经修复了这个问题。

确实,我这边 AppImage 和 native 都试了一下,基本问题都解决了,但是感觉软件界面还是有少许问题。

首先是动画方面,可能是我的配置不太行,总感觉卡卡的(?),开启减轻动画效果后稍微好了一点。

其次,软件界面相关,每次从托盘点击“打开面板”启动窗口,窗口大小总是会以一个默认大小在一个固定的起始位置启动,而不会记住用户上次调整的大小。

另外在 设置->clash字段 中,四个选项(即 Default 等)下面的内容是在滚动显示的(也有可能是我的屏幕比较小?),我感觉这个没有太大必要,可以取消掉

IMG_20240828_071619.png

总之,辛苦了

动画流畅度方面,主要是 gtkwebkit 的问题,其对于 wayland、对于现代 css 的渲染都存在问题。动画的卡顿的问题,以及之前的 freeze 问题都是它导致的。目前只能想办法规避,而不是彻底解决,这点 electron 的程序就不需要考虑这些。

关于窗口位置的问题,请新开issue反馈,似乎 macos 也存在这个问题,这个等我们下个补丁版本进行追踪。

Kimiblock commented 2 months ago

最新版 1.6 下运行 Nyanpasu 不显示任何窗口, 可能为 NVIDIA 特有问题:

➜  clash-nyanpasu-git git:(master) ✗ clash-nyanpasu -v
clash-nyanpasu v1.6.0 (Release Build)

╭─────────────────────────────── Build Information ───────────────────────────────╮
│   Commit Info: edf8e8d1c2fa7ac3dcbfedddb376da2437c70885 by github-actions[bot]  │
│   Commit Time: 8 hours ago (2024-08-29T19:09:44.000Z)                           │
│    Build Time: 15 minutes ago (2024-08-30T03:51:44.100Z)                        │
│  Build Target: x86_64-unknown-linux-gnu                                         │
│  Rust Version: rustc 1.82.0-nightly (515395af0 2024-08-26)                      │
│  LLVM Version: 19.1                                                             │
╰─────────────────────────────────────────────────────────────────────────────────╯
Kimiblock commented 2 months ago

WEBKIT_DMABUF_RENDERER_DISABLE_GBM=1, WEBKIT_DISABLE_COMPOSITING_MODE=1WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS=1 均无效, 系统安装的 Epiphany 正常

greenhat616 commented 2 months ago

最新版 1.6 下运行 Nyanpasu 不显示任何窗口, 可能为 NVIDIA 特有问题:

➜  clash-nyanpasu-git git:(master) ✗ clash-nyanpasu -v
clash-nyanpasu v1.6.0 (Release Build)

╭─────────────────────────────── Build Information ───────────────────────────────╮
│   Commit Info: edf8e8d1c2fa7ac3dcbfedddb376da2437c70885 by github-actions[bot]  │
│   Commit Time: 8 hours ago (2024-08-29T19:09:44.000Z)                           │
│    Build Time: 15 minutes ago (2024-08-30T03:51:44.100Z)                        │
│  Build Target: x86_64-unknown-linux-gnu                                         │
│  Rust Version: rustc 1.82.0-nightly (515395af0 2024-08-26)                      │
│  LLVM Version: 19.1                                                             │
╰─────────────────────────────────────────────────────────────────────────────────╯

AppImage 也有这个问题么?在 ArchLinux 下尝试开发启动,以及通过 ArchLinux 编译 AppImage 都不太行。 我之前采用的环境是 Wayland + KDE。

此外,WEBKIT_DISABLE_DMABUF_RENDERER 有尝试么?

注:Nvidia 驱动采用了 560 么?

Kimiblock commented 2 months ago

WEBKIT_DISABLE_DMABUF_RENDERER=1 确实能让 Nyanpasu 卡住一会后启动. NVIDIA 560.35.03