MacOS keymap assumes QWERTY
I use a normal keyboard with the System Settings >> Keyboard layout remapping to the Dvorak layout. Everything with respect to the keymap works great (as far as I can tell) except for Cmd-key combinations. Here's what I'm seeing with --print-events when I type Cmd-v (which should paste, but instead just types 'v'):
glutin event: KeyboardInput(Pressed, 55, Some(LWin), , None)
glutin event: ReceivedCharacter('v')
glutin event: KeyboardInput(Pressed, 47, Some(Period), SUPER, Some("v"))
glutin event: Awakened
glutin event: KeyboardInput(Released, 47, Some(Period), SUPER, None)
glutin event: KeyboardInput(Released, 55, Some(LWin), , None)
Period on the QWERTY keyboard corresponds to "v" in Dvorak, so it seems as though for some reason, with the Cmd-key down, alacritty is getting the raw- not OS-remapped- key events? In the event in question, both Some(Period) and Some("v") are in the event.
An awkward but effective workaround is to use these keybindings:
- { key: I, mods: Command, action: Copy }
- { key: Period, mods: Command, action: Paste }
- { key: X, mods: Command, action: Quit }
Just want to add that Alacritty uses Control-Shift-C and Control-Shift-V for copy and paste out-of-the-box, so you can always just use these keyboard shortcuts instead.
I can confirm that this is happening for me on OSX (10.13.1) using Colemak instead of Qwerty.
I added a custom keybinding to create new windows, as follows:
- { key: N, mods: Command, command: { program: "open", args: ["-n", "/Applications/Alacritty.app"] } }
I thought that this simply wasn't working. Then I hit cmd+k (which is normally cmd+n on a qwerty keyboard), and it popped open a new window.
See https://github.com/tomaka/winit/issues/343 regarding the handling of dead keys which may or may not relate to this issue. The TL;DR is that there's work that need to happen in winit to support this
I can confirm this issue on macOS 10.13.3 using bépo instead of qwerty. Any updates?
I, too, am a DVORAK user on the Mac where the Command-key combinations are being interpreted as the QWERTY key. For completeness in the workaround listed above, I also added bindings for the font size keybindings as I use those frequently. Here is my complete list with the original version above the hack-y workaround.
- { key: V, mods: Command, action: Paste }
- { key: Period, mods: Command, action: Paste }
- { key: C, mods: Command, action: Copy }
- { key: I, mods: Command, action: Copy }
- { key: Q, mods: Command, action: Quit }
- { key: X, mods: Command, action: Quit }
- { key: Equals, mods: Command, action: IncreaseFontSize }
- { key: RBracket, mods: Command, action: IncreaseFontSize }
- { key: Minus, mods: Command, action: DecreaseFontSize }
- { key: Apostrophe, mods: Command, action: DecreaseFontSize }
I can also confirm this is still an issue. Nothing but querty is supported it seems.
For anyone interested: I have added the following for macOS with german (qwertz) keyboard layout
- { key: V, mods: Command, action: Paste }
- { key: C, mods: Command, action: Copy }
- { key: Q, mods: Command, action: Quit }
- { key: W, mods: Command, action: Quit }
- { key: L, mods: Alt, chars: "\x40" }
- { key: Key5, mods: Alt, chars: "\x5b" }
- { key: Key6, mods: Alt, chars: "\x5d" }
- { key: Key7, mods: Alt, chars: "\x7C" }
- { key: Key7, mods: Alt|Shift, chars: "\x5C" }
- { key: Key8, mods: Alt, chars: "\x7b" }
- { key: Key9, mods: Alt, chars: "\x7d" }
- { key: N, mods: Alt, chars: "\x7E" }
- { key: Caret, chars: "\x5e" }
- { key: Equals, chars: "\x60" }
- { key: Equals, mods: Shift, chars: "\xb4" }
- { key: N, mods: Command, command: { program: "open", args: ["-nb", "io.alacritty"] } }
- { key: Equals, mods: Command, action: IncreaseFontSize }
- { key: Minus, mods: Command, action: DecreaseFontSize }
The following PR attempts to fix this upstream: https://github.com/tomaka/winit/pull/755.
If anyone is willing to test that this resolves that problem, the help would be much appreciated.
Without digging into winit more than that PR itself: I'm not sure. What I can say is with the current tomaka:master I see Period is registered as pressed twice, the second time with a ReceivedCharacter('v') (still):
WindowEvent { window_id: WindowId(Id(140586266945872)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 47, state: Pressed, virtual_keycode: Some(Period), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: true } } } }
WindowEvent { window_id: WindowId(Id(140586266945872)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 47, state: Pressed, virtual_keycode: Some(Period), modifiers:
ModifiersState { shift: false, ctrl: false, alt: false, logo: true } } } }
WindowEvent { window_id: WindowId(Id(140586266945872)), event: ReceivedCharacter('v') }
WindowEvent { window_id: WindowId(Id(140586266945872)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 47, state: Released, virtual_keycode: Some(Period), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: true } } } }
However with the current Toqozz:master I see the Period press once, then a Press and Release for V:
WindowEvent { window_id: WindowId(Id(140404366310336)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 47, state: Pressed, virtual_keycode: Some(Period), modifiers:
ModifiersState { shift: false, ctrl: false, alt: false, logo: true } } } }
WindowEvent { window_id: WindowId(Id(140404366310336)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 47, state: Pressed, virtual_keycode: Some(V), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: true } } } }
WindowEvent { window_id: WindowId(Id(140404366310336)), event: ReceivedCharacter('v') }
WindowEvent { window_id: WindowId(Id(140404366310336)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 47, state: Released, virtual_keycode: Some(V), modifiers: Mod
ifiersState { shift: false, ctrl: false, alt: false, logo: true } } } }
@guildencrantz Is that running the example in the winit repo?
Also which key are you actually pressing, with which keyboard layout (so what would there be at the same position with qwerty)?
Is there never any Release event for Period?
I'm also a Dvorak user on MacOS; I'm having the same symptoms. Additionally, I'm a Neovim user, and seeing very strange behavior there. When in normal mode, Ctrl-n in the Dvorak layout is interpreted as Ctrl-l. (The terminal itself is interpreting it as Ctrl-l, actually. It will clear the screen when not in vim.)
One key over, (k in qwerty, t in dvorak) is interpreted correctly when used with Ctrl. Presumably, the terminal must be grabbing certain keystrokes from the raw input, and not the system keymap?
Just to distinguish this a bit, I'm talking about the CTRL key here, not the CMD key. Can someone else confirm that they're also having the same problem?
@aengelas I'm also having similar problems with Swedish Colemak on macos, ie ctrl+[key] uses the qwerty bind in Alacritty. However, this behavior is not constant. It usually starts acting up after a medium period of use (sometimes more, sometimes less). I have not tried to troubleshoot as I as severely confused.
@guildencrantz Do you still have the code of that PR on your machine or did you delete it already?
It seems like the PR is not available anymore and I'd like to take a look at what the code itself did.
It looks like GitHub still has the latest commit cached here: https://github.com/tomaka/winit/commit/251d472f6dea0c0aeaab96e6a1ab0609b358ac19.
So that could help out.
Cmd-V works in Alacritty 0.3.0, but Ctrl-C (#1917) still doesn't work with alternative keyboard layouts. Should we reopen this issue?
@l2dy Ctrl+C does not send a signal to the shell for you?
@l2dy Ctrl+C does not send a signal to the shell for you?
No, it just types c.
On macos or another platform?
On macos or another platform?
On macOS 10.14.4, with the Workman keyboard layout. I've built Alacritty v0.3.0 from source.
Interesting. I don't appear to have this issue with the Dvorak layout on MacOS 10.14.4. I did not compile it myself though.
I'm using dvorak on macos myself and it works great. Could you share the output you get from alacritty --print-events when hitting the ctrl+c combo @l2dy?
I'm using dvorak on macos myself and it works great. Could you share the output you get from
alacritty --print-eventswhen hitting the ctrl+c combo @l2dy?
[2019-04-09 17:39] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140476031282592)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 62, state: Pressed, virtual_keycode: Some(RControl), modifiers: ModifiersState { shift: false, ctrl: true, alt: false, logo: false } } } }
[2019-04-09 17:39] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140476031282592)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 9, state: Pressed, virtual_keycode: Some(C), modifiers: ModifiersState { shift: false, ctrl: true, alt: false, logo: false } } } }
[2019-04-09 17:39] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140476031282592)), event: ReceivedCharacter('c') }
[2019-04-09 17:39] [INFO] glutin event: Awakened
[2019-04-09 17:39] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140476031282592)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 9, state: Released, virtual_keycode: Some(C), modifiers: ModifiersState { shift: false, ctrl: true, alt: false, logo: false } } } }
[2019-04-09 17:39] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140476031282592)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 62, state: Released, virtual_keycode: Some(RControl), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: false } } } }
I'm using Dvorak an MacOS 10.14.4. And the Ctrl+w doesn't work. It inputs , only.
[2019-04-13 22:19] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140716775974640)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 59, state: Pressed, virtual_keycode: Some(LControl), modifiers: ModifiersState { shift: false, ctrl: true, alt: false, logo: false } } } }
[2019-04-13 22:19] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140716775974640)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 43, state: Pressed, virtual_keycode: Some(W), modifiers: ModifiersState { shift: false, ctrl: true, alt: false, logo: false } } } }
[2019-04-13 22:19] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140716775974640)), event: ReceivedCharacter(',') }
[2019-04-13 22:19] [INFO] glutin event: Awakened
[2019-04-13 22:19] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140716775974640)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 43, state: Released, virtual_keycode: Some(W), modifiers: ModifiersState { shift: false, ctrl: true, alt: false, logo: false } } } }
[2019-04-13 22:19] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140716775974640)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 59, state: Released, virtual_keycode: Some(LControl), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: false } } } }
Ctrl+C works for me. These do not work with Ctrl+ : W V Z S . They return respectively: , . / ;
I can not reproduce this, using the dvorak keymap myself.
Are you guys having some language-specific keyboard shortcuts?
If anyone is willing to compile, I'd be interested in the output when the following patch is applied:
diff --git a/src/input.rs b/src/input.rs
index 9619ffa..3228801 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -136,7 +136,7 @@ impl Default for MouseBinding {
}
}
-impl<T: Eq> Binding<T> {
+impl<T: Eq + std::fmt::Debug> Binding<T> {
#[inline]
fn is_triggered_by(
&self,
@@ -145,6 +145,22 @@ impl<T: Eq> Binding<T> {
input: &T,
relaxed: bool,
) -> bool {
+ if self.trigger == *input {
+ println!("INPUT BINIDNG: {:?}-{:?}-{:?}-{:?}", input, mode, mods, relaxed);
+ println!("MATCH BINIDNG: {:?}-{:?}-{:?}-{:?}", self.trigger, self.mode, self.mods, relaxed);
+
+ // Check input first since bindings are stored in one big list. This is
+ // the most likely item to fail so prioritizing it here allows more
+ // checks to be short circuited.
+ let result = self.trigger == *input
+ && self.mode_matches(mode)
+ && self.not_mode_matches(mode)
+ && self.mods_match(mods, relaxed);
+
+ println!("MATCHES? -> {}", result);
+ return result;
+ }
+
// Check input first since bindings are stored in one big list. This is
// the most likely item to fail so prioritizing it here allows more
// checks to be short circuited.
I'd imagine that would probably shed some light really quickly.
I can not reproduce this, using the dvorak keymap myself.
Are you guys having some language-specific keyboard shortcuts?
If anyone is willing to compile, I'd be interested in the output when the following patch is applied:
Ctrl-C:
INPUT BINIDNG: C-SHOW_CURSOR | BRACKETED_PASTE | LINE_WRAP-ModifiersState { shift: false, ctrl: true, alt: false, logo: false }-false
MATCH BINIDNG: C-NONE-ModifiersState { shift: false, ctrl: false, alt: false, logo: true }-false
MATCHES? -> false
@l2dy Hmm, my change was mainly for @tiev actually who had a key binding that did not work properly.
In your case, Ctrl+C isn't sending any signals. Can you confirm that this actually works with the qwerty layout?
@l2dy Hmm, my change was mainly for @tiev actually who had a key binding that did not work properly.
In your case, Ctrl+C isn't sending any signals. Can you confirm that this actually works with the qwerty layout?
Yes, with QWERTY it works.
This is still open and I think I can maybe help you reproduce this @chrisduerr.
I am using an alternative keyboard layout (MTGAP) on macOS Catalina (but I had the problem on Mojave as well) for which I created a custom keyboard layout file with ukelele and installed it. I then found that only in alacritty, my Ctrl+C does not work either. It's on the o spot of a qwerty layout. So then I played around and checked the built-in alternative layouts, Colemak and Dvorak, but for the built-in ones, Ctrl+C and the other Ctrl- combos work just fine.
But: If you create a custom keyboard layout with ukelele by using "Create new layout" and choose, say, Dvorak as base layout, leave it as-is, install this layout (via ukelele or just by copying it to /Library/Keyboard Layouts/; you might need to log out and back in after that) and use it, Ctrl+C and the others don't work anymore. I don't think that's an ukelele issue though: basically all other applications that I tried, including other terminal emulators (namely, kitty, iterm2) successfully react to Ctrl+C coming from that layout.
Thinking about it, it probably doesn't even need to be an alternative layout as base, but might even happen with unmodified qwerty as custom layout there.
I hope that gives you something else to try. If you feel like that's a separate issue, I can ofc open another one.
This is still problematic on my layout too, for xample alt + v where v is in the QWERTY location should be !, but it does nothing
Not only that key, but these keys when pressed with Ctrl also are not correct:
/=s-wvz
which are corresponding keys on QWERTY:
[];',./
On mac using the keymap ABC - AZERTY I can't insert { and }, I tried with another keymap (French - PC) same thing, I think it must be related to this issue.
Btw I'm on https://github.com/alacritty/alacritty/commit/5cd13f8c474c71a922e5d8f2b78857badf054f6f
Regarding the alt-escape sequences vs. special characters typed with alt+... (which is described in the linked issues): I fear there's currently no perfect workaround.
alt_send_esc: false does allow one to type special characters, but disallows one to send alt-escape sequences, which are required by some applications (mc, for instance).
alt_send_esc: true (default behavior) sends the escape sequences when necessary, but makes it impossible to type the special characters which require alt.
Edit: I had a brief look at the implementation; it seems like the escaped characters ('@', '|', '', ... for a german layout) are being written by event_loop.rs::EventLoop::pty_write(), but are never read by event_loop.rs::EventLoop::pty_read() (i.e. the latter is never called).
Sometimes read is called with '\b' instead, whenever a special character is typed after a "normal" character.
The asynchronous implementation makes it nasty to debug through (briefly tried to use a sync channel instead, but to no avail)... I'll dig deeper into the writing logic, but for now all I see is a simple write on a file handle of /dev/ptmx.
I believe the same issue appear in Linux/X11, ctrl = behaves like ctrl + (dvorak + requires shift).
I can also confirm this on Linux/Wayland. I need to set the keybinding as follows to get the Control+/ binding to work as I would expect on the german keyboard.
- { key: Key7, mods: Shift, mode: Vi, action: SearchForward }
But inside the actual vim editor, Shift+7 automatically works as /.
I can also confirm this on Linux/Wayland.
No, this is not true for Linux/Wayland and what you're experiencing is a different problem.
I'm also experiencing this issue in Mac OS and the workman layout.
I noticed if I continue to push ctrl-c I can send SIGTERM.
I cannot use Alacritty on macOS with a French keyboard right now unless I figure out the keybind to set (I have no clue how to find the correct chars value).
Right now I can't input any of the following:
{: Alt+(}: Alt+)[: Alt+Shift+(]: Alt+Shift+)|: Alt+Shift+L\: Alt+Shift+/
Edit: I tested with |(0x7C). I can get it work, but not with the normal Shift+Alt modifier
- Mapping to the normal "Alt+Shift+L" doesn't work.
- { key: L, mods: Alt|Shift, chars: "\x7C" }
- With the following I get the
|as expected only with Alt, but it's not the normal key binding
- { key: L, mods: Alt, chars: "\x7C" }
@MorgothSauron have you looked at https://github.com/alacritty/alacritty/wiki/Keyboard-mappings#french-fr_fr? Some users have edited the wiki with key-mappings for macOS and French already it seems.
@nixpulvis I added those keybindings to my config but none work.
To test I created a new configuration file (~/.config/alacritty/alacritty.yaml) to contain only the keybinding config for fr_FR on macOS.
I started alacritty with the --print-events to try to see what is happening:
- Pressing Alt+Shift appears correctly (
modifiers: SHIFT | ALT). - Pressing Alt+Shift+L, which should send
|does not work.. From the log it seems that it does get "|", but it's not printed in the terminal window
[2020-10-13 18:50:53.005444000] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { t: 935529477096 }, requested_resume: None })
[2020-10-13 18:50:53.006265000] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140270557664688)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 37, state: Pressed, virtual_keycode: Some(Backslash), modifiers: SHIFT | ALT }, is_synthetic: false } }
[2020-10-13 18:50:53.006361000] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140270557664688)), event: ReceivedCharacter('|') }
[2020-10-13 18:50:53.006422000] [INFO] glutin event: MainEventsCleared
[2020-10-13 18:50:53.006469000] [INFO] glutin event: RedrawEventsCleared
[2020-10-13 18:50:53.007325000] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { t: 935782712480 }, requested_resume: None })
[2020-10-13 18:50:53.007475000] [INFO] glutin event: UserEvent(TerminalEvent(MouseCursorDirty))
[2020-10-13 18:50:53.007558000] [INFO] glutin event: UserEvent(TerminalEvent(Bell))
[2020-10-13 18:50:53.007606000] [INFO] glutin event: UserEvent(TerminalEvent(Wakeup))
Same thing with Alt+Key5 which should send {.
[2020-10-13 18:50:54.188964000] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140270557664688)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 23, state: Pressed, virtual_keycode: Some(LBracket), modifiers: ALT }, is_synthetic: false } }
[2020-10-13 18:50:54.189086000] [INFO] glutin event: WindowEvent { window_id: WindowId(Id(140270557664688)), event: ReceivedCharacter('{') }
[2020-10-13 18:50:54.189168000] [INFO] glutin event: MainEventsCleared
[2020-10-13 18:50:54.189221000] [INFO] glutin event: RedrawEventsCleared
I tested few other key binding and it's the same. I see the event and the ReceivedCharacter matches what is set in the configuration file, but nothing is printed in the terminal window.
Let me know if this could be kept in this issue or if a new one needs to be created.
I am having the same issue as @MorgothSauron. Did find any solution?
Reporting another layout-related issue: with an AZERTY keyboard with the default key bindings, in vi mode, / (which requires pressing Shift+:) will do a backward search instead of a forward search. And there is not way to do a forward search with the default bindings (? is Shift+,).
So it's just my guess but it looks like when in vi mode, Alacritty might be looking at the state of the Shift key to figure out the direction of the search, instead of looking at the keysym.
i have the same issue with https://github.com/soywod/dvorak-alt-intl
on macOS with the last version of Alacritty
the Ctrl key seems to not work at all
- MacOS 10.15 on a MacBook Pro
- AZERTY keyboard (French)
- Case 1 : test with out of the box Alacritty with no custom config
- Case 2 : test with the addition of the MacOS / FR-fr mod here
-> (){}|] are rendered but not [ (the later is the combination Alt+Shift+( )
The behaviour is strange since it seems to trigger something, since when typing a letter just after the [ is displayed correctly with the letter.
Here is a screen if it helps :

Similar issue here with
- macOS Monterey 12.5.1, on a MacBook Pro
- Alacritty 0.10.1 (2844606), installed with Brew
- bépo keyboard layout
- Typematrix 2030 hardware keyboard
- Karabiner-Elements, set to mimic Linux/Windows keyboard shortcuts
- Command and Control keys inverted in keyboard system preferences
Action performed
Maintain the alt-gr (right alt) key and push successively all keys of the second keyboard row, which free of modifier key generates the following string $"«»()@+-/*=%
Expected result
The following string should be written –—<>[]^±−÷×≠‰.
Actual result
Altgr+:
$: nothing. Note that for some reasonalt-gr+$doesn’t produce the expected–even in other application: that’s a bug but not one limited to Alacritty.":—, as expected«: this actually replace the current prompt with the last validated command»: this put back the just replaced current line typed so far((:[, yes, the(as to be type twice): nothing@: nothing+-/*=%: are correctly mapping to±−÷×≠‰.
Workaround
As one could infer from the previous section, alt-gr+( is actually mapping to a chaining dead-key. So alt-gr+(» will output >, when its expected direct mapalt-gr+» won’t work.
Corresponding alacritty --print-events logs
2.620058291s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722606877545 }, requested_resume: None })
[2.621487500s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 61, state: Pressed, virtual_keycode: Some(RAlt), modifiers: ALT }, is_synthetic: false } }
[2.621612791s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: ModifiersChanged(ALT) }
[2.621645625s] [INFO ] [alacritty] glutin event: MainEventsCleared
[2.621672166s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[2.621994541s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722653543905 }, requested_resume: None })
[2.622061916s] [INFO ] [alacritty] glutin event: MainEventsCleared
[2.622090833s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[5.049213375s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722653553600 }, requested_resume: None })
[5.050645791s] [INFO ] [alacritty] glutin event: MainEventsCleared
[5.050702208s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[6.499104000s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722711840383 }, requested_resume: None })
[6.500614416s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 50, state: Pressed, virtual_keycode: Some(Key4), modifiers: ALT }, is_synthetic: false } }
[6.500742666s] [INFO ] [alacritty] glutin event: MainEventsCleared
[6.500776250s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[6.611863666s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722746642247 }, requested_resume: None })
[6.612600583s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 50, state: Released, virtual_keycode: Some(Key4), modifiers: ALT }, is_synthetic: false } }
[6.612659541s] [INFO ] [alacritty] glutin event: MainEventsCleared
[6.612684666s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[7.235167333s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722749327762 }, requested_resume: None })
[7.247696541s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 18, state: Pressed, virtual_keycode: Some(Apostrophe), modifiers: ALT }, is_synthetic: false } }
[7.247743041s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: ReceivedCharacter('—') }
[7.247760541s] [INFO ] [alacritty] glutin event: MainEventsCleared
[7.247769708s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[7.250146833s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722764626188 }, requested_resume: None })
[7.250180041s] [INFO ] [alacritty] glutin event: UserEvent(Event { window_id: Some(WindowId(Id(5786323344))), payload: Terminal(MouseCursorDirty) })
[7.250192708s] [INFO ] [alacritty] glutin event: UserEvent(Event { window_id: Some(WindowId(Id(5786323344))), payload: Terminal(Wakeup) })
[7.250202625s] [INFO ] [alacritty] glutin event: MainEventsCleared
[7.250210041s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[7.378170625s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722765054306 }, requested_resume: None })
[7.378918166s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 18, state: Released, virtual_keycode: Some(Apostrophe), modifiers: ALT }, is_synthetic: false } }
[7.379002250s] [INFO ] [alacritty] glutin event: MainEventsCleared
[7.379029000s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[7.990684666s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722767720065 }, requested_resume: None })
[7.991847833s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 19, state: Pressed, virtual_keycode: Some(Comma), modifiers: ALT }, is_synthetic: false } }
[7.991930041s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: ReceivedCharacter('<') }
[7.991955083s] [INFO ] [alacritty] glutin event: MainEventsCleared
[7.991973083s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[7.993690125s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722782471020 }, requested_resume: None })
[7.993941458s] [INFO ] [alacritty] glutin event: UserEvent(Event { window_id: Some(WindowId(Id(5786323344))), payload: Terminal(MouseCursorDirty) })
[7.993975708s] [INFO ] [alacritty] glutin event: UserEvent(Event { window_id: Some(WindowId(Id(5786323344))), payload: Terminal(Wakeup) })
[7.993997875s] [INFO ] [alacritty] glutin event: MainEventsCleared
[7.994015583s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[8.035659541s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722782660889 }, requested_resume: None })
[8.036000375s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 19, state: Released, virtual_keycode: Some(Comma), modifiers: ALT }, is_synthetic: false } }
[8.036032000s] [INFO ] [alacritty] glutin event: MainEventsCleared
[8.036045208s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[8.059157375s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722783488127 }, requested_resume: None })
[8.060055875s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 19, state: Pressed, virtual_keycode: Some(Comma), modifiers: ALT }, is_synthetic: false } }
[8.060142791s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: ReceivedCharacter('<') }
[8.060215583s] [INFO ] [alacritty] glutin event: MainEventsCleared
[8.060240791s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[8.068736791s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722784272255 }, requested_resume: None })
[8.068832958s] [INFO ] [alacritty] glutin event: UserEvent(Event { window_id: Some(WindowId(Id(5786323344))), payload: Terminal(MouseCursorDirty) })
[8.068853458s] [INFO ] [alacritty] glutin event: MainEventsCleared
[8.068865916s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[8.121344625s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722784275851 }, requested_resume: None })
[8.121686041s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 19, state: Released, virtual_keycode: Some(Comma), modifiers: ALT }, is_synthetic: false } }
[8.121732541s] [INFO ] [alacritty] glutin event: MainEventsCleared
[8.121749333s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[8.857981333s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722785545085 }, requested_resume: None })
[8.859100291s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 20, state: Pressed, virtual_keycode: Some(Period), modifiers: ALT }, is_synthetic: false } }
[8.859172500s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: ReceivedCharacter('>') }
[8.859200541s] [INFO ] [alacritty] glutin event: MainEventsCleared
[8.859223166s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[8.861121000s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722803285363 }, requested_resume: None })
[8.861449833s] [INFO ] [alacritty] glutin event: UserEvent(Event { window_id: Some(WindowId(Id(5786323344))), payload: Terminal(MouseCursorDirty) })
[8.861480958s] [INFO ] [alacritty] glutin event: MainEventsCleared
[8.861503458s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[8.862723208s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722803299486 }, requested_resume: None })
[8.862811666s] [INFO ] [alacritty] glutin event: UserEvent(Event { window_id: Some(WindowId(Id(5786323344))), payload: Terminal(Wakeup) })
[8.862839666s] [INFO ] [alacritty] glutin event: MainEventsCleared
[8.862859666s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[8.930618000s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722803508877 }, requested_resume: None })
[8.931447541s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 20, state: Released, virtual_keycode: Some(Period), modifiers: ALT }, is_synthetic: false } }
[8.931503875s] [INFO ] [alacritty] glutin event: MainEventsCleared
[8.931527208s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[9.473893958s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722804980098 }, requested_resume: None })
[9.474822291s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 21, state: Pressed, virtual_keycode: Some(LBracket), modifiers: ALT }, is_synthetic: false } }
[9.474919875s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: ReceivedCharacter('[') }
[9.474950083s] [INFO ] [alacritty] glutin event: MainEventsCleared
[9.474973125s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[9.476530500s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722818059182 }, requested_resume: None })
[9.476653166s] [INFO ] [alacritty] glutin event: UserEvent(Event { window_id: Some(WindowId(Id(5786323344))), payload: Terminal(MouseCursorDirty) })
[9.476715708s] [INFO ] [alacritty] glutin event: MainEventsCleared
[9.476735458s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[9.572763875s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722818064869 }, requested_resume: None })
[9.573345416s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 21, state: Released, virtual_keycode: Some(LBracket), modifiers: ALT }, is_synthetic: false } }
[9.573387375s] [INFO ] [alacritty] glutin event: MainEventsCleared
[9.573408416s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
[9.906253166s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 722820385116 }, requested_resume: None })
[9.907387250s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: KeyboardInput { device_id: DeviceId(DeviceId), input: KeyboardInput { scancode: 23, state: Pressed, virtual_keycode: Some(RBracket), modifiers: ALT }, is_synthetic: false } }
[9.907447833s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(Id(5786323344)), event: ReceivedCharacter(']') }