aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-17Bump glutinJoe Wilm
Resolves #422
2017-02-17Updates Glutin to proper handle dead keysMichel Boaventura
Resolves #211.
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-13Add default Alt+Backspace keybindingJoe Wilm
Resolves #315.
2017-02-11Disable visual bell by defaultJoe Wilm
cc #406
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-10Update serde_yaml to 0.6.1David Tolnay
This release reports better errors: > font.use_thin_strokes: invalid type: string "tru", expected a boolean at line 51 column 21
2017-02-10Print YAML errors using DisplayJoe Wilm
Much nicer error message than with Debug.
2017-02-10Improvements to default configJoe Wilm
* Dimensions default to 80x24 which is standard for terminals * Remove commented out Solarized color scheme * Enable visual bell by default * Add visual bell config to macos defaults * Fix default keybindings to match xterm terminfo on Ubuntu 16.04
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-07Add zsh tab completion ref testJoe Wilm
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-03readme: Remove stray lineDaniel M. Capella
No longer needed thanks to #382.
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-29Add Arch Linux package install instructionsDaniel M. Capella
Includes minor touch ups.
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-28Fix section headers in READMEJoe Wilm
Resolves #367
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-26Add Slackware section to README.mdDerNorbert
2017-01-26fix config fileNiklas Claesson
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.