aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Fix smcup/rmcup toggle bugJoe Wilm2017-08-11
| | | | Resolves #634.
* Rename some variables for clarityJoe Wilm2017-08-11
|
* Fix warnings on macOSJoe Wilm2017-08-11
|
* Fix BCE issues affecting vimJoe Wilm2017-08-11
| | | | | | | | Now pass more vttests as well. Resolves #123 cc #660 - screenshot there exhibited the problem, but issue is not entirely about the background problem.
* Read more from ptyJoe Wilm2017-07-31
| | | | | | | | | | Resolves an issue with partial draws where programs like vim would send data, but only part of it would be drawn. The logic for escaping when a write is pending has been removed in favor of limiting bytes processed during a pty_read call. The value of MAX_READ may not be ideal.
* Support background and foreground color escape codes (#662)Tuomas Siipola2017-07-28
|
* Don't panic when setting cursor visibility fails (#683)Tuomas Siipola2017-07-28
| | | | Currently setting cursor visibility always fails on Wayland. It shouldn't be a critical error on any platform.
* add support for X input method (#691)Ted Yin2017-07-24
|
* Implement and use ansi attribute CancelBold (#659)ftilde2017-07-20
|
* Update to latest Glutin/winit (#671)Joe Wilm2017-07-20
| | | | | | | | | | | * Update to latest Glutin/winit This *finally* gets us off the fork of Glutin we've been on for so long and will unblock a number of other items. Functionality should be the same as before. The update forced our hand on a compiler update. It's no longer feasible to pin on an old version. From now on, we require latest stable.
* Canonicalize the config watching path (#672)Joe Wilm2017-07-19
| | | | This should resolve an issue where config behind a symlink was not being properly reloaded when edited.
* Fix typo in rustdoc (#654)lukaslueg2017-07-08
|
* Add a long option for the command flag (-e) (#655)polyfloyd2017-07-08
|
* Revert "Reduce InstanceData footprint"Joe Wilm2017-07-03
| | | | | | | This reverts commit 3cdba291242cc1c1684bff7f8242262b1cdeb582. On some systems, the target commit actually caused a massive performance issue rather than fixing one.
* Reduce InstanceData footprintJoe Wilm2017-07-01
| | | | | | | | | | | | | | | | | 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.
* Add dim color supportJake Merdich2017-06-23
| | | | | | | | | | | 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.
* Update tests for new Selection APIJoe Wilm2017-06-19
|
* Fix unnecessary redraws with active selectionJoe Wilm2017-06-19
| | | | | | | Could be cleaned up a bit if there was a wrapper for Option<Selection> that contained this flag. Also fixes a few compiler warnings.
* Implement semantic and line selection draggingJoe Wilm2017-06-19
| | | | | | Unlike the regular selection that is by cell, these selection modes highlight either semantic groupings or entire lines while the mouse is dragged.
* Fix bright inverse colors (#621)DarkDefender2017-06-18
| | | Fixes #611.
* Implement 'backwards tab'Aaron Hill2017-06-18
| | | | | This escape sequence isn't officially documented anywhere, but is supported by xterm and gnome-vte.
* Use cursor cell template when handling 'CSI X' escape sequenceAaron Hill2017-06-14
| | | | | | | This ensures that the cleared cells are set to the proper background color, which is the main usage of this escape sequence. Fixes #612
* Add support for Beam, Underline cursorsJoe Wilm2017-06-11
| | | | | | | | | | | | | | | 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.
* Fix selection when padding is presentTuomas Siipola2017-06-06
|
* avoid named field shorthandMartin Algesten2017-06-01
|
* somewhat DRYer code for font loadingMartin Algesten2017-05-31
|
* Implement FocusIn/FocusOut reports (#589)Aaron Hill2017-05-29
| | | | Implements sending FocusIn/FocusOut events, as defined at http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-FocusIn_FocusOut
* Add config file as cli option (#576)Niklas Claesson2017-05-28
| | | | | | | | | | | | | | * 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.
* Find and set $WINDOWID to X11 window ID (#586)ns2017-05-27
|
* Remove incorrect close (#552)Niklas Claesson2017-05-27
| | | | | | 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.
* Add support for running commands on key press (#566)Dominik Miedziński2017-05-25
| | | | | | | | | | | | | | | | | 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.
* Minor cleanup, style fix, dead code removalJoe Wilm2017-05-24
|
* Add DrainResult enumAaron Hill2017-05-24
|
* Fix typoAaron Hill2017-05-24
|
* Ensure that the event loop thread cleanly exits on shutdownAaron Hill2017-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix #573. Ensure we don't write 0 bytes to ptyMartin Algesten2017-05-24
| | | | | | | 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.
* Use debug! instead of println!Dominik Miedziński2017-05-12
|
* Fix viewport_size.height calculationN-0062017-05-10
| | | Closes #556
* Fix Device Status reportsDominik Miedziński2017-05-08
|
* Add support for Query Device StatusDominik Miedziński2017-05-07
|
* Fix bug in SizeInfo::contains_pointJoe Wilm2017-05-06
| | | | Accidentally broke it when refactoring.
* Work around ICEJoe Wilm2017-05-06
|
* Add window padding optionTuomas Siipola2017-05-06
| | | | | | | | | | | Padding can be configured by using the `padding` field in the config file, like so: padding: x: 2 y: 2 which would result in a 2px padding within each side of the window.
* Fix glyph offsets in cellJoe Wilm2017-05-06
| | | | | | We previously had a hard-coded value for aligning glyphs within cells. The font descent is now used, and the offset should be correct by default.
* Fix bug with tab renderingJoe Wilm2017-05-01
| | | | | | | Closes #494. Resolves #529. Resolves #512. Resolves #493.
* Combine FontOffset and GlyphOffset structs into Delta structAaron Williamson2017-05-01
| | | | | | The two structs are very similar, so there is no reason for them to be separate. Instead combine them into a single Delta struct, which can be used to shift a point in a two dimensional plane.
* Add glyph offset option to user configurationAaron Williamson2017-05-01
| | | | | Add the ability to move glyphs within their cells on a global basis via an option in the configuration file.
* Remove unnecessary size argument to metrics functionAaron Williamson2017-05-01
| | | | | The changes to metric consumption rendered the size argument unnecessary, remove it.
* Improve freetype metric usageAaron Williamson2017-05-01
| | | | | | The font metrics function was using freetype metrics in an ineffective way, improve the use of those metrics and remove the now unnecessary separate default values for font offset in linux.
* Support setting _NET_WM_PID in X11 environmentsJoe Wilm2017-05-01
| | | | | | | | | | | | | | Support is added for setting _NET_WM_PID automatically. This is to support scripting of the window environment. For example, this makes it possible to script opening a window with same CWD: 1. Retrieve the current window 2. (new) get PID of window 3. Check if it's Alacritty, find first child (presumably a shell), and get the child's cwd. 4. Spawn new instance of terminal with cwd. Unaddressed in this commit is how this will coexist on a Wayland system.