aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-07-07Minor cleanup in config.rsconfig-improvementsJoe Wilm
Adds logging at default verbosity when writing new config file.
2017-07-07Move config loading logic to config.rsJoe Wilm
Config loading was complexity that shouldn't be in main.
2017-07-07Reduce info! logging noiseJoe Wilm
2017-07-03Revert "Reduce InstanceData footprint"Joe Wilm
This reverts commit 3cdba291242cc1c1684bff7f8242262b1cdeb582. On some systems, the target commit actually caused a massive performance issue rather than fixing one.
2017-07-01Document binding keys to a `command` (#647)Ollie Ford
* Refactor `key_bindings` documentation * Document binding keys to a `command` The ability for `key_bindings` to trigger a `command` was added in #566. This commit documents their use, and gives a simple example. Resolves #646.
2017-07-01Reduce InstanceData footprintJoe Wilm
The InstanceData type in the rendering subsystem was previously 16 floats which occupied a total of 64 bytes per instance. This meant that for every character or background cell drawn, 64 bytes were sent to the GPU. In the case of a 400x100 cell grid, a total of 2.5MB would be sent. This patch reduces InstanceData's size to 26 bytes, a 60% improvement! Using the above example for comparison, a worst case of 1MB would be transferred. The motivation for this patch comes from macOS. Once the terminal grid would reach a certain size, performance experienced a sharp and dramatic drop (render times would go from ~3ms to ~16ms). I don't want to speculate too much on the underlying issue, but suffice it to say that this patch alleviates the problem in my testing.
2017-06-30Add Solus instructionsDimas Cyriaco
2017-06-27Use foreign-types from crates.ioJoe Wilm
We had previously vendored a very early version of this package before it was ever published.
2017-06-27Update READMEJoe Wilm
Closes #636 Closes #592
2017-06-23Add dim color supportJake Merdich
Add support for the VTE 'dim' flag, with additional support for custom-themed dim colors. If no color is specified in the config, it will default to 2/3 the previous (not a spec, but the value other terminals seem to use). The actual dimming behavior brings bright colors to normal and regular colors to the new dim ones. Custom RGB values are not changed, nor are non-named indexed colors.
2017-06-20Update vte dependencyJoe Wilm
cc #68
2017-06-20remove $SNAP variable inside snap environmentChris MacNaughton
2017-06-20Adding snapcraft.yamlChris MacNaughton
Snapcraft makes Linux packaging very simple in a cross-distro way. This adds the snapcraft.yaml file to setup a snap of alacritty.
2017-06-19Update tests for new Selection APIJoe Wilm
2017-06-19Fix unnecessary redraws with active selectionJoe Wilm
Could be cleaned up a bit if there was a wrapper for Option<Selection> that contained this flag. Also fixes a few compiler warnings.
2017-06-19Implement semantic and line selection draggingJoe Wilm
Unlike the regular selection that is by cell, these selection modes highlight either semantic groupings or entire lines while the mouse is dragged.
2017-06-18Add dependency to FreeBSD-specific setupSiva Mahadevan
Fixes problem I had with issue #609, should be better documented.
2017-06-18Fix bright inverse colors (#621)DarkDefender
Fixes #611.
2017-06-18Implement 'backwards tab'Aaron Hill
This escape sequence isn't officially documented anywhere, but is supported by xterm and gnome-vte.
2017-06-14Make Travis test alacritty on nightly Rust, but allow failuresAaron Hill
This allows us to notice and report any regressions that have occured on nightly, without requiring tests to pass on nightly for the entire build to succeed. The `fast_finish` flag will cause Travis to mark the build as successful if the only builds still running are allowed to fail (e.g. `nightly`). This allows us to manually inspect builds (or implement some form of notifications) to see if any nightly regressions have occured, without slowing down the overall build time.
2017-06-14Use cursor cell template when handling 'CSI X' escape sequenceAaron Hill
This ensures that the cleared cells are set to the proper background color, which is the main usage of this escape sequence. Fixes #612
2017-06-11Add support for Beam, Underline cursorsJoe Wilm
Notable about this implementation is it takes a different approach for managing cursor cells that previously. The terminal Grid is now borrowed *immutably*. Instead of mutating Cells in the Grid, a list is managed within the RenderableCellsIter. The cell at the cursor location is skipped over, and instead cells are popped off a list of cursor cells. It would be good in the future to share some more code between the different cursor style implementations for populating the cursor cells list. Supercedes #349.
2017-06-06changes osx fallback symbol font styleJames A Keene
Previously, the fallback symbol font copied the style of the font from the config. However, the only available style for the fallback symbol font is Normal slant, Normal weight.
2017-06-06macOS use system font fallbackMartin Algesten
2017-06-06Fix selection when padding is presentTuomas Siipola
2017-06-04CI with the oldest known working version of rustNiklas Claesson
2017-06-01avoid named field shorthandMartin Algesten
2017-06-01final core-graphics extensions moved upstreamMartin Algesten
2017-05-31remove code that has been upstreamedMartin Algesten
2017-05-31updated some font depsMartin Algesten
2017-05-31avoid unused warningMartin Algesten
2017-05-31somewhat DRYer code for font loadingMartin Algesten
2017-05-29Implement FocusIn/FocusOut reports (#589)Aaron Hill
Implements sending FocusIn/FocusOut events, as defined at http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-FocusIn_FocusOut
2017-05-28Add config file as cli option (#576)Niklas Claesson
* Parse cli arguments before configuration file Parsing the cli arguments before the configuration file allows `--help` and `--version` to be used even if the configuration file is broken. * Add configuration file to command line arguments This commit adds a new command line flag `--config-file` to override the default configuration file location. If the specified file is unavailable, Alacritty will quit instead of generating a fallback. If the specified file is invalid, i.e. /dev/null, the compiled in defaults will be loaded instead.
2017-05-28Fixes font raster for mono, gray bitmaps (#590)Joe Wilm
As it turns out, FreeType does not always provide glyph data in LCD mode as we requested. We now correctly handle several common modes returned from FreeType including Lcd, Mono, and Gray. Note that we don't check number of grays at this time since it's 1. Almost always 256, according to FreeType docs 2. Not available in the Rust FreeType bindings being used Resolves #515 Resolves #185 Resolves #482
2017-05-27Find and set $WINDOWID to X11 window ID (#586)ns
2017-05-27Fix colors in macOS configJoe Wilm
2017-05-27Fix default color schemeJoe Wilm
Whites were being rendered very dark. Resolves #503.
2017-05-27Add script to apply a tilix colorscheme file. (#524)Trevor Joynson
2017-05-27Add terminfo file supporting true color, italicscac04
2017-05-27Remove incorrect close (#552)Niklas Claesson
Ownership of the slave file descriptor is passed to the process::Stdio structs and will be closed when they are dropped. If the slave fd is closed explicitly then the next fd that is opened during the same scope will get silently closed by the Stdio structs when they are dropped.
2017-05-25Update dependenciesJoe Wilm
2017-05-25Add support for running commands on key press (#566)Dominik Miedziński
Based on option `command` in key binding section in config, e.g. - { key: N, mods: Control|Shift, command: alacritty } # or - { key: N, mods: Control|Shift, command: { program: "alacritty", args: ["-e", "vttest"], }} specified command will be run in the background on key press. Alacritty doesn't wait for its result nor block IO.
2017-05-24Minor cleanup, style fix, dead code removalJoe Wilm
2017-05-24Add DrainResult enumAaron Hill
2017-05-24Fix typoAaron Hill
2017-05-24Ensure that the event loop thread cleanly exits on shutdownAaron Hill
Background: If a shell process exits with children still alive (typically due to the `disown` shell builtin), POLLHUP will not be sent to the master PTY file descriptor. This is due to the fact that the disowned process still has the slave PTY open as its STDIN, STDOUT, and STDERR. If a disowned process never reads or writes from its file descriptors (which is often the case for graphical applications), the event loop will end up blocking on poll()/select() when not handling user input received over the mio channel. When Alacritty shuts down and joins on the event loop thread, there can never be any more input on the mio channel - the main thread is no longer handling user keystrokes from the window. Unless a disowned process happens to access its slave PTY file descriptors, the event loop will never get the chance to deetect that it should exit. This commit extends the `Msg` enum to include an explicit `Shutdown` message, which ensures a clean shutdown (e.g. closing the 'recording' file). This allows the select()/poll() call to remain blocking, instead of needing to periodically check the shutdown state in between timed-out calls. Fixes #339
2017-05-24Fix #573. Ensure we don't write 0 bytes to ptyMartin Algesten
Any action that results in 0 bytes, such as pasting 0 bytes from the clipboard hangs the terminal (`pbcopy </dev/null` followed by ctrl-v), hangs the terminal on both macOS and Linux. This ensures we never send 0 bytes.
2017-05-12Use debug! instead of println!Dominik Miedziński
2017-05-10Add Shift+PageUp and Shift+PageDown to default key bindingsRonan Jouchet