Giter Site home page Giter Site logo

mattkae / miracle-wm Goto Github PK

View Code? Open in Web Editor NEW
230.0 5.0 7.0 4.81 MB

miracle-wm is a tiling Wayland compositor based on Mir

License: GNU General Public License v3.0

CMake 1.53% C++ 96.83% Shell 0.84% Python 0.80%
linux wayland tiling-window-manager mir tiling window-manager

miracle-wm's Introduction

Warning

This project is a work in progress. The first stable, feature-complete release will be version 1.0.0. As such, it is advised that you do not use this as your daily driver unless you are willing to encounter some paper cuts along the way. If you are willing to lend your time to find bugs, fix bugs, or submit proposals for new features, it would be greatly appreciated.

About

miracle-wm is a Wayland compositor based on Mir. It features a tiling window manager at its core, very much in the style of i3 and sway. The intention is to build a compositor that is flashier and more feature-rich than either of those compositors, like swayfx.

miracle in action

User Guide

For all information related to miracle-wm, including installation instructions, build instructions, and a roadmap, visit: https://mattkae.github.io/miracle-wm-wiki/

miracle-wm's People

Contributors

conan-kudo avatar mattkae avatar opna2608 avatar russelltg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

miracle-wm's Issues

Build Instructions fail as written on Archlinux

cmake -Bbuild fails with 'miral' package not found error on Archlinux.

dan delpad:~/projects/miracle-wm [3046]% cmake -Bbuild
-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /sbin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /sbin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /sbin/pkg-config (found version "2.1.0") 
-- Checking for module 'miral'
--   Package 'miral', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:619 (message):
  The following required packages were not found:

   - miral

Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:841 (_pkg_check_modules_internal)
  CMakeLists.txt:18 (pkg_check_modules)

-- Configuring incomplete, errors occurred!

CPU spike when Idle.

I managed to build miracle-wm on ubuntu. When I first try it, I notice my fans spin quiet loud (I suspect it's CPU spike, I check the htop) and it won't happen when I use other wayland compositors.

My mir version is 2.16.3 (from mir ppa) on Ubuntu Noble Numbat (Dev Branch). I use miracle-wm latest master.

Build is failed on alpine linux, probably musl compatibility.

Hello, I'm trying to build on alpine linux. cmake .. didn't produce miracle-wm binary. I tried using these commands instead :

$ cmake -B build
$ cmake --build build

Then I got these error messages :

  8%] Building CXX object CMakeFiles/miracle-wm.dir/src/window_tree.cpp.o
/home/lidg/cmp/miracle-wm/src/window_tree.cpp: In member function 'void miracle::WindowTree::_handle_resize_request(const std::shared_ptr<miracle::Node>&, miracle::Direction, int)':
/home/lidg/cmp/miracle-wm/src/window_tree.cpp:548:38: error: 'floorf32' was not declared in this scope; did you mean 'floorf'?
  548 |         int height_for_others = (int)floorf32(-(float)resize_amount / static_cast<float>(nodes.size() - 1));
      |                                      ^~~~~~~~
      |                                      floorf
gmake[2]: *** [CMakeFiles/miracle-wm.dir/build.make:104: CMakeFiles/miracle-wm.dir/src/window_tree.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/miracle-wm.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

Any clue to fix it ?

Also I need to comment main.cpp at line 60, if I don't I will get this error :

  8%] Building CXX object CMakeFiles/miracle-wm.dir/src/main.cpp.o
/home/lidg/cmp/miracle-wm/src/main.cpp: In function 'int main(int, const char**)':
/home/lidg/cmp/miracle-wm/src/main.cpp:60:26: error: 'class miral::X11Support' has no member named 'default_to_enabled'
   60 |             X11Support{}.default_to_enabled(),
      |                          ^~~~~~~~~~~~~~~~~~
/home/lidg/cmp/miracle-wm/src/main.cpp:48:27: error: cannot convert '<brace-enclosed initializer list>' to 'std::initializer_list<std::function<void(mir::Server&)> >'
   48 |     return runner.run_with(
      |            ~~~~~~~~~~~~~~~^
   49 |         {
      |         ~                  
   50 |             window_managers,
      |             ~~~~~~~~~~~~~~~~
   51 |             WaylandExtensions{}
      |             ~~~~~~~~~~~~~~~~~~~
   52 |                 .enable(miral::WaylandExtensions::zwlr_layer_shell_v1)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   53 |                 .enable(miral::WaylandExtensions::zwlr_foreign_toplevel_manager_v1)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |                 .enable(miral::WaylandExtensions::zxdg_output_manager_v1)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |                 .enable(miral::WaylandExtensions::zwp_virtual_keyboard_manager_v1)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |                 .enable(miral::WaylandExtensions::zwlr_virtual_pointer_manager_v1)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   57 |                 .enable(miral::WaylandExtensions::zwp_input_method_manager_v2)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   58 |                 .enable(miral::WaylandExtensions::zwlr_screencopy_manager_v1)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   59 |                 .enable(miral::WaylandExtensions::ext_session_lock_manager_v1),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   60 |             X11Support{}.default_to_enabled(),
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   61 |             config_keymap,
      |             ~~~~~~~~~~~~~~ 
   62 |             external_client_launcher,
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~
   63 |             internal_client_launcher,
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~
   64 |             display_configuration_options,
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   65 |             AddInitCallback(run_startup_apps)
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   66 |         });
      |         ~~                 
In file included from /home/lidg/cmp/miracle-wm/src/auto_restarting_launcher.h:6,
                 from /home/lidg/cmp/miracle-wm/src/main.cpp:5:
/usr/include/miral/miral/runner.h:78:78: note:   initializing argument 1 of 'int miral::MirRunner::run_with(std::initializer_list<std::function<void(mir::Server&)> >)'
   78 | initializer_list<std::function<void(::mir::Server&)>> options) -> int;
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~

gmake[2]: *** [CMakeFiles/miracle-wm.dir/build.make:76: CMakeFiles/miracle-wm.dir/src/main.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/miracle-wm.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

Outer gaps also have inner gaps calculated into them

If you set outer gaps to 0, you would expect no outer gaps! Unfortunately, we also have inner gaps that are being added to them. We need a way to check which of the edges of a window should only be affected by outer gaps instead of inner gaps

Black screen, cursor only

Hi,

on ubuntu 23.10, installed the snap and started via command-line (but I have the same result when selecting via the login manager), I only get a black background with a mouse cursor, none of the key bindings seem to work.

cheers
Fabrizio

Log when running in terminal:

fab@fab-nuc:~$ WAYLAND_DISPLAY=wayland-98 miracle-wm
[2024-02-19 20:57:47.547123] <information> miracle_config: Configuration file path is: /home/fab/.config/miracle-wm.yaml
[2024-02-19 20:57:47.600172] <information> mirserver: Starting
[2024-02-19 20:57:47.608427] < - debug - > mirserver: Not trying logind: "DISPLAY" is set and X need not have claimed the VT
[2024-02-19 20:57:47.610363] < - debug - > mirserver: Not using Linux VT subsystem for session management: Failed to find the current VT
[2024-02-19 20:57:47.610377] < - debug - > mirserver: No session management supported
[2024-02-19 20:57:47.610385] <information> VT switch key handler: No VT switching support available: MinimalConsoleServices does not support VT switching
[2024-02-19 20:57:47.610491] <information> mircommon: Loading modules from: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform
[2024-02-19 20:57:47.610514] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/graphics-gbm-kms.so.21
[2024-02-19 20:57:47.610525] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/graphics-wayland.so.21
[2024-02-19 20:57:47.610529] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/renderer-egl-generic.so.21
[2024-02-19 20:57:47.610532] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/server-x11.so.21
[2024-02-19 20:57:47.610535] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/input-evdev.so.8
[2024-02-19 20:57:47.610948] <information> mirserver: Found display driver: mir:gbm-kms (version 2.16.3)
[2024-02-19 20:57:47.624402] < - debug - > gbm-kms: Quirks: checking device with devnode: /dev/dri/card0, driver i915
[2024-02-19 20:57:47.626364] <information> gbm-kms: Failed to probe DRM device: ./src/server/console/minimal_console_services.cpp(134): Throw in function virtual std::future<std::unique_ptr<mir::Device> > mir::MinimalConsoleServices::acquire_device(int, int, std::unique_ptr<mir::Device::Observer>)
Dynamic exception type: boost::wrapexcept<std::system_error>
std::exception::what: Failed to acquire DRM master: Operation not permitted

[2024-02-19 20:57:47.626415] < - debug - > gbm-kms: Quirks: checking device with devnode: (null), driver 
[2024-02-19 20:57:47.626464] < - debug - > gbm-kms: Quirks: checking device with devnode: (null), driver 
[2024-02-19 20:57:47.626515] < - debug - > gbm-kms: Quirks: checking device with devnode: (null), driver 
[2024-02-19 20:57:47.626557] < - debug - > gbm-kms: Quirks: checking device with devnode: (null), driver 
[2024-02-19 20:57:47.626589] < - debug - > gbm-kms: Quirks: checking device with devnode: (null), driver 
[2024-02-19 20:57:47.626620] < - debug - > gbm-kms: Quirks: checking device with devnode: (null), driver 
[2024-02-19 20:57:47.626641] <information> mirserver: (Unsupported by system environment)
[2024-02-19 20:57:47.626645] <information> mirserver: Found display driver: mir:wayland (version 2.16.3)
[2024-02-19 20:57:47.626648] <information> mirserver: (Unsupported by system environment)
[2024-02-19 20:57:47.626653] <information> mirserver: Found display driver: mir:egl-generic (version 2.16.3)
[2024-02-19 20:57:47.626670] <information> mirserver: Found display driver: mir:x11 (version 2.16.3)
[2024-02-19 20:57:47.640345] <information> mirserver: Driver supports:
[2024-02-19 20:57:47.640364] <information> mirserver: 	System (priority 192)
[2024-02-19 20:57:47.640392] <information> mirserver: Selected display driver: mir:x11 (version 2.16.3) for platform
[2024-02-19 20:57:48.958706] <information> mircommon: Loading modules from: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform
[2024-02-19 20:57:48.958760] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/graphics-gbm-kms.so.21
[2024-02-19 20:57:48.958770] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/graphics-wayland.so.21
[2024-02-19 20:57:48.958774] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/renderer-egl-generic.so.21
[2024-02-19 20:57:48.958778] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/server-x11.so.21
[2024-02-19 20:57:48.958781] <information> mircommon: Loading module: /snap/miracle-wm/34/usr/lib/x86_64-linux-gnu/mir/server-platform/input-evdev.so.8
[2024-02-19 20:57:48.959245] <information> mirserver: Found rendering driver: mir:gbm-kms (version 2.16.3)
[2024-02-19 20:57:48.959252] < - debug - > gbm-kms: No outputs capable of accepting GBM input detected
[2024-02-19 20:57:48.959255] < - debug - > gbm-kms: Probing will be skipped
[2024-02-19 20:57:48.959258] <information> mirserver: (Unsupported by system environment)
[2024-02-19 20:57:48.959261] <information> mirserver: Found rendering driver: mir:wayland (version 2.16.3)
[2024-02-19 20:57:48.959285] <information> mirserver: Found rendering driver: mir:egl-generic (version 2.16.3)
[2024-02-19 20:57:48.959289] <information> mirserver: Driver supports:
[2024-02-19 20:57:48.959291] <information> mirserver: 	System (priority 192)
[2024-02-19 20:57:48.959294] <information> mirserver: Found rendering driver: mir:x11 (version 2.16.3)
[2024-02-19 20:57:48.959306] <information> mirserver: Selected rendering driver: mir:egl-generic (version 2.16.3) for platform
[2024-02-19 20:57:49.075211] < - debug - > x11-error: Detected 60.00Hz host output refresh rate.
[2024-02-19 20:57:49.081935] <information> mirserver: Using software cursor
[2024-02-19 20:57:49.089588] <information> gbm-kms-buffer-allocator: Enabled linux-dmabuf import support
[2024-02-19 20:57:49.189188] <information> mirserver: Selected input driver: mir:x11-input (version: 2.16.3)
[2024-02-19 20:57:49.189553] <information> mirserver: Mir version 2.16.3
[2024-02-19 20:57:49.193194] <information> GLRenderer: EGL vendor: Mesa Project
[2024-02-19 20:57:49.193232] <information> GLRenderer: EGL version: 1.5
[2024-02-19 20:57:49.193236] <information> GLRenderer: EGL client APIs: OpenGL OpenGL_ES 
[2024-02-19 20:57:49.193247] <information> GLRenderer: EGL extensions: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_CHROMIUM_sync_control EGL_ANGLE_sync_control_rate EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_protected_content EGL_EXT_swap_buffers_with_damage EGL_IMG_context_priority EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_context_flush_control EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_NOK_texture_from_pixmap EGL_WL_bind_wayland_display 
[2024-02-19 20:57:49.193255] <information> GLRenderer: GL vendor: Intel
[2024-02-19 20:57:49.193264] <information> GLRenderer: GL renderer: Mesa Intel(R) Graphics (ADL GT2)
[2024-02-19 20:57:49.193266] <information> GLRenderer: GL version: OpenGL ES 3.2 Mesa 23.2.1-1ubuntu3.1~22.04.2
[2024-02-19 20:57:49.193269] <information> GLRenderer: GLSL version: OpenGL ES GLSL ES 3.20
[2024-02-19 20:57:49.193309] <information> GLRenderer: GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_draw_instanced GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_AMD_performance_monitor GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_pack_subimage GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_OES_viewport_array GL_ANGLE_pack_reverse_row_order GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_occlusion_query_boolean GL_EXT_robustness GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_NV_generate_mipmap_sRGB GL_NV_pixel_buffer_object GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_debug_label GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_group_vote GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix GL_EXT_tessellation_point_size GL_EXT_tessellation_shader GL_INTEL_conservative_rasterization GL_INTEL_performance_query GL_ANDROID_extension_pack_es31a GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_gpu_shader5 GL_EXT_polygon_offset_clamp GL_EXT_primitive_bounding_box GL_EXT_render_snorm GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp GL_EXT_texture_buffer GL_EXT_texture_cube_map_array GL_EXT_texture_norm16 GL_EXT_texture_view GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_NV_image_formats GL_NV_shader_noperspective_interpolation GL_OES_copy_image GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_gpu_shader5 GL_OES_primitive_bounding_box GL_OES_sample_shading GL_OES_sample_variables GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation GL_OES_tessellation_point_size GL_OES_tessellation_shader GL_OES_texture_border_clamp GL_OES_texture_buffer GL_OES_texture_cube_map_array GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view GL_EXT_blend_func_extended GL_EXT_buffer_storage GL_EXT_float_blend GL_EXT_geometry_point_size GL_EXT_geometry_shader GL_EXT_shader_samples_identical GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_NV_fragment_shader_interlock GL_OES_EGL_image_external_essl3 GL_OES_geometry_point_size GL_OES_geometry_shader GL_OES_shader_image_atomic GL_EXT_clear_texture GL_EXT_clip_cull_distance GL_EXT_disjoint_timer_query GL_EXT_texture_compression_s3tc_srgb GL_MESA_shader_integer_functions GL_EXT_clip_control GL_EXT_color_buffer_half_float GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_texture_compression_bptc GL_EXT_texture_mirror_clamp_to_edge GL_KHR_parallel_shader_compile GL_NV_alpha_to_coverage_dither_control GL_EXT_EGL_image_storage GL_EXT_shader_framebuffer_fetch_non_coherent GL_EXT_texture_shadow_lod GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y GL_NV_compute_shader_derivatives GL_EXT_demote_to_helper_invocation GL_EXT_depth_clamp GL_EXT_texture_query_lod GL_MESA_bgra 
[2024-02-19 20:57:49.193326] <information> GLRenderer: GL max texture size = 16384
[2024-02-19 20:57:49.211207] <information> GLRenderer: GL framebuffer bits: RGBA=8888, depth=0, stencil=0
[2024-02-19 20:57:49.213797] <information> xwayland: XWayland started on X11 display :2
[2024-02-19 20:57:49.213841] <information> mirserver: Initial display configuration:
[2024-02-19 20:57:49.213852] <information> mirserver: * Output 1: unknown connected, used
[2024-02-19 20:57:49.213862] <information> mirserver: . |_ Physical size 17.1" 338x271mm
[2024-02-19 20:57:49.213868] <information> mirserver: . |_ Power is on
[2024-02-19 20:57:49.213873] <information> mirserver: . |_ Current mode 1280x1024 60.00Hz
[2024-02-19 20:57:49.213879] <information> mirserver: . |_ Preferred mode 1280x1024 60.00Hz
[2024-02-19 20:57:49.213883] <information> mirserver: . |_ Orientation normal
[2024-02-19 20:57:49.213890] <information> mirserver: . |_ Logical size 1280x1024
[2024-02-19 20:57:49.213896] <information> mirserver: . |_ Logical position +0+0
[2024-02-19 20:57:49.213900] <information> mirserver: . |_ Scaling factor: 1.00
[2024-02-19 20:57:49.213955] < -warning- > window_tree: Tree is already shown

Fedora package?

Mir has been packaged in Fedora for many years now. It'd be great to see MiracleWM packaged in Fedora by someone interested in this type of environment, and perhaps produce a Fedora spin. 😉

Update CI to automatically do releases

We should move out publishing to the CI, which would be very nice IMO. This shouldn't be hard to do if we had a "release" branch, where pushing to it always triggers a release

This would include:

  • Build and upload a snap for all platforms
  • Build and upload a deb for all platforms
  • (Future) Build and upload an rpm for all platforms

Terminal command doesn't work if x-terminal-emulator is unavailable

With version 0.1.0 on a non-Debian distro, I'm unable to use the Terminal command:

[2024-02-23 09:05:03.714707] < -warning- > miral: Failed to execute client ("x-terminal-emulator") error: No such file or directory
!!! Fatal signal received. Attempting cleanup, but deadlock may occur.
Mir fatal error: Unsupported attempt to continue after a fatal signal: SIGSEGV
!!! Fatal signal received. Attempting cleanup, but deadlock may occur.
Mir fatal error: Unsupported attempt to continue after a fatal signal: SIGABRT
[2024-02-23 09:05:04.737998] < - debug - > mirserver: Handling Child exited from pid=4895

x-terminal-emulator doesn't exist on this distro, and none of the other POSSIBLE_TERMINALS entries get attempted.

Maximizing doesn't work

Behavior

  • When an app is fullscreened on a WindowTree, then we ignore all other focus attempts on that window. We can only interact with that window while it is fullscreened.

Build fails on Debian Testing (Trixie)

Hi, I wanted to give miracle-wm a try on Debian but I was not able to compile it.

Here is the error I got:


 cmake --build build
[  5%] Building CXX object CMakeFiles/miracle-wm-implementation.dir/src/tree.cpp.o
/home/franzo/Documents/gitRemote/miracle-wm/src/tree.cpp: In member function ‘std::shared_ptr<miracle::Node> miracle::Tree::advise_new_window(const miral::WindowInfo&)’:
/home/franzo/Documents/gitRemote/miracle-wm/src/tree.cpp:71:15: error: ‘class miral::WindowManagerTools’ has no member named ‘send_tree_to_back’
   71 |         tools.send_tree_to_back(window_info.window());
      |               ^~~~~~~~~~~~~~~~~
/home/franzo/Documents/gitRemote/miracle-wm/src/tree.cpp: In member function ‘void miracle::Tree::advise_focus_gained(miral::Window&)’:
/home/franzo/Documents/gitRemote/miracle-wm/src/tree.cpp:353:15: error: ‘class miral::WindowManagerTools’ has no member named ‘send_tree_to_back’
  353 |         tools.send_tree_to_back(window);
      |               ^~~~~~~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/miracle-wm-implementation.dir/build.make:90: CMakeFiles/miracle-wm-implementation.dir/src/tree.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:104: CMakeFiles/miracle-wm-implementation.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

libmiral-dev on Debian is at (3.9.0.2.14.1-4+b2) Could that be related to the issue?

P.S.
I had to search for the dependencies inside the cmake file, would be great to list them in the README file already!
Here they are:

           cmake,
             pkg-config,
             build-essential,
             libmiral-dev,
             libgtest-dev,
             libyaml-cpp-dev,
             libglib2.0-dev,
             libevdev-dev,
             nlohmann-json3-dev,
             libnotify-dev

Would you like me to create a PR to add them to the readme in the building section?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.