有没有人在WSL下成功体验过EAF?

请分享一下使用体验。:grinning:

don’t waste your time

1 个赞

能说下理由吗?

开发者不用 M$ Windows.

wsl2不是说有完整的内核吗?难道不可以用eaf吗?

WSL可以用EAF,@dlwxxxdlw证实了。

:rofl: :rofl: :rofl: :rofl:

很好,我的来折腾一把了

具体体验怎么样,有点期待

@T_fighting 成功了告诉我一声,我最近没办法折腾 :joy:

wsl+vcxsrv,必须从桌面环境启动emacs,不然会提示连接不到 Dbus

你让vcxsrv的Linux桌面窗口占用一个Windows虚拟桌面?

看来用着有点累赘啊。Emacs窗口外面还套了Linux桌面窗口。用法不如单窗口模式那么灵活了。

试试看

eval $(dbus-launch)
export DBUS_SESSION_BUS_ADDRESS
emacs

我这样启动, 不从桌面环境启动 emacs 也不会提示连接不到 DBus.

4 个赞

不知道为啥在WSL2的Arch里试EAF 始终有如下bug

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-xfu'
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
EAF process starting...
QGLXContext: Failed to create dummy context
QQuickWidget: Failed to make context current
Session is not restored, as no data present in session file.
QQuickWidget: Attempted to render scene with no context

虽然作者有提过可能是dependency的问题 eaf-open-browser *eaf* segmentation fault (core dumped) · Issue #245 · emacs-eaf/emacs-application-framework · GitHub

可是我即使用pacman来装,还是会core dump。。。

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fffe35a8700 (LWP 72177)]
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-xfu'
[New Thread 0x7fffe10cf700 (LWP 72178)]
[New Thread 0x7fffd71b2700 (LWP 72179)]
[New Thread 0x7fffd6821700 (LWP 72180)]
[New Thread 0x7fffd5e90700 (LWP 72181)]
[New Thread 0x7fffd54ff700 (LWP 72182)]
[New Thread 0x7fffd4b6e700 (LWP 72183)]
[New Thread 0x7fffbffff700 (LWP 72184)]
[New Thread 0x7fffbf66e700 (LWP 72185)]
[New Thread 0x7fffbecdd700 (LWP 72186)]
[New Thread 0x7fffbe34c700 (LWP 72187)]
[New Thread 0x7fffbd9bb700 (LWP 72188)]
[New Thread 0x7fffbd02a700 (LWP 72189)]
[New Thread 0x7fffa3fff700 (LWP 72190)]
[New Thread 0x7fffa366e700 (LWP 72191)]
[New Thread 0x7fffa2cdd700 (LWP 72192)]
[New Thread 0x7fffa234c700 (LWP 72193)]
[New Thread 0x7fffa19bb700 (LWP 72194)]
[New Thread 0x7fffa102a700 (LWP 72195)]
[New Thread 0x7fff87fff700 (LWP 72196)]
[New Thread 0x7fff8766e700 (LWP 72197)]
[New Thread 0x7fff86cdd700 (LWP 72198)]
[New Thread 0x7fff8634c700 (LWP 72199)]
[New Thread 0x7fff859bb700 (LWP 72200)]
[New Thread 0x7fff8502a700 (LWP 72201)]
[New Thread 0x7fff6bfff700 (LWP 72202)]
[New Thread 0x7fff6b66e700 (LWP 72203)]
[New Thread 0x7fff6acdd700 (LWP 72204)]
[New Thread 0x7fff6a34c700 (LWP 72205)]
[New Thread 0x7fff699bb700 (LWP 72206)]
[New Thread 0x7fff6902a700 (LWP 72207)]
[New Thread 0x7fff4ffff700 (LWP 72208)]
[New Thread 0x7fff4f66e700 (LWP 72209)]
libGL error: No matching fbConfigs or visuals found
[Thread 0x7fff4f66e700 (LWP 72209) exited]
[Thread 0x7fff859bb700 (LWP 72200) exited]
[Thread 0x7fff8634c700 (LWP 72199) exited]
[Thread 0x7fff86cdd700 (LWP 72198) exited]
[Thread 0x7fff8766e700 (LWP 72197) exited]
[Thread 0x7fff87fff700 (LWP 72196) exited]
[Thread 0x7fff8502a700 (LWP 72201) exited]
[Thread 0x7fffa102a700 (LWP 72195) exited]
[Thread 0x7fffa19bb700 (LWP 72194) exited]
[Thread 0x7fff6a34c700 (LWP 72205) exited]
[Thread 0x7fff6902a700 (LWP 72207) exited]
[Thread 0x7fff699bb700 (LWP 72206) exited]
[Thread 0x7fff6acdd700 (LWP 72204) exited]
[Thread 0x7fff6b66e700 (LWP 72203) exited]
[Thread 0x7fff6bfff700 (LWP 72202) exited]
[Thread 0x7fff4ffff700 (LWP 72208) exited]
[Thread 0x7fffd5e90700 (LWP 72181) exited]
[Thread 0x7fffd4b6e700 (LWP 72183) exited]
[Thread 0x7fffbf66e700 (LWP 72185) exited]
[Thread 0x7fffbecdd700 (LWP 72186) exited]
[Thread 0x7fffbffff700 (LWP 72184) exited]
[Thread 0x7fffbd9bb700 (LWP 72188) exited]
[Thread 0x7fffbd02a700 (LWP 72189) exited]
[Thread 0x7fffbe34c700 (LWP 72187) exited]
[Thread 0x7fffd54ff700 (LWP 72182) exited]
[Thread 0x7fffd6821700 (LWP 72180) exited]
[Thread 0x7fffd71b2700 (LWP 72179) exited]
[Thread 0x7fffe10cf700 (LWP 72178) exited]
[Thread 0x7fffa2cdd700 (LWP 72192) exited]
[Thread 0x7fffa366e700 (LWP 72191) exited]
[Thread 0x7fffa3fff700 (LWP 72190) exited]
[Thread 0x7fffa234c700 (LWP 72193) exited]
libGL error: failed to load driver: swrast
[Detaching after fork from child process 72210]
EAF process starting...
[New Thread 0x7fffa234c700 (LWP 72217)]
[Detaching after fork from child process 72218]
QGLXContext: Failed to create dummy context
[New Thread 0x7fffa2cdd700 (LWP 72219)]
[Detaching after fork from child process 72220]
[Detaching after fork from child process 72221]
[New Thread 0x7fffa366e700 (LWP 72224)]
[New Thread 0x7fffa3fff700 (LWP 72225)]
[New Thread 0x7fffe1b32700 (LWP 72226)]
[New Thread 0x7fffe10cf700 (LWP 72227)]
[New Thread 0x7fffd71b2700 (LWP 72228)]
[New Thread 0x7fffd6821700 (LWP 72229)]
[New Thread 0x7fffd5e90700 (LWP 72230)]
[New Thread 0x7fffd54ff700 (LWP 72231)]
[New Thread 0x7fffd4b6e700 (LWP 72232)]
[New Thread 0x7fffbffff700 (LWP 72233)]
[Detaching after fork from child process 72234]
[Detaching after fork from child process 72235]
[New Thread 0x7fffbf66e700 (LWP 72236)]
[New Thread 0x7fffbecdd700 (LWP 72237)]
QQuickWidget: Failed to make context current
Session is not restored, as no data present in session file.
[Detaching after fork from child process 72250]
QQuickWidget: Attempted to render scene with no context
[New Thread 0x7fffa19bb700 (LWP 72251)]

Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007ffff3bba660 in QOpenGLContext::shareGroup() const () from /usr/lib/libQt5Gui.so.5
#0  0x00007ffff3bba660 in QOpenGLContext::shareGroup() const () from /usr/lib/libQt5Gui.so.5
#1  0x00007ffff3f047e6 in ?? () from /usr/lib/libQt5Gui.so.5
#2  0x00007ffff3f049eb in QOpenGLFunctions::initializeOpenGLFunctions() () from /usr/lib/libQt5Gui.so.5
#3  0x00007fffeae64de9 in QSGBatchRenderer::Renderer::Renderer(QSGDefaultRenderContext*) () from /usr/lib/libQt5Quick.so.5
#4  0x00007fffeaec16a4 in QSGDefaultRenderContext::createRenderer() () from /usr/lib/libQt5Quick.so.5
#5  0x00007fffeaf2cd73 in QQuickWindowPrivate::syncSceneGraph() () from /usr/lib/libQt5Quick.so.5
#6  0x00007fffeaff7a5d in QQuickRenderControl::grab() () from /usr/lib/libQt5Quick.so.5
#7  0x00007fffeac3e4aa in ?? () from /usr/lib/libQt5QuickWidgets.so.5
#8  0x00007ffff274ca2c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#9  0x00007ffff274d298 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff274bb2d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff2750208 in QWidgetPrivate::render(QPaintDevice*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) () from /usr/lib/libQt5Widgets.so.5
#12 0x00007ffff2750741 in QWidget::render(QPainter*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) () from /usr/lib/libQt5Widgets.so.5
#13 0x00007ffff2a3a1af in QGraphicsProxyWidget::paint(QPainter*, QStyleOptionGraphicsItem const*, QWidget*) () from /usr/lib/libQt5Widgets.so.5
#14 0x00007ffff2a400e2 in ?? () from /usr/lib/libQt5Widgets.so.5
#15 0x00007ffff2a51790 in ?? () from /usr/lib/libQt5Widgets.so.5
#16 0x00007ffff2a54789 in ?? () from /usr/lib/libQt5Widgets.so.5
#17 0x00007ffff2a55490 in ?? () from /usr/lib/libQt5Widgets.so.5
#18 0x00007ffff2a559f2 in ?? () from /usr/lib/libQt5Widgets.so.5
#19 0x00007ffff2a7a17b in QGraphicsView::paintEvent(QPaintEvent*) () from /usr/lib/libQt5Widgets.so.5
#20 0x00007fffe4972514 in ?? () from /usr/lib/python3.8/site-packages/PyQt5/QtWidgets.abi3.so
#21 0x00007ffff27532ee in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#22 0x00007ffff2804cbf in QFrame::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007ffff2a78b23 in QGraphicsView::viewportEvent(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007fffe4974284 in ?? () from /usr/lib/python3.8/site-packages/PyQt5/QtWidgets.abi3.so
#25 0x00007ffff6d8b203 in ?? () from /usr/lib/libQt5Core.so.5
#26 0x00007ffff270f341 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007ffff2718829 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#28 0x00007fffe4a5d88f in ?? () from /usr/lib/python3.8/site-packages/PyQt5/QtWidgets.abi3.so
#29 0x00007ffff6d8b4f2 in ?? () from /usr/lib/libQt5Core.so.5
#30 0x00007ffff274b5b8 in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /usr/lib/libQt5Widgets.so.5
#31 0x00007ffff274be1c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#32 0x00007ffff274d298 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#33 0x00007ffff274bb2d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#34 0x00007ffff274d298 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#35 0x00007ffff274bb2d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#36 0x00007ffff27225a9 in ?? () from /usr/lib/libQt5Widgets.so.5
#37 0x00007ffff2722ec8 in ?? () from /usr/lib/libQt5Widgets.so.5
#38 0x00007ffff2771187 in ?? () from /usr/lib/libQt5Widgets.so.5
#39 0x00007ffff2771b8a in ?? () from /usr/lib/libQt5Widgets.so.5
#40 0x00007ffff270f352 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#41 0x00007ffff2718829 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#42 0x00007fffe4a5d88f in ?? () from /usr/lib/python3.8/site-packages/PyQt5/QtWidgets.abi3.so
#43 0x00007ffff6d8b4f2 in ?? () from /usr/lib/libQt5Core.so.5
#44 0x00007ffff3b7d662 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () from /usr/lib/libQt5Gui.so.5
#45 0x00007ffff3b7d8a0 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
#46 0x00007ffff3b55c5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#47 0x00007fffe41cae2c in ?? () from /usr/lib/libQt5XcbQpa.so.5
#48 0x00007ffff620c9be in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#49 0x00007ffff620e831 in ?? () from /usr/lib/libglib-2.0.so.0
#50 0x00007ffff620e871 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#51 0x00007ffff6de3890 in ?? () from /usr/lib/libQt5Core.so.5
#52 0x00007ffff6d8a05c in ?? () from /usr/lib/libQt5Core.so.5
#53 0x00007ffff6d92066 in ?? () from /usr/lib/libQt5Core.so.5
#54 0x00007fffe4a5c31f in ?? () from /usr/lib/python3.8/site-packages/PyQt5/QtWidgets.abi3.so
#55 0x00007ffff7b6eb6f in PyCFunction_Call () from /usr/lib/libpython3.8.so.1.0
#56 0x00007ffff7b61f42 in _PyObject_MakeTpCall () from /usr/lib/libpython3.8.so.1.0
#57 0x00007ffff7c1f98f in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.8.so.1.0
#58 0x00007ffff7c0af34 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.8.so.1.0
#59 0x00007ffff7c92873 in PyEval_EvalCode () from /usr/lib/libpython3.8.so.1.0
#60 0x00007ffff7c928c8 in ?? () from /usr/lib/libpython3.8.so.1.0
#61 0x00007ffff7c96ba3 in ?? () from /usr/lib/libpython3.8.so.1.0
#62 0x00007ffff7b31a1f in PyRun_FileExFlags () from /usr/lib/libpython3.8.so.1.0
#63 0x00007ffff7b3b6d7 in PyRun_SimpleFileExFlags () from /usr/lib/libpython3.8.so.1.0
#64 0x00007ffff7ca335e in Py_RunMain () from /usr/lib/libpython3.8.so.1.0
#65 0x00007ffff7ca3449 in Py_BytesMain () from /usr/lib/libpython3.8.so.1.0
#66 0x00007ffff7e13023 in __libc_start_main () from /usr/lib/libc.so.6
#67 0x000055555555505e in _start ()

@manateelazycat 求助大大。。

因为EAF的View设计是基于QGraphicsSence的,QGraphicsSence通过OpenGL混合,可以让一个Qt控件复制无数份,以实现和Emacs的 Buffer/Window 模型对应。

看你的报错堆栈,我猜测WSL只是内置了Linux内核和Linux文件系统,并没有对Qt这种显卡混合高科技做支持。

最近有大佬在替换EAF的DBus IPC,替换完成后,EAF应该可以直接在Windows上运行,而不需要WSL

1 个赞

WSL 1里面也有这个问题?

好像是wsl2的arch不支持QT5

貌似看论坛里有用wsl成功装上eaf的呀

你用arch-wsl装的?qt5在arch下面是有点问题,不过和这个问题有关?