mirror of
https://github.com/jjsullivan5196/wvkbd.git
synced 2025-03-13 02:42:47 +01:00
Add landscape height value
This commit is contained in:
parent
e100aafb05
commit
7a512fbca7
@ -3,6 +3,9 @@
|
|||||||
/* how tall the keyboard should be by default (can be overriden) */
|
/* how tall the keyboard should be by default (can be overriden) */
|
||||||
#define KBD_PIXEL_HEIGHT 240
|
#define KBD_PIXEL_HEIGHT 240
|
||||||
|
|
||||||
|
/* how tall the keyboard should be by default (can be overriden) */
|
||||||
|
#define KBD_PIXEL_LANDSCAPE_HEIGHT 120
|
||||||
|
|
||||||
/* if your layout leaves an empty margin, increase this to fix it */
|
/* if your layout leaves an empty margin, increase this to fix it */
|
||||||
#define KBD_PIXEL_OVERSCAN_WIDTH 5
|
#define KBD_PIXEL_OVERSCAN_WIDTH 5
|
||||||
|
|
||||||
|
30
main.c
30
main.c
@ -43,7 +43,7 @@ static uint32_t anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM |
|
|||||||
static bool run_display = true;
|
static bool run_display = true;
|
||||||
static int cur_x = -1, cur_y = -1;
|
static int cur_x = -1, cur_y = -1;
|
||||||
static struct kbd keyboard;
|
static struct kbd keyboard;
|
||||||
static uint32_t height;
|
static uint32_t height, normal_height, landscape_height;
|
||||||
|
|
||||||
/* event handler prototypes */
|
/* event handler prototypes */
|
||||||
static void wl_pointer_enter(void *data, struct wl_pointer *wl_pointer,
|
static void wl_pointer_enter(void *data, struct wl_pointer *wl_pointer,
|
||||||
@ -238,10 +238,14 @@ seat_handle_name(void *data, struct wl_seat *wl_seat, const char *name) {}
|
|||||||
static void
|
static void
|
||||||
display_handle_geometry(void *data, struct wl_output *wl_output, int x, int y, int physical_width, int physical_height, int subpixel, const char *make, const char *model, int transform)
|
display_handle_geometry(void *data, struct wl_output *wl_output, int x, int y, int physical_width, int physical_height, int subpixel, const char *make, const char *model, int transform)
|
||||||
{
|
{
|
||||||
if (transform % 2 == 0) {
|
if (transform % 2 == 0 && keyboard.landscape) {
|
||||||
keyboard.landscape = false;
|
keyboard.landscape = false;
|
||||||
} else {
|
height = normal_height;
|
||||||
|
} else if (transform % 2 != 0 && !keyboard.landscape) {
|
||||||
keyboard.landscape = true;
|
keyboard.landscape = true;
|
||||||
|
height = landscape_height;
|
||||||
|
} else {
|
||||||
|
return; // no changes
|
||||||
}
|
}
|
||||||
|
|
||||||
enum layout_id layer;
|
enum layout_id layer;
|
||||||
@ -253,6 +257,10 @@ display_handle_geometry(void *data, struct wl_output *wl_output, int x, int y, i
|
|||||||
|
|
||||||
keyboard.layout = &keyboard.layouts[layer];
|
keyboard.layout = &keyboard.layouts[layer];
|
||||||
keyboard.prevlayout = keyboard.layout;
|
keyboard.prevlayout = keyboard.layout;
|
||||||
|
|
||||||
|
zwlr_layer_surface_v1_set_size(layer_surface, 0, height);
|
||||||
|
zwlr_layer_surface_v1_set_exclusive_zone(layer_surface, height);
|
||||||
|
wl_surface_commit(draw_surf.surf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -328,12 +336,13 @@ layer_surface_closed(void *data, struct zwlr_layer_surface_v1 *surface) {
|
|||||||
void
|
void
|
||||||
usage(char *argv0)
|
usage(char *argv0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "usage: %s [-hov] [-H height] [-fn font] [-l layers]\n", argv0);
|
fprintf(stderr, "usage: %s [-hov] [-H height] [-L landscape height] [-fn font] [-l layers]\n", argv0);
|
||||||
fprintf(stderr, "Options:\n");
|
fprintf(stderr, "Options:\n");
|
||||||
fprintf(stderr, " -D - Enable debug\n");
|
fprintf(stderr, " -D - Enable debug\n");
|
||||||
fprintf(stderr, " -o - Print press keys to standard output\n");
|
fprintf(stderr, " -o - Print press keys to standard output\n");
|
||||||
fprintf(stderr, " -l - Comma separated list of layers\n");
|
fprintf(stderr, " -l - Comma separated list of layers\n");
|
||||||
fprintf(stderr, " -H [int] - Height in pixels\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");
|
fprintf(stderr, " -fn [font] - Set font (e.g: DejaVu Sans 20)\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,13 +393,16 @@ main(int argc, char **argv) {
|
|||||||
/* parse command line arguments */
|
/* parse command line arguments */
|
||||||
char *layer_names_list = NULL;
|
char *layer_names_list = NULL;
|
||||||
const char *fc_font_pattern = NULL;
|
const char *fc_font_pattern = NULL;
|
||||||
height = KBD_PIXEL_HEIGHT;
|
height = normal_height = KBD_PIXEL_HEIGHT;
|
||||||
|
landscape_height = KBD_PIXEL_LANDSCAPE_HEIGHT;
|
||||||
|
|
||||||
char *tmp;
|
char *tmp;
|
||||||
if ((tmp = getenv("WVKBD_LAYERS")))
|
if ((tmp = getenv("WVKBD_LAYERS")))
|
||||||
layer_names_list = estrdup(tmp);
|
layer_names_list = estrdup(tmp);
|
||||||
if ((tmp = getenv("WVKBD_HEIGHT")))
|
if ((tmp = getenv("WVKBD_HEIGHT")))
|
||||||
height = atoi(tmp);
|
normal_height = atoi(tmp);
|
||||||
|
if ((tmp = getenv("WVKBD_LANDSCAPE_HEIGHT")))
|
||||||
|
landscape_height = atoi(tmp);
|
||||||
|
|
||||||
/* keyboard settings */
|
/* keyboard settings */
|
||||||
keyboard.layers = (enum layout_id *) &layers;
|
keyboard.layers = (enum layout_id *) &layers;
|
||||||
@ -423,6 +435,12 @@ main(int argc, char **argv) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
height = atoi(argv[++i]);
|
height = atoi(argv[++i]);
|
||||||
|
} else if (!strcmp(argv[i], "-L")) {
|
||||||
|
if (i >= argc - 1) {
|
||||||
|
usage(argv[0]);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
landscape_height = atoi(argv[++i]);
|
||||||
} else if (!strcmp(argv[i], "-D")) {
|
} else if (!strcmp(argv[i], "-D")) {
|
||||||
keyboard.debug = true;
|
keyboard.debug = true;
|
||||||
} else if ((!strcmp(argv[i], "-fn")) || (!strcmp(argv[i], "--fn"))) {
|
} else if ((!strcmp(argv[i], "-fn")) || (!strcmp(argv[i], "--fn"))) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user