A cross-platform, OpenGL terminal emulator.

Overview

Alacritty Logo

Alacritty - A fast, cross-platform, OpenGL terminal emulator

Alacritty - A fast, cross-platform, OpenGL terminal emulator

About

Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.

The software is considered to be at a beta level of readiness; there are a few missing features and bugs to be fixed, but it is already used by many as a daily driver.

Precompiled binaries are available from the GitHub releases page.

Features

You can find an overview over the features available in Alacritty here.

Further information

Installation

Alacritty can be installed by using various package managers on Linux, BSD, macOS and Windows.

Prebuilt binaries for macOS and Windows can also be downloaded from the GitHub releases page.

For everyone else, the detailed instructions to install Alacritty can be found here.

Since Alacritty uses OpenGL to render the terminal content on all platforms, it is currently not possible to run it without support for at least OpenGL 3.3.

Configuration

You can find the default configuration file with documentation for all available fields on the GitHub releases page for each release.

Alacritty doesn't create the config file for you, but it looks for one in the following locations:

  1. $XDG_CONFIG_HOME/alacritty/alacritty.yml
  2. $XDG_CONFIG_HOME/alacritty.yml
  3. $HOME/.config/alacritty/alacritty.yml
  4. $HOME/.alacritty.yml

Windows

On Windows, the config file should be located at:

%APPDATA%\alacritty\alacritty.yml

Contributing

A guideline about contributing to Alacritty can be found in the CONTRIBUTING.md file.

FAQ

Is it really the fastest terminal emulator?

Benchmarking terminal emulators is complicated. Alacritty uses vtebench to quantify terminal emulator throughput and manages to consistently score better than the competition using it. If you have found an example where this is not the case, please report a bug.

Other aspects like latency or framerate and frame consistency are more difficult to quantify. Some terminal emulators also intentionally slow down to save resources, which might be preferred by some users.

If you have doubts about Alacritty's performance or usability, the best way to quantify terminal emulators is always to test them with your specific usecases.

Why isn't feature X implemented?

Alacritty has many great features, but not every feature from every other terminal. This could be for a number of reasons, but sometimes it's just not a good fit for Alacritty. This means you won't find things like tabs or splits (which are best left to a window manager or terminal multiplexer) nor niceties like a GUI config editor.

IRC

Alacritty discussions can be found in #alacritty on freenode.

License

Alacritty is released under the Apache License, Version 2.0.

Comments
  • Glutin 0.18 upgrade

    Glutin 0.18 upgrade

    Fixes #1756 Fixes #1525 Fixes #1509 Fixes #1428 Fixes #1414 Fixes #1382 Fixes #1358 Fixes #1345 Fixes #1257 Fixes #1146 Fixes #964 Fixes #952 Fixes #210 Fixes #71

    This compiles and after reviewing looks sane enough. However I am running into an issue where the text output of the terminal only shows up on the lower left quadrant of the whole window.

    I figured I could go ahead and open this up as a work in progress to get some feedback and suggestions for what could have gone wrong.

    opened by mkeeler 226
  • Update to winit/glutin EventLoop 2.0

    Update to winit/glutin EventLoop 2.0

    This takes the latest glutin master to port Alacritty to the EventLoop 2.0 rework.

    This changes a big part of the event loop handling by pushing the event loop in a separate thread from the renderer and running both in parallel.

    TODO:

    • [x] Resize issues (https://github.com/jwilm/alacritty/pull/2438#issuecomment-505518232)
    • [x] run_return support for macOS (https://github.com/rust-windowing/winit/issues/1005)
    • [x] Resizing extremely slow
    • [x] Font size change not updating pty size
    • [x] Message bar does not update PTY size properly
    • [x] Incorrect window dimensions when moving Alacritty between different DPI monitors
    • [x] Font size not updating when moving Alacritty between different DPI monitors
    • [x] Clean up code / resolve remaining TODOs
    • [x] Incorrect startup DPI on X11 (https://github.com/rust-windowing/winit/issues/998) -> ~~:zap: Still broken when spawning a floating window in i3~~ -> Workaround implemented
    • [x] Make sure before merging all the linked issues have change log entries
    • [x] Clear errors on message bar reload

    Fixes #2796. Fixes #2694. Fixes #2643. Fixes #2625. Fixes #2618. Fixes #2601. Fixes #2564. Fixes #2456. Fixes #2438. Fixes #2334. Fixes #2254. Fixes #2217. Fixes #1789. Fixes #1750. Fixes #1125.

    C - waiting on author 
    opened by chrisduerr 200
  • Support multiple windows

    Support multiple windows

    I use a window manager instead of tmux. With other terminal emulators when I want a new terminal instance, I simply open a new window. As far as I can tell, the only way to accomplish this with Alacritty is to open a new instance of the application. This is inferior for three reasons:

    1. Load times when opening a new instance of Alacritty are subpar. For a program that prides itself on being the fastest, opening new terminals should be no exception. (Loading a new instance of Alacritty lasts about 1 second for me vs instant when opening a new window in iTerm.)

    2. On macOS opening multiple instances of Alacritty fills up the Dock and Application Switcher.

    3. Currently, such behavior must be implemented manually by the user.

    From what I can tell from other issues, using window managers as a replacement for tmux is within Alacritty's scope. Even when using tmux, it can be desirable to open a second tmux instance for an unrelated session without detaching from the current session. I think multiple windows should be supported natively by Alacritty.

    enhancement help wanted 
    opened by net 152
  • Implementation of scrollback

    Implementation of scrollback

    The Grid<T> is now a view into a region (I called it the 'active region') of a VecDeque. When new lines are added, they are pushed onto the back of the queue, and once the scrollback buffer is considered 'full', then old lines are popped off the front of the queue. This seems to work rather well since, unlike a Vec, elements don't need to be reshuffled around very often.

    Of course, as discussed in #124 there are a few things that need to be fixed before I'd consider this 'ready':

    • [x] configurable max scrollback length
    • [ ] write new tests
    • [x] fix existing ref tests
    • [ ] measure performance impact (it seems fine but some numbers would be more reassuring)
    • [x] fix out of bounds errors on resize
    opened by neon64 124
  • Support GPUs without OpenGL 3.3+ drivers

    Support GPUs without OpenGL 3.3+ drivers

    I've been looking for an extremely fast terminal emulator for many years. xterm has unfixed rendering bugs and is slower than molasses. I don't like urxvt's lack of memory management. st uses more memory than xterm (yep!).

    Just saw Alacritty on HN and was determined to try it out.

    What are your plans for older hardware? I'm currently using a couple of laptops from 2007-2008: a ThinkPad T43 and a ThinkPad T60. Unfortunately the Rust nightly you're currently using is broken on i686 (#126) so I can't test Alacritty on the T43, but it reported the error in the title on my T60 (which has a slightly better GPU, FWIW).

    T43 specs:

    OpenGL vendor string: X.Org R300 Project
    OpenGL renderer string: Gallium 0.4 on ATI RV370
    OpenGL version string: 2.1 Mesa 11.0.2
    OpenGL shading language version string: 1.20
    
    01:00.0 VGA compatible controller: AMD/ATI [Advanced Micro Devices, Inc.] RV370/M22 [Mobility Radeon X300]
    

    T60 specs:

    Extended renderer info (GLX_MESA_query_renderer):
        Vendor: X.Org R300 Project (0x1002)
        Device: ATI RV515 (0x7145)
        Version: 11.2.2
        Accelerated: yes
        Video memory: 128MB
    
    01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV515/M54 [Mobility Radeon X1400]
    

    Yep, I realize these are kind of the "oh wow" of GPU land :) but I'm genuinely wondering what the best approach would be to support GPUs like these - I've been pondering making my own terminal emulator for a little while (as well as a 2D engine too, actually), but have absolutely no knowledge of OpenGL, Vulkan, etc.

    "It would be impossible" is completely understandable; "it would require a nontrivial architecture redesign" also wouldn't be too surprising.

    enhancement help wanted S - render 
    opened by i336 118
  • Tabs support in the terminal

    Tabs support in the terminal

    For bug reports, the following information can help speed up the process. Please describe the bug that you have found and what you would expect to happen instead.

    System

    OS: Linux/BSD/macOS/Windows Version: alacritty --version output Linux/BSD: X11/Wayland, DE or Compositor and WM Windows: WinPTY/ConPTY (see alacritty -v output)

    Logs

    Crashes: STDERR, STDOUT Font/Terminal size: alacritty -vv Keyboard and bindings: alacritty --print-events

    F - wontfix 
    opened by narain1 115
  • no method named `set_urgent` found for type `window::Window` in the current scope

    no method named `set_urgent` found for type `window::Window` in the current scope

    Which operating system does the issue occur on?

    • NetBSD 8.99.48 NetBSD 8.99.48 (GENERIC) amd64
    • Using X11 from base

    While running cargo build in the checkout at commit 84aca672964e29b5b4503b7da7bc34fc395f08ab, I get this error:

       Compiling copypasta v0.6.0 (/home/ng0/code/re-src/rust_crates/alacritty/copypasta)
    error[E0599]: no method named `set_urgent` found for type `window::Window` in the current scope
       --> alacritty_terminal/src/display.rs:493:29
        |
    493 |                 self.window.set_urgent(is_urgent);
        |                             ^^^^^^^^^^
        | 
       ::: alacritty_terminal/src/window.rs:59:1
        |
    59  | pub struct Window {
        | ----------------- method `set_urgent` not found for this
        |
        = help: items from traits can only be used if the trait is implemented and in scope
        = note: the following trait defines an item `set_urgent`, perhaps you need to implement it:
                candidate #1: `winit::os::unix::WindowExt`
    
    error: aborting due to previous error
    
    For more information about this error, try `rustc --explain E0599`.
    error: Could not compile `alacritty_terminal`.
    
    To learn more, run the command again with --verbose.
    
    C - waiting on author B - build failure H - bsd 
    opened by ghost 84
  • Track and report damage to compatible compositors

    Track and report damage to compatible compositors

    Implement damage tracking and reporting.

    This allows compositors to only process damaged (that is, updated) regions of our window buffer, which for larger window sizes (think 4k) should significantly reduce compositing workload under compositors that support/honor it, which is good for performance and battery life.

    On Wayland, clients are expected to report always report correct damage, so this makes us a good (or at least, better) citizen there. It can also aid remote desktop (waypipe, RDP, VNC, ...) and other types of screencopy by having damage bubble up correctly.

    Damage tracking has been implemented in a somewhat naïve fashion, but I believe it is a fair start.

    Note that this currently depends on a fork of glutin where support has been added.

    Fixes #3186.

    C - waiting on author 
    opened by kennylevinsen 75
  • Significant startup time

    Significant startup time

    Linux, X11. Using eb231b3e70b87875df4bdd1974d5e94704024d70, release build (the AUR one).

    Starting up alacritty takes a significant amount of time. Simply doing time alacritty -e false reports about 390ms. Other terminal emulators, such as urxvt or termite start much faster, at about 160ms for both. It's also not just a matter of this simple benchmark, in normal usage it also feels slower to start.

    enhancement B - performance 
    opened by occivink 70
  • Implement scrollback

    Implement scrollback

    Since you got so much pushback on the scrollback support, and mentioned possibly implementing it, I'm opening this as a tracking issue.

    (ps: I also really want scrollback w/o tmux).

    enhancement S - terminal 
    opened by theduke 69
  • Redraw randomly hangs until a keypress

    Redraw randomly hangs until a keypress

    Using Alacritty (commit 6916537858d12e02478d618339d1b9f0e73a677a) on Ubuntu 16.04 with X11.

    It is better described with the following screencast. Here I'm repeatedly opening and closing tig, so the output should be the same in each iteration. The screen often stays in a partially redrawed state (marked by mouse cursor movement). Then it finishes redraw correctly when I'm pressing a key.

    screencast

    B - bug P - high S - I/O and PTY DS - X11 
    opened by valff 68
  • Use sRGB color space for NSWindow on macOS

    Use sRGB color space for NSWindow on macOS

    This is the same change as https://github.com/kovidgoyal/kitty/commit/368bc91eed446daf9c32dfbce8aec718ebb1201d (also relevant: https://github.com/kovidgoyal/kitty/issues/4686) I confirmed that now the rendered color is exactly the same as Kitty.

    I think it makes sense to make the default color space sRGB since other popular terminals are using sRGB by default including Kitty and iTerm. Also showing the same color as web browser, which is using sRGB, is beneficial for several apps such as nvim-colorizer.lua while doing web development.

    Closes https://github.com/alacritty/alacritty/issues/4939

    Verification on MacBook

    I tested on MacBook Pro 14 inch, 2021 with pastel

    • master (2bd26fbeb0c51cd8a98ae31d58ea105d1274387a)

      • We see that digital color meter (sRGB) is "out of range"
      • master
    • this PR

      • We see the color is different from master and digital color meter (sRGB) is showing the "correct" value, which was the same value as the one shown on Kitty / iTerm (tested with the same pastel command) and Apple Safari (tested with <div style="background-color: #398810;">X</div>)
      • fixed

    Concerns

    Although I am personally happy with this patch since I am familiar with sRGB more than other color space (had no idea about P3 initially), this will be "breaking change" and some of macOS users will be unhappy due to changed colors for their colorscheme although changed one should be more consistent with other terminals. Actually it looks like Kitty made this configurable via macos_colorspace option so that people can still choose other color space such as P3 via configuration option.

    Before merging this patch, we might need more discussions / considerations. (cf. https://github.com/kovidgoyal/kitty/issues/4686)

    opened by naruaway 0
  • Wayland launch failure on NVIDIA 3070 via optimus

    Wayland launch failure on NVIDIA 3070 via optimus

    Linux: 6.0.8 kernel Fedora 38 rawhide Deskto: KDE Plasma (wayland)

    #launched on nvidia 3070 via optimus env switch
    #launching on igu amd 680m 6800hs has no issue
     __NV_PRIME_RENDER_OFFLOAD=1  /home/diego/.cargo/bin/alacritty -vv
    
    #confirmed alacritty is bound to nvidia gpu
    (base) [diego@MiWiFi-RB06-srv ~]$ nvidia-smi
    Tue Jan  3 12:28:15 2023       
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 525.60.11    Driver Version: 525.60.11    CUDA Version: 12.0     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
    | N/A   48C    P8    12W /  N/A |      5MiB /  8192MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
                                                                                   
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |    0   N/A  N/A     46750      G   ...iego/.cargo/bin/alacritty        4MiB |
    
    [0.000001743s] [INFO ] [alacritty] Welcome to Alacritty
    [0.000067847s] [INFO ] [alacritty] Version 0.11.0
    [0.000088776s] [INFO ] [alacritty] Running on Wayland
    [0.000234178s] [INFO ] [alacritty_config_derive] No config file found; using default
    [0.000570638s] [DEBUG] [alacritty] Loading "monospace" font
    [0.007372359s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regular, load_flags: TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.008381909s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Bold, load_flags: TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.009362214s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regular, load_flags: NO_BITMAP | TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.010330316s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Bold, load_flags: NO_BITMAP | TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.011090949s] [DEBUG] [alacritty] Estimated scaling factor: 1
    [0.011099205s] [DEBUG] [alacritty] Estimated window size: None
    [0.011102321s] [DEBUG] [alacritty] Estimated cell size: 9 x 21
    [0.011964615s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regular, load_flags: TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.046511418s] [INFO ] [alacritty] Running on NVIDIA GeForce RTX 3070 Ti Laptop GPU/PCIe/SSE2
    [0.046530384s] [INFO ] [alacritty] Using OpenGL ES 2.0 renderer
    [0.046586318s] [INFO ] [alacritty] Using dual source blending
    [0.047482075s] [INFO ] [alacritty] Display scale factor: 1
    [0.047492324s] [DEBUG] [alacritty] Filling glyph cache with common glyphs
    [0.049876026s] [INFO ] [alacritty] Cell size: 9 x 21
    [0.049889441s] [INFO ] [alacritty] Padding: 0 x 0
    [0.049892577s] [INFO ] [alacritty] Width: 800, Height: 600
    [0.050028070s] [INFO ] [alacritty] PTY dimensions: 28 x 88
    [0.051589483s] [INFO ] [alacritty] Initialisation complete
    [destroyed object]: error 7: importing the supplied dmabufs failed
    thread 'main' panicked at 'failed to dispatch wayland event queue: Os { code: 71, kind: Uncategorized, message: "Protocol error" }', /home/diego/.cargo/registry/src/github.com-1ecc6299db9ec823/alacritty-0.11.0/src/event.rs:1438:30
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    
    opened by diegomontoya 2
  • Extending alacritty terminal over two monitors

    Extending alacritty terminal over two monitors

    System

    OS: Ubuntu 20.04 Version: alacritty 0.11.0 (8dbaa0bb) Linux/BSD: gnome shell

    I have been able to span alacritty terminal (v 0.10.1) over two monitors using the config file : window:

      # Window dimensions (changes require restart)
      dimensions:
        columns: 274
        lines: 126
                                                                                                                                                                                                                                                                                  
      # Window position (changes require restart)
      position:
        x: 0
        y: 0
    
      # Window decorations
      decorations: none
    

    This is not possible anymore with the newest release. Can this be fixed?

    Logs

    alacritty -vv

    Created log file at "/tmp/Alacritty-71569.log" [0.000001697s] [INFO ] [alacritty] Welcome to Alacritty [0.000104586s] [INFO ] [alacritty] Version 0.11.0 (8dbaa0bb) [0.000132015s] [INFO ] [alacritty] Running on X11 [0.001332102s] [INFO ] [alacritty] Configuration files loaded from: "/home/aatish/.config/alacritty/alacritty.yml" [0.003945800s] [DEBUG] [alacritty] Loading "Source Code Pro" font [0.022063609s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regular, load_flags: TARGET_LIGHT, render_mode: "Normal", lcd_filter: 1 } [0.026005632s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Bold, load_flags: TARGET_LIGHT, render_mode: "Normal", lcd_filter: 1 } [0.029302422s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Italic, load_flags: TARGET_LIGHT, render_mode: "Normal", lcd_filter: 1 } [0.032308939s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Bold Italic, load_flags: TARGET_LIGHT, render_mode: "Normal", lcd_filter: 1 } [0.033544357s] [DEBUG] [alacritty] Estimated scaling factor: 2 [0.033565283s] [DEBUG] [alacritty] Estimated window size: Some(PhysicalSize { width: 3836, height: 3906 }) [0.033581164s] [DEBUG] [alacritty] Estimated cell size: 14 x 31 [0.118235157s] [INFO ] [alacritty] Running on Quadro GV100/PCIe/SSE2 [0.118286810s] [INFO ] [alacritty] Using OpenGL 3.3 renderer [0.120133658s] [INFO ] [alacritty] Display scale factor: 2 [0.120159579s] [DEBUG] [alacritty] Filling glyph cache with common glyphs [0.124427152s] [INFO ] [alacritty] Cell size: 14 x 31 [0.124452307s] [INFO ] [alacritty] Padding: 0 x 0 [0.124461538s] [INFO ] [alacritty] Width: 3836, Height: 3906 [0.142254784s] [INFO ] [alacritty] PTY dimensions: 126 x 274 [0.146125841s] [INFO ] [alacritty] Initialisation complete [0.225511510s] [DEBUG] [alacritty_terminal] Term::resize dimensions unchanged [0.225558148s] [INFO ] [alacritty] Padding: 0 x 0 [0.225573511s] [INFO ] [alacritty] Width: 3836, Height: 3906 [0.293181580s] [DEBUG] [alacritty_terminal] New num_cols is 274 and num_lines is 67 [0.300103594s] [INFO ] [alacritty] Padding: 0 x 0 [0.300133413s] [INFO ] [alacritty] Width: 3840, Height: 2106 [2.984823147s] [INFO ] [alacritty] Goodbye Deleted log file at "/tmp/Alacritty-71569.log"

    opened by kaatish 2
  • Got some black stripes when I use nvim

    Got some black stripes when I use nvim

    image

    Got some black strip when I use nvim(colorscheme tokyo-night) in alacritty. It doesn't always comes out. I don't know what is the reason it comes out. The reason why I think it is a alacritty issue is that I use konsole sometimes. But I never see the same issue in konsole.

    System

    OS: Ubuntu 22 Version: 0.11.0 Linux/BSD: X11, KDE

    Logs

    Crashes: No Crashes Font/Terminal size: alacritty -vv

     alacritty -vv                                                Jan-01 14:29
    Created log file at "/tmp/Alacritty-1317105.log"
    [0.000002086s] [INFO ] [alacritty] Welcome to Alacritty
    [0.000169965s] [INFO ] [alacritty] Version 0.11.0
    [0.000217550s] [INFO ] [alacritty] Running on X11
    [0.000880818s] [INFO ] [alacritty] Configuration files loaded from:
                                         "/home/lizhe/.config/alacritty/alacritty.
    yml"
    [0.003179909s] [DEBUG] [alacritty] Loading "OriFont2" font
    [0.012311737s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regu
    lar, load_flags: TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.017168879s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regu
    lar, load_flags: TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.020810215s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regu
    lar, load_flags: NO_BITMAP | TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.025668379s] [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regu
    lar, load_flags: NO_BITMAP | TARGET_LIGHT, render_mode: "Lcd", lcd_filter: 1 }
    [0.026998052s] [DEBUG] [alacritty] Estimated scaling factor: 2
    [0.027005886s] [DEBUG] [alacritty] Estimated window size: Some(PhysicalSize { 
    width: 2080, height: 1350 })
    [0.027010071s] [DEBUG] [alacritty] Estimated cell size: 26 x 54
    [0.066193849s] [INFO ] [alacritty] Running on Mesa Intel(R) Graphics (ADL-S GT
    1)
    [0.066215547s] [INFO ] [alacritty] Using OpenGL 3.3 renderer
    [0.071360402s] [INFO ] [alacritty] Display scale factor: 2
    [0.071379640s] [DEBUG] [alacritty] Filling glyph cache with common glyphs
    [0.079429843s] [INFO ] [alacritty] Cell size: 26 x 54
    [0.079462406s] [INFO ] [alacritty] Padding: 0 x 0
    [0.079465986s] [INFO ] [alacritty] Width: 2080, Height: 1350
    [0.089620005s] [INFO ] [alacritty] PTY dimensions: 25 x 80
    [0.092282382s] [INFO ] [alacritty] Initialisation complete
    [0.097322651s] [DEBUG] [alacritty_terminal] Term::resize dimensions unchanged
    [0.100186592s] [INFO ] [alacritty] Padding: 0 x 0
    [0.100200474s] [INFO ] [alacritty] Width: 2080, Height: 1350
    [4.038781840s] [INFO ] [alacritty] Goodbye
    Deleted log file at "/tmp/Alacritty-1317105.log"
    

    Keyboard and bindings: alacritty --print-events Too long too show it. I think not related to this with my issue here

    opened by woshichuanqilz 5
  • Switch to TOML for configuration file

    Switch to TOML for configuration file

    I'm quite honestly tired of looking at YAML files with broken indentation. While YAML is an awful format even for experienced users, clearly it's completely impossible for inexperienced ones to grasp its concept. And the documentation of our configuration file with everything commented out by default probably doesn't help.

    Since as far as I know all previous issues with TOML have been fixed and escape sequences can be easily specified in TOML strings now, I think it would make sense to switch to TOML as our default format.

    In a transitory period we could probably get away with just loading existing YAML files and writing them out as TOML, to allow for backward compatibility. This will probably produce somewhat messy TOML files, but I can't imagine an auto-generated TOML file would be much worse than a YAML file.

    The only major drawbacks I see is that this is a rather big change that will no doubt annoy a bunch of people and some more advanced features of YAML (like anchors) are not supported in TOML. But nobody really needs anchors and I kinda like annoying people.

    @kchibisov You proposed this a while ago on IRC, do you think this is a bad idea?

    See https://github.com/alacritty/alacritty/issues/1217 for prior discussions.

    opened by chrisduerr 1
  • Cannot use ctrl + / in alacritty on Windows

    Cannot use ctrl + / in alacritty on Windows

    Pressing Ctrl + / does nothing.

    For whatever it's worth: Pressing Ctrl + v pastes whatever is in the clipboard.

    So i can't bind C-_ for commenting/uncommenting in neovim.

    System

    OS: Windows 11 Version: alacritty 0.11.0 (d23330a) Shell: PowerShell 7.3.1

    Logs

    Crashes: STDERR, STDOUT Font/Terminal size: alacritty -vv Keyboard and bindings: alacritty --print-events

    [37.859271800s] [INFO ] [alacritty] glutin event: MainEventsCleared
    [37.859429400s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
    [37.978542200s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 209698.4448825s }, requested_resume: None })
    [37.978888300s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(WindowId(2099080)), event: KeyboardInput { device_id: DeviceId(DeviceId(0)), input: KeyboardInput { scancode: 53, state: Released, virtual_keycode: Some(Slash), modifiers: CTRL }, is_synthetic: false } }
    [37.979271300s] [INFO ] [alacritty] glutin event: MainEventsCleared
    [37.979413400s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
    [38.234473100s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 209698.5649091s }, requested_resume: None })
    [38.234748400s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(WindowId(2099080)), event: KeyboardInput { device_id: DeviceId(DeviceId(0)), input: KeyboardInput { scancode: 53, state: Pressed, virtual_keycode: Some(Slash), modifiers: CTRL }, is_synthetic: false } }
    [38.235074700s] [INFO ] [alacritty] glutin event: MainEventsCleared
    [38.235285500s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
    [38.347000700s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 209698.8207637s }, requested_resume: None })
    [38.347350500s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(WindowId(2099080)), event: KeyboardInput { device_id: DeviceId(DeviceId(0)), input: KeyboardInput { scancode: 53, state: Released, virtual_keycode: Some(Slash), modifiers: CTRL }, is_synthetic: false } }
    [38.347761500s] [INFO ] [alacritty] glutin event: MainEventsCleared
    [38.347943900s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
    [38.611652900s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 209698.9334393s }, requested_resume: None })
    [39.394845700s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 209699.9011342s }, requested_resume: None })
    [39.395189000s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(WindowId(2099080)), event: KeyboardInput { device_id: DeviceId(DeviceId(0)), input: KeyboardInput { scancode: 53, state: Released, virtual_keycode: Some(Slash), modifiers: CTRL }, is_synthetic: false } }
    [39.395459400s] [INFO ] [alacritty] glutin event: MainEventsCleared
    [39.395608200s] [INFO ] [alacritty] glutin event: RedrawEventsCleared
    [39.409893600s] [INFO ] [alacritty] glutin event: NewEvents(WaitCancelled { start: Instant { t: 209699.9810826s }, requested_resume: None })
    [39.410080900s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(WindowId(2099080)), event: ModifiersChanged((empty)) }
    [39.410257600s] [INFO ] [alacritty] glutin event: WindowEvent { window_id: WindowId(WindowId(2099080)), event: KeyboardInput { device_id: DeviceId(DeviceId(0)), input: KeyboardInput { scancode: 29, state: Released, virtual_keycode: Some(LControl), modifiers: (empty) }, is_synthetic: false } }
    
    opened by airtonix 1
Releases(v0.11.0)
Owner
Alacritty
Alacritty
Cross-platform tool to update DNS such as Gandi.net with your dynamic IP address

GDU | Generic DNS Update A cross-platform tool to update DNS zonefiles (such as Gandi.net) when you have a dynamic public IP address. It's a DynDNS or

Damien Lecan 10 Jan 20, 2022
Distributed compute platform implemented in Rust, and powered by Apache Arrow.

Ballista: Distributed Compute Platform Overview Ballista is a distributed compute platform primarily implemented in Rust, powered by Apache Arrow. It

Ballista 2.3k Jan 3, 2023
A new kind of terminal

notty - not a typewriter notty is a virtual terminal like xterm, gnome-vte, sh, or rxvt. Unlike these programs, notty is not intended to emulate a DEC

Saoirse Shipwreckt 2.2k Jan 6, 2023
A terminal IRC client

tiny - Yet another terminal IRC client tiny is an IRC client written in Rust. Features Clean UI: consecutive join/part/quit messages are shown in a si

Ömer Sinan Ağacan 812 Dec 20, 2022
A (self hosted) pastebin for easily sharing text right from the terminal

termpad termpad allows you to easily host a pastebin server for saving and viewing text right from the terminal, or the browser. Client Usage Assuming

Spyros Roum 28 Aug 29, 2022
Alacritty - A fast, cross-platform, OpenGL terminal emulator

Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.

Alacritty 43.8k Dec 31, 2022
Rust-and-opengl-lessons - Collection of example code for learning OpenGL in Rust

rust-and-opengl-lessons Project requires Rust 1.31 Collection of example code for learning OpenGL in Rust 00 - Setup 01 - Window 02 - OpenGL Context 0

Nerijus Arlauskas 348 Dec 11, 2022
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust

Wez's Terminal A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust User facing docs and guide a

Wez Furlong 6.7k Jan 2, 2023
Cross-platform, cross-browser, cross-search-engine duckduckgo-like bangs

localbang Cross-platform, cross-browser, cross-search-engine duckduckgo-like bangs What are "bangs"?? Bangs are a way to define where to search inside

Jakob Kruse 7 Nov 23, 2022
An opinionated, monolithic template for Bevy with cross-platform CI/CD, native + WASM launchers, and managed cross-platform deployment.

??️ Bevy Shell - Template An opinionated, monolithic template for Bevy with cross-platform CI/CD, native + WASM launchers, and managed cross-platform

Kurbos 218 Dec 30, 2022
Full featured Cross-platform GameBoy emulator by Rust. Forever boys!.

Gameboy Full featured Cross-platform GameBoy emulator. Forever boys!. You can start a game with the following command, here with a built-in game "Boxe

Mohanson 1.2k Jan 2, 2023
A cross-platform sequencer that internally uses a Game Boy emulator to synthesize the sound

chiptrack chiptrack is a cross-platform sequencer that internally uses a Game Boy emulator to synthesize the sound. It uses: SixtyFPS for the UI. RBoy

Jocelyn Turcotte 26 Dec 7, 2022
Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion 1 Oct 19, 2021
An OpenGL function pointer loader for Rust

gl-rs Overview This repository contains the necessary building blocks for OpenGL wrapper libraries. For more information on each crate, see their resp

Brendan Zabarauskas 621 Dec 17, 2022
Safe OpenGL wrapper for the Rust language.

glium Note to current and future Glium users: Glium is no longer actively developed by its original author. That said, PRs are still welcome and maint

null 3.1k Jan 1, 2023
Text Renderer written in Rust using HarfBuzz for shaping, FreeType for rasterization and OpenGL for rendering.

Provok Text Renderer written in Rust using HarfBuzz for shaping, FreeType for rasterization and OpenGL for rendering. Input Provok is fed with a JSON

Ossama Hjaji 67 Dec 10, 2022
A vector graphics renderer using OpenGL with a Rust & C API.

bufro A vector graphics renderer using OpenGL with a Rust & C API. A Rust example can be found in examples/quickstart.rs (using glutin). A C example c

Aspect 9 Dec 15, 2022
My own personal code editor built with Rust + OpenGL

Glyph This is my personal code editor that I am building for fun and to get more familiar with OpenGL. Glyph currently supports Vim keybinds, syntax h

Zack Radisic 83 Dec 23, 2022
A low-level library for OpenGL context creation, written in pure Rust.

glutin - OpenGL, UTilities and INput A low-level library for OpenGL context creation, written in pure Rust. [dependencies] glutin = "0.28.0" Documenta

Rust Windowing 1.8k Jan 5, 2023
Rust-like syntax for OpenGL Shading Language

Rust-like syntax for GLSL glassful translates a small subset of Rust to OpenGL Shading Language. Besides one's personal preferences regarding Rust-lik

Keegan McAllister 158 Sep 22, 2022