diff --git a/README.md b/README.md index 8452dcb6..086dc006 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,9 @@ -
+

+ swayfx logo +

-![swayfx logo](assets/swayfx_logo.svg) +--- -
- -https://discord.gg/qsSx397rkh - -
- -![swayfx screenshot](assets/swayfx_screenshot.jpg) Sway is an incredible window manager, and certainly one of the most well established wayland window managers. However, it is restricted to only include the functionality that existed in i3. This fork ditches the simple wlr_renderer, and replaces it with our fx_renderer, capable of rendering with fancy GLES2 effects. This, along with a couple of minor changes, expands sway's featureset to include the following: + **Blur** @@ -19,13 +14,15 @@ Sway is an incredible window manager, and certainly one of the most well establi + **Scratchpad treated as minimize**: Allows docks, or panels with a taskbar, to correctly interpret minimize / unminimize requests ([thanks to LCBCrion](https://github.com/swaywm/sway/issues/6457)) + **nixify the repo**: Allows nixos users to easily contribute to and test this project - - - - +

+ + +

[SwayFX is also available on the Fedora copr](https://copr.fedorainfracloud.org/coprs/swayfx/swayfx/) +[Join our Discord](https://discord.gg/qsSx397rkh) + ## New Configuration Options + Window blur: diff --git a/assets/swayfx_mascot.png b/assets/swayfx_legacy_mascot_1066x600.png similarity index 100% rename from assets/swayfx_mascot.png rename to assets/swayfx_legacy_mascot_1066x600.png diff --git a/assets/swayfx_mascot.jpg b/assets/swayfx_mascot.jpg new file mode 100644 index 00000000..da90fb5b Binary files /dev/null and b/assets/swayfx_mascot.jpg differ diff --git a/assets/swayfx_mascot_1366x768.png b/assets/swayfx_mascot_1366x768.png new file mode 100644 index 00000000..778d3bcf Binary files /dev/null and b/assets/swayfx_mascot_1366x768.png differ diff --git a/assets/swayfx_mascot_1920x1080.png b/assets/swayfx_mascot_1920x1080.png new file mode 100644 index 00000000..25df92c9 Binary files /dev/null and b/assets/swayfx_mascot_1920x1080.png differ diff --git a/assets/swayfx_mascot_3840x2160.png b/assets/swayfx_mascot_3840x2160.png new file mode 100644 index 00000000..9e5192f8 Binary files /dev/null and b/assets/swayfx_mascot_3840x2160.png differ diff --git a/assets/swayfx_mascot_4096x4096.png b/assets/swayfx_mascot_4096x4096.png new file mode 100644 index 00000000..3cf5355a Binary files /dev/null and b/assets/swayfx_mascot_4096x4096.png differ diff --git a/assets/swayfx_screenshot.jpg b/assets/swayfx_screenshot.jpg index 016641cd..7e904898 100644 Binary files a/assets/swayfx_screenshot.jpg and b/assets/swayfx_screenshot.jpg differ diff --git a/sway/desktop/render.c b/sway/desktop/render.c index edc80288..afaf4ede 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -359,7 +359,9 @@ static void render_surface_iterator(struct sway_output *output, } if (has_alpha) { - bool should_optimize_blur = view ? !container_is_floating(view->container) || config->blur_xray : false; + bool should_optimize_blur = view ? + !container_is_floating_or_child(view->container) || config->blur_xray + : false; render_blur(should_optimize_blur, output, output_damage, &dst_box, &opaque_region, deco_data.corner_radius, deco_data.has_titlebar); } @@ -734,7 +736,7 @@ static void render_saved_view(struct sway_view *view, struct sway_output *output pixman_region32_init(&opaque_region); pixman_region32_union_rect(&opaque_region, &opaque_region, 0, 0, 0, 0); - bool should_optimize_blur = !container_is_floating(view->container) || config->blur_xray; + bool should_optimize_blur = !container_is_floating_or_child(view->container) || config->blur_xray; render_blur(should_optimize_blur, output, damage, &dst_box, &opaque_region, deco_data.corner_radius, deco_data.has_titlebar); diff --git a/sway/tree/root.c b/sway/tree/root.c index 2c1b96b8..9df6f002 100644 --- a/sway/tree/root.c +++ b/sway/tree/root.c @@ -58,12 +58,16 @@ void root_destroy(struct sway_root *root) { /* Set minimized state from scratchpad container `show` state */ static void root_scratchpad_set_minimize(struct sway_container *con, bool minimize) { if (con->view) { - struct wlr_foreign_toplevel_handle_v1 *foreign_toplevel = con->view->foreign_toplevel; - +#if HAVE_XWAYLAND if (wlr_surface_is_xwayland_surface(con->view->surface)) { - struct wlr_xwayland_surface *xsurface = wlr_xwayland_surface_from_wlr_surface(con->view->surface); + struct wlr_xwayland_surface *xsurface + = wlr_xwayland_surface_from_wlr_surface(con->view->surface); wlr_xwayland_surface_set_minimized(xsurface, minimize); - } else if (foreign_toplevel) { + return; + } +#endif + struct wlr_foreign_toplevel_handle_v1 *foreign_toplevel = NULL; + if ((foreign_toplevel = con->view->foreign_toplevel)) { wlr_foreign_toplevel_handle_v1_set_minimized(foreign_toplevel, minimize); } }