aboutsummaryrefslogtreecommitdiff
path: root/src/term/mod.rs
AgeCommit message (Collapse)Author
2017-12-24Update comment to reference proper characterChristian Duerr
The unicode character comment has been updated to correctly reference the character instead of commenting on the variable that might be that character.
2017-12-24Revert to old system for macosChristian Duerr
Because rendering with macos works differently, the old underline cursor is used for that. The cursor symbol has also been setup as a constant in the font project.
2017-12-24Add custom underline cursorChristian Duerr
As mentioned in jwilm/alacritty#931, it can be troublesome if a font has an underline symbol outside of the glyph's bounding box. This can lead to the underline disappearing at the bottom of the terminal. As a solution a symbol from the private use area was used as the character code for the underline symbol. Whenever this symbol is encountered, instead of rendering it, a custom block is rendered. In this implementation the block has the full character as width and sits flush with the bottom of the glyph's bounding box. The height is half the distance between the baseline and the bottom of the bounding box.
2017-12-23Update bitflags to v1Chet Gurevitch
2017-12-22Assure that newlines are in selections (#777)Dustin
When a selection was made, the last line of the selection did not include a new line character when the line ending was selected. This would occur if only one line was selected; if multiple lines were selected, only the final line did not include a newline. This commit updates the `string_from_selection` function to attempt to append a newline character in all places where they are suitable. Because of the simplification of newline insertion, several trait implementations were removed.
2017-12-22Style nitsJoe Wilm
2017-12-22Implement faux scrollingChristian Duerr
This patch implements faux scrolling inside the alternate screen buffer. Whenever the user scrolls up or down while the alternate screen buffer is active, instead of actual scrolling three up/down arrow keys are inserted.
2017-12-03Add cursor style option (#928)Christian Duerr
The default cursor can now be configured through the cursor_style field of the config. Valid options include Block, Underline, and Beam. The default can be restored by sending \e[0q as in VTE terminals. Live config reloading is supported for this parameter.
2017-11-11Match LF behavior outside scroll region with urxvtJoe Wilm
Outside of a scroll region, linefeed will still advances the line until reaching the bottom row in other terminals. Alacritty now matches that.
2017-11-11Correct linefeed handling when scroll region set (#855)Yan
Linefeeds should only move the cursor down if it's before the end of the scroll region. The "out of bounds" panic was triggered by linefeeds going off the bottom of the screen when the scroll region end was above the cursor. Note: https://vt100.net/docs/vt102-ug/chapter5.html "Characters added outside the scrolling region do not cause the screen to scroll."
2017-10-30fix some typos in commentsMartin Lindhe
2017-10-21Set urgent WM flag on bell on X11 systems (#812)Barret Rennie
Sets the urgent WM flag when bell is emitted on X11 systems. Additionally, the flag is cleared on focus because not all WMs clear it automatically.
2017-10-21Fix solid background color opacity (#847)Joe Wilm
Since landing the patch adding transparency support to Alacritty, there's been an issue where othewise solid background cells were also being rendered partially transparent. Now, all filled background cells are rendered fully opaque. Some logic was added to support discarding filled backgrounds which had the same color as the default background. This means that, if the default background is #000 and a cell has that background, it will never be rendered opaque. This may not be correct. Note that many truecolor vim color schemes print spaces for default colored background cells. Performance can be dramatically improved by using ctermbg=NONE guibg=NONE to skip rendering those cells.
2017-10-14Implement user actions for font resize (#625)Dan Aloni
Adds support for font resizing at run-time. Three new actions are introduced: * IncreaseFontSize - Increases current font size by 1.0 * DecreaseFontSize - Decreases current font size by 1.0 * ResetFontSize - Resets font size to that specified in the configuration. The stock config files have example configuration for each which should match gnome-terminal. For convenience, the config entries are: - { key: Key0, mods: Control, action: ResetFontSize } - { key: Equals, mods: Control, action: IncreaseFontSize } - { key: Subtract, mods: Control, action: DecreaseFontSize }
2017-10-14Fix resize behaviorJoe Wilm
Should prevent the messed up background colors that appear in some situations (especially on tiling WMs).
2017-09-27Use clippy = "*", update, and fix some warnings (#796)Aaron Hill
Because there are so many clippy warnings in the current codebase, this commit removes '#![cfg_attr(feature = "clippy", deny(clippy))]', to make it easier to fix warnings incrementally.
2017-09-05Update most remaining depsJonathan Schleußer
2017-08-29Fix reloading colors from config (#756)Tuomas Siipola
2017-08-22Fix newline + scroll region bug (#747)Joe Wilm
When a scroll region is active with the cursor below the bottom of the region, newlines should not cause the region to scroll. A ref test was added for this situation to prevent regressions. Thanks @hiciu for reporting and @nicm for the test case. Resolves #745.
2017-08-11Fix smcup/rmcup toggle bugJoe Wilm
Resolves #634.
2017-08-11Rename some variables for clarityJoe Wilm
2017-08-11Fix BCE issues affecting vimJoe Wilm
Now pass more vttests as well. Resolves #123 cc #660 - screenshot there exhibited the problem, but issue is not entirely about the background problem.
2017-07-28Support background and foreground color escape codes (#662)Tuomas Siipola
2017-07-24add support for X input method (#691)Ted Yin
2017-07-20Implement and use ansi attribute CancelBold (#659)ftilde
2017-06-23Add dim color supportJake Merdich
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.
2017-06-19Update tests for new Selection APIJoe Wilm
2017-06-19Fix unnecessary redraws with active selectionJoe Wilm
Could be cleaned up a bit if there was a wrapper for Option<Selection> that contained this flag. Also fixes a few compiler warnings.
2017-06-19Implement semantic and line selection draggingJoe Wilm
Unlike the regular selection that is by cell, these selection modes highlight either semantic groupings or entire lines while the mouse is dragged.
2017-06-18Fix bright inverse colors (#621)DarkDefender
Fixes #611.
2017-06-18Implement 'backwards tab'Aaron Hill
This escape sequence isn't officially documented anywhere, but is supported by xterm and gnome-vte.
2017-06-14Use cursor cell template when handling 'CSI X' escape sequenceAaron Hill
This ensures that the cleared cells are set to the proper background color, which is the main usage of this escape sequence. Fixes #612
2017-06-11Add support for Beam, Underline cursorsJoe Wilm
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.
2017-05-29Implement FocusIn/FocusOut reports (#589)Aaron Hill
Implements sending FocusIn/FocusOut events, as defined at http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-FocusIn_FocusOut
2017-05-12Use debug! instead of println!Dominik Miedziński
2017-05-08Fix Device Status reportsDominik Miedziński
2017-05-07Add support for Query Device StatusDominik Miedziński
2017-05-06Fix bug in SizeInfo::contains_pointJoe Wilm
Accidentally broke it when refactoring.
2017-05-06Add window padding optionTuomas Siipola
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.
2017-05-06Fix glyph offsets in cellJoe Wilm
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.
2017-05-01Fix bug with tab renderingJoe Wilm
Closes #494. Resolves #529. Resolves #512. Resolves #493.
2017-05-01Support insert modeJoe Wilm
2017-05-01Add limit check in scroll_up/down_relativeJoe Wilm
2017-05-01Implement tab stop manipulationJoe Wilm
Adds implementations for TBC (tabulation clear) and HTS (set horizontal tabstop).
2017-04-20Remove unused limit functionJoe Wilm
2017-04-20Fix some bugs with resizeJoe Wilm
2017-04-19Fix issue with back_color_eraseJoe Wilm
back_color_erase should not set flags like bold, underline, etc.
2017-04-19Pass scrolling region tests in vttest 2Joe Wilm
2017-04-19Partially add DECCOLM supportJoe Wilm
It's not possible with DECCOLM to temporarily set 80 or 132 column mode since the function is a toggle between the two. Instead, only the additional affects are run in order to get closer to passing vttest. vttest will never be perfect due to the column mode issue.
2017-04-18Support DECOM (Origin Mode)Joe Wilm