Merge branch 'master' into render_blur_cleanup

This commit is contained in:
Erik Reider 2023-08-01 15:05:47 +02:00
commit be750ae707
10 changed files with 22 additions and 19 deletions

View file

@ -1,14 +1,9 @@
<div align = center> <p align="center">
<img src="assets/swayfx_logo.svg" width="256" alt="swayfx logo">
</p>
![swayfx logo](assets/swayfx_logo.svg) ---
<hr>
https://discord.gg/qsSx397rkh
</div>
![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: 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** + **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)) + **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 + **nixify the repo**: Allows nixos users to easily contribute to and test this project
<span> <p align="center">
<img src="https://repology.org/badge/vertical-allrepos/swayfx.svg" height="282"/> <a href="https://repology.org/project/swayfx/versions"><img src="https://repology.org/badge/vertical-allrepos/swayfx.svg" height="282"/></a>
<img src="assets/swayfx_mascot.png" width="500"/> <img src="assets/swayfx_screenshot.jpg" width="500"/>
</span> </p>
[SwayFX is also available on the Fedora copr](https://copr.fedorainfracloud.org/coprs/swayfx/swayfx/) [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 ## New Configuration Options
+ Window blur: + Window blur:

View file

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 169 KiB

BIN
assets/swayfx_mascot.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 147 KiB

View file

@ -359,7 +359,9 @@ static void render_surface_iterator(struct sway_output *output,
} }
if (has_alpha) { 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, render_blur(should_optimize_blur, output, output_damage, &dst_box, &opaque_region,
deco_data.corner_radius, deco_data.has_titlebar); 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_init(&opaque_region);
pixman_region32_union_rect(&opaque_region, &opaque_region, 0, 0, 0, 0); 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, render_blur(should_optimize_blur, output, damage, &dst_box, &opaque_region,
deco_data.corner_radius, deco_data.has_titlebar); deco_data.corner_radius, deco_data.has_titlebar);

View file

@ -58,12 +58,16 @@ void root_destroy(struct sway_root *root) {
/* Set minimized state from scratchpad container `show` state */ /* Set minimized state from scratchpad container `show` state */
static void root_scratchpad_set_minimize(struct sway_container *con, bool minimize) { static void root_scratchpad_set_minimize(struct sway_container *con, bool minimize) {
if (con->view) { 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)) { 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); 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); wlr_foreign_toplevel_handle_v1_set_minimized(foreign_toplevel, minimize);
} }
} }