From 08d3749a636f9cd51f70ba1eed043be8e6c2eca9 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Tue, 5 Oct 2021 16:57:55 -0700 Subject: feat(term): added ligature support. some combining character help --- sys/cmd/wm/client.c | 15 +++++++++++---- sys/cmd/wm/config.h | 4 ++-- sys/cmd/wm/input.c | 1 + sys/cmd/wm/util.c | 1 + 4 files changed, 15 insertions(+), 6 deletions(-) (limited to 'sys/cmd/wm') diff --git a/sys/cmd/wm/client.c b/sys/cmd/wm/client.c index 7c13545..5e0927a 100644 --- a/sys/cmd/wm/client.c +++ b/sys/cmd/wm/client.c @@ -64,11 +64,17 @@ resize_client(Arg *arg) // ----------------------------------------------------------------------- // core +static inline +void +activate(struct wlr_surface *surface, int state) +{ +} + void focus(Client *client, int lift) { - struct wlr_surface *old, *new; struct wlr_xdg_surface *xdg; + struct wlr_surface *old, *new; struct wlr_keyboard *keyboard; if(!client) { @@ -92,10 +98,11 @@ focus(Client *client, int lift) server.monitor.selected = client->monitor; client->isurgent = 0; - // XXX: do we need for non-client case? if(old) { - xdg = wlr_xdg_surface_from_wlr_surface(old); - wlr_xdg_toplevel_set_activated(xdg, false); + if(wlr_surface_is_xdg_surface(old)) { + xdg = wlr_xdg_surface_from_wlr_surface(old); + wlr_xdg_toplevel_set_activated(xdg, false); + } } keyboard = wlr_seat_get_keyboard(server.input.seat); diff --git a/sys/cmd/wm/config.h b/sys/cmd/wm/config.h index f80638f..1f5ba85 100644 --- a/sys/cmd/wm/config.h +++ b/sys/cmd/wm/config.h @@ -24,7 +24,7 @@ CONFIG(Rule*, endrule, arrend(cfg·rule)); /* commands */ CONFIG(char*, termcommand[], { "alacritty", nil }); -CONFIG(char*, menucommand[], { "bemenu-run", nil }); +CONFIG(char*, menucommand[], { "dmenu-wl_run", nil }); /* layouts */ CONFIG(Layout, layouts[], { @@ -51,7 +51,7 @@ CONFIG(MonitorRule*, endmonitorrule, arrend(cfg·monitorrule)); CONFIG(Key, binding[], { /* modifier key function argument */ { MODKEY, KEY(Return), spawn, {.v = cfg·termcommand} }, - { MODKEY, KEY(D), spawn, {.v = cfg·menucommand} }, + { MODKEY, KEY(d), spawn, {.v = cfg·menucommand} }, { MODKEY|MOD(SHIFT), KEY(Q), quit, {.v = nil} }, }); CONFIG(Key*, endbinding, arrend(cfg·binding)); diff --git a/sys/cmd/wm/input.c b/sys/cmd/wm/input.c index a91ecd8..4c6bfd4 100644 --- a/sys/cmd/wm/input.c +++ b/sys/cmd/wm/input.c @@ -18,6 +18,7 @@ int keybinding(uint32 modifier, xkb_keysym_t sym) { Key *key; + for(key=cfg·binding; key!=cfg·endbinding; ++key) { if(modifier == key->modifier && sym == key->sym && key->action){ key->action(&key->arg); diff --git a/sys/cmd/wm/util.c b/sys/cmd/wm/util.c index cf4f68a..7871d15 100644 --- a/sys/cmd/wm/util.c +++ b/sys/cmd/wm/util.c @@ -80,6 +80,7 @@ exclude(struct wlr_box *usable_area, uint32 anchor, int32 exclusive, void spawn(Arg *arg) { + wlr_log(WLR_DEBUG, "spawning %s", ((char **)arg->v)[0]); if(!fork()) { dup2(2, 1); setsid(); -- cgit v1.2.1