suggestion picker: a persistent layer to complement virtual keyboards like wvkbd
-rw-r--r--keyboard.c22
-rw-r--r--keyboard.h2
-rw-r--r--main.c12
3 files changed, 4 insertions, 32 deletions
diff --git a/keyboard.c b/keyboard.c
index dbdae68..1e2e0a5 100644
--- a/keyboard.c
+++ b/keyboard.c
@@ -39,7 +39,7 @@ kbd_get_rows(struct layout *l) {
}
void
-kbd_init(struct kbd *kb, struct layout *layouts, char *layer_names_list) {
+kbd_init(struct kbd *kb, struct layout *layouts) {
char *s;
int i;
bool found;
@@ -54,26 +54,6 @@ kbd_init(struct kbd *kb, struct layout *layouts, char *layer_names_list) {
kb->layer_index = 0;
- if (layer_names_list) {
- uint8_t numlayers = 0;
- kb->layers = malloc(MAX_LAYERS * sizeof(enum layout_id));
- s = strtok(layer_names_list, ",");
- while (s != NULL) {
- if (numlayers + 1 == MAX_LAYERS) {
- fprintf(stderr, "too many layers specified");
- exit(3);
- }
- found = false;
- kb->layers[numlayers++] = 0;
- s = strtok(NULL, ",");
- }
- kb->layers[numlayers] = NumLayouts; // mark the end of the sequence
- if (numlayers == 0) {
- fprintf(stderr, "No layers defined\n");
- exit(3);
- }
- }
-
i = 0;
enum layout_id lid = kb->layers[0];
while (lid != NumLayouts) {
diff --git a/keyboard.h b/keyboard.h
index 6aacbb7..ec36418 100644
--- a/keyboard.h
+++ b/keyboard.h
@@ -115,7 +115,7 @@ void draw_inset(struct drwsurf *ds, uint32_t x, uint32_t y, uint32_t width,
void draw_over_inset(struct drwsurf *ds, uint32_t x, uint32_t y, uint32_t width,
uint32_t height, uint32_t border, Color color);
-void kbd_init(struct kbd *kb, struct layout *layouts, char *layer_names_list);
+void kbd_init(struct kbd *kb, struct layout *layouts);
void kbd_init_layout(struct layout *l, uint32_t width, uint32_t height);
struct key *kbd_get_key(struct kbd *kb, uint32_t x, uint32_t y);
void kbd_unpress_key(struct kbd *kb, uint32_t time);
diff --git a/main.c b/main.c
index 6023693..61ee075 100644
--- a/main.c
+++ b/main.c
@@ -337,14 +337,12 @@ layer_surface_closed(void *data, struct zwlr_layer_surface_v1 *surface) {
void
usage(char *argv0) {
fprintf(stderr,
- "usage: %s [-hov] [-H height] [-L landscape height] [-fn font] [-l "
- "layers]\n",
+ "usage: %s [-hov] [-H height] [-L landscape height] [-fn font]\n",
argv0);
fprintf(stderr, "Options:\n");
fprintf(stderr, " -D - Enable debug\n");
fprintf(stderr, " -o - Print pressed keys to standard output\n");
fprintf(stderr, " -O - Print intersected keys to standard output\n");
- fprintf(stderr, " -l - Comma separated list of layers\n");
fprintf(stderr, " -H [int] - Height in pixels\n");
fprintf(stderr, " -L [int] - Landscape height in pixels\n");
fprintf(stderr, " --fn [font] - Set font (e.g: DejaVu Sans 20)\n");
@@ -396,14 +394,11 @@ show(int sigint) {
int
main(int argc, char **argv) {
/* parse command line arguments */
- char *layer_names_list = NULL;
const char *fc_font_pattern = NULL;
height = normal_height = KBD_PIXEL_HEIGHT;
landscape_height = KBD_PIXEL_LANDSCAPE_HEIGHT;
char *tmp;
- if ((tmp = getenv("WVKBD_LAYERS")))
- layer_names_list = estrdup(tmp);
if ((tmp = getenv("WVKBD_HEIGHT")))
normal_height = atoi(tmp);
if ((tmp = getenv("WVKBD_LANDSCAPE_HEIGHT")))
@@ -432,9 +427,6 @@ main(int argc, char **argv) {
usage(argv[0]);
exit(1);
}
- if (layer_names_list)
- free(layer_names_list);
- layer_names_list = estrdup(argv[++i]);
} else if (!strcmp(argv[i], "-H")) {
if (i >= argc - 1) {
usage(argv[0]);
@@ -491,7 +483,7 @@ main(int argc, char **argv) {
die("layer_shell not available\n");
}
- kbd_init(&keyboard, (struct layout *)&layouts, layer_names_list);
+ kbd_init(&keyboard, (struct layout *)&layouts);
draw_ctx.font_description =
pango_font_description_from_string(fc_font_pattern);