mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-14 05:33:59 -04:00
csi: implement "CSI ? m"
This commit is contained in:
parent
a2db3cdd5b
commit
dc7642f2a5
3 changed files with 42 additions and 1 deletions
|
|
@ -44,6 +44,10 @@
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
* VT: implemented `XTQMODKEYS` query (`CSI ? Pp m`).
|
||||||
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
### Deprecated
|
### Deprecated
|
||||||
### Removed
|
### Removed
|
||||||
|
|
|
||||||
35
csi.c
35
csi.c
|
|
@ -1398,6 +1398,39 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case 'm': {
|
||||||
|
int resource = vt_param_get(term, 0, 0);
|
||||||
|
int value = -1;
|
||||||
|
|
||||||
|
switch (resource) {
|
||||||
|
case 0: /* modifyKeyboard */
|
||||||
|
value = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: /* modifyCursorKeys */
|
||||||
|
case 2: /* modifyFunctionKeys */
|
||||||
|
value = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4: /* modifyOtherKeys */
|
||||||
|
value = term->modify_other_keys_2 ? 2 : 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
LOG_WARN("XTQMODKEYS: invalid resource '%d' in '%s'",
|
||||||
|
resource, csi_as_string(term, final, -1));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value >= 0) {
|
||||||
|
char reply[16] = {0};
|
||||||
|
int chars = snprintf(reply, sizeof(reply),
|
||||||
|
"\033[>%d;%dm", resource, value);
|
||||||
|
term_to_slave(term, reply, chars);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 'u': {
|
case 'u': {
|
||||||
enum kitty_kbd_flags flags =
|
enum kitty_kbd_flags flags =
|
||||||
term->grid->kitty_kbd.flags[term->grid->kitty_kbd.idx];
|
term->grid->kitty_kbd.flags[term->grid->kitty_kbd.idx];
|
||||||
|
|
@ -1489,7 +1522,7 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
LOG_WARN("invalid resource %d in %s",
|
LOG_WARN("XTMODKEYS: invalid resource '%d' in '%s'",
|
||||||
resource, csi_as_string(term, final, -1));
|
resource, csi_as_string(term, final, -1));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -565,6 +565,10 @@ manipulation sequences. The generic format is:
|
||||||
: xterm
|
: xterm
|
||||||
: Set level of the _modifyOtherKeys_ property to _Pv_. Note that foot
|
: Set level of the _modifyOtherKeys_ property to _Pv_. Note that foot
|
||||||
only supports level 1 and 2, where level 1 is the default setting.
|
only supports level 1 and 2, where level 1 is the default setting.
|
||||||
|
| \\E[ ? _Pp_ m
|
||||||
|
: XTQMODKEYS
|
||||||
|
: xterm
|
||||||
|
: Query key modifier options
|
||||||
| \\E[ > 4 n
|
| \\E[ > 4 n
|
||||||
: <unnamed>
|
: <unnamed>
|
||||||
: xterm
|
: xterm
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue