@@ -4357,7 +4357,7 @@ static void load_default_config_values(Ghandles * g)
43574357}
43584358
43594359// parse string describing key sequence like Ctrl-Alt-c
4360- static void parse_key_sequence (const char * seq , int * mask , KeySym * key )
4360+ static void parse_key_sequence (const char * seq , int * mask , KeySym * key , char * vmname )
43614361{
43624362 const char * seqp = seq ;
43634363 char * name ;
@@ -4381,6 +4381,15 @@ static void parse_key_sequence(const char *seq, int *mask, KeySym * key)
43814381 if (seq == NULL )
43824382 return ;
43834383
4384+ // Option to disable hotkeys. Good for dom0 with dedicated GUIVMs or untrusted VMs
4385+ if ((strcasecmp (seq , "disable" ) == 0 ) || (strcasecmp (seq , "none" ) == 0 )) {
4386+ * key = NoSymbol ;
4387+ fprintf (stderr ,
4388+ "Warning: Disabling copy or paste hotkeys for %s\n" ,
4389+ vmname );
4390+ return ;
4391+ }
4392+
43844393 * mask = 0 ;
43854394 do {
43864395 found_modifier = 0 ;
@@ -4397,8 +4406,9 @@ static void parse_key_sequence(const char *seq, int *mask, KeySym * key)
43974406 * key = XStringToKeysym (seqp );
43984407 if (* key == NoSymbol ) {
43994408 fprintf (stderr ,
4400- "Warning: key sequence (%s) is invalid (will be disabled)\n" ,
4401- seq );
4409+ "Error: key sequence (%s) set for %s is invalid\n" ,
4410+ seq , vmname );
4411+ exit (1 );
44024412 }
44034413}
44044414
@@ -4409,12 +4419,12 @@ static void parse_vm_config(Ghandles * g, config_setting_t * group)
44094419 if ((setting =
44104420 config_setting_get_member (group , "secure_copy_sequence" ))) {
44114421 parse_key_sequence (config_setting_get_string (setting ),
4412- & g -> copy_seq_mask , & g -> copy_seq_key );
4422+ & g -> copy_seq_mask , & g -> copy_seq_key , ( char * ) & g -> vmname );
44134423 }
44144424 if ((setting =
44154425 config_setting_get_member (group , "secure_paste_sequence" ))) {
44164426 parse_key_sequence (config_setting_get_string (setting ),
4417- & g -> paste_seq_mask , & g -> paste_seq_key );
4427+ & g -> paste_seq_mask , & g -> paste_seq_key , ( char * ) & g -> vmname );
44184428 }
44194429
44204430 if ((setting =
0 commit comments