summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)Author
2017-02-27Update cell to cursor template when adding a tab.Anders Rasmussen
2017-02-25Change cursor colors config to use text and cursorJoe Wilm
This changes the cursor color config to use the `text` and `cursor` properties instead of the current `foreground` and `background` properties. The latter names stop making sense when dealing with cursors like a vertical bar or underscore. In the new system, the block, underscore, or vertical bar would always take the color of `cursor`, and the text would take the color of `text` when using a block, or keep its normal color when using the underscore or vertical bar. A warning is now emitted on startup when the old form of cursor color config is used. This will be a hard error in the future.
2017-02-22hide mouse cursor mac osAnders Rasmussen
2017-02-22Lazily reset `start_time` in VisualBell's `completed` methodMark Andrus Roberts
Fixes #416. Here's what I think is happening: at short `duration`s, the VisualBell's [`completed` check](https://github.com/jwilm/alacritty/blob/3ce6e1e4b2924b0d432cbb3e62b4bbef88dd38ff/src/term/mod.rs#L377) is returning `true` before we've actually had a chance to draw the "normal" background color. I thought about driving this condition off of whether or not `intensity` returns 0.0, but we may still miss a draw, I think. Perhaps the best way to tackle this is to let `completed` lazily reset the VisualBell's `start_time` (something @jwilm asked about when this feature originally landed), and to only return `true` when the VisualBell's `start_time` is `None`. This should effectively delay the final draw until after the VisualBell completes.
2017-02-22Document hide cursor when typing behaviourTuomas Siipola
2017-02-22Fix cursor visibility when window lost focusTuomas Siipola
2017-02-22Set cursor only when its visibility changesTuomas Siipola
2017-02-22Add hide cursor when typing optionTuomas Siipola
2017-02-17use an empty cell as template when resizing gridsAnders Rasmussen
2017-02-15Implement workaround for Mesa issueJoe Wilm
This addresses the issue where systems running Mesa drivers would be an order of magnitude slower than other terminals. With this patch, performance is nearly as good as with proprietary drivers. There is one caveat where, since the cause of slowness hasn't been removed, there is less time available for rendering on Mesa systems. I've benchmarked this on my system (i5-3570 @ 3.4GHz, GTX 680) using `time find /usr` with the following results: * ~2.0 seconds average with proprietary driver * ~2.3 seconds average with Mesa driver cc #125
2017-02-14Add TERM config entryAnders Rasmussen
2017-02-11Handle OSC for setting indexed color valuesJoe Wilm
Resolves #26.
2017-02-11Move color list to Term structJoe Wilm
The color list needs to be updated by the parser, and this isn't possible if it's on the config. This change makes sense semantically as well since it's really part of the terminal state. This is in preparation for OSC color parsing.
2017-02-11Fix issue with cat /dev/urandomJoe Wilm
2017-02-10Print YAML errors using DisplayJoe Wilm
Much nicer error message than with Debug.
2017-02-07Add visual bell supportMark Andrus Roberts
This commit adds support for a visual bell. Although the Handler in src/ansi.rs warns "Hopefully this is never implemented", I wanted to give it a try. A new config option is added, `visual_bell`, which sets the `duration` and `animation` function of the visual bell. The default `duration` is 150 ms, and the default `animation` is `EaseOutExpo`. To disable the visual bell, set its duration to 0. The visual bell is modeled by VisualBell in src/term/mod.rs. It has a method to ring the bell, `ring`, and another method, `intensity`. Both return the "intensity" of the bell, which ramps down from 1.0 to 0.0 at a rate set by `duration` and `animation`. Whether or not the Processor waits for events is now configurable in order to allow for smooth drawing of the visual bell.
2017-02-07Semantic SelectionXiaoyu Yin
Fix tests and add line select Refactor BidirectionalIter to remove if blocks Allow for cells tagged with WRAPLINE to continue expanding the selection Reorganize config into structs Add test coverage that callbacks are called Cleanup mouse config - Uses Duration type for ClickHandler::threshold - Removes `action` property from ClickHandler--this can be added in a backwards compatible way later on - Renames ClickState::DblClick to DoubleClick fixup! Cleanup mouse config
2017-02-07Implement clearing above cursorJoe Wilm
2017-02-07Fix zsh tab completionJoe Wilm
2017-02-06Configurable window dimensionsAnders Rasmussen
Adds a configuration option `dimensions` which will set initial window size by columns and lines. Changes to the config file will require restart. resolves #370
2017-02-06Render underline on empty cellsTuomas Siipola
This fixes rendering underlines spanning multiple words.
2017-02-06Send mouse wheel commands only if they're supportedTuomas Siipola
Fixes #48
2017-02-05Add "Quit" action to allow exit on a Cmd-W or Cmd-QBrandur
Adds a new "Quit" action and binds it to Cmd-W and Cmd-Q on Mac OS in an attempt to make Alacritty feel more like a "normal" citizen of the operating system. Alternatives like Ctrl-D are okay, but I usually want to leave my shells nested within Tmux open even if I exit my terminal. It's also largely selfish: I've built up muscle memory over the years that takes my fingers to Cmd-Q first (and I suspect I'm not the only one). The implementation for an exit is copied from `event.rs` which notably is already tagged with a FIXME. It seems that `tty.rs` contains a `process_should_exit` system to help handle a `SIGCHLD`, and it's possible that these two exit implementations should be merged together. I could probably tackle that as my next project. As mentioned in #218, Alacritty can't really spawn other windows right now, so I've tied in Cmd-W as simply another synonym for quitting until that's implemented. Fixes #218.
2017-02-03Fix bug with restore cursorJoe Wilm
The saved cursor position could previously end up outside of the grid if the terminal was resized to be smaller and then calling a restore. Restore now ensures the cursor line and column are within grid bounds.
2017-02-03Alacritty now compiles on stable Rust :tada:Joe Wilm
2017-02-02Fix bug introduced with save/restore patchJoe Wilm
Switching between main and alt grids should no longer clear the main grid.
2017-02-02Decouple input processing from TermJoe Wilm
Should make input processing much more easily tested.
2017-02-02Implement save/restore cursor positionJoe Wilm
This passes the vttest for save and restore cursor position. The implementation was done according to: http://www.vt100.net/docs/vt510-rm/DECSC.html As of yet, there are a few things not supported by the terminal which should otherwise be saved/restored. vte was updated for a fix with CSI param parsing
2017-01-30Fix bug with cursor colors and old configJoe Wilm
There was no default supplied for Colors.cursor. This caused config not specifying that property to break. Adding a default should fix that.
2017-01-30Load the primary clipboard when pastingjc00ke
Paste & PasteSelection are not quite the same. The former should be pulling from the main clipboard where the latter does not.
2017-01-29Update to serde 0.9 and serde-yaml 0.6.Joe Wilm
2017-01-29support for inverting the cursor or using colorsDanny Dulai
2017-01-28Add support for -e argumentNiklas Claesson
2017-01-26Optimize glyph cache accessJoe Wilm
Loading a glyph from the cache is a very hot operation in the renderer. The original implementation would first check if a glyph was loaded and then call `get()` which would have to search a second time. This showed up as a very slow point in profiles. This patch addresses glyph cache access in two ways: by using a faster hasher optimized for small keys (fnv), and by using the entry API for fetching a cached glyph. The `fnv` hasher is faster than the default and is very efficient for small keys. Using the entry API on the HashMap means only 1 lookup instead of two. The entry API has a downside where the key needs to get cloned on fetches. Reducing the GlyphKey width to 64-bits helps in both areas. Copying an 8-byte wide type is very cheap and thus limits downside of the entry API. The small width also helps with the hasher performance. Over all, this patch reduced typical render times by several hundred microseconds on a 2013 MacBook Pro with a full screen terminal full of text.
2017-01-25Implement argument passing in configNiklas Claesson
This commit implements the following syntax in the config file: ```yaml shell: program: /bin/bash args: - --login - --norc ```
2017-01-24Use clap as cli parser.Kurnevsky Evgeny
2017-01-23Change to process::CommandNiklas Claesson
2017-01-23Remove debug_print! macrosJoe Wilm
The logging macros should be used instead.
2017-01-23Return an error from logging::initializeJoe Wilm
Logging initialization now shares the same error handling code as the rest of the `run` function.
2017-01-23Minor formatting fixesJoe Wilm
2017-01-23Changes to Logger logicJoe Wilm
The logger implementation will now only show items from Alacritty. Additionally, the module info is omitted from the log output. If the origin of a log item must be found, it can easily be grepped for.
2017-01-23Use the log-crate instead of printing to stdoutLukas Lueg
2017-01-23Dynamically generate test harnessSteven Fackler
This uses the rustc-test crate, a copy of the standard test crate, to dynamically create tests for each reference test. No need to remember to update the macro, just add the directory to ref!
2017-01-21ansi: Designate and invoke graphic character setsRichard Palethorpe
Implement the designation of graphic character sets G0-G3 to ASCII or the Special character and line drawing glyphs. As well as the invokation/selection of the character sets (shift in, shift out and lock shifting).
2017-01-18Remove unnecessary featureOula Kuuva
Proc_macro has been stable since 1.15.0, attribute no longer needed.
2017-01-18Make it run on FreeBSDjohalun
2017-01-15Cleanup getpwuid_r wrapperJoe Wilm
The wrapper had some transmutes still from an earlier implementation, and they are not needed now.
2017-01-12make thin stroke rendering configurableTom Crayford
Makes thin stroke rendering for darwin configurable by a new toplevel key under `font:` in the config file. Defaults to false, has no impact on non macos.
2017-01-11Proposal for line wrap - ^[[7h and ^[[7l (private)Michael Brumlow
These changes provide support for disabling auto line wrap which is currently default to on. 'tput rman' will now disable auto line wrap and alacritty will now not automatically wrap lines. 'tput sman' will now (re)enable auto line wrap and alacritty will now automatically wrap lines once it reaches the end of the line. My testing showed this to work the same as gnome-terminal. I should note that simply having ^[[7h or ^[[7l in a recording does not enable and disable line wrapping. This is the same behavior as gnome-terminal and xterm. Those cape codes come through as private which are not handled yet. I behave this is the correct behavior.
2017-01-11Fix bug where event loop could get stuck readingJoe Wilm
One symptom of this bug was being unable to send C-c during `cat /dev/urandom`. cc #271