wayfirewm / wayfire-plugins-extra Goto Github PK
View Code? Open in Web Editor NEWAdditional plugins for Wayfire
License: MIT License
Additional plugins for Wayfire
License: MIT License
Add a setting to toggle crosshair on/off
I have been testing Wayfire on my Tablet PC.
Rotate using the Key press works but not using the sensors.
It's very much of a hack to load/unload the autorotate plugin. It'd be nice if carbonSHELL can just change a boolean property in the config file to toggle the autorotate functionality
Failing on Arch with:
[27/37] Compiling C++ object src/libmag.so.p/mag.cpp.o
FAILED: src/libmag.so.p/mag.cpp.o
c++ -Isrc/libmag.so.p -Isrc -I../wayfire-plugins-extra-0.7.0/src -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/pixman-1 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O0 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -MD -MQ src/libmag.so.p/mag.cpp.o -MF src/libmag.so.p/mag.cpp.o.d -o src/libmag.so.p/mag.cpp.o -c ../wayfire-plugins-extra-0.7.0/src/mag.cpp
../wayfire-plugins-extra-0.7.0/src/mag.cpp: In lambda function:
../wayfire-plugins-extra-0.7.0/src/mag.cpp:178:14: error: ‘wlr_output_export_dmabuf’ was not declared in this scope; did you mean ‘wlr_output_event_damage’?
178 | if (!wlr_output_export_dmabuf(output->handle, &dmabuf_attribs))
| ^~~~~~~~~~~~~~~~~~~~~~~~
| wlr_output_event_damage
[32/37] Compiling C++ object src/libworkspace-names.so.p/workspace-names.cpp.o
Hi.
I'm trying to build plugins.
Dev packages:
$ apt list '*wayfire*-dev' '*libwf*-dev' '*libwl*-dev' '*cairo*-dev' '*libmm*-dev' --installed
Listing... Done
libcairo2-dev/testing,unstable,now 1.16.0-7 amd64 [installed,automatic]
libmm-glib-dev/testing,unstable,now 1.20.4-1 amd64 [installed]
libwf-config-dev/testing,unstable,now 0.7.1-3 amd64 [installed]
libwlroots-dev/experimental,now 0.16.2-1 amd64 [installed]
wayfire-dev/testing,unstable,now 0.7.4-2 amd64 [installed]
Preparation:
git clone https://github.com/WayfireWM/wayfire-plugins-extra.git .
git checkout v0.7.5
git submodule update --init
Building:
$ fakeroot checkinstall sh -c 'meson setup --wipe build && meson build --prefix=/usr --buildtype=release && ninja -C build && ninja -C build install'
Error:
FAILED: src/libwinzoom.so.p/window-zoom.cpp.o
c++ -Isrc/libwinzoom.so.p -Isrc -I../src -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/libevdev-1.0/ -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++17 -O3 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -fPIC -pthread -MD -MQ src/libwinzoom.so.p/window-zoom.cpp.o -MF src/libwinzoom.so.p/window-zoom.cpp.o.d -o src/libwinzoom.so.p/window-zoom.cpp.o -c ../src/window-zoom.cpp
../src/window-zoom.cpp:198:33: error: could not convert ‘<lambda closure object>wayfire_winzoom::<lambda(wlr_pointer_axis_event*)>{((wayfire_winzoom*)this)}’ from ‘wayfire_winzoom::<lambda(wlr_pointer_axis_event*)>’ to ‘wf::axis_callback’ {aka ‘std::function<bool(wlr_event_pointer_axis*)>’}
198 | wf::axis_callback axis_cb = [=] (wlr_pointer_axis_event *ev)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| wayfire_winzoom::<lambda(wlr_pointer_axis_event*)>
199 | {
| ~
200 | auto view = wf::get_core().get_cursor_focus_view();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201 | if (ev->orientation == WLR_AXIS_ORIENTATION_VERTICAL)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
202 | {
| ~
203 | auto delta = (int)-std::clamp(ev->delta, -1.0, 1.0);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
204 | return update_winzoom(view, wf::point_t{delta, delta});
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
205 | }
| ~
206 |
|
207 | return false;
| ~~~~~~~~~~~~~
208 | };
| ~
[30/33] Compiling C++ object src/libworkspace-names.so.p/workspace-names.cpp.o
ninja: build stopped: subcommand failed.
Hey there,
I've been using background-view for quite a while now, but it's a bit unstable, if you are using programs that need to be restarted to apply settings.
It mostly seems to come down to wayfire crashing, when starting/stopping the background-view plugin while the background process is dead.
Please fix this, I assume that the other toggling crashes will be fixed by something like this!
Thanks!
With server side decorations enabled (preferred_decoration_mode = server
), reducing the size (default width) so that the space for the window title (horizontal) becomes too small, immediately causes wayfire to crash ...
EE 07-03-23 23:26:38.052 - [src/main.cpp:134] Fatal error: Segmentation fault
EE 07-03-23 23:26:38.123 - #1 signal_handler(int) ../src/main.cpp:136
EE 07-03-23 23:26:38.141 - #2 __sigaction ??:?
EE 07-03-23 23:26:38.164 - #3 cairo_image_surface_get_width ??:?
EE 07-03-23 23:26:38.225 - #4 cairo_surface_upload_to_texture(_cairo_surface*, wf::simple_texture_t&) /usr/local/include/wayfire/plugins/common/cairo-util.hpp:24
EE 07-03-23 23:26:38.303 - #5 simple_decoration_node_t::update_title(int, int, double) ../subprojects/windecor/deco-subsurface.cpp:71
EE 07-03-23 23:26:38.372 - #6 simple_decoration_node_t::render_title(wf::render_target_t const&, wlr_box) ../subprojects/windecor/deco-subsurface.cpp:170
EE 07-03-23 23:26:38.427 - #7 simple_decoration_node_t::render_scissor_box(wf::render_target_t const&, wf::point_t, wlr_box const&) ../subprojects/windecor/deco-subsurface.cpp:187 (discriminator 6)
EE 07-03-23 23:26:38.465 - #8 simple_decoration_node_t::decoration_render_instance_t::render(wf::render_target_t const&, wf::region_t const&) ../subprojects/windecor/deco-subsurface.cpp:368 (discriminator 3)
EE 07-03-23 23:26:38.552 - #9 wf::scene::render_instance_t::render(wf::render_target_t const&, wf::region_t const&, std::any const&) ../src/api/wayfire/scene-render.hpp:123
EE 07-03-23 23:26:38.791 - #10 wf::scene::run_render_pass(wf::scene::render_pass_params_t const&, unsigned int) ../src/output/render-manager.cpp:1045
EE 07-03-23 23:26:38.845 - #11 wf::scene::transformer_render_instance_t<wobbly_transformer_node_t>::get_texture(float) ../src/api/wayfire/view-transform.hpp:119 (discriminator 2)
EE 07-03-23 23:26:38.917 - #12 wobbly_render_instance_t::render(wf::render_target_t const&, wf::region_t const&) ../plugins/wobbly/wobbly.cpp:893
EE 07-03-23 23:26:39.026 - #13 wf::scene::render_instance_t::render(wf::render_target_t const&, wf::region_t const&, std::any const&) ../src/api/wayfire/scene-render.hpp:123
EE 07-03-23 23:26:39.271 - #14 wf::scene::run_render_pass(wf::scene::render_pass_params_t const&, unsigned int) ../src/output/render-manager.cpp:1045
EE 07-03-23 23:26:39.500 - #15 wf::render_manager::impl::render_output() ../src/output/render-manager.cpp:893
EE 07-03-23 23:26:39.767 - #16 wf::render_manager::impl::paint() ../src/output/render-manager.cpp:957
EE 07-03-23 23:26:39.981 - #17 wf::render_manager::impl::impl(wf::output_t*)::{lambda(void*)#1}::operator()(void*) const ../src/output/render-manager.cpp:758
EE 07-03-23 23:26:40.215 - #18 void std::__invoke_impl<void, wf::render_manager::impl::impl(wf::output_t*)::{lambda(void*)#1}&, void*>(std::__invoke_other, wf::render_manager::impl::impl(wf::output_t*)::{lambda(void*)#1}&, void*&&) /usr/include/c++/12.2.1/bits/invoke.h:61
EE 07-03-23 23:26:40.454 - #19 std::enable_if<is_invocable_r_v<void, wf::render_manager::impl::impl(wf::output_t*)::{lambda(void*)#1}&, void*>, void>::type std::__invoke_r<void, wf::render_manager::impl::impl(wf::output_t*)::{lambda(void*)#1}&, void*>(wf::render_manager::impl::impl(wf::output_t*)::{lambda(void*)#1}&, void*&&) /usr/include/c++/12.2.1/bits/invoke.h:117
EE 07-03-23 23:26:40.692 - #20 std::_Function_handler<void (void*), wf::render_manager::impl::impl(wf::output_t*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/12.2.1/bits/std_function.h:291
EE 07-03-23 23:26:40.751 - #21 std::function<void (void*)>::operator()(void*) const /usr/include/c++/12.2.1/bits/std_function.h:591
EE 07-03-23 23:26:40.825 - #22 wf::wl_listener_wrapper::emit(void*) ../src/wl-listener-wrapper.tpp:59
EE 07-03-23 23:26:40.901 - #23 wf::handle_wrapped_listener(wl_listener*, void*) ../src/wl-listener-wrapper.tpp:11
EE 07-03-23 23:26:40.931 - #24 wl_signal_emit_mutable ??:?
EE 07-03-23 23:26:40.959 - #25 wl_signal_emit_mutable ??:?
EE 07-03-23 23:26:40.981 - #26 ffi_prep_go_closure ??:?
EE 07-03-23 23:26:41.007 - #27 ?? ??:0
EE 07-03-23 23:26:41.030 - #28 ffi_call ??:?
EE 07-03-23 23:26:41.052 - #29 ?? ??:0
EE 07-03-23 23:26:41.079 - #30 wl_list_remove ??:?
EE 07-03-23 23:26:41.105 - #31 wl_display_dispatch_queue_pending ??:?
EE 07-03-23 23:26:41.126 - #32 wlr_multi_backend_add ??:?
EE 07-03-23 23:26:41.146 - #33 wl_event_loop_dispatch ??:?
EE 07-03-23 23:26:41.170 - #34 wl_display_run ??:?
EE 07-03-23 23:26:41.256 - #35 main ../src/main.cpp:398
EE 07-03-23 23:26:41.282 - #36 __libc_init_first ??:?
EE 07-03-23 23:26:41.308 - #37 __libc_start_main ??:?
EE 07-03-23 23:26:41.505 - #38 _start ??:?
The project should at least tell:
optional: where to get if not directly
Contributions to wiki/further doc, descriptions of usecases could be more encouraged, but I would propose it's better to just keep one wiki (that of wayfire itself, to keep stuff together and encourage interaction) and just link to that.
Right now it is kind of a black box, and requires unnecessary digging to use the package to full extent, or even contribute.
output:
[14/43] Compiling C++ object src/libmag.so.p/mag.cpp.o
FAILED: src/libmag.so.p/mag.cpp.o
sccache c++ -Isrc/libmag.so.p -Isrc -I../src -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/pixman-1 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -MD -MQ src/libmag.so.p/mag.cpp.o -MF src/libmag.so.p/mag.cpp.o.d -o src/libmag.so.p/mag.cpp.o -c ../src/mag.cpp
../src/mag.cpp: In lambda function:
../src/mag.cpp:176:30: error: ‘struct wlr_output’ has no member named ‘front_buffer’
176 | if (!output->handle->front_buffer)
| ^~~~~~~~~~~~
../src/mag.cpp:184:52: error: ‘struct wlr_output’ has no member named ‘front_buffer’
184 | if (!wlr_buffer_get_dmabuf(output->handle->front_buffer, &dmabuf_attribs))
| ^~~~~~~~~~~~
[30/43] Compiling C++ object src/libhinge.so.p/hinge.cpp.o
../src/hinge.cpp: In static member function ‘static void wayfire_hinge::send_message(wayfire_hinge::thread_message, int)’:
../src/hinge.cpp:107:14: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
107 | write(write_fd, &message, 1);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../src/hinge.cpp: In static member function ‘static int wayfire_hinge::on_pipe_update(int, uint32_t, void*)’:
../src/hinge.cpp:114:13: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
114 | read(that->pipefd[0], &message, 1);
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[31/43] Compiling C++ object src/libautorotate-iio.so.p/autorotate-iio.cpp.o
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...
-> error making: wayfire-plugins-extra-git
Hide the cursor after a configurable (cursor) inactivity timeout.
And this can be ignored by views like games.
Can we have individual wallpapers for each workspace?
Hey there,
I was just wondering, if a qt-style plugin provider could be added to this to add QT theming support like the people at desq did it
This would be an awesome addition to wayfire, since qt theming has always been an issue with non-kde DEs.
Thanks!
Perhaps something similar to how Android does that. That could perhaps come easier after WayfireWM/wayfire#116 is fixed, as then we'll have a reasonable set of signals to listen to.
ninja: Entering directory `build'
[28/41] Compiling C++ object src/libhinge.so.p/hinge.cpp.o
../src/hinge.cpp: In static member function ‘static void wayfire_hinge::send_message(wayfire_hinge::thread_message, int)’:
../src/hinge.cpp:107:14: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
107 | write(write_fd, &message, 1);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../src/hinge.cpp: In static member function ‘static int wayfire_hinge::on_pipe_update(int, uint32_t, void*)’:
../src/hinge.cpp:114:13: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
114 | read(that->pipefd[0], &message, 1);
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[32/41] Compiling C++ object src/libfollow-focus.so.p/follow-focus.cpp.o
FAILED: src/libfollow-focus.so.p/follow-focus.cpp.o
ccache c++ -Isrc/libfollow-focus.so.p -Isrc -I../src -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -MD -MQ src/libfollow-focus.so.p/follow-focus.cpp.o -MF src/libfollow-focus.so.p/follow-focus.cpp.o.d -o src/libfollow-focus.so.p/follow-focus.cpp.o -c ../src/follow-focus.cpp
../src/follow-focus.cpp: In member function ‘virtual void follow_focus::wayfire_follow_focus::init()’:
../src/follow-focus.cpp:175:57: error: cannot convert ‘wf::signal_callback_t*’ {aka ‘std::function<void(wf::signal_data_t*)>*’} to ‘wf::signal_connection_t*’
175 | wf::get_core().connect_signal("pointer_motion", &pointer_motion);
| ^~~~~~~~~~~~~~~
| |
| wf::signal_callback_t* {aka std::function<void(wf::signal_data_t*)>*}
In file included from /usr/include/wayfire/core.hpp:4,
from ../src/follow-focus.cpp:24:
/usr/include/wayfire/object.hpp:76:64: note: initializing argument 2 of ‘void wf::signal_provider_t::connect_signal(std::string, wf::signal_connection_t*)’
76 | void connect_signal(std::string name, signal_connection_t *callback);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
../src/follow-focus.cpp: In member function ‘virtual void follow_focus::wayfire_follow_focus::fini()’:
../src/follow-focus.cpp:180:41: error: no matching function for call to ‘wf::compositor_core_t::disconnect_signal(const char [15], wf::signal_callback_t*)’
180 | wf::get_core().disconnect_signal("pointer_motion", &pointer_motion);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/wayfire/core.hpp:4,
from ../src/follow-focus.cpp:24:
/usr/include/wayfire/object.hpp:78:10: note: candidate: ‘void wf::signal_provider_t::disconnect_signal(wf::signal_connection_t*)’
78 | void disconnect_signal(signal_connection_t *callback);
| ^~~~~~~~~~~~~~~~~
/usr/include/wayfire/object.hpp:78:10: note: candidate expects 1 argument, 2 provided
[36/41] Compiling C++ object src/libforce-fullscreen.so.p/force-fullscreen.cpp.o
FAILED: src/libforce-fullscreen.so.p/force-fullscreen.cpp.o
ccache c++ -Isrc/libforce-fullscreen.so.p -Isrc -I../src -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -MD -MQ src/libforce-fullscreen.so.p/force-fullscreen.cpp.o -MF src/libforce-fullscreen.so.p/force-fullscreen.cpp.o.d -o src/libforce-fullscreen.so.p/force-fullscreen.cpp.o -c ../src/force-fullscreen.cpp
../src/force-fullscreen.cpp: In member function ‘void wayfire_force_fullscreen::connect_motion_signal()’:
../src/force-fullscreen.cpp:483:57: error: cannot convert ‘wf::signal_callback_t*’ {aka ‘std::function<void(wf::signal_data_t*)>*’} to ‘wf::signal_connection_t*’
483 | wf::get_core().connect_signal("pointer_motion", &on_motion_event);
| ^~~~~~~~~~~~~~~~
| |
| wf::signal_callback_t* {aka std::function<void(wf::signal_data_t*)>*}
In file included from /usr/include/wayfire/core.hpp:4,
from ../src/force-fullscreen.cpp:27:
/usr/include/wayfire/object.hpp:76:64: note: initializing argument 2 of ‘void wf::signal_provider_t::connect_signal(std::string, wf::signal_connection_t*)’
76 | void connect_signal(std::string name, signal_connection_t *callback);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
../src/force-fullscreen.cpp: In member function ‘void wayfire_force_fullscreen::disconnect_motion_signal()’:
../src/force-fullscreen.cpp:494:41: error: no matching function for call to ‘wf::compositor_core_t::disconnect_signal(const char [15], wf::signal_callback_t*)’
494 | wf::get_core().disconnect_signal("pointer_motion", &on_motion_event);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/wayfire/core.hpp:4,
from ../src/force-fullscreen.cpp:27:
/usr/include/wayfire/object.hpp:78:10: note: candidate: ‘void wf::signal_provider_t::disconnect_signal(wf::signal_connection_t*)’
78 | void disconnect_signal(signal_connection_t *callback);
| ^~~~~~~~~~~~~~~~~
/usr/include/wayfire/object.hpp:78:10: note: candidate expects 1 argument, 2 provided
[38/41] Compiling C++ object src/libautorotate-iio.so.p/autorotate-iio.cpp.o
FAILED: src/libautorotate-iio.so.p/autorotate-iio.cpp.o
ccache c++ -Isrc/libautorotate-iio.so.p -Isrc -I../src -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -pthread -MD -MQ src/libautorotate-iio.so.p/autorotate-iio.cpp.o -MF src/libautorotate-iio.so.p/autorotate-iio.cpp.o.d -o src/libautorotate-iio.so.p/autorotate-iio.cpp.o -c ../src/autorotate-iio.cpp
../src/autorotate-iio.cpp: In member function ‘virtual void WayfireAutorotateIIO::init( ’:
../src/autorotate-iio.cpp:167:13: error: cannot convert ‘wf::signal_callback_t*’ {aka ‘std::function<void(wf::signal_data_t*)>*’} to ‘wf::signal_connection_t*’
167 | &on_input_devices_changed);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| |
| wf::signal_callback_t* {aka std::function<void(wf::signal_data_t*)>*}
In file included from /usr/include/wayfire/output.hpp:5,
from ../src/autorotate-iio.cpp:2:
/usr/include/wayfire/object.hpp:76:64: note: initializing argument 2 of ‘void wf::signal_provider_t::connect_signal(std::string, wf::signal_connection_t*)’
76 | void connect_signal(std::string name, signal_connection_t *callback);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
../src/autorotate-iio.cpp: In member function ‘virtual void WayfireAutorotateIIO::fini( ’:
../src/autorotate-iio.cpp:257:41: error: no matching function for call to ‘wf::compositor_core_t::disconnect_signal(const char [19], wf::signal_callback_t*)’
257 | wf::get_core().disconnect_signal("input-device-added",
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
258 | &on_input_devices_changed);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/wayfire/output.hpp:5,
from ../src/autorotate-iio.cpp:2:
/usr/include/wayfire/object.hpp:78:10: note: candidate: ‘void wf::signal_provider_t::disconnect_signal(wf::signal_connection_t*)’
78 | void disconnect_signal(signal_connection_t *callback);
| ^~~~~~~~~~~~~~~~~
/usr/include/wayfire/object.hpp:78:10: note: candidate expects 1 argument, 2 provided
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...
error: failed to build 'wayfire-plugins-extra-git-r71.a3412ee-1':
error: packages failed to build: wayfire-plugins-extra-git-r71.a3412ee-1
After configuring with meson I get the following error on Fedora:
ninja: Entering directory `build'
[5/6] Compiling C++ object src/libview-shot.so.p/view-shot.cpp.o
FAILED: src/libview-shot.so.p/view-shot.cpp.o
c++ -Isrc/libview-shot.so.p -Isrc -I../src -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -fPIC -DUSE_VCHIQ_ARM -MD -MQ src/libview-shot.so.p/view-shot.cpp.o -MF src/libview-shot.so.p/view-shot.cpp.o.d -o src/libview-shot.so.p/view-shot.cpp.o -c ../src/view-shot.cpp
../src/view-shot.cpp: In lambda function:
../src/view-shot.cpp:58:59: error: ‘class wf::view_interface_t’ has no member named ‘get_snapshot’; did you mean ‘take_snapshot’?
58 | const wf::framebuffer_t& offscreen_buffer = view->get_snapshot();
| ^~~~~~~~~~~~
| take_snapshot
ninja: build stopped: subcommand failed.
Describe the bug
Changing focus with drag and drop does not send keyboard input to the view.
To Reproduce
Steps to reproduce the behavior:
I also have focus-follow with raise_on_top = false
Expected behavior
If a view is focused after drag and drop, then the view should receive keyboard events.
Wayfire version
0.6.0
I wrote a plugin which disables all input sources except touch when the angle of the hinge exceeds a certain value. Is this something you're interested in adding to this repository?
Hey there,
I just checked, and was able to confirm, that the background-view plugin is no longer working. The binary entered into the text field is not executed. The logs didn't tell me about any errors.
Can you reproduce this?
I'm on 0.8.0-eaf81e30 (Nov 30 2022, branch 'fix-refocus-logic')
Thanks!
does it on every app i tried
The plugins name induces that an application can be shown in background, not closable, without decorations, not shown in scale and so on, but I didn't manage to show anything else than mpv
and here DND from thunar or pcmanfm-qt do not work.
[background-view]
command = strawberry
app_id = strawberry
Tested also with lximage-qt, pcmanfm-qt, vlc, thunar and maybe some others - a normal toplevel window is always opened at session start.
As it shows mpv it should at least show others too.
The decoration plugin provides window decoration. Making window decorations theme-able would be sweet, so I'm opening this issue in case anyone is interested.
Hey there,
I just wanted to set up background view for use with linux-wallpaperengine, but it turns out, that it refuses to do anything when toggled, even with the default mpv settings and just a file selected. I remember that it was working at some point, but I accidently exited mpv with my quit keybind, followed by wayfire crashing.
I am running wayfire-git r2199.94f15048-1
and wayfire-plugins-extra-git r148.bcadd22-1
installed from the AUR.
Why is this happening? Is it a known issue which has an easy solution?
Thanks!
Hey there,
I just tried rebuilding wayfire-plugins-extra-git against my new wayfire version to see if it was causing issues and I got the following errors:
wf-git.log
Is there anything you can do about that?
Thanks!
Hey there,
I just thought of a feature to make plugin development more accessible: Support for plugins written in Lua.
I would really welcome such a feature!
Thanks
Due to the break changes in wayfire core rencently, the repo can't be compiled any more with the latest wayfire core.
Do you have a plan to fix the problem?
ninja -C build && sudo ninja -C build install
ninja: Entering directory `build'
[8/43] Compiling C++ object s...iew-shot.so.p/view-shot.cpp.o
FAILED: src/libview-shot.so.p/view-shot.cpp.o
ccache c++ -Isrc/libview-shot.so.p -Isrc -I../src -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/pixman-1 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -O3 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -fPIC -pthread -MD -MQ src/libview-shot.so.p/view-shot.cpp.o -MF src/libview-shot.so.p/view-shot.cpp.o.d -o src/libview-shot.so.p/view-shot.cpp.o -c ../src/view-shot.cpp
../src/view-shot.cpp: In instantiation of ‘wayfire_view_shot::<lambda(auto:1)> [with auto:1 = wf::activator_data_t]’:
/usr/include/c++/12.2.0/type_traits:2565:26: required by substitution of ‘template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = wayfire_view_shot::<lambda(auto:1)>&; _Args = {const wf::activator_data_t&}]’
/usr/include/c++/12.2.0/type_traits:2576:55: required from struct std::__result_of_impl<false, false, wayfire_view_shot::<lambda(auto:1)>&, const wf::activator_data_t&>’
/usr/include/c++/12.2.0/bits/std_function.h:348:9: recursively required by substitution of ‘template<class _Result, class _Ret> struct std::__is_invocable_impl<_Result, _Ret, false, std::__void_t<typename _CTp::type> > [with _Result = std::__invoke_result<wayfire_view_shot::<lambda(auto:1)>&, const wf::activator_data_t&>; _Ret = bool]’
/usr/include/c++/12.2.0/bits/std_function.h:348:9: required from ‘struct std::function<bool(const wf::activator_data_t&)>::_Callable<wayfire_view_shot::<lambda(auto:1)>, wayfire_view_shot::<lambda(auto:1)>, std::__invoke_result<wayfire_view_shot::<lambda(auto:1)>&, const wf::activator_data_t&> >’
/usr/include/c++/12.2.0/bits/std_function.h:353:8: required by substitution of ‘template<class _Res, class ... _ArgTypes> template<class _Cond, class _Tp> using _Requires = std::__enable_if_t<_Cond::value, _Tp> [with _Cond = std::function<bool(const wf::activator_data_t&)>::_Callable<wayfire_view_shot::<lambda(auto:1)>, wayfire_view_shot::<lambda(auto:1)>, std::__invoke_result<wayfire_view_shot::<lambda(auto:1)>&, const wf::activator_data_t&> >; _Tp = void; _Res = bool; _ArgTypes = {const wf::activator_data_t&}]’
/usr/include/c++/12.2.0/bits/std_function.h:434:9: required by substitution of ‘template<class _Functor, class _Constraints> std::function<bool(const wf::activator_data_t&)>::function(_Functor&&) [with _Functor = wayfire_view_shot::<lambda(auto:1)>; _Constraints = <missing>]’
../src/view-shot.cpp:107:5: required from here
../src/view-shot.cpp:77:72: error: invalid initialization of reference of type ‘const wf::framebuffer_t&’ from expression of type ‘void’
77 | const wf::framebuffer_t& offscreen_buffer = view->take_snapshot();
| ~~~~~~~~~~~~~~~~~~~^~
[21/43] Compiling C++ object ...iio.so.p/autorotate-iio.cpp.o
ninja: build stopped: subcommand failed.
Currently using Artix LInux with Kernel 5.19-zen
Is it possible to implement such a rule? Or does it already exist (I have the stable version of Wayfire with some patches from git)?
Since apps can't control the activation of their windows under Wayland (without having Wayland codes), such a rule seems like a must to me, not less important than rules for positioning, making sticky, etc.
How soon are you planning to release? I am building wayfire packages for openSUSE, only this package was left without release, without release they do not want to accept it in the repository
Hello, people!
I am Anderson Torres, a Nixpkgs developer. I am trying to package wayfire-plugins-extra to nixpkgs, but it is not working.
Nix is a functional programming language tailored for package and systems management. Nix is also the name of the interpreter that receives Nix expressions and outputs software packages.
/
. On the other hand, Nix installs each package in a dedicated read-only directory inside /nix/store
./nix/store/gv4rgr1p1dq5s4hx7ald6a7kli6p3xrz-firefox-85.0/
(that hash part of the directory name encodes the dependency tree of Firefox).Nixpkgs is a (large!) set of Nix expressions that build many softwares, from compilers and assemblers to entire desktop environments like KDE and GNOME.
NixOS is a Linux distro built with a specifically tailored set of Nix expressions that build an entire OS environment, from bootloader and kernel to userland programs and desktop environments. Think on it as a large Nix expression that outputs an entire Linux distro.
TL;DR - Nixpkgs doesn' t allow modifications on an already installed package.
I think this is the reason why I can't install wayfire-plugins-extra. The last log lines show this:
wayfire-plugins-extra> [0/1] Installing files.
wayfire-plugins-extra> Installing src/libannotate.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libautorotate-iio.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libbackground-view.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libbench.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libcrosshair.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libfollow-focus.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libforce-fullscreen.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libglib-main-loop.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libjoin-views.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libkeycolor.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libmag.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libshowrepaint.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libwater.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libwinzoom.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing src/libworkspace-names.so to /nix/store/2qc95nl93ws2ijyl936jmawg43w4m9jb-wayfire-plugins-extra-0.7.0/lib/wayfire
wayfire-plugins-extra> Installing /build/wayfire-plugins-extra-0.7.0/metadata/annotate.xml to /nix/store/4sc2544i02gx19w9wp26sjgh0fbr8mp8-wayfire-0.7.0/share/wayfire/metadata
wayfire-plugins-extra> Traceback (most recent call last):
wayfire-plugins-extra> File "/nix/store/sm3v40fwgs85f23vq250wdfl6l54xkm2-meson-0.56.0/lib/python3.8/site-packages/mesonbuild/mesonmain.py", line 140, in run
wayfire-plugins-extra> return options.run_func(options)
wayfire-plugins-extra> File "/nix/store/sm3v40fwgs85f23vq250wdfl6l54xkm2-meson-0.56.0/lib/python3.8/site-packages/mesonbuild/minstall.py", line 554, in run
wayfire-plugins-extra> installer.do_install(datafilename)
wayfire-plugins-extra> File "/nix/store/sm3v40fwgs85f23vq250wdfl6l54xkm2-meson-0.56.0/lib/python3.8/site-packages/mesonbuild/minstall.py", line 375, in do_install
wayfire-plugins-extra> self.install_data(d)
wayfire-plugins-extra> File "/nix/store/sm3v40fwgs85f23vq250wdfl6l54xkm2-meson-0.56.0/lib/python3.8/site-packages/mesonbuild/minstall.py", line 406, in install_data
wayfire-plugins-extra> if self.do_copyfile(fullfilename, outfilename, makedirs=(d.dirmaker, outdir)):
wayfire-plugins-extra> File "/nix/store/sm3v40fwgs85f23vq250wdfl6l54xkm2-meson-0.56.0/lib/python3.8/site-packages/mesonbuild/minstall.py", line 278, in do_copyfile
wayfire-plugins-extra> shutil.copy2(from_file, to_file)
wayfire-plugins-extra> File "/nix/store/wkw6fsjasr7jbbrlakxxpbiapa8hws42-python3-3.8.7/lib/python3.8/shutil.py", line 435, in copy2
wayfire-plugins-extra> copyfile(src, dst, follow_symlinks=follow_symlinks)
wayfire-plugins-extra> File "/nix/store/wkw6fsjasr7jbbrlakxxpbiapa8hws42-python3-3.8.7/lib/python3.8/shutil.py", line 264, in copyfile
wayfire-plugins-extra> with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
wayfire-plugins-extra> PermissionError: [Errno 13] Permission denied: '/nix/store/4sc2544i02gx19w9wp26sjgh0fbr8mp8-wayfire-0.7.0/share/wayfire/metadata/annotate.xml'
wayfire-plugins-extra> FAILED: meson-install
wayfire-plugins-extra> /nix/store/sm3v40fwgs85f23vq250wdfl6l54xkm2-meson-0.56.0/bin/meson install --no-rebuild
wayfire-plugins-extra> ninja: build stopped: subcommand failed.
error: --- Error ----------------------------------------------------------- nix
builder for '/nix/store/rz8v2vfxp7snsbiz2wci03lqk2ajxymk-wayfire-plugins-extra-0.7.0.drv' failed with exit code 1
Highlight the line below:
Installing /build/wayfire-plugins-extra-0.7.0/metadata/annotate.xml to /nix/store/4sc2544i02gx19w9wp26sjgh0fbr8mp8-wayfire-0.7.0/share/wayfire/metadata
This line causes an error, because, as I said, Nixpkgs doesn't allow modification of an already installed package (namely, wayfire).
P.S.: this is the offending file:
I have zero experience with Meson (indeed I am studying it right now), but these lines clearly try to install tfiles in specific wayfire directories, and it violates the separation enforced by Nix.
iio@sha/autorotate-iio.cpp.o' -c ../src/autorotate-iio.cpp
../src/autorotate-iio.cpp:9:10: fatal error: plugin.hpp: No such file or directory
9 | #include <plugin.hpp>
| ^~~~~~~~~~~~
compilation terminated.
[14/18] Compiling C++ object 'src/network-keyboard/6aa8b68@@wf-nk-client@exe/client.cpp.o'.
[15/18] Compiling C++ object 'src/network-keyboard/6aa8b68@@wf-nk-server@exe/server.cpp.o'.
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...
When using mpv with background-view, an accidental misclick can move the video player off center, and restarting background-view is the only way to recenter it. Mpv also responds to keybinds, which can be slightly annoying at times. Similar issues might be the case with other programs that can be run with background-view.
If I move the pointer from one display to another, where the current workspace contains no window, the focus stays at the previous workspace / display.
Example:
<super> KEY_T
Alacritty opens over the browser window on DP-1.
It seems that pointing a workspace is not enough. A window must be pointed for focus to change - or the workspace needs to be clicked. Could it be improved?
mag produces an upside-down image with bizzare mutliple copies effect due to scale=2, see video: https://dl.unrelenting.technology/wf-mag.mp4 (not sure if upside down is due to scale, but the weirdness with copies sure looks like it)
Wayfire crashes with swaybg
and DPMS
How to reproduce
wayfire-session
from VTwcm
, in Background View
plugin set Command
to swaybg -m fill -i
and File
to an image with size/aspect ratio different than the output / screen (may or may not matter)DPMS timeout
and DPMS screensaver
Here's a similar way to reproduce the same error:
Expected behavior
Wayfire should not crash regardless of third party applications' (swaybg
) behavior
Wayfire version
0.7.0 and 0.7.1 releases, tested with both wlroots 0.12 and 0.13
EE 01-05-21 18:53:38.620 - [src/core/output-layout.cpp:467] disabling output: DP-1
II 01-05-21 18:53:38.620 - [src/core/output-layout.cpp:140] transfer views from DP-1 -> NOOP-1
EE 01-05-21 18:53:38.621 - [src/main.cpp:141] Fatal error: Segmentation fault
EE 01-05-21 18:53:38.679 - WayfireWM/wayfire#1 signal_handler(int) ../src/main.cpp:143
EE 01-05-21 18:53:38.687 - WayfireWM/wayfire#2 killpg ??:?
EE 01-05-21 18:53:38.738 - WayfireWM/wayfire#3 std::__uniq_ptr_impl<wf::touch_interface_t, std::default_delete<wf::touch_interface_t> >::_M_ptr() const /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:173
EE 01-05-21 18:53:38.788 - WayfireWM/wayfire#4 std::unique_ptr<wf::touch_interface_t, std::default_delete<wf::touch_interface_t> >::get() const /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:422
EE 01-05-21 18:53:38.838 - WayfireWM/wayfire#5 std::unique_ptr<wf::touch_interface_t, std::default_delete<wf::touch_interface_t> >::operator->() const /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:417
EE 01-05-21 18:53:38.889 - WayfireWM/wayfire#6 wf::compositor_core_impl_t::add_touch_gesture(nonstd::observer_ptr<wf::touch::gesture_t>) ../src/core/core.cpp:481
EE 01-05-21 18:53:38.900 - WayfireWM/wayfire#7 wayfire_background_view::fini() ../src/background-view.cpp:199
EE 01-05-21 18:53:38.948 - WayfireWM/wayfire#8 plugin_manager::destroy_plugin(std::unique_ptr<wf::plugin_interface_t, std::default_delete<wf::plugin_interface_t> >&) ../src/output/plugin-loader.cpp:67
EE 01-05-21 18:53:38.996 - WayfireWM/wayfire#9 plugin_manager::deinit_plugins(bool) ../src/output/plugin-loader.cpp:42
EE 01-05-21 18:53:39.046 - WayfireWM/wayfire#10 plugin_manager::~plugin_manager() ../src/output/plugin-loader.cpp:51
EE 01-05-21 18:53:39.098 - WayfireWM/wayfire#11 std::default_delete<plugin_manager>::operator()(plugin_manager*) const /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:85 (discriminator 1)
EE 01-05-21 18:53:39.151 - WayfireWM/wayfire#12 std::__uniq_ptr_impl<plugin_manager, std::default_delete<plugin_manager> >::reset(plugin_manager*) /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:183
EE 01-05-21 18:53:39.207 - WayfireWM/wayfire#13 std::unique_ptr<plugin_manager, std::default_delete<plugin_manager> >::reset(plugin_manager*) /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:457
EE 01-05-21 18:53:39.265 - WayfireWM/wayfire#14 wf::output_impl_t::~output_impl_t() ../src/output/output.cpp:142
EE 01-05-21 18:53:39.323 - WayfireWM/wayfire#15 wf::output_impl_t::~output_impl_t() ../src/output/output.cpp:143
EE 01-05-21 18:53:39.372 - WayfireWM/wayfire#16 std::default_delete<wf::output_impl_t>::operator()(wf::output_impl_t*) const /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:86
EE 01-05-21 18:53:39.421 - WayfireWM/wayfire#17 std::__uniq_ptr_impl<wf::output_impl_t, std::default_delete<wf::output_impl_t> >::reset(wf::output_impl_t*) /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:183
EE 01-05-21 18:53:39.476 - WayfireWM/wayfire#18 std::unique_ptr<wf::output_impl_t, std::default_delete<wf::output_impl_t> >::reset(wf::output_impl_t*) /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:457
EE 01-05-21 18:53:39.529 - WayfireWM/wayfire#19 std::unique_ptr<wf::output_impl_t, std::default_delete<wf::output_impl_t> >::operator=(decltype(nullptr)) /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/unique_ptr.h:398
EE 01-05-21 18:53:39.583 - WayfireWM/wayfire#20 wf::output_layout_output_t::destroy_wayfire_output() ../src/core/output-layout.cpp:470 (discriminator 4)
EE 01-05-21 18:53:39.637 - WayfireWM/wayfire#21 wf::output_layout_output_t::apply_state(wf::output_state_t const&) ../src/core/output-layout.cpp:793
EE 01-05-21 18:53:39.693 - WayfireWM/wayfire#22 wf::output_layout_t::impl::apply_configuration(std::map<wlr_output*, wf::output_state_t, std::less<wlr_output*>, std::allocator<std::pair<wlr_output* const, wf::output_state_t> > > const&) ../src/core/output-layout.cpp:1307
EE 01-05-21 18:53:39.745 - WayfireWM/wayfire#23 wf::output_layout_t::impl::remove_output(wlr_output*) ../src/core/output-layout.cpp:1041
EE 01-05-21 18:53:39.795 - WayfireWM/wayfire#24 wf::output_layout_t::impl::add_output(wlr_output*)::{lambda(void*)#1}::operator()(void*) const ../src/core/output-layout.cpp:1026
EE 01-05-21 18:53:39.847 - WayfireWM/wayfire#25 void std::__invoke_impl<void, wf::output_layout_t::impl::add_output(wlr_output*)::{lambda(void*)#1}&, void*>(std::__invoke_other, wf::output_layout_t::impl::add_output(wlr_output*)::{lambda(void*)#1}&, void*&&) /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/invoke.h:60
EE 01-05-21 18:53:39.898 - WayfireWM/wayfire#26 ...) /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/invoke.h:116
EE 01-05-21 18:53:39.948 - WayfireWM/wayfire#27 std::_Function_handler<void (void*), wf::output_layout_t::impl::add_output(wlr_output*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/std_function.h:292
EE 01-05-21 18:53:39.988 - WayfireWM/wayfire#28 std::function<void (void*)>::operator()(void*) const /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/std_function.h:622
EE 01-05-21 18:53:40.030 - WayfireWM/wayfire#29 wf::wl_listener_wrapper::emit(void*) ../src/util.cpp:524
EE 01-05-21 18:53:40.067 - WayfireWM/wayfire#30 handle_wrapped_listener(wl_listener*, void*) ../src/util.cpp:460
EE 01-05-21 18:53:40.083 - WayfireWM/wayfire#31 wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:22
EE 01-05-21 18:53:40.099 - WayfireWM/wayfire#32 wlr_output_destroy ../subprojects/wlroots/types/wlr_output.c:384
EE 01-05-21 18:53:40.111 - WayfireWM/wayfire#33 disconnect_drm_connector ../subprojects/wlroots/backend/drm/drm.c:1568
EE 01-05-21 18:53:40.122 - WayfireWM/wayfire#34 scan_drm_connectors ../subprojects/wlroots/backend/drm/drm.c:1407
EE 01-05-21 18:53:40.133 - WayfireWM/wayfire#35 handle_dev_change ../subprojects/wlroots/backend/drm/backend.c:132
EE 01-05-21 18:53:40.146 - WayfireWM/wayfire#36 wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:22
EE 01-05-21 18:53:40.157 - WayfireWM/wayfire#37 udev_event ../subprojects/wlroots/backend/session/session.c:90
EE 01-05-21 18:53:40.165 - WayfireWM/wayfire#38 wl_event_loop_dispatch ??:?
EE 01-05-21 18:53:40.172 - WayfireWM/wayfire#39 wl_display_run ??:?
EE 01-05-21 18:53:40.211 - WayfireWM/wayfire#40 main ../src/main.cpp:315
EE 01-05-21 18:53:40.220 - WayfireWM/wayfire#41 __libc_start_main ??:?
EE 01-05-21 18:53:40.266 - WayfireWM/wayfire#42 _start ??:?
Have written a little workaround, but it would be nice to insert it by default...
see: https://github.com/Nonie689/wayfire-plugin-crosshair
would be nice if you can implement this... with c-code and be able to configure in the wcm-tool...
greetz.
N689
Describe the bug
Wayfire crashes when editing config.ini with nano and saving, or overwriting with cp
(but works with cp; nano; mv, seems to be due to a non-atomic update).
To Reproduce
nano ~/.config/wayfire.ini
Ctrl+O
To circumvent:
cp ~/.config/wayfire.ini ~/.config/wayfire.ini2
nano ~/.config/wayfire.ini2
mv ~/.config/wayfire.ini2 ~/.config/wayfire.ini
Expected behavior
Detect when file isn't modified anymore and reload it then (kinda impossible on Linux? There's always a risk to load the file only partially if the editor somehow takes a lot of time to write the file).
Screenshots or stacktrace
wayfire-nano-crash.log
Wayfire version
git latest commit (reinstalled just now to test)
Is there a way to enable focus following the mouse, like in sway/i3?
Hey there,
I just had a (For me at least) very useful idea: A plugin with a keybind to force ungrab the cursor.
I'm suggesting this because some games grab the cursor. If they end up freezing or crashing without the window closing, you end up not being able to use your cursor until that window closes.
Do you think this is useful? Are there already features like this?
Thanks!
The error output:
terminate called after throwing an instance of 'std::runtime_error'
what(): Bad option type: scale/interact
EE 25-11-22 03:55:36.819 - [src/main.cpp:134] Fatal error: Fatal error(SIGABRT)
EE 25-11-22 03:55:36.840 - #1 signal_handler(int) main.cpp:?
EE 25-11-22 03:55:36.852 - #2 __sigaction ??:?
EE 25-11-22 03:55:36.866 - #3 pthread_key_delete ??:?
EE 25-11-22 03:55:36.881 - #4 gsignal ??:?
EE 25-11-22 03:55:36.896 - #5 abort ??:?
EE 25-11-22 03:55:36.921 - #6 __gnu_cxx::__verbose_terminate_handler() /usr/src/debug/gcc/libstdc++-v3/libsupc++/vterminate.cc:75
EE 25-11-22 03:55:36.944 - #7 __cxxabiv1::__terminate(void (*)()) /usr/src/debug/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48
EE 25-11-22 03:55:36.977 - #8 std::terminate() ??:?
EE 25-11-22 03:55:37.010 - #9 __cxa_throw ??:?
EE 25-11-22 03:55:37.023 - #10 scale_show_title_t::update_title_overlay_mouse() [clone .cold] scale-title-overlay.cpp:?
EE 25-11-22 03:55:37.037 - #11 scale_show_title_t::update_title_overlay_opt() ??:?
EE 25-11-22 03:55:37.055 - #12 wf::signal_connection_t::emit(wf::signal_data_t*) ??:?
EE 25-11-22 03:55:37.073 - #13 wf::signal_provider_t::emit_signal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wf::signal_data_t*) ??:?
EE 25-11-22 03:55:37.086 - #14 wayfire_scale::layout_slots(std::vector<nonstd::observer_ptr<wf::view_interface_t>, std::allocator<nonstd::observer_ptr<wf::view_interface_t> > >) ??:?
EE 25-11-22 03:55:37.100 - #15 wayfire_scale::activate() ??:?
EE 25-11-22 03:55:37.112 - #16 std::_Function_handler<bool (wf::activator_data_t const&), wayfire_scale::toggle_cb::{lambda(auto:1)#1}>::_M_invoke(std::_Any_data const&, wf::activator_data_t const&) ??:?
EE 25-11-22 03:55:37.128 - #17 std::_Function_handler<void (unsigned int), wf::hotspot_manager_t::update_hotspots(std::vector<std::unique_ptr<wf::output_binding_t<wf::activatorbinding_t, std::function<bool (wf::activator_data_t const&)> >, std::default_delete<wf::output_binding_t<wf::activatorbinding_t, std::function<bool (wf::activator_data_t const&)> > > >, std::allocator<std::unique_ptr<wf::output_binding_t<wf::activatorbinding_t, std::function<bool (wf::activator_data_t const&)> >, std::default_delete<wf::output_binding_t<wf::activatorbinding_t, std::function<bool (wf::activator_data_t const&)> > > > > > const&)::{lambda(unsigned int)#1}>::_M_invoke(std::_Any_data const&, unsigned int&&) hotspot-manager.cpp:?
EE 25-11-22 03:55:37.145 - #18 std::_Function_handler<bool (), wf::hotspot_instance_t::process_input_motion(wf::point_t)::{lambda()#1}>::_M_invoke(std::_Any_data const&) hotspot-manager.cpp:?
EE 25-11-22 03:55:37.164 - #19 wf::hotspot_instance_t::process_input_motion(wf::point_t) ??:?
EE 25-11-22 03:55:37.183 - #20 wf::signal_connection_t::emit(wf::signal_data_t*) ??:?
EE 25-11-22 03:55:37.201 - #21 wf::signal_provider_t::emit_signal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wf::signal_data_t*) ??:?
EE 25-11-22 03:55:37.221 - #22 wf::input_event_processing_mode_t emit_device_event_signal<wlr_pointer_motion_event>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, wlr_pointer_motion_event*) ??:?
EE 25-11-22 03:55:37.240 - #23 std::_Function_handler<void (void*), wf::cursor_t::setup_listeners()::{lambda(void*)#3}>::_M_invoke(std::_Any_data const&, void*&&) cursor.cpp:?
EE 25-11-22 03:55:37.258 - #24 wf::handle_wrapped_listener(wl_listener*, void*) util.cpp:?
EE 25-11-22 03:55:37.271 - #25 wl_signal_emit_mutable ??:?
EE 25-11-22 03:55:37.285 - #26 wl_signal_emit_mutable ??:?
EE 25-11-22 03:55:37.298 - #27 relative_pointer_handle_relative_motion pointer.c:?
EE 25-11-22 03:55:37.311 - #28 ffi_prep_go_closure ??:?
EE 25-11-22 03:55:37.326 - #29 ?? ??:0
EE 25-11-22 03:55:37.338 - #30 ffi_call ??:?
EE 25-11-22 03:55:37.350 - #31 ?? ??:0
EE 25-11-22 03:55:37.364 - #32 wl_list_remove ??:?
EE 25-11-22 03:55:37.377 - #33 wl_display_dispatch_queue_pending ??:?
EE 25-11-22 03:55:37.390 - #34 dispatch_events backend.c:?
EE 25-11-22 03:55:37.403 - #35 wl_event_loop_dispatch ??:?
EE 25-11-22 03:55:37.416 - #36 wl_display_run ??:?
EE 25-11-22 03:55:37.433 - #37 main ??:?
EE 25-11-22 03:55:37.449 - #38 __libc_init_first ??:?
EE 25-11-22 03:55:37.462 - #39 __libc_start_main ??:?
EE 25-11-22 03:55:37.482 - #40 _start ../sysdeps/x86_64/start.S:117
(EE) failed to read Wayland events: Broken pipe
Hey there,
I really enjoyed using xKill, when I was on kde, but now on wayfire, this is no longer available. I would be really happy, if this could be ported to and integrated into wayfire!
Thanks!
I play a lot of old games. The windows of these old games are beyond tiny on any sufficiently modern display. Some allow changing the window size, but doing so while keeping the aspect ratio is hard (I used xdotool previously for this), and often they end up with filtering (blur) when ideally there would be none (if it's a pixellated game.)
Since wayland doesn't have a lot of the limitations of X11 with how windows are handled (it's all just composited layers), integer scaling via a transform should be possible.
To be clear, I'm not talking about resizing the window. I'm talking about applying a transformation to render the window larger, preferably with configurable filtering.
(I tried to implement a plugin myself by adding a transformer, but it's crashy and I have no idea how to properly handle damage with this, so I'm opening an issue instead. Also, despite the title, this has nothing to do with the scale plugin.)
So instead of moving a window to a particular workspace, you tag it with the workspace's name and it appears on all the workspaces it's tagged to.
This naturally implies named workspaces.
Windows could be tagged by calling a program that would tag the focused window.
Feature request:
I would like to be able to set the current workspace name on the fly. That is, hit a magic key combo which displays an input field in which I can type a string.
The rationale for this is that I typically work with separate 'topics' in each workspace. Some of these topics are highly dynamic in nature:
and so on. During the day, it is hard to keep track of what I currently do in which workspace. Being able to assign these workspace-names on the fly and then reveal all of them with expo would make for a slightly less frantic behavior when switching between tasks.
Thank you very much for wayfire.
Hey there,
I am having trouble compiling the v7 branch, I always just get this error:
FAILED: src/libmag.so.p/mag.cpp.o
../src/mag.cpp: In lambda function:
../src/mag.cpp:178:14: error: ‘wlr_output_export_dmabuf’ was not declared in this scope; did you mean ‘wlr_output_event_damage’?
178 | if (!wlr_output_export_dmabuf(output->handle, &dmabuf_attribs))
| ^~~~~~~~~~~~~~~~~~~~~~~~
| wlr_output_event_damage
[28/37] Compiling C++ object src/libworkspace-names.so.p/workspace-names.cpp.o
ninja: build stopped: subcommand failed.
I can't build master because I got some packages depending on wayfire, wayfire-git doesn't seem to be an option for those (I installed wayfire from the arch repos)
Are you able to fix this, or is that a problem on my side?
Thanks!
../src/autorotate-iio.cpp:75:5: error: could not convert ‘<lambda closure object>WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>{((WayfireAutorotateIIO*)this)}’ from ‘WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>’ to ‘activator_callback’ {aka ‘std::function<bool(wf_activator_source, unsigned int)>’}
75 | };
| ^
| |
| WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>
../src/autorotate-iio.cpp:78:5: error: could not convert ‘<lambda closure object>WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>{((WayfireAutorotateIIO*)this)}’ from ‘WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>’ to ‘activator_callback’ {aka ‘std::function<bool(wf_activator_source, unsigned int)>’}
78 | };
| ^
| |
| WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>
../src/autorotate-iio.cpp:81:5: error: could not convert ‘<lambda closure object>WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>{((WayfireAutorotateIIO*)this)}’ from ‘WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>’ to ‘activator_callback’ {aka ‘std::function<bool(wf_activator_source, unsigned int)>’}
81 | };
| ^
| |
| WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>
../src/autorotate-iio.cpp:84:5: error: could not convert ‘<lambda closure object>WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>{((WayfireAutorotateIIO*)this)}’ from ‘WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>’ to ‘activator_callback’ {aka ‘std::function<bool(wf_activator_source, unsigned int)>’}
84 | };
| ^
| |
| WayfireAutorotateIIO::<lambda(wf_activator_source, int32_t)>
Regressed by wlroots@76bab68. From error log:
src/mag.cpp:178:14: error: use of undeclared identifier 'wlr_output_export_dmabuf'; did you mean 'wlr_output_event_damage'?
if (!wlr_output_export_dmabuf(output->handle, &dmabuf_attribs))
^
/usr/include/wlr/types/wlr_output.h:195:8: note: 'wlr_output_event_damage' declared here
struct wlr_output_event_damage {
^
after editing wayfire::gentoo from 0.7.2 to 0.7.3::local-repo to allow wlroots-0.15.x,
wayfire-plugins-extra build returns:
[32/43] x86_64-pc-linux-gnu-g++ -Isrc/libview-shot.so.p -Isrc -I../wayfire-plugins-extra-9999/src -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/uuid -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/elogind -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -march=skylake -O2 -pipe -Wa,-mbranches-within-32B-boundaries -fPIC -pthread -MD -MQ src/libview-shot.so.p/view-shot.cpp.o -MF src/libview-shot.so.p/view-shot.cpp.o.d -o src/libview-shot.so.p/view-shot.cpp.o -c ../wayfire-plugins-extra-9999/src/view-shot.cpp
FAILED: src/libview-shot.so.p/view-shot.cpp.o
x86_64-pc-linux-gnu-g++ -Isrc/libview-shot.so.p -Isrc -I../wayfire-plugins-extra-9999/src -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/uuid -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/elogind -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -march=skylake -O2 -pipe -Wa,-mbranches-within-32B-boundaries -fPIC -pthread -MD -MQ src/libview-shot.so.p/view-shot.cpp.o -MF src/libview-shot.so.p/view-shot.cpp.o.d -o src/libview-shot.so.p/view-shot.cpp.o -c ../wayfire-plugins-extra-9999/src/view-shot.cpp
../wayfire-plugins-extra-9999/src/view-shot.cpp: In instantiation of 'wayfire_view_shot::<lambda(auto:1)> [with auto:1 = wf::activator_data_t]':
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/include/g++-v11/type_traits:2536:26: required by substitution of 'template<class _Fn, class ... _Args> static std::__result_of_success<decltype (declval<_Fn>()((declval<_Args>)()...)), std::__invoke_other> std::__result_of_other_impl::_S_test(int) [with _Fn = wayfire_view_shot::<lambda(auto:1)>&; _Args = {const wf::activator_data_t&}]'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/include/g++-v11/type_traits:2547:55: required from 'struct std::__result_of_impl<false, false, wayfire_view_shot::<lambda(auto:1)>&, const wf::activator_data_t&>'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/include/g++-v11/bits/std_function.h:348:9: recursively required by substitution of 'template<class _Result, class _Ret> struct std::__is_invocable_impl<_Result, _Ret, false, std::__void_t<typename _CTp::type> > [with _Result = std::__invoke_result<wayfire_view_shot::<lambda(auto:1)>&, const wf::activator_data_t&>; _Ret = bool]'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/include/g++-v11/bits/std_function.h:348:9: required from 'struct std::function<bool(const wf::activator_data_t&)>::_Callable<wayfire_view_shot::<lambda(auto:1)>, wayfire_view_shot::<lambda(auto:1)>, std::__invoke_result<wayfire_view_shot::<lambda(auto:1)>&, const wf::activator_data_t&> >'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/include/g++-v11/bits/std_function.h:353:8: required by substitution of 'template<class _Res, class ... _ArgTypes> template<class _Cond, class _Tp> using _Requires = std::__enable_if_t<_Cond::value, _Tp> [with _Cond = std::function<bool(const wf::activator_data_t&)>::_Callable<wayfire_view_shot::<lambda(auto:1)>, wayfire_view_shot::<lambda(auto:1)>, std::__invoke_result<wayfire_view_shot::<lambda(auto:1)>&, const wf::activator_data_t&> >; _Tp = void; _Res = bool; _ArgTypes = {const wf::activator_data_t&}]'
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/include/g++-v11/bits/std_function.h:434:9: required by substitution of 'template<class _Functor, class _Constraints> std::function<bool(const wf::activator_data_t&)>::function(_Functor&&) [with _Functor = wayfire_view_shot::<lambda(auto:1)>; _Constraints = <missing>]'
../wayfire-plugins-extra-9999/src/view-shot.cpp:77:5: required from here
../wayfire-plugins-extra-9999/src/view-shot.cpp:56:72: error: invalid initialization of reference of type 'const wf::framebuffer_t&' from expression of type 'void'
56 | const wf::framebuffer_t& offscreen_buffer = view->take_snapshot();
| ~~~~~~~~~~~~~~~~~~~^~
[33/43] x86_64-pc-linux-gnu-g++ -Isrc/libwater.so.p -Isrc -I../wayfire-plugins-extra-9999/src -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/uuid -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libdrm -I/usr/include/elogind -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -Wno-unused-parameter -march=skylake -O2 -pipe -Wa,-mbranches-within-32B-boundaries -fPIC -pthread -MD -MQ src/libwater.so.p/water.cpp.o -MF src/libwater.so.p/water.cpp.o.d -o src/libwater.so.p/water.cpp.o -c ../wayfire-plugins-extra-9999/src/water.cpp
gcc-11.3.0 here, vulkan deactivated everywhere.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.