diff --git a/src/ext-protocol/dwl-ipc.h b/src/ext-protocol/dwl-ipc.h index c5747ea..eafc241 100644 --- a/src/ext-protocol/dwl-ipc.h +++ b/src/ext-protocol/dwl-ipc.h @@ -111,6 +111,7 @@ void dwl_ipc_output_printstatus_to(DwlIpcOutput *ipc_output) { Monitor *monitor = ipc_output->mon; Client *c, *focused; struct wlr_keyboard *keyboard; + xkb_layout_index_t current; int tagmask, state, numclients, focused_client, tag; const char *title, *appid, *symbol, *kb_layout; focused = focustop(monitor); @@ -141,8 +142,10 @@ void dwl_ipc_output_printstatus_to(DwlIpcOutput *ipc_output) { symbol = monitor->pertag->ltidxs[monitor->pertag->curtag]->symbol; keyboard = &kb_group->wlr_group->keyboard; + current = xkb_state_serialize_layout(keyboard->xkb_state, + XKB_STATE_LAYOUT_EFFECTIVE); kb_layout = - get_layout_abbr(xkb_keymap_layout_get_name(keyboard->keymap, 0)); + get_layout_abbr(xkb_keymap_layout_get_name(keyboard->keymap, current)); zdwl_ipc_output_v2_send_layout( ipc_output->resource,