Add command line switches to disable pointer and touch

I am using a wireless keyboard with an integrated touchpad.
I do neither need nor want the touchpad, but I am unable to
attach the keyboard only (without the pointer device) to my
computer. I therefore find it convenient to simply disable
that device when starting `cage`. The switch for disabling
touch input is there for consistency. Maybe it comes in handy
to someone else at some point.

I don't have any previous experience with wayland, so there is
a chance that I simply missed some environment variable that
accomplishes the same. In this case, this commit would be
unnecessary.

The command line switches `P` and `T` are quite ad-hoc. I probably
would have gone for `--disable-pointer` and `--disable-touch` if
long command line switches had already been in use. If someone has
a better idea than `P` and `T`, please suggest it.
This commit is contained in:
Frank Seifferth 2021-02-28 14:06:17 +01:00
parent efaf76e9ab
commit 4934225759
4 changed files with 24 additions and 4 deletions

12
cage.c
View file

@ -191,9 +191,11 @@ usage(FILE *file, const char *cage)
" -h\t Display this help message\n"
" -m extend Extend the display across all connected outputs (default)\n"
" -m last Use only the last connected output\n"
" -P\t Disable pointer input\n"
" -r\t Rotate the output 90 degrees clockwise, specify up to three times\n"
" -s\t Allow VT switching\n"
" -v\t Show the version number and exit\n"
" -T\t Disable touch input\n"
"\n"
" Use -- when you want to pass arguments to APPLICATION\n",
cage);
@ -204,9 +206,9 @@ 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, "dDhm:rsvPT")) != -1) {
#else
while ((c = getopt(argc, argv, "dhm:rsv")) != -1) {
while ((c = getopt(argc, argv, "dhm:rsvPT")) != -1) {
#endif
switch (c) {
case 'd':
@ -236,6 +238,12 @@ parse_args(struct cg_server *server, int argc, char *argv[])
case 's':
server->allow_vt_switch = true;
break;
case 'P':
server->disable_pointer = true;
break;
case 'T':
server->disable_touch = true;
break;
case 'v':
fprintf(stdout, "Cage version " CAGE_VERSION "\n");
exit(0);