summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md21
-rw-r--r--config.def.h6
-rw-r--r--dwl.c11
3 files changed, 22 insertions, 16 deletions
diff --git a/README.md b/README.md
index 390788d..3a3b9bd 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
# dwl - dwm for Wayland
-Join us on our IRC channel: [#dwl on Libera Chat]
-Or on the community-maintained [Discord server].
+Join us on our [Discord server]
+Or Matrix: [#dwl-official:matrix.org]
+Or on our IRC channel: [#dwl on Libera Chat]
dwl is a compact, hackable compositor for [Wayland] based on [wlroots]. It is
intended to fill the same space in the Wayland world that [dwm] does in X11,
@@ -23,12 +24,14 @@ with each release on the [release] page
### Development branch [main]
Active development progresses on the `main` branch. The `main` branch is built
-against a late (and often changing) git commit of wlroots. While the adventurous
-are welcome to use `main`, it is a rocky road. Using `main` requires that the
-user be willing to chase git commits of wlroots. Testing development pull
-requests may involve merging unmerged pull requests in [wlroots]' git repository
-and/or git commits of wayland.
-
+against the latest release of [wlroots]. PRs should target this branch unless they
+depend on functionality that is not in the current release of `wlroots`.
+
+### Preview branch [wlroots-next]
+The `wlroots-next` branch is built against the git version of [wlroots], which
+is unstable and changes frequently. PRs requiring functionality from the git
+version of `wlroots` should target this branch.
+
### Building dwl
dwl has the following dependencies:
- libinput
@@ -202,6 +205,7 @@ inspiration, and to the various contributors to the project, including:
[dwl-patches]: https://codeberg.org/dwl/dwl-patches
[list of useful resources on our wiki]: https://codeberg.org/dwl/dwl/wiki/Home#migrating-from-x
[main]: https://codeberg.org/dwl/dwl/src/branch/main
+[wlroots-next]: https://codeberg.org/dwl/dwl/src/branch/wlroots-next
[release]: https://codeberg.org/dwl/dwl/releases
[runit]: http://smarden.org/runit/faq.html#userservices
[s6]: https://skarnet.org/software/s6/
@@ -209,3 +213,4 @@ inspiration, and to the various contributors to the project, including:
[wiki]: https://codeberg.org/dwl/dwl/wiki/Home#compatible-status-bars
[Discord server]: https://discord.gg/jJxZnrGPWN
[Wayland]: https://wayland.freedesktop.org/
+[#dwl-official:matrix.org]: https://matrix.to/#/#dwl-official:matrix.org
diff --git a/config.def.h b/config.def.h
index 157db1f..d9163f7 100644
--- a/config.def.h
+++ b/config.def.h
@@ -76,10 +76,8 @@ static const Layout layouts[] = {
/* monitors */
/* (x=-1, y=-1) is reserved as an "autoconfigure" monitor position indicator
- * WARNING: negative values other than (-1, -1) cause problems with Xwayland clients
- * https://gitlab.freedesktop.org/xorg/xserver/-/issues/899
-*/
-/* NOTE: ALWAYS add a fallback rule, even if you are completely sure it won't be used */
+ * WARNING: negative values other than (-1, -1) cause problems with Xwayland clients due to
+ * https://gitlab.freedesktop.org/xorg/xserver/-/issues/899 */
static const MonitorRule monrules[] = {
/* name mfact nmaster scale layout rotate/reflect x y */
/* example of a HiDPI laptop monitor:
diff --git a/dwl.c b/dwl.c
index d129406..0cd3a7b 100644
--- a/dwl.c
+++ b/dwl.c
@@ -27,6 +27,7 @@
#include <wlr/types/wlr_data_device.h>
#include <wlr/types/wlr_drm.h>
#include <wlr/types/wlr_export_dmabuf_v1.h>
+#include <wlr/types/wlr_ext_data_control_v1.h>
#include <wlr/types/wlr_fractional_scale_v1.h>
#include <wlr/types/wlr_gamma_control_v1.h>
#include <wlr/types/wlr_idle_inhibit_v1.h>
@@ -714,7 +715,7 @@ arrangelayers(Monitor *m)
arrange(m);
}
- /* Arrange non-exlusive surfaces from top->bottom */
+ /* Arrange non-exclusive surfaces from top->bottom */
for (i = 3; i >= 0; i--)
arrangelayer(m, &m->layers[i], &usable_area, 0);
@@ -2361,7 +2362,8 @@ keybinding(uint32_t mods, xkb_keysym_t sym)
const Key *k;
for (k = keys; k < END(keys); k++) {
if (CLEANMASK(mods) == CLEANMASK(k->mod)
- && sym == k->keysym && k->func) {
+ && xkb_keysym_to_lower(sym) == xkb_keysym_to_lower(k->keysym)
+ && k->func) {
k->func(&k->arg);
return 1;
}
@@ -2891,7 +2893,7 @@ powermgrsetmode(struct wl_listener *listener, void *data)
if (!m)
return;
- m->gamma_lut_changed = 1; /* Reapply gamma LUT when re-enabling the ouput */
+ m->gamma_lut_changed = 1; /* Reapply gamma LUT when re-enabling the output */
wlr_output_state_set_enabled(&state, event->mode);
wlr_output_commit_state(m->wlr_output, &state);
@@ -3236,7 +3238,7 @@ setup(void)
wlr_log_init(log_level, NULL);
/* The Wayland display is managed by libwayland. It handles accepting
- * clients from the Unix socket, manging Wayland globals, and so on. */
+ * clients from the Unix socket, managing Wayland globals, and so on. */
dpy = wl_display_create();
event_loop = wl_display_get_event_loop(dpy);
@@ -3299,6 +3301,7 @@ setup(void)
wlr_export_dmabuf_manager_v1_create(dpy);
wlr_screencopy_manager_v1_create(dpy);
wlr_data_control_manager_v1_create(dpy);
+ wlr_ext_data_control_manager_v1_create(dpy, 1);
wlr_primary_selection_v1_device_manager_create(dpy);
wlr_viewporter_create(dpy);
wlr_single_pixel_buffer_manager_v1_create(dpy);