Add controls for verbosity level

This allows the config to be exactly as verbose as kiwmi, or to change
the verbosity level at runtime (e.g. using kiwmic).

It uses numbers, because they are much easier to handle on both sides
and add only little inconvenience to the user.
This commit is contained in:
tiosgz 2021-08-11 20:43:40 +00:00
parent 401864f990
commit 8693d2dd13
2 changed files with 41 additions and 0 deletions

View file

@ -191,6 +191,25 @@ l_kiwmi_server_schedule(lua_State *L)
return 0;
}
static int
l_kiwmi_server_set_verbosity(lua_State *L)
{
luaL_checkudata(L, 1, "kiwmi_server");
luaL_checktype(L, 2, LUA_TNUMBER);
int verbosity = lua_tointeger(L, 2);
if (verbosity < WLR_SILENT) {
verbosity = WLR_SILENT;
} else if (verbosity >= WLR_LOG_IMPORTANCE_LAST) {
verbosity = WLR_DEBUG;
}
wlr_log_init((enum wlr_log_importance)verbosity, NULL);
return 0;
}
static int
l_kiwmi_server_spawn(lua_State *L)
{
@ -241,6 +260,18 @@ l_kiwmi_server_unfocus(lua_State *L)
return 0;
}
static int
l_kiwmi_server_verbosity(lua_State *L)
{
luaL_checkudata(L, 1, "kiwmi_server");
int verbosity = (int)wlr_log_get_verbosity();
lua_pushinteger(L, verbosity);
return 1;
}
static int
l_kiwmi_server_view_at(lua_State *L)
{
@ -284,9 +315,11 @@ static const luaL_Reg kiwmi_server_methods[] = {
{"output_at", l_kiwmi_server_output_at},
{"quit", l_kiwmi_server_quit},
{"schedule", l_kiwmi_server_schedule},
{"set_verbosity", l_kiwmi_server_set_verbosity},
{"spawn", l_kiwmi_server_spawn},
{"stop_interactive", l_kiwmi_server_stop_interactive},
{"unfocus", l_kiwmi_server_unfocus},
{"verbosity", l_kiwmi_server_verbosity},
{"view_at", l_kiwmi_server_view_at},
{NULL, NULL},
};

View file

@ -50,6 +50,10 @@ Quit kiwmi.
Call `callback` after `delay` ms.
Callback get passed itself, so that it can easily reregister itself.
#### kiwmi:set_verbosity(level)
Sets verbosity of kiwmi to the level specified with a number (see `kiwmi:verbosity()`).
#### kiwmi:spawn(command)
Spawn a new process.
@ -63,6 +67,10 @@ Stops an interactive move or resize.
Unfocus the currently focused view.
#### kiwmi:verbosity()
Returns the numerical verbosity level of kiwmi (value of one of `wlr_log_importance`, silent = 0, error = 1, info = 2, debug = 3).
#### kiwmi:view_at(lx, ly)
Get the view at a specified position.