aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-10-26[WIP] Add antialias optionantialias-optionJoe Wilm
Still a WIP because of unimplemented Linux portion. Support has been added for font rasterization options. At this time, the only supported option is antialias. It's a tri-state flag which can be either ~ for "use default", true to force antialias, and false to force disable antialias. The options may be specified both globally and per font section. The per font sections override global options. An example of a complex config follows. In the example, the global value requests using default antialias settings, and the normal face disables antialias. font: options: antialias: ~ normal: family: monospace options: antialias: false Finally, note that the top level font.options is used for fallback fonts.
2017-10-26Fix stack overflowJoe Wilm
Resolves #872
2017-10-22Change cursor from pointer to text (#778)Dustin
It seems that (as a rule) terminal emulators use the text mouse cursor rather than the pointer that is used now. This commit changes the cursor to using winit's built-in configuration function.
2017-10-22Fix typoJoe Wilm
2017-10-22Rewrite err_println to eprintln introduced in Rust 1.19 (#799)Roel
2017-10-21Update README.md with more WaylandJoe Wilm
Adds a call to action on how to improve Wayland support in Alacritty.
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-21List all valid actions in config error message (#848)Robert Bittle
2017-10-21Update macOS icon with icon from #285 (#856)Hugo Tunius
2017-10-20Add Function + Modifier keybindings (#853)Joe Wilm
Also rearranged the default config slightly to move the long key binding list to the bottom of the file. Resolves #690 Resolves #727
2017-10-17Fix render issues on macOS (#845)Joe Wilm
Parts of neighboring glyphs in the atlas were being rendered incorrectly. The issue is resolved by aligning cells to the pixel grid. This behavior was achieved previously by first applying integer truncation before casting to a float. Fixes #844.
2017-10-16Fix config reloadingJoe Wilm
Must have been broken when upgrading notify-rs
2017-10-16Fix default config reload valueJoe Wilm
This shouldn't have any effect, but at least the default value is now consistent with the default deserialization value.
2017-10-16Use correct keyname for decreasing font size in MacOS (#843)Erik Nilsen
* Use correct keyname for decreasing font size in MacOS * Prefer Command instead of Control to match other TEs
2017-10-14Drop nightly featureJoe Wilm
Forgot to remove after being done with valgrind
2017-10-14Fix memory leak from font resizingJoe Wilm
The source of the leak was loading up multiple copies of the FT_face even when not necessary. Fonts are now appropriately cached for FreeType when going through the `Rasterize::load_font` API. Additionally, textures in the glyph cache are now reused. The result of this is that resizing to already loaded fonts is free from a memory consumption perspective.
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-10-09Support web notation for hex colorsRobert Günzler
2017-10-09Add fontconfig instructions to Linux configJoe Wilm
2017-10-08Update servo-fontconfig-sys forkJoe Wilm
Fixes naming collision issue on Fedora 26.
2017-10-08Scale all fonts based on device-pixel-ratioJoe Wilm
Rather than use DPI from config, use device-pixel-ratio from winit. This is computed using the display DPI anyhow, so it should have the same effect.
2017-10-08Support bitmap fontsDan Aloni
To allow FontConfig to work with Bitmap font, we shall pass the size we are interested in, and account for the size returned in the font matching process. This is, because we cannot scale those fonts. FontConfig will return the closest match, and we take its returned pixel size back when we are rendering the glyphs. There's an oddity when call set_char_size in TrueType - we need to behave as if the DPI is 72. It is due to the following macro: #define FT_REQUEST_HEIGHT( req ) \ ( (req)->vertResolution \ ? ( (req)->height * (FT_Pos)(req)->vertResolution + 36 ) / 72 \ : (req)->height ) Further work can allow for integer scaling of the largest bitmap font variant. Tested with Terminus PCF-type font under Linux. This addresses issue #582 .
2017-10-08Add support for env_loggerJoe Wilm
When RUST_LOG environment variable is set, uses env_logger instead of our custom logger. This is desirable for debugging purposes.
2017-10-08FreeType rasterizer respects some fontconfigJoe Wilm
The FreeType rasterizer now reads settings like antialias, rgba, lcdfilter, and hintstyle and chooses FreeType settings accordingly. The result is that Alacritty fonts should look similar to the rest of the system.
2017-10-08Improve glyph rasterization performanceJoe Wilm
The hash map of key -> face was previouly cloned every time a glyph was rasterized. This refactored the rasterization path to be more borrowck friendly. Sadly, this implementation is not *that* clean, but once NLLs land, much of this can be cleaned up.
2017-10-08Remove unused macrosJoe Wilm
2017-10-08Extend and improve FcPattern bindingsJoe Wilm
The fontconfig `FcPattern` type is wrapped as `fc::Pattern` and `fc::Pattern` ref. All methods for accessing data on the pattern now return an `Iterator`. This API turns out to be much more ergonomic than providing an integer index. We also override the default `nth` implementation of `Iterator` on these accessors to allow random (incremental only) access. For instance, accessing `family` attributes from a pattern: let families = pattern.family(); let second = pattern.nth(1); Or printing available styles for style in pattern.style() { println!("style={}", style); }
2017-10-08Organize fontconfig wrappersJoe Wilm
Each Fc type is split into a separate file. This organization will help as features are added to the bindings.
2017-10-07Update Solus deps (#792)Joshua Strobl
Removed freetype2-devel, it isn't necessary given fontconfig-devel depends on freetype2-devel, just as it depends on expat-devel.
2017-10-06Revert "Update glutin & fix a few wayland issues (#815)"Joe Wilm
This reverts commit e17d38167e174a2cf664e430fe968ec6492e1f08. Was breaking builds for mac users.
2017-10-06Update glutin & fix a few wayland issues (#815)Victor Berger
This PR fixes a few wayland issues of alacritty (and updates glutin on the process because it is needed). Mainly two changes are done: 1. Add a drawing_ready() method on Window: see https://docs.rs/winit/0.8.2/winit/os/unix/trait.WindowExt.html#tymethod.is_ready for explanations. Hopefully glutin will be able to handle it itself in the future, but it currently does not. 2. resize window and OpenGL contextes. The way wayland forces winit to draw its own decorations and how surface size is defined by its content means that in practice: - winit's window.set_inner_size() defines the dimensions of the borders - glutins gl_window.resize() defines the dimensions of the content (and is a noop in other platforms) It is for now glutin's user responsibility to keep them in sync otherwise borders are drawn stupidly. This PR changes the resize methods of alacritty::Window to always update both. This fixed the borders issues for me, tested on weston.
2017-10-04centos/RHEL 7 build instructions added (#813)Peter Butkovic
2017-09-30Add ref test for CSI REPJoe Wilm
2017-09-30implement ANSI CSI REP (Repeat)Jasper Bryant-Greene
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-11Log where config was loaded fromJoe Wilm
2017-09-05Comment about duration arg to file watcherJoe Wilm
2017-09-05Reduce file watcher debounce periodJoe Wilm
500ms introduced a visual lag between file save and display update.
2017-09-05Update notifyJonathan Schleußer
2017-09-05Update most remaining depsJonathan Schleußer
2017-09-05Update servoJonathan Schleußer
2017-09-05A (very) little english fixup... (#770)vale981
2017-09-02Fix #721: touchpad scrolling (#726)Linus Heckemann
2017-09-02Remove invalid characters from default config files. (#769)tanitta
2017-08-29Update README.mdJoe Wilm
2017-08-29Change CLI live-config-reload options into flagsJoe Wilm
The previous format of --live-config-reload=VAL had a specific set of allowed values which may not immediately be obvious. Instead, there are now two flags which control the behavior: --live-config-reload --no-live-config-reload If a user tries to specify both, the option parsing will fail with this message: error: The argument '--no-live-config-reload' cannot be used with '--live-config-reload'
2017-08-29Default to enabling live config reloadJoe Wilm
This will keep the original behavior for users who don't update their config.
2017-08-29Implement options to not start the config_monitor thread (#689)Liu Wei
Provide a command line option as well as a configuration file option. The command line option takes precedence.