diff --git a/protocols/dwl-ipc-unstable-v2.xml b/protocols/dwl-ipc-unstable-v2.xml
index 2ec2be7..501a7c4 100644
--- a/protocols/dwl-ipc-unstable-v2.xml
+++ b/protocols/dwl-ipc-unstable-v2.xml
@@ -227,6 +227,13 @@ I would probably just submit raphi's patchset but I don't think that would be po
+
+
+ current keyboard layout.
+
+
+
+
diff --git a/src/ext-protocol/dwl-ipc.h b/src/ext-protocol/dwl-ipc.h
index dc7dc24..c5747ea 100644
--- a/src/ext-protocol/dwl-ipc.h
+++ b/src/ext-protocol/dwl-ipc.h
@@ -110,8 +110,9 @@ void dwl_ipc_output_printstatus(Monitor *monitor) {
void dwl_ipc_output_printstatus_to(DwlIpcOutput *ipc_output) {
Monitor *monitor = ipc_output->mon;
Client *c, *focused;
+ struct wlr_keyboard *keyboard;
int tagmask, state, numclients, focused_client, tag;
- const char *title, *appid, *symbol;
+ const char *title, *appid, *symbol, *kb_layout;
focused = focustop(monitor);
zdwl_ipc_output_v2_send_active(ipc_output->resource, monitor == selmon);
@@ -139,6 +140,10 @@ void dwl_ipc_output_printstatus_to(DwlIpcOutput *ipc_output) {
appid = focused ? client_get_appid(focused) : "";
symbol = monitor->pertag->ltidxs[monitor->pertag->curtag]->symbol;
+ keyboard = &kb_group->wlr_group->keyboard;
+ kb_layout =
+ get_layout_abbr(xkb_keymap_layout_get_name(keyboard->keymap, 0));
+
zdwl_ipc_output_v2_send_layout(
ipc_output->resource,
monitor->pertag->ltidxs[monitor->pertag->curtag] - layouts);
@@ -180,6 +185,12 @@ void dwl_ipc_output_printstatus_to(DwlIpcOutput *ipc_output) {
zdwl_ipc_output_v2_send_last_layer(ipc_output->resource,
monitor->last_surface_ws_name);
}
+
+ if (wl_resource_get_version(ipc_output->resource) >=
+ ZDWL_IPC_OUTPUT_V2_KB_LAYOUT_SINCE_VERSION) {
+ zdwl_ipc_output_v2_send_kb_layout(ipc_output->resource, kb_layout);
+ }
+
zdwl_ipc_output_v2_send_frame(ipc_output->resource);
}