Commit Graph

130 Commits

Author SHA1 Message Date
Kirill Chibisov c9c5fbbe2b
Add CopyPrimary keybinding action on Linux/BSD 2020-03-23 23:46:33 +00:00
Christian Duerr 01e603519a
Fix default keybinding documentation 2020-03-19 15:00:32 +03:00
Christian Duerr 1a8cd172e5
Add modal keyboard motion mode
This implements a basic mode for navigating inside of Alacritty's
history with keyboard bindings. They're bound by default to vi's motion
shortcuts but are fully customizable. Since this relies on key bindings
only single key bindings are currently supported (so no `ge`, or
repetition).

Other than navigating the history and moving the viewport, this mode
should enable making use of all available selection modes to copy
content to the clipboard and launch URLs below the cursor.

This also changes the rendering of the block cursor at the side of
selections, since previously it could be inverted to be completely
invisible. Since that would have caused some troubles with this keyboard
selection mode, the block cursor now is no longer inverted when it is at
the edges of a selection.

Fixes #262.
2020-03-18 02:35:08 +00:00
Nathan Lilienthal 64db7d3daa
Add default keybinding for SpawnNewInstance on macOS 2020-03-17 22:37:36 +03:00
Christian Duerr 33cabfc3d2
Remove `ref_test` option from configuration file
This removes the `debug.ref_test` option from the configuration file,
after this change was originally requested from kchibisov in
https://github.com/alacritty/alacritty/pull/3396.

While this option is valueable for the CLI, it provides no value in the
configuration file.
2020-03-04 11:32:07 +00:00
Christian Duerr a710866007
Move debug to bottom of config
Since this information is the least relevant to the user, it should be
the last thing in the configuration file.
2020-03-01 21:41:05 +00:00
Christian Duerr 8c64224582
Remove `tabspaces` config option
This completely removes the tabspaces option from the Alacritty
configuration, due to frequent misuse of it. Based on some research,
none of the terminal emulators support setting the value for tabspaces
or read the terminfo to determine init_tabs value at startup. The tested
terminal emulators were URxvt, XTerm, and Termite.
2020-03-01 07:07:36 +03:00
Christian Duerr 17b8bbb908
Remove docs for 0xRRGGBB color notation 2020-02-27 23:06:04 +00:00
Kirill Chibisov 14dc170caa
Change documented default TERM to alacritty 2020-02-23 20:54:44 +00:00
BrainFace cbec5e415b
Add docs about multiple bindings on same trigger 2020-02-05 22:59:16 +00:00
Kirill Chibisov 5e22512fe6 Disable drawing bold text bright by default
Since the assumption is usually that bold text is drawn in bright
colors, this might break some applications. However some other terminals
have already taken this leap, which should lessen the impact for
Alacritty.

Since this might still be desired and necessary for certain
applications, the config option is just switched to draw with normal
colors by default, however the old behavior can still be restored.

Fixes #2779.
2020-01-20 22:13:39 +01:00
Kirill Chibisov 2f1a390aaa
Remove scrolling.auto_scroll feature
Fixes: #1873
2020-01-20 23:03:54 +03:00
Christian Duerr dd1413eb4d
Force exact modifiers match for mouse bindings
Fixes #3152.
2020-01-10 00:44:41 +00:00
Kirill Chibisov 0cc68da04f Add `Minimize` binding action
Fixes #2534.
2020-01-05 01:54:14 +00:00
David Hewitt 7a957978e4 Default to ConPTY instead of WinPTY 2019-12-21 21:23:18 +00:00
wayne fa6ceacfa4 Add live config reload for font family and style
Fixes #2737.
2019-11-03 20:02:26 +01:00
Aleksey Kuznetsov 49380bffd2 Add support for alternate scroll escape
Fixes #2727.
2019-10-15 21:13:58 +02:00
Kirill Chibisov 24651a6144 Remove automatic config generation
Fixes #2818.
2019-10-06 12:47:20 +02:00
Clément L b0c6fdff76 Update VirtualKeyCode url in alacritty.yml 2019-10-04 12:27:06 +02:00
zsugabubus fe6f1760b4 Add `ReceiveChar` action for passing key's text 2019-09-28 02:37:22 +02:00
Kirill Chibisov 9a14ca42d3 Rework default bindings
This commit removes all bindings which are sending escapes from
the default configuration file, adds bindings for F13-F24, adds bindings
for ScrollToTop/ScrollToBottom actions, removes bindings for Super + F1-F12,
fixes bindings for Alt + F1-F12.

Fixes #2688.
2019-09-18 21:21:01 +02:00
Chris Morgan e69f259d0e
Add bold italic font support
If the terminal escape sequences for bold and italic text are active,
the text should be rendered as bold and italic. However, due to missing
support in Alacritty, it would always render this text in bold.

This adds support for combining the bold and italic escapes to render
text in both styles and allows users to override the font for this
scenario using the `font.bold_italic` configuration option.
2019-08-25 14:30:42 +02:00
Ben Firth 54dca06bfb Fix double-click selecting trailing tab
Fixes #2639.
2019-07-26 11:18:47 +00:00
Brian Koropoff 228c641769 Allow setting gtk variant and general class on X11 2019-07-06 19:34:56 +00:00
Nathan Lilienthal 6013d1ec3e
Reorder and clearify the mouse/keybinding docs. (#2509) 2019-06-21 10:35:28 -04:00
Christian Duerr 58e2365abe
Fix default fullscreen binding docs 2019-06-16 11:35:28 +00:00
Julien Sanchez 6b273fdf63 Fix default login shell documentation 2019-06-16 11:29:18 +00:00
Christian Duerr 5d173f6df3
Refactor config parsing files
This is a large refactor of the config parsing structure, attempting to
reduce the size of the file a bit by splitting it up into different
modules with more specific purposes.

This also fixes #2279.
2019-05-10 11:36:16 +00:00
acheronfail e9813031f6 Add fullscreen support
Fixes #34.
Fixes #2012.
2019-04-23 19:05:47 +00:00
Christian Duerr e35796485c
Document URL launcher parameter options
This fixes #2112.
2019-04-09 21:17:22 +00:00
Jerry Yin 090842bd8e Add ScrollLineUp and ScrollLineDown actions for scrolling line by line 2019-04-08 19:50:06 +00:00
Aaron Goodfellow e2eb5bbd2e Add additional key bindings for changing font size
This fixes #2010.
2019-03-15 20:41:48 +00:00
Kirill Chibisov 0b9ae4ce93 Add config option to change selection color 2019-03-12 23:11:32 +00:00
Cole Helbling e240da9ab3 Add option for window position at startup 2019-03-11 12:35:49 +00:00
stfn 9468b50b75 Add additional key bindings 2019-03-02 18:57:07 +00:00
Christian Duerr 153f9257b8
Change shift+pgup/pgdown to scroll history
The default shift+pgup/pgdown buttons were sending the escape sequences
specified by the official standard, however most terminal emulators like
XTerm, URxvt and VTE make an exception for this special case and instead
scroll the native history buffer.

Both XTerm and URxvt do never send the escapes for Shift+PgUp/PgDown,
however VTE does send them in the alternate screen.

Since Alacritty already supports keybindings based on terminal mode and
the binding to scroll the history is useless when in the alternate
screen buffer, Alacritty is now following VTEs behavior here, allowing
applications in the alt screen (like vim) to handle this escape.

Fixes #1989.
2019-02-08 01:46:56 +00:00
Christian Duerr 97e801a73e
Fix macOS config decorations doc 2019-02-04 00:17:57 +00:00
Christian Duerr 20f3198609
Fix regression in the URL launcher config
Due to the merging of configuration files on all platforms, it has been
made impossible to completely disable URL launching without still
executing some kind of program like `true`.

Setting the launcher to `None` in the config, will now disable it
completely.

This fixes #2058.
2019-02-03 16:44:39 +00:00
Christian Duerr 31271c726e
Fix crash on Windows (#2021)
The rusttype backend did not properly support manually specifying font
styles, but instead chose to panic when they are specified.

The rusttype implementation now provides a proper implementation for
handling `bold`, `italic` and `regular` font styles.

This fixes #2020.
2019-01-20 17:39:15 +00:00
Simon Dahlberg 8b15596070 Add config option to send or not send ESC when ALT-key is pressed 2019-01-17 20:42:12 +00:00
Christian Duerr 0d16478f5d
Make all configuration fields optional
All configuration fields now have fallback values which will be used if
the field is not present. This includes mouse, key bindings and platform
specific differences.

The mouse and key bindings are now filled by default, if the user
rebinds a default mapping, it will be overwritten. To unbind a default
binding, it can be mapped to `chars: ""`.

Since all platform differences can now be correctly handled by the
`src/config/mod.rs` code, it's no longer necessary to maintain separate
configuration files, so the `alacritty_macos.yml` and
`alacritty_windows.yml` have been deleted.

Fixes #40.
Fixes #1923.
2019-01-17 09:17:26 +00:00
Morton Fox cf0cece47a Fix config documentation typo 2019-01-11 05:35:45 +00:00
Christian Duerr a38a067992
Fix minor issues in the config documentation 2019-01-07 21:56:55 +00:00
Carlos Tuñón e4dc43e87c Add key/mouse action for spawning new Alacritty instances 2019-01-05 20:47:12 +00:00
Christian Duerr cf9d94eb12
Add color option to visual bell
This adds the option to specify the color of the visual bell using the
`visual_bell.color` configuration setting.

This is done by rendering a big quad over the entire screen, which also
opens up options to draw other arbitrary rectangles on the screen in the
future.
2018-12-17 19:06:07 +00:00
Jonathan Dahan 2ede659134 Add option for launching Alacritty maximized 2018-11-19 21:23:47 +00:00
Christian Duerr 42d8989916
Add keybinding action for clearing warns/errors
Since running `clear` inside of tmux doesn't actually clear any part of
the screen, but just resets the scrolling region, the warning and error
notices can't be removed without quitting tmux or Alacritty.

As a solution, a new action `ClearLogNotice` has been added which has
been bound to Ctrl+L by default. As a result, Ctrl+L can be used inside
of tmux to remove the messages, even though tmux doesn't clear the
screen.

This fixes #1811.
2018-11-19 08:33:48 +00:00
Christian Duerr e429b8dfdd
Remove `scale_with_dpi` setting from config
Since the `scale_with_dpi` setting has been deprecated, but it hasn't
been removed from the config, Alacritty would print an error every time
it is started.

To resolve this problem, the option is removed from the default
configuration file.
2018-11-18 23:05:38 +00:00
Christian Duerr 6265ef91d5
Display errors and warnings
To make sure that all error and information reporting to the user is
unified, all instances of `print!`, `eprint!`, `println!` and
`eprintln!` have been removed and replaced by logging.

When `RUST_LOG` is not specified, the default Alacritty logger now also
prints to both the stderr and a log file. The log file is only created
when a message is written to it and its name is printed to stdout the
first time it is used.

Whenever a warning or an error has been written to the log file/stderr,
a message is now displayed in Alacritty which points to the log file
where the full error is documented.

The message is cleared whenever the screen is cleared using either the
`clear` command or the `Ctrl+L` key binding.

To make sure that log files created by root don't prevent normal users
from interacting with them, the Alacritty log file is `/tmp/Alacritty-$PID.log`.

Since it's still possible that the log file can't be created, the UI
error/warning message now informs the user if the message was only
written to stderr. The reason why it couldn't be created is then printed
to stderr.

To make sure the deletion of the log file at runtime doesn't create any
issues, the file is re-created if a write is attempted without the file
being present.

To help with debugging Alacritty issues, a timestamp and the error
level are printed in all log messages.

All log messages now follow this format:
    [YYYY-MM-DD HH:MM] [LEVEL] Message

Since it's not unusual to spawn a lot of different terminal emulators
without restarting, Alacritty can create a ton of different log files.

To combat this problem, logfiles are removed by default after
Alacritty has been closed. If the user wants to persist the log of a
single session, the `--persistent_logging` option can be used. For
persisting all log files, the `persistent_logging` option can be set in
the configuration file
2018-11-17 14:39:13 +00:00
Christian Duerr d68ecb0def
Add option for dynamic padding (#1780)
This adds the `window.dynamic_padding` option which allows disabling the
dynamic spread of additional padding around the grid's content.

Based on the feedback I've gotten so far and the fact that most other
terminal emulators do not seem to center the content inside themselves,
I've changed the default configuration option to disable centering of the grid.

This fixes #1778.
2018-11-15 19:57:15 +00:00