Commit Graph

27 Commits

Author SHA1 Message Date
Ronan Jouchet f10394e003 Fix #447 - yml: mention `showkey -a` to get x sequence from key
Am not touching the -macos yaml, as I'm not sure this works under macOS.
2017-03-01 15:18:50 -08:00
Joe Wilm 31ed5160a0 Change cursor colors config to use text and cursor
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-25 07:55:35 -08:00
Tuomas Siipola 7bb49fabfa Add hide cursor when typing option 2017-02-22 14:49:29 -08:00
Anders Rasmussen c49d4a9365 Add TERM config entry 2017-02-14 08:53:18 -08:00
Joe Wilm 24c32dc400 Add default Alt+Backspace keybinding
Resolves #315.
2017-02-13 10:05:31 -08:00
Joe Wilm 18ab8bda9e Disable visual bell by default
cc #406
2017-02-11 20:43:33 -08:00
Joe Wilm 98c01457df Improvements to default config
* 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-10 09:15:36 -08:00
Mark Andrus Roberts fbc7b72271 Add visual bell support
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-07 21:12:56 -08:00
Xiaoyu Yin 92e1cec088 Semantic Selection
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-07 21:04:18 -08:00
Anders Rasmussen edc2c7f5b9 Configurable window dimensions
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-06 20:45:17 -08:00
Brandur 12cd04fea2 Add "Quit" action to allow exit on a Cmd-W or Cmd-Q
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-05 18:53:51 -08:00
Danny Dulai e04584b082 support for inverting the cursor or using colors 2017-01-29 16:06:29 -08:00
Niklas Claesson 6eb8b10a95 fix config file 2017-01-26 07:32:53 -08:00
Tom Crayford f85cc353a6 make thin stroke rendering configurable
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-12 21:19:40 -08:00
Joe Wilm 56773fe7e7 Merge pull request #138 from honza/master
Add "shell" option to config
2017-01-07 09:46:28 -08:00
Danny Dulai ec6f3097cd shift-tab key binding 2017-01-06 22:27:38 -05:00
Honza Pokorny ea44427be3 Add "shell" option to config
This allows you to configure the shell to use when alacritty starts.

cc: #122
2017-01-06 22:07:35 -04:00
Joe Wilm 99ef2bef9e Add default macOS config
Should solve the `monospace` issue people are seeing for now.
2017-01-06 11:17:48 -08:00
Joe Wilm 7d07b5a165 Add README instruction for macOS config 2017-01-06 10:48:22 -08:00
Joe Wilm 8630185639 Rework font loading
This work started because we wanted to be able to simply say "monospace"
on Linux and have it give us some sort of font. The config format for
fonts changed to accomodate this new paradigm. As a result, italic and
bold can have different families from the normal (roman) face.

The fontconfig based font resolution probably works a lot better than
the CoreText version at this point. With CoreText, we simply iterate
over fonts and check it they match the requested properties. What's
worse is that the CoreText version requires a valid family. With
fontconfig, it will just provide the closest matching thing and use it
(unless a specific style is requested).
2017-01-02 19:49:38 -08:00
Joe Wilm ae470bf68b Implement copying selection for macOS
Still need automatic loading into selection copy buffer for linux.
2016-12-26 22:56:19 -05:00
Joe Wilm 88a92982b1 Fix mouse bindings
Config expected key and the default config file had the wrong section.
2016-11-19 21:49:23 -08:00
Joe Wilm d97996e19d Make bindings configurable from alacritty.yml
Bindings were previously hardcoded within input.rs; adding, removing, or
changing a binding required a recompile! Now, bindings may be declared
in alacritty.yml. Even better, bindings are live-reloaded when
alacritty.yml is changed!

One unexpected benefit of this change was that all of the special casing
in input.rs has disappeared.

Conversely, config.rs has gained complexity for all of the
deserialization logic.

Resolves #3.
2016-11-17 17:17:54 -08:00
Joe Wilm 82c8804f44 Update default config
Contains comments about what requires a restart and also includes the
bold+bright flag.
2016-10-28 09:26:16 -07:00
Joe Wilm d4c1d51e36 Make colors configurable from file
Added solarized dark color scheme for testing purposes.

Resolves #1.
2016-10-15 15:56:27 -07:00
Joe Wilm d514b38223 Vendor upcoming Utf8Chars iterator from libstd
The upcoming Utf8Chars iterator was vendored from a libstd PR. The
iterator works on BufRead types which is critical for improving
performance. A small modification was made where the number of unused
bytes is included with Utf8CharsError::IncompleteUtf8.

The pty reader thread was updated to use this new type. Next steps will
be moving the parsing there and either sending parse results in batches
or updating the terminal directly from that thread.
2016-06-30 21:26:26 -07:00
Joe Wilm d304ea9b77 Add config file
Configuration may now be specified in either `$HOME/.alacritty.yml` or
`$HOME/.config/alacritty.yml`. See `alacritty.yml` in the repository
root for an example.

When a configuration file cannot be located, a default configuration is
used.
2016-06-30 09:04:06 -07:00