mirror of
https://github.com/cage-kiosk/cage.git
synced 2026-04-08 08:21:12 -04:00
command line flag to auto-map only input to only output
This commit is contained in:
parent
efaf76e9ab
commit
c88aa04cf0
3 changed files with 19 additions and 5 deletions
8
cage.c
8
cage.c
|
|
@ -184,6 +184,7 @@ usage(FILE *file, const char *cage)
|
|||
fprintf(file,
|
||||
"Usage: %s [OPTIONS] [--] APPLICATION\n"
|
||||
"\n"
|
||||
" -a\t Auto-map input device to output (Useful when only one output present)\n"
|
||||
" -d\t Don't draw client side decorations, when possible\n"
|
||||
#ifdef DEBUG
|
||||
" -D\t Turn on damage tracking debugging\n"
|
||||
|
|
@ -204,11 +205,14 @@ parse_args(struct cg_server *server, int argc, char *argv[])
|
|||
{
|
||||
int c;
|
||||
#ifdef DEBUG
|
||||
while ((c = getopt(argc, argv, "dDhm:rsv")) != -1) {
|
||||
while ((c = getopt(argc, argv, "adDhm:rsv")) != -1) {
|
||||
#else
|
||||
while ((c = getopt(argc, argv, "dhm:rsv")) != -1) {
|
||||
while ((c = getopt(argc, argv, "adhm:rsv")) != -1) {
|
||||
#endif
|
||||
switch (c) {
|
||||
case 'a':
|
||||
server->auto_map_output = true;
|
||||
break;
|
||||
case 'd':
|
||||
server->xdg_decoration = true;
|
||||
break;
|
||||
|
|
|
|||
15
seat.c
15
seat.c
|
|
@ -129,12 +129,21 @@ update_capabilities(struct cg_seat *seat)
|
|||
static void
|
||||
map_input_device_to_output(struct cg_seat *seat, struct wlr_input_device *device)
|
||||
{
|
||||
struct cg_output *output;
|
||||
if (!device->output_name) {
|
||||
wlr_log(WLR_INFO, "Input device %s cannot be mapped to an output device\n", device->name);
|
||||
return;
|
||||
if (wl_list_length(&seat->server->outputs) == 1 && seat->server->auto_map_output) {
|
||||
wl_list_for_each (output, &seat->server->outputs, link) {
|
||||
wlr_log(WLR_INFO, "Input device %s does not have an output name, mapping to only output %s\n", device->name,
|
||||
output->wlr_output->name);
|
||||
wlr_cursor_map_input_to_output(seat->cursor, device, output->wlr_output);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
wlr_log(WLR_INFO, "Input device %s cannot be mapped to an output device\n", device->name);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
struct cg_output *output;
|
||||
wl_list_for_each (output, &seat->server->outputs, link) {
|
||||
if (strcmp(device->output_name, output->wlr_output->name) == 0) {
|
||||
wlr_log(WLR_INFO, "Mapping input device %s to output device %s\n", device->name,
|
||||
|
|
|
|||
1
server.h
1
server.h
|
|
@ -45,6 +45,7 @@ struct cg_server {
|
|||
struct wl_listener new_xwayland_surface;
|
||||
#endif
|
||||
|
||||
bool auto_map_output;
|
||||
bool xdg_decoration;
|
||||
bool allow_vt_switch;
|
||||
enum wl_output_transform output_transform;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue