diff --git a/CHANGELOG.md b/CHANGELOG.md index 031a3b90..38ead29b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Implement the `hidden` escape sequence (`echo -e "\e[8mTEST"`) +- Add support for macOS systemwide dark mode +- Set the environment variable `COLORTERM="truecolor"` to advertise 24-bit color support +- On macOS, there are two new values for the config option `window.decorations`: + - `transparent` - This makes the title bar transparent and allows the + viewport to extend to the top of the window. + - `buttonless` - Similar to transparent but also removed the buttons. + +### Changed + +- Inverse/Selection color is now modelled after XTerm/VTE instead of URxvt to improve consistency +- First click on unfocused Alacritty windows is no longer ignored on platforms other than macOS + +### Fixed + +- Clear screen properly before rendering of content to prevent various graphical glitches +- Fix build failure on 32-bit systems +- Windows started as unfocused now show the hollow cursor if the setting is enabled + +### Deprecated + +- The config option `window.decorations` should now use `full` or `none` instead + of `true` or `false`, respectively. + +### Security + +- Bracketed paste mode now filters escape sequences beginning with \x1b + ## Version 0.2.0 ### Added diff --git a/Cargo.lock b/Cargo.lock index 03ff243c..74f9d7a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,38 +1,38 @@ [[package]] name = "aho-corasick" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "alacritty" version = "0.2.0" dependencies = [ - "arraydeque 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "arraydeque 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "cgmath 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "copypasta 0.0.1", "dirs 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", "errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "font 0.1.0", "gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.15 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-more 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "notify 4.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "notify 4.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "serde_yaml 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -51,7 +51,7 @@ name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -61,7 +61,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "arraydeque" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -71,23 +71,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "base64" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "bitflags" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "bitflags" version = "0.7.0" @@ -100,7 +95,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitflags" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -110,17 +105,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byteorder" -version = "1.2.4" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bytes" -version = "0.3.0" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "cc" -version = "1.0.18" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -154,7 +153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -166,15 +165,15 @@ name = "cloudabi" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cmake" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -182,7 +181,7 @@ name = "cocoa" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", @@ -198,15 +197,6 @@ dependencies = [ "objc_id 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "core-foundation" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "core-foundation" version = "0.6.1" @@ -216,36 +206,28 @@ dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "core-foundation-sys" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "core-foundation-sys" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "core-graphics" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "core-graphics" version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "core-graphics" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", @@ -253,22 +235,27 @@ dependencies = [ [[package]] name = "core-text" -version = "9.2.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "core-graphics 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "crossbeam-utils" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "dirs" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -291,14 +278,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "env_logger" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -308,7 +295,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "errno-dragonfly 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -330,16 +317,16 @@ dependencies = [ [[package]] name = "expat-sys" -version = "2.1.5" +version = "2.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cmake 0.1.33 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "cmake 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "filetime" -version = "0.1.15" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -356,15 +343,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "font" version = "0.1.0" dependencies = [ - "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-text 9.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "core-graphics 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", + "core-text 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "freetype-rs 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "servo-fontconfig 0.4.0 (git+https://github.com/jwilm/rust-fontconfig?branch=updated-2017-10-8)", ] @@ -397,8 +384,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "libz-sys 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "libz-sys 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -424,7 +411,7 @@ name = "fuchsia-zircon" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -433,6 +420,11 @@ name = "fuchsia-zircon-sys" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "futures" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "gcc" version = "0.3.54" @@ -444,7 +436,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "khronos_api 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -473,7 +465,7 @@ dependencies = [ "osmesa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-client 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "winit 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)", "x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -488,7 +480,21 @@ dependencies = [ [[package]] name = "inotify" -version = "0.3.0" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "inotify-sys" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", @@ -505,7 +511,7 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -537,7 +543,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lazycell" -version = "0.6.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -550,19 +556,19 @@ name = "libloading" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libz-sys" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -584,12 +590,12 @@ name = "log" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "log" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -605,10 +611,12 @@ dependencies = [ [[package]] name = "memchr" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -617,43 +625,38 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "mio" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "mio" -version = "0.6.15" +version = "0.6.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "mio-extras" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "mio-more" version = "0.1.0" @@ -661,21 +664,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazycell 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.6.15 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "miow" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "miow" version = "0.2.1" @@ -694,16 +686,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "nix" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -711,8 +694,8 @@ name = "nix" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -720,19 +703,20 @@ dependencies = [ [[package]] name = "notify" -version = "4.0.4" +version = "4.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", "fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "inotify 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -740,14 +724,22 @@ name = "num-traits" version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num-traits" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "num_cpus" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "objc" version = "0.2.5" @@ -792,22 +784,23 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "parking_lot_core" -version = "0.2.14" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -817,12 +810,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pkg-config" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.4.13" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -835,10 +828,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quote" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -848,7 +841,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -860,7 +853,7 @@ dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -883,14 +876,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -901,22 +894,30 @@ dependencies = [ "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ryu" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "safemem" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "same-file" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -924,29 +925,42 @@ name = "scopeguard" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "serde" -version = "1.0.71" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_derive" -version = "1.0.71" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.26" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -956,8 +970,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)", - "yaml-rust 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", + "yaml-rust 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -974,9 +988,9 @@ name = "servo-fontconfig-sys" version = "4.0.3" source = "git+https://github.com/jwilm/libfontconfig?branch=updated-2017-10-8#5c1845e1bffa11cf4d3e6fb27f456bf5c814ce1b" dependencies = [ - "expat-sys 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "freetype-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -988,11 +1002,6 @@ dependencies = [ "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "slab" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "slab" version = "0.3.0" @@ -1005,7 +1014,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "smallvec" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1016,7 +1025,7 @@ name = "smithay-client-toolkit" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1044,20 +1053,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "syn" -version = "0.14.8" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "termcolor" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "wincolor 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1087,13 +1096,38 @@ dependencies = [ ] [[package]] -name = "time" -version = "0.1.40" +name = "tokio-executor" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-io" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tokio-reactor" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1121,7 +1155,7 @@ dependencies = [ [[package]] name = "utf8-ranges" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1131,7 +1165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "vcpkg" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1159,11 +1193,12 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.2.0" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1171,7 +1206,7 @@ name = "wayland-client" version = "0.20.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-commons 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-scanner 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1192,7 +1227,7 @@ name = "wayland-protocols" version = "0.20.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-client 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-commons 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-scanner 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1223,7 +1258,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1240,6 +1275,14 @@ name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "winapi-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -1247,10 +1290,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wincolor" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1264,13 +1308,13 @@ dependencies = [ "core-graphics 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "smithay-client-toolkit 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-client 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1290,7 +1334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1303,57 +1347,55 @@ name = "xml-rs" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "yaml-rust" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] -"checksum aho-corasick 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c1c6d463cbe7ed28720b5b489e7c083eeb8f90d08be2a0d6bb9e1ffea9ce1afa" +"checksum aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "68f56c7353e5a9547cbd76ed90f7bb5ffc3ba09d4ea9bd1d8c06c8b1142eeb5a" "checksum android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum approx 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08abcc3b4e9339e33a3d0a5ed15d84a687350c05689d825e0f6655eef9e76a94" -"checksum arraydeque 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bc059aa8598b9f4fb1dd532a061edc8e4efe0ccc55ba05358aba2a80b7b01f11" +"checksum arraydeque 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e300327073b806ffc81fccb228b2d4131ac7ef1b1a015f7b0c399c7f886cacc6" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "85415d2594767338a74a30c1d370b2f3262ec1b4ed2d7bba5b3faf4de40467d9" -"checksum bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3" +"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" "checksum bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1370e9fc2a6ae53aea8b7a5110edbd08836ed87c88736dfabccade1c2b44bff4" -"checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" +"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -"checksum byteorder 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8389c509ec62b9fe8eca58c502a0acaf017737355615243496cde4994f8fa4f9" -"checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27" -"checksum cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "2119ea4867bd2b8ed3aecab467709720b2d55b1bcfe09f772fd68066eaf15275" +"checksum byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "90492c5858dd7d2e78691cfb89f90d273a2800fc11d98f60786e5d87e2f83781" +"checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62" +"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" "checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" "checksum cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "55e7ec0b74fe5897894cbc207092c577e87c52f8a59e8ca8d97ef37551f60a49" "checksum cgmath 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "64a4b57c8f4e3a2e9ac07e0f6abc9c24b6fc9e1b54c3478cfb598f3d0023e51c" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum cmake 0.1.33 (registry+https://github.com/rust-lang/crates.io-index)" = "704fbf3bb5149daab0afb255dbea24a1f08d2f4099cedb9baab6d470d4c5eefb" +"checksum cmake 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "848b314ea70f48f0e13828c5554e34200952ce5720d6d3aa466b4d983af6c70e" "checksum cocoa 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5cd1afb83b2de9c41e5dfedb2bcccb779d433b958404876009ae4b01746ff23" -"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cc3532ec724375c7cb7ff0a097b714fde180bb1f6ed2ab27cfcd99ffca873cd2" -"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum core-foundation-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a3fb15cdbdd9cf8b82d97d0296bb5cd3631bba58d6e31650a002a8e7fb5721f9" -"checksum core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb0ed45fdc32f9ab426238fba9407dfead7bacd7900c9b4dd3f396f46eafdae3" "checksum core-graphics 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92801c908ea6301ae619ed842a72e01098085fc321b9c2f3f833dad555bba055" -"checksum core-text 9.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bd581c37283d0c23311d179aefbb891f2324ee0405da58a26e8594ab76e5748" +"checksum core-graphics 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "62ceafe1622ffc9a332199096841d0ff9912ec8cf8f9cde01e254a7d5217cd10" +"checksum core-text 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f3f46450d6f2397261af420b4ccce23807add2e45fa206410a03d66fb7f050ae" +"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" "checksum dirs 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f679c09c1cf5428702cc10f6846c56e4e23420d3a88bcc9335b17c630a7b710b" "checksum dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "77e51249a9d823a4cb79e3eca6dcd756153e8ed0157b6c04775d04bf1b13b76a" "checksum downcast-rs 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "18df8ce4470c189d18aa926022da57544f31e154631eb4cfe796aea97051fe6c" "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" -"checksum env_logger 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)" = "f4d7e69c283751083d53d01eac767407343b8b69c4bd70058e08adc2637cb257" +"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" "checksum errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c2a071601ed01b988f896ab14b95e67335d1eeb50190932a1320f7fe3cadc84e" "checksum errno-dragonfly 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" "checksum euclid 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c95fd0d455f114291a3109286bd387bd423770058474a2d3f38b712cd661df60" -"checksum expat-sys 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c470ccb972f2088549b023db8029ed9da9426f5affbf9b62efff7009ab8ed5b1" -"checksum filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "714653f3e34871534de23771ac7b26e999651a0a228f47beb324dfdf1dd4b10f" +"checksum expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" +"checksum filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "da4b9849e77b13195302c174324b5ba73eec9b236b24c221a61000daefb95c5f" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" @@ -1363,110 +1405,116 @@ dependencies = [ "checksum fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a772d36c338d07a032d5375a36f15f9a7043bf0cb8ce7cee658e037c6032874" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +"checksum futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "0c84b40c7e2de99ffd70602db314a7a8c26b2b3d830e6f7f7a142a8860ab3ca4" "checksum gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)" = "5e33ec290da0d127825013597dbdfc28bee4964690c7ce1166cbc2a7bd08b1bb" "checksum gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a795170cbd85b5a7baa58d6d7525cae6a03e486859860c220f7ebbbdd379d0a" "checksum gleam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d41e7ac812597988fdae31c9baec3c6d35cadb8ad9ab88a9bf9c0f119ed66c2" "checksum glutin 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0be84b852c1dcccde4b1329be778e5bd9c0801b8bbb8766ea327a3f813c6eafe" "checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" -"checksum inotify 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "887fcc180136e77a85e6a6128579a719027b1bab9b1c38ea4444244fe262c20c" +"checksum inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40b54539f3910d6f84fbf9a643efd6e3aa6e4f001426c0329576128255994718" +"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0" "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" -"checksum itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5adb58558dcd1d786b5f0bd15f3226ee23486e24b7b58304b60f64dc68e62606" +"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum khronos_api 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "037ab472c33f67b5fbd3e9163a2645319e5356fcd355efa6d4eb7fff4bbcb554" "checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" "checksum lazycell 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce12306c4739d86ee97c23139f3a34ddf0387bbf181bc7929d287025a8c3ef6b" -"checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef" +"checksum lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0" "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" -"checksum libz-sys 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "f5f9aba969b3c45fe9c94bec65895868a9ceca9a600699f4054b75747a19c7c6" +"checksum libz-sys 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)" = "65ff614643d7635dfa2151913d95c4ee90ee1fe15d9e0980f4dcb1a7e5837c18" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" "checksum lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "949826a5ccf18c1b3a7c3d57692778d21768b79e46eb9dd07bfc4c2160036c54" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -"checksum log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cba860f648db8e6f269df990180c2217f333472b4a6e901e97446858487971e2" +"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f" "checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" +"checksum memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b3629fe9fdbff6daa6c33b90f7c08355c1aca05a3d01fa8063b822fcf185f3b" "checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff" -"checksum mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a637d1ca14eacae06296a008fa7ad955347e34efcb5891cfd8ba05491a37907e" -"checksum mio 0.6.15 (registry+https://github.com/rust-lang/crates.io-index)" = "4fcfcb32d63961fb6f367bfd5d21e4600b92cd310f71f9dca25acae196eb1560" +"checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" +"checksum mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "46e73a04c2fa6250b8d802134d56d554a9ec2922bf977777c805ea5def61ce40" "checksum mio-more 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0063c5ac7d07a3f177ad237540ddf5d96b7c9a9882b337702c1994bfd844d3e0" -"checksum miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3e690c5df6b2f60acd45d56378981e827ff8295562fc8d34f573deb267a59cd1" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" -"checksum nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfb3ddedaa14746434a02041940495bf11325c22f6d36125d3bdd56090d50a79" -"checksum notify 4.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d023ef40ca7680784b07be3f49913e1ea176da1b63949f2eb2fed96438bd7f42" +"checksum notify 4.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "873ecfd8c174964ae30f401329d140142312c8e5590719cf1199d5f1717d8078" "checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -"checksum num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "630de1ef5cc79d0cdd78b7e33b81f083cbfe90de0f4b2b2f07f905867c70e9fe" +"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" +"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "9833ab0efe5361b1e2122a0544a5d3359576911a42cb098c2e59be8650807367" "checksum objc-foundation 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" "checksum objc_id 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" "checksum osmesa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "88cfece6e95d2e717e0872a7f53a8684712ad13822a7979bc760b9c77ec0013b" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" -"checksum parking_lot 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "69376b761943787ebd5cc85a5bc95958651a22609c5c1c2b65de21786baec72b" -"checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" +"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" -"checksum pkg-config 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "104630aa1c83213cbc76db0703630fcb0421dac3585063be4ce9a8a2feeaa745" -"checksum proc-macro2 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "ee5697238f0d893c7f0ecc59c0999f18d2af85e424de441178bcacc9f9e6cf67" +"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" +"checksum proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "ffe022fb8c8bd254524b0b3305906c1921fa37a84a644e29079a9e62200c3901" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ed7d650913520df631972f21e104a4fa2f9c82a14afc65d17b388a2e29731e7c" +"checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5" "checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" "checksum rand_core 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "edecf0f94da5551fc9b492093e30b041a891657db7940ee221f9d2f66e82eef2" "checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum regex 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5bbbea44c5490a1e84357ff28b7d518b4619a159fed5d25f6c1de2d19cc42814" +"checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341" "checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" -"checksum ryu 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0568787116e13c652377b6846f5931454a363a8fdf8ae50463ee40935b278b" -"checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" -"checksum same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cfb6eded0b06a0b512c8ddbcf04089138c9b4362c2f696f3c3d76039d68f3637" +"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +"checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7" +"checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" +"checksum same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10f7794e2fda7f594866840e95f5c5962e886e228e68b6505885811a94dd728c" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" -"checksum serde 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)" = "6dfad05c8854584e5f72fb859385ecdfa03af69c3fd0572f0da2d4c95f060bdb" -"checksum serde_derive 1.0.71 (registry+https://github.com/rust-lang/crates.io-index)" = "b719c6d5e9f73fbc37892246d5852333f040caa617b8873c6aced84bcb28e7bb" -"checksum serde_json 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "44dd2cfde475037451fa99b7e5df77aa3cfd1536575fa8e7a538ab36dcde49ae" +"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +"checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9" +"checksum serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "31569d901045afbff7a9479f793177fe9259819aff10ab4f89ef69bbc5f567fe" +"checksum serde_json 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "b24d01d9b2d2fa2ab4101a8ae3a754a2ac08fc02171c0279ebf272395153debe" "checksum serde_yaml 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ef8099d3df28273c99a1728190c7a9f19d444c941044f64adf986bee7ec53051" "checksum servo-fontconfig 0.4.0 (git+https://github.com/jwilm/rust-fontconfig?branch=updated-2017-10-8)" = "" "checksum servo-fontconfig-sys 4.0.3 (git+https://github.com/jwilm/libfontconfig?branch=updated-2017-10-8)" = "" "checksum shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" -"checksum slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d807fd58c4181bbabed77cb3b891ba9748241a552bcc5be698faaebefc54f46e" "checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23" "checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" -"checksum smallvec 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "211a489e65e94b103926d2054ae515a1cdb5d515ea0ef414fee23b7e043ce748" +"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" "checksum smithay-client-toolkit 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f1609083d6bca3991a3c648d80ae16e1764d70881c3321bee1c915149073d605" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c19be23126415861cb3a23e501d34a708f7f9b2183c5252d690941c2e69199d5" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum syn 0.14.8 (registry+https://github.com/rust-lang/crates.io-index)" = "b7bfcbb0c068d0f642a0ffbd5c604965a360a61f99e8add013cef23a838614f3" -"checksum termcolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "722426c4a0539da2c4ffd9b419d90ad540b4cff4a053be9069c908d4d07e2836" +"checksum syn 0.15.5 (registry+https://github.com/rust-lang/crates.io-index)" = "5522da8e493dbd7703e88ec5518546ed45c30efa2699f291a7bd0a08fb0a6ab6" +"checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" +"checksum tokio-executor 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "84823b932d566bc3c6aa644df4ca36cb38593c50b7db06011fd4e12e31e4047e" +"checksum tokio-io 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8d6cc2de7725863c86ac71b0b9068476fec50834f055a243558ef1655bbd34cb" +"checksum tokio-reactor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4bfbaf9f260635649ec26b6fb4aded03887295ffcd999f6e43fd2c4758f758ea" "checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122" +"checksum utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd70f467df6810094968e2fce0ee1bd0e87157aceb026a8c083bcf5e25b9efe4" "checksum utf8parse 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a15ea87f3194a3a454c78d79082b4f5e85f6956ddb6cb86bbfbe4892aa3c0323" -"checksum vcpkg 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a51475940ea5ed2f7ba8e7b867c42d6cb7f06fafb9c1673ed8e768c675c771cc" +"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7716c242968ee87e5542f8021178248f267f295a5c4803beae8b8b7fd9bc6051" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum vte 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f42f536e22f7fcbb407639765c8fd78707a33109301f834a594758bedd6e8cf" -"checksum walkdir 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f1b768ba943161a9226ccd59b26bcd901e5d60e6061f4fcad3034784e0c7372b" +"checksum walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "af464bc7be7b785c7ac72e266a6b67c4c9070155606f51655a650a6686204e35" "checksum wayland-client 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)" = "e7516a23419a55bd2e6d466c75a6a52c85718e5013660603289c2b8bee794b12" "checksum wayland-commons 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)" = "d8609d59b95bf198bae4f3b064d55a712f2d529eec6aac98cc1f6e9cc911d47a" "checksum wayland-protocols 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd4d31a96be6ecdbaddbf35200f5af2daee01be592afecd8feaf443d417e9230" "checksum wayland-scanner 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)" = "e674d85ae9c67cbbc590374d8f2e20a7a02fff87ce3a31fc52213afece8d05ad" "checksum wayland-sys 0.20.12 (registry+https://github.com/rust-lang/crates.io-index)" = "87c82ee658aa657fdfd7061f22e442030d921cfefc5bad68bcf41973e67922f7" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" -"checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd" +"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum wincolor 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b9dc3aa9dcda98b5a16150c54619c1ead22e3d3a5d458778ae914be760aa981a" +"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum winit 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ba44cf306b981badc781894ab5d6fda54764a0512cbbf8db4685d329014143fa" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)" = "940586acb859ea05c53971ac231685799a7ec1dee66ac0bccc0e6ad96e06b4e3" "checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61" "checksum xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c1cb601d29fe2c2ac60a2b2e5e293994d87a1f6fa9687a31a15270f909be9c2" -"checksum yaml-rust 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57ab38ee1a4a266ed033496cf9af1828d8d6e6c1cfa5f643a2809effcae4d628" +"checksum yaml-rust 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "95acf0db5515d07da9965ec0e0ba6cc2d825e2caeb7303b66ca441729801254e" diff --git a/Cargo.toml b/Cargo.toml index 70690e25..de5c3a51 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,7 @@ assets = [ ["target/release/alacritty", "usr/local/bin/", "755"], ["alacritty.desktop", "usr/share/applications/", "644"], ["alacritty-completions.bash", "usr/share/bash-completion/completions/alacritty", "644"], - ["alacritty-completions.fish", "usr/share/fish/completions/alacritty", "644"], - ["alacritty-completions.zsh", "usr/share/zsh/functions/Completion/alacritty", "644"], + ["alacritty-completions.fish", "usr/share/fish/completions/alacritty.fish", "644"], + ["alacritty-completions.zsh", "usr/share/zsh/vendor-completions/_alacritty", "644"], ["alacritty.info", "usr/share/terminfo/a/alacritty", "644"], ] diff --git a/README.md b/README.md index 614a4b44..d7d299e9 100644 --- a/README.md +++ b/README.md @@ -36,18 +36,17 @@ built from source. ## Installation -Instructions are provided for macOS and many Linux variants to compile Alacritty -from source. With the exception of Arch (which has a package in the AUR), Void Linux (in main repository) and -[NixOS](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/misc/alacritty/default.nix), please first read the -[prerequisites](#prerequisites) section, then find the section for your OS, and -finally go to [building](#building) and [configuration](#configuration). +Some operating systems already provide binaries for Alacritty, for everyone else there are +instructions to compile Alacritty from source. + +For the manual installation, please first read the [prerequisites](#prerequisites) section, +then find the instructions for your OS, and finally go through the [building](#building) +and [configuration](#configuration) steps. ### Arch Linux ```sh -git clone https://aur.archlinux.org/alacritty-git.git -cd alacritty-git -makepkg -isr +pacman -S alacritty ``` ### Debian/Ubuntu @@ -165,7 +164,7 @@ On [Void Linux](https://voidlinux.eu), install following packages before compiling Alacritty: ```sh -xbps-install cmake freetype-devel freetype expat-devel fontconfig xclip +xbps-install cmake freetype-devel freetype expat-devel fontconfig-devel fontconfig xclip ``` #### FreeBSD @@ -296,10 +295,19 @@ To get automatic completions for alacritty's flags and arguments you can install ### Zsh -To install the completions for zsh, run +To install the completions for zsh, you can place the `alacritty-completions.zsh` as `_alacritty` in any directory referenced by `$fpath`. +If you do not already have such a directory registered through your `~/.zshrc`, you can add one like this: + +```sh +mkdir -p ${ZDOTDIR:-~}/.zsh_functions +echo 'fpath+=${ZDOTDIR:-~}/.zsh_functions' >> ${ZDOTDIR:-~}/.zshrc ``` -sudo cp alacritty-completions.zsh /usr/share/zsh/functions/Completion/X/_alacritty + +Then copy the completion file to this directory: + +```sh +cp alacritty-completions.zsh ${ZDOTDIR:-~}/.zsh_functions/_alacritty ``` ### Bash diff --git a/alacritty.yml b/alacritty.yml index 2778d168..c82db1b3 100644 --- a/alacritty.yml +++ b/alacritty.yml @@ -1,13 +1,13 @@ -# Configuration for Alacritty, the GPU enhanced terminal emulator +# Configuration for Alacritty, the GPU enhanced terminal emulator. # Any items in the `env` entry below will be added as # environment variables. Some entries may override variables -# set by alacritty it self. +# set by alacritty itself. env: - # TERM env customization. + # TERM env customization # - # If this property is not set, alacritty will set it to xterm-256color. + # If this property is not set, alacritty will set it to `xterm-256color`. # # Note that some xterm terminfo databases don't declare support for italics. # You can verify this by checking for the presence of `smso` and `sitm` in @@ -15,119 +15,128 @@ env: TERM: xterm-256color window: - # Window dimensions in character columns and lines - # Falls back to size specified by window manager if set to 0x0. - # (changes require restart) + # Window dimensions (changes require restart) + # + # Specified in number of columns/lines, not pixels. + # If both are `0`, this setting is ignored. dimensions: columns: 80 lines: 24 - # Adds this many blank pixels of padding around the window - # Units are physical pixels; this is not DPI aware. - # (change requires restart) + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is not scaled + # by DPI and the specified value is always added at both opposing sides. padding: x: 2 y: 2 # Window decorations - # Setting this to false will result in window without borders and title bar. - decorations: true + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + decorations: full scrolling: - # How many lines of scrollback to keep, - # '0' will disable scrolling. + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. history: 10000 - # Number of lines the viewport will move for every line - # scrolled when scrollback is enabled (history > 0). + # Number of lines the viewport will move for every line scrolled when + # scrollback is enabled (history > 0). multiplier: 3 # Faux Scrolling # - # The `faux_multiplier` setting controls the number - # of lines the terminal should scroll when the alternate - # screen buffer is active. This is used to allow mouse - # scrolling for applications like `man`. + # The `faux_multiplier` setting controls the number of lines the terminal + # should scroll when the alternate screen buffer is active. This is used + # to allow mouse scrolling for applications like `man`. # - # To disable this completely, set `faux_multiplier` to 0. + # Specifying `0` will disable faux scrolling. faux_multiplier: 3 - # Automatically scroll to the bottom when new text is written - # to the terminal. + # Scroll to the bottom when new text is written to the terminal. auto_scroll: false -# Display tabs using this many cells (changes require restart) +# Spaces per Tab (changes require restart) +# +# This setting defines the width of a tab in cells. +# +# Some applications, like Emacs, rely on knowing about the width of a tab. +# To prevent unexpected behavior in these applications, it's also required to +# change the `it` value in terminfo when altering this setting. tabspaces: 8 -# When true, bold text is drawn using the bright variant of colors. -draw_bold_text_with_bright_colors: true - # Font configuration (changes require restart) # # Important font attributes like antialiasing, subpixel aa, and hinting can be # controlled through fontconfig. Specifically, the following attributes should # have an effect: -# -# * hintstyle -# * antialias -# * lcdfilter -# * rgba +# - hintstyle +# - antialias +# - lcdfilter +# - rgba # # For instance, if you wish to disable subpixel antialiasing, you might set the -# rgba property to "none". If you wish to completely disable antialiasing, you -# can set antialias to false. +# rgba property to `none`. If you wish to completely disable antialiasing, you +# can set antialias to `false`. # -# Please see these resources for more information on how to use fontconfig -# -# * https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration -# * file:///usr/share/doc/fontconfig/fontconfig-user.html +# Please see these resources for more information on how to use fontconfig: +# - https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration +# - file:///usr/share/doc/fontconfig/fontconfig-user.html font: - # The normal (roman) font face to use. + # Normal (roman) font face normal: - family: monospace # should be "Menlo" or something on macOS. - # Style can be specified to pick a specific face. + family: monospace + # The `style` can be specified to pick a specific face. # style: Regular - # The bold font face + # Bold font face bold: - family: monospace # should be "Menlo" or something on macOS. - # Style can be specified to pick a specific face. + family: monospace + # The `style` can be specified to pick a specific face. # style: Bold - # The italic font face + # Italic font face italic: - family: monospace # should be "Menlo" or something on macOS. - # Style can be specified to pick a specific face. + family: monospace + # The `style` can be specified to pick a specific face. # style: Italic - # Point size of the font + # Point size size: 11.0 - # Offset is the extra space around each character. offset.y can be thought of - # as modifying the linespacing, and offset.x as modifying the letter spacing. + # Offset is the extra space around each character. `offset.y` can be thought of + # as modifying the line spacing, and `offset.x` as modifying the letter spacing. offset: x: 0 y: 0 # Glyph offset determines the locations of the glyphs within their cells with - # the default being at the bottom. Increase the x offset to move the glyph to - # the right, increase the y offset to move the glyph upward. + # the default being at the bottom. Increasing `x` moves the glyph to the right, + # increasing `y` moves the glyph upwards. glyph_offset: x: 0 y: 0 - # OS X only: use thin stroke font rendering. Thin strokes are suitable - # for retina displays, but for non-retina you probably want this set to - # false. - use_thin_strokes: true + # Scale the font size based on the monitor's DPI. This will lead to bigger text on HiDPI + # screens and make reading text a little easier. + # On X11 it is possible to change the DPI for each instance of alacritty by using + # `WINIT_HIDPI_FACTOR=1.0 alacritty` to scale the font. + scale_with_dpi: true -# Should display the render timer +# Display the time it takes to redraw each frame. render_timer: false -# Use custom cursor colors. If true, display the cursor in the cursor.foreground -# and cursor.background colors, otherwise invert the colors of the cursor. +# Use custom cursor colors. If `true`, the `colors.cursor.foreground` and +# `colors.cursor.background` colors will be used to display the cursor. +# Otherwise the cell colors are inverted for the cursor. custom_cursor_colors: false +# If `true`, bold text is drawn using the bright color variants. +draw_bold_text_with_bright_colors: true + # Colors (Tomorrow Night Bright) colors: # Default colors @@ -135,16 +144,18 @@ colors: background: '0x000000' foreground: '0xeaeaea' - # (Optional) Bright and Dim foreground colors + # Bright and dim foreground colors # # The dimmed foreground color is calculated automatically if it is not present. # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` # is `false`, the normal foreground color will be used. # - # dim_foreground: '0x9a9a9a' - # bright_foreground: '0xffffff' + #dim_foreground: '0x9a9a9a' + #bright_foreground: '0xffffff' - # Colors the cursor will use if `custom_cursor_colors` is true + # Cursor colors + # + # These will only be used when the `custom_cursor_colors` field is set to `true`. cursor: text: '0x000000' cursor: '0xffffff' @@ -171,7 +182,10 @@ colors: cyan: '0x54ced6' white: '0xffffff' - # Dim colors (Optional) + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. dim: black: '0x333333' red: '0xf2777a' @@ -190,20 +204,19 @@ colors: # setting the `duration` property (represented in milliseconds). You can also # configure the transition function by setting the `animation` property. # -# Possible values for `animation` -# `Ease` -# `EaseOut` -# `EaseOutSine` -# `EaseOutQuad` -# `EaseOutCubic` -# `EaseOutQuart` -# `EaseOutQuint` -# `EaseOutExpo` -# `EaseOutCirc` -# `Linear` -# -# To completely disable the visual bell, set its duration to 0. +# Values for `animation`: +# - Ease +# - EaseOut +# - EaseOutSine +# - EaseOutQuad +# - EaseOutCubic +# - EaseOutQuart +# - EaseOutQuint +# - EaseOutExpo +# - EaseOutCirc +# - Linear # +# Specifying a `duration` of `0` will disable the visual bell. visual_bell: animation: EaseOutExpo duration: 0 @@ -213,19 +226,19 @@ background_opacity: 1.0 # Mouse bindings # -# Currently doesn't support modifiers. Both the `mouse` and `action` fields must -# be specified. +# Available fields: +# - mouse +# - action +# - mods (optional) # # Values for `mouse`: -# - Middle -# - Left -# - Right -# - Numeric identifier such as `5` +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` # -# Values for `action`: -# - Paste -# - PasteSelection -# - Copy (TODO) +# All available `mods` and `action` values are documented in the key binding +# section. mouse_bindings: - { mouse: Middle, action: PasteSelection } @@ -245,15 +258,16 @@ dynamic_title: true hide_cursor_when_typing: false -# Style of the cursor +# Cursor style # # Values for 'cursor_style': -# - Block -# - Underline -# - Beam +# - Block +# - Underline +# - Beam cursor_style: Block -# Whether the cursor should be a hollow block on window focus loss +# If this is `true`, the cursor will be rendered as a hollow box when the +# window is not focused. unfocused_hollow_cursor: true # Live config reload (changes require restart) @@ -261,64 +275,82 @@ live_config_reload: true # Shell # -# You can set shell.program to the path of your favorite shell, e.g. /bin/fish. -# Entries in shell.args are passed unmodified as arguments to the shell. +# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. +# Entries in `shell.args` are passed unmodified as arguments to the shell. # -# shell: -# program: /bin/bash -# args: -# - --login +#shell: +# program: /bin/bash +# args: +# - --login # Key bindings # -# Each binding is defined as an object with some properties. Most of the -# properties are optional. All of the alphabetical keys should have a letter for -# the `key` value such as `V`. Function keys are probably what you would expect -# as well (F1, F2, ..). The number keys above the main keyboard are encoded as -# `Key1`, `Key2`, etc. Keys on the number pad are encoded `Number1`, `Number2`, -# etc. These all match the glutin::VirtualKeyCode variants. +# Key bindings are specified as a list of objects. Each binding will specify +# a key and modifiers required to trigger it, terminal modes where the binding +# is applicable, and what should be done when the key binding fires. It can +# either send a byte sequnce to the running application (`chars`), execute +# a predefined action (`action`) or fork and execute a specified command plus +# arguments (`command`). # -# A list with all available `key` names can be found here: -# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants +# Example: +# `- { key: V, mods: Command, action: Paste }` # -# Possible values for `mods` -# `Command`, `Super` refer to the super/command/windows key -# `Control` for the control key -# `Shift` for the Shift key -# `Alt` and `Option` refer to alt/option +# Available fields: +# - key +# - mods (optional) +# - chars | action | command (exactly one required) +# - mode (optional) # -# mods may be combined with a `|`. For example, requiring control and shift -# looks like: +# Values for `key`: +# - `A` -> `Z` +# - `F1` -> `F12` +# - `Key1` -> `Key0` # -# mods: Control|Shift +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants # -# The parser is currently quite sensitive to whitespace and capitalization - -# capitalization must match exactly, and piped items must not have whitespace -# around them. +# Values for `mods`: +# - Command +# - Control +# - Shift +# - Alt # -# Either an `action`, `chars`, or `command` field must be present. -# `action` must be one of the following: -# - `Paste` -# - `PasteSelection` -# - `Copy` -# - `IncreaseFontSize` -# - `DecreaseFontSize` -# - `ResetFontSize` -# - `ScrollPageUp` -# - `ScrollPageDown` -# - `ScrollToTop` -# - `ScrollToBottom` -# - `Quit` -# `chars` writes the specified string every time that binding is activated. -# These should generally be escape sequences, but they can be configured to -# send arbitrary strings of bytes. -# `command` must be a map containing a `program` string, and `args` array of -# strings. For example: -# - { ... , command: { program: "alacritty", args: ["-e", "vttest"] } } +# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`. +# Whitespace and capitalization is relevant and must match the example. # -# Want to add a binding (e.g. "PageUp") but are unsure what the X sequence -# (e.g. "\x1b[5~") is? Open another terminal (like xterm) without tmux, -# then run `showkey -a` to get the sequence associated to a key combination. +# Values for `chars`: +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. +# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run +# the command `showkey -a` outside of tmux. +# +# Values for `action`: +# - Paste +# - PasteSelection +# - Copy +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# - Hide +# - Quit +# +# Values for `command`: +# The `command` field must be a map containing a `program` string and +# an `args` array of command line parameter strings. +# +# Example: +# `command: { program: "alacritty", args: ["-e", "vttest"] }` +# +# Values for `mode`: +# - ~AppCursor +# - AppCursor +# - ~AppKeypad +# - AppKeypad key_bindings: - { key: V, mods: Control|Shift, action: Paste } - { key: C, mods: Control|Shift, action: Copy } diff --git a/alacritty_macos.yml b/alacritty_macos.yml index f8d93b48..01cd373a 100644 --- a/alacritty_macos.yml +++ b/alacritty_macos.yml @@ -1,12 +1,12 @@ -# Configuration for Alacritty, the GPU enhanced terminal emulator +# Configuration for Alacritty, the GPU enhanced terminal emulator. # Any items in the `env` entry below will be added as # environment variables. Some entries may override variables -# set by alacritty it self. +# set by alacritty itself. env: - # TERM env customization. + # TERM env customization # - # If this property is not set, alacritty will set it to xterm-256color. + # If this property is not set, alacritty will set it to `xterm-256color`. # # Note that some xterm terminfo databases don't declare support for italics. # You can verify this by checking for the presence of `smso` and `sitm` in @@ -14,100 +14,123 @@ env: TERM: xterm-256color window: - # Window dimensions in character columns and lines - # (changes require restart) + # Window dimensions (changes require restart) + # + # Specified in number of columns/lines, not pixels. + # If both are `0`, this setting is ignored. dimensions: columns: 80 lines: 24 - # Adds this many blank pixels of padding around the window - # Units are physical pixels; this is not DPI aware. - # (change requires restart) + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is not scaled + # by DPI and the specified value is always added at both opposing sides. padding: x: 2 y: 2 # Window decorations - # Setting this to false will result in window without borders and title bar. - decorations: true + # + # Available values: + # - `full`: Window with title bar and title bar buttons + # - `none`: Window without title bar, rounded corners, or drop shadow + # - `transparent`: Window with title bar with transparent background and title + # bar buttons + # - `buttonless`: Window with title bar with transparent background and no + # title bar buttons + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # - buttonless: Title bar, transparent background and title bar buttons + # - transparent: Title bar, transparent background, but no title bar buttons + decorations: full scrolling: - # How many lines of scrollback to keep, - # '0' will disable scrolling. + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. history: 10000 - # Number of lines the viewport will move for every line - # scrolled when scrollback is enabled (history > 0). + # Number of lines the viewport will move for every line scrolled when + # scrollback is enabled (history > 0). multiplier: 3 # Faux Scrolling # - # The `faux_multiplier` setting controls the number - # of lines the terminal should scroll when the alternate - # screen buffer is active. This is used to allow mouse - # scrolling for applications like `man`. + # The `faux_multiplier` setting controls the number of lines the terminal + # should scroll when the alternate screen buffer is active. This is used + # to allow mouse scrolling for applications like `man`. # - # To disable this completely, set `faux_multiplier` to 0. + # Specifying `0` will disable faux scrolling. faux_multiplier: 3 - # Automatically scroll to the bottom when new text is written - # to the terminal. + # Scroll to the bottom when new text is written to the terminal. auto_scroll: false -# Display tabs using this many cells (changes require restart) +# Spaces per Tab (changes require restart) +# +# This setting defines the width of a tab in cells. +# +# Some applications, like Emacs, rely on knowing about the width of a tab. +# To prevent unexpected behavior in these applications, it's also required to +# change the `it` value in terminfo when altering this setting. tabspaces: 8 -# When true, bold text is drawn using the bright variant of colors. -draw_bold_text_with_bright_colors: true - # Font configuration (changes require restart) font: - # The normal (roman) font face to use. + # Normal (roman) font face normal: family: Menlo - # Style can be specified to pick a specific face. + # The `style` can be specified to pick a specific face. # style: Regular - # The bold font face + # Italic font face bold: family: Menlo - # Style can be specified to pick a specific face. + # The `style` can be specified to pick a specific face. # style: Bold - # The italic font face + # Italic font face italic: family: Menlo - # Style can be specified to pick a specific face. + # The `style` can be specified to pick a specific face. # style: Italic - # Point size of the font + # Point size size: 12.0 - # Offset is the extra space around each character. offset.y can be thought of - # as modifying the linespacing, and offset.x as modifying the letter spacing. + # Offset is the extra space around each character. `offset.y` can be thought of + # as modifying the line spacing, and `offset.x` as modifying the letter spacing. offset: x: 0 y: 0 # Glyph offset determines the locations of the glyphs within their cells with - # the default being at the bottom. Increase the x offset to move the glyph to - # the right, increase the y offset to move the glyph upward. + # the default being at the bottom. Increasing `x` moves the glyph to the right, + # increasing `y` moves the glyph upwards. glyph_offset: x: 0 y: 0 - # OS X only: use thin stroke font rendering. Thin strokes are suitable - # for retina displays, but for non-retina you probably want this set to - # false. + # Thin stroke font rendering (OS X only) + # + # Thin strokes are suitable for retina displays, but for non-retina screens + # it is recommended to set `use_thin_strokes` to `false` use_thin_strokes: true -# Should display the render timer +# Display the time it takes to redraw each frame. render_timer: false -# Use custom cursor colors. If true, display the cursor in the cursor.foreground -# and cursor.background colors, otherwise invert the colors of the cursor. +# Use custom cursor colors. If `true`, the `colors.cursor.foreground` and +# `colors.cursor.background` colors will be used to display the cursor. +# Otherwise the cell colors are inverted for the cursor. custom_cursor_colors: false +# If `true`, bold text is drawn using the bright color variants. +draw_bold_text_with_bright_colors: true + # Colors (Tomorrow Night Bright) colors: # Default colors @@ -115,16 +138,18 @@ colors: background: '0x000000' foreground: '0xeaeaea' - # (Optional) Bright and Dim foreground colors + # Bright and dim foreground colors # # The dimmed foreground color is calculated automatically if it is not present. # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` # is `false`, the normal foreground color will be used. # - # dim_foreground: '0x9a9a9a' - # bright_foreground: '0xffffff' + #dim_foreground: '0x9a9a9a' + #bright_foreground: '0xffffff' - # Colors the cursor will use if `custom_cursor_colors` is true + # Cursor colors + # + # These will only be used when the `custom_cursor_colors` field is set to `true`. cursor: text: '0x000000' cursor: '0xffffff' @@ -151,7 +176,10 @@ colors: cyan: '0x54ced6' white: '0xffffff' - # Dim colors (Optional) + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. dim: black: '0x333333' red: '0xf2777a' @@ -162,7 +190,6 @@ colors: cyan: '0x66cccc' white: '0xdddddd' - # Visual Bell # # Any time the BEL code is received, Alacritty "rings" the visual bell. Once @@ -171,20 +198,19 @@ colors: # setting the `duration` property (represented in milliseconds). You can also # configure the transition function by setting the `animation` property. # -# Possible values for `animation` -# `Ease` -# `EaseOut` -# `EaseOutSine` -# `EaseOutQuad` -# `EaseOutCubic` -# `EaseOutQuart` -# `EaseOutQuint` -# `EaseOutExpo` -# `EaseOutCirc` -# `Linear` -# -# To completely disable the visual bell, set its duration to 0. +# Values for `animation`: +# - Ease +# - EaseOut +# - EaseOutSine +# - EaseOutQuad +# - EaseOutCubic +# - EaseOutQuart +# - EaseOutQuint +# - EaseOutExpo +# - EaseOutCirc +# - Linear # +# Specifying a `duration` of `0` will disable the visual bell. visual_bell: animation: EaseOutExpo duration: 0 @@ -194,8 +220,10 @@ background_opacity: 1.0 # Mouse bindings # -# Currently doesn't support modifiers. Both the `mouse` and `action` fields must -# be specified. +# Available fields: +# - mouse +# - action +# - mods (optional) # # Values for `mouse`: # - Middle @@ -203,10 +231,8 @@ background_opacity: 1.0 # - Right # - Numeric identifier such as `5` # -# Values for `action`: -# - Paste -# - PasteSelection -# - Copy (TODO) +# All available `mods` and `action` values are documented in the key binding +# section. mouse_bindings: - { mouse: Middle, action: PasteSelection } @@ -226,15 +252,16 @@ dynamic_title: true hide_cursor_when_typing: false -# Style of the cursor +# Cursor style # # Values for 'cursor_style': -# - Block -# - Underline -# - Beam +# - Block +# - Underline +# - Beam cursor_style: Block -# Whether the cursor should be a hollow block on window focus loss +# If this is `true`, the cursor will be rendered as a hollow box when the +# window is not focused. unfocused_hollow_cursor: true # Live config reload (changes require restart) @@ -242,60 +269,82 @@ live_config_reload: true # Shell # -# You can set shell.program to the path of your favorite shell, e.g. /bin/fish. -# Entries in shell.args are passed unmodified as arguments to the shell. +# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. +# Entries in `shell.args` are passed unmodified as arguments to the shell. # -# shell: -# program: /bin/bash -# args: -# - --login +#shell: +# program: /bin/bash +# args: +# - --login # Key bindings # -# Each binding is defined as an object with some properties. Most of the -# properties are optional. All of the alphabetical keys should have a letter for -# the `key` value such as `V`. Function keys are probably what you would expect -# as well (F1, F2, ..). The number keys above the main keyboard are encoded as -# `Key1`, `Key2`, etc. Keys on the number pad are encoded `Number1`, `Number2`, -# etc. These all match the glutin::VirtualKeyCode variants. +# Key bindings are specified as a list of objects. Each binding will specify +# a key and modifiers required to trigger it, terminal modes where the binding +# is applicable, and what should be done when the key binding fires. It can +# either send a byte sequnce to the running application (`chars`), execute +# a predefined action (`action`) or fork and execute a specified command plus +# arguments (`command`). # -# A list with all available `key` names can be found here: -# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants +# Example: +# `- { key: V, mods: Command, action: Paste }` # -# Possible values for `mods` -# `Command`, `Super` refer to the super/command/windows key -# `Control` for the control key -# `Shift` for the Shift key -# `Alt` and `Option` refer to alt/option +# Available fields: +# - key +# - mods (optional) +# - chars | action | command (exactly one required) +# - mode (optional) # -# mods may be combined with a `|`. For example, requiring control and shift -# looks like: +# Values for `key`: +# - `A` -> `Z` +# - `F1` -> `F12` +# - `Key1` -> `Key0` # -# mods: Control|Shift +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants # -# The parser is currently quite sensitive to whitespace and capitalization - -# capitalization must match exactly, and piped items must not have whitespace -# around them. +# Values for `mods`: +# - Command +# - Control +# - Shift +# - Alt # -# Either an `action`, `chars`, or `command` field must be present. -# `action` must be one of the following: -# - `Paste` -# - `PasteSelection` -# - `Copy` -# - `IncreaseFontSize` -# - `DecreaseFontSize` -# - `ResetFontSize` -# - `ScrollPageUp` -# - `ScrollPageDown` -# - `ScrollToTop` -# - `ScrollToBottom` -# - `Quit` -# `chars` writes the specified string every time that binding is activated. -# These should generally be escape sequences, but they can be configured to -# send arbitrary strings of bytes. -# `command` must be a map containing a `program` string, and `args` array of -# strings. For example: -# - { ... , command: { program: "alacritty", args: ["-e", "vttest"] } } +# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`. +# Whitespace and capitalization is relevant and must match the example. +# +# Values for `chars`: +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. +# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run +# the command `showkey -a` outside of tmux. +# +# Values for `action`: +# - Paste +# - PasteSelection +# - Copy +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# - Hide +# - Quit +# +# Values for `command`: +# The `command` field must be a map containing a `program` string and +# an `args` array of command line parameter strings. +# +# Example: +# `command: { program: "alacritty", args: ["-e", "vttest"] }` +# +# Values for `mode`: +# - ~AppCursor +# - AppCursor +# - ~AppKeypad +# - AppKeypad key_bindings: - { key: V, mods: Command, action: Paste } - { key: C, mods: Command, action: Copy } diff --git a/assets/osx/Alacritty.app/Contents/Info.plist b/assets/osx/Alacritty.app/Contents/Info.plist index 2792d9cd..5b6870a4 100644 --- a/assets/osx/Alacritty.app/Contents/Info.plist +++ b/assets/osx/Alacritty.app/Contents/Info.plist @@ -32,5 +32,7 @@ CFBundleDisplayName Alacritty + NSRequiresAquaSystemAppearance + NO diff --git a/font/Cargo.toml b/font/Cargo.toml index 47b0e697..df495b61 100644 --- a/font/Cargo.toml +++ b/font/Cargo.toml @@ -16,7 +16,7 @@ servo-fontconfig = { git = "https://github.com/jwilm/rust-fontconfig", branch = freetype-rs = "0.13" [target.'cfg(target_os = "macos")'.dependencies] -core-foundation = "0.5" -core-text = "9.1" -core-graphics = "0.13" -core-foundation-sys = "0.5" +core-foundation = "0.6" +core-text = "13" +core-graphics = "0.17" +core-foundation-sys = "0.6" diff --git a/font/src/darwin/mod.rs b/font/src/darwin/mod.rs index 307edcc7..c6b43352 100644 --- a/font/src/darwin/mod.rs +++ b/font/src/darwin/mod.rs @@ -18,6 +18,7 @@ #![allow(improper_ctypes)] use std::collections::HashMap; use std::ptr; +use std::path::PathBuf; use ::{Slant, Weight, Style}; @@ -56,7 +57,7 @@ pub struct Descriptor { font_name: String, style_name: String, display_name: String, - font_path: String, + font_path: PathBuf, ct_descriptor: CTFontDescriptor } @@ -68,7 +69,7 @@ impl Descriptor { font_name: desc.font_name(), style_name: desc.style_name(), display_name: desc.display_name(), - font_path: desc.font_path().unwrap_or_else(||{"".to_owned()}), + font_path: desc.font_path().unwrap_or_else(PathBuf::new), ct_descriptor: desc, } } @@ -339,8 +340,10 @@ pub fn descriptors_for_family(family: &str) -> Vec { // CFArray of CTFontDescriptorRef (i think) let descriptors = ct_collection.get_descriptors(); - for descriptor in descriptors.iter() { - out.push(Descriptor::new(descriptor.clone())); + if let Some(descriptors) = descriptors { + for descriptor in descriptors.iter() { + out.push(Descriptor::new(descriptor.clone())); + } } out @@ -363,7 +366,7 @@ impl Descriptor { // TODO fixme, hardcoded en for english let mut fallbacks = cascade_list_for_languages(&menlo, &["en".to_owned()]) .into_iter() - .filter(|desc| desc.font_path != "") + .filter(|desc| !desc.font_path.as_os_str().is_empty()) .map(|desc| desc.to_font(size, false)) .collect::>(); @@ -447,12 +450,14 @@ impl Font { let indices = [index as CGGlyph]; - self.ct_font.get_advances_for_glyphs( - FontOrientation::Default as _, - &indices[0], - ptr::null_mut(), - 1 - ) + unsafe { + self.ct_font.get_advances_for_glyphs( + FontOrientation::Default as _, + &indices[0], + ptr::null_mut(), + 1 + ) + } } pub fn get_glyph(&self, character: char, _size: f64, use_thin_strokes: bool) -> Result { @@ -582,11 +587,13 @@ impl Font { // always being a 0. let mut glyphs:[CGGlyph; 2] = [0; 2]; - let res = self.ct_font.get_glyphs_for_characters( - encoded.as_ptr(), - glyphs.as_mut_ptr(), - encoded.len() as CFIndex - ); + let res = unsafe { + self.ct_font.get_glyphs_for_characters( + encoded.as_ptr(), + glyphs.as_mut_ptr(), + encoded.len() as CFIndex + ) + }; if res { Some(u32::from(glyphs[0])) diff --git a/font/src/ft/fc/font_set.rs b/font/src/ft/fc/font_set.rs index a0c4eee0..6b63f439 100644 --- a/font/src/ft/fc/font_set.rs +++ b/font/src/ft/fc/font_set.rs @@ -99,7 +99,7 @@ impl<'a> Iterator for Iter<'a> { None } else { let pattern = unsafe { - let ptr = *(*self.font_set.as_ptr()).fonts.offset(self.current as isize); + let ptr = *(*self.font_set.as_ptr()).fonts.add(self.current); PatternRef::from_ptr(ptr) }; diff --git a/scripts/fg-bg.sh b/scripts/fg-bg.sh index f1ad4d0c..b6e0eaea 100755 --- a/scripts/fg-bg.sh +++ b/scripts/fg-bg.sh @@ -1,14 +1,53 @@ #!/bin/bash -printf "Fg=Black, Bg=Background \e[30;49mTEST\e[m\n" -printf "Fg=Black, Bg=Black \e[30;40mTEST\e[m\n" -printf "Fg=Foreground,Bg=Background \e[39;49mTEST\e[m\n" -printf "Fg=Foreground,Bg=Black \e[39;40mTEST\e[m\n" -printf "Fg=Foreground,Bg=White \e[39;47mTEST\e[m\n" -printf "Fg=White, Bg=Foreground \e[37;39mTEST\e[m\n" -printf "Fg=Black, Bg=Background, Inverse \e[7;30;49mTEST\e[m\n" -printf "Fg=Black, Bg=Black, Inverse \e[7;30;40mTEST\e[m\n" -printf "Fg=Foreground,Bg=Background, Inverse \e[7;39;49mTEST\e[m\n" -printf "Fg=Foreground,Bg=Black, Inverse \e[7;39;40mTEST\e[m\n" -printf "Fg=Foreground,Bg=White, Inverse \e[7;39;47mTEST\e[m\n" -printf "Fg=White, Bg=Foreground, Inverse \e[7;37;39mTEST\e[m\n" +printf "Fg=Black Bg=Black \e[30;40mTEST\e[m\n" +printf "Fg=Black Bg=White \e[30;107mTEST\e[m\n" +printf "Fg=Black Bg=Red \e[30;41mTEST\e[m\n" +printf "Fg=Black Bg=BG \e[30;49mTEST\e[m\n" +printf "Fg=White Bg=Black \e[97;40mTEST\e[m\n" +printf "Fg=White Bg=White \e[97;107mTEST\e[m\n" +printf "Fg=White Bg=Red \e[97;41mTEST\e[m\n" +printf "Fg=White Bg=BG \e[97;49mTEST\e[m\n" +printf "Fg=Red Bg=Black \e[31;40mTEST\e[m\n" +printf "Fg=Red Bg=White \e[31;107mTEST\e[m\n" +printf "Fg=Red Bg=Red \e[31;41mTEST\e[m\n" +printf "Fg=Red Bg=BG \e[31;49mTEST\e[m\n" +printf "\n" +printf "Fg=Black Bg=Black Inverse \e[7;30;40mTEST\e[m\n" +printf "Fg=Black Bg=White Inverse \e[7;30;107mTEST\e[m\n" +printf "Fg=Black Bg=Red Inverse \e[7;30;41mTEST\e[m\n" +printf "Fg=Black Bg=BG Inverse \e[7;30;49mTEST\e[m\n" +printf "Fg=White Bg=Black Inverse \e[7;97;40mTEST\e[m\n" +printf "Fg=White Bg=White Inverse \e[7;97;107mTEST\e[m\n" +printf "Fg=White Bg=Red Inverse \e[7;97;41mTEST\e[m\n" +printf "Fg=White Bg=BG Inverse \e[7;97;49mTEST\e[m\n" +printf "Fg=Red Bg=Black Inverse \e[7;31;40mTEST\e[m\n" +printf "Fg=Red Bg=White Inverse \e[7;31;107mTEST\e[m\n" +printf "Fg=Red Bg=Red Inverse \e[7;31;41mTEST\e[m\n" +printf "Fg=Red Bg=BG Inverse \e[7;31;49mTEST\e[m\n" +printf "\n" +printf "Fg=Black Bg=Black Hidden \e[8;30;40mTEST\e[m\n" +printf "Fg=Black Bg=White Hidden \e[8;30;107mTEST\e[m\n" +printf "Fg=Black Bg=Red Hidden \e[8;30;41mTEST\e[m\n" +printf "Fg=Black Bg=BG Hidden \e[8;30;49mTEST\e[m\n" +printf "Fg=White Bg=Black Hidden \e[8;97;40mTEST\e[m\n" +printf "Fg=White Bg=White Hidden \e[8;97;107mTEST\e[m\n" +printf "Fg=White Bg=Red Hidden \e[8;97;41mTEST\e[m\n" +printf "Fg=White Bg=BG Hidden \e[8;97;49mTEST\e[m\n" +printf "Fg=Red Bg=Black Hidden \e[8;31;40mTEST\e[m\n" +printf "Fg=Red Bg=White Hidden \e[8;31;107mTEST\e[m\n" +printf "Fg=Red Bg=Red Hidden \e[8;31;41mTEST\e[m\n" +printf "Fg=Red Bg=BG Hidden \e[8;31;49mTEST\e[m\n" +printf "\n" +printf "Fg=Black Bg=Black Hid+Inv \e[7;8;30;40mTEST\e[m\n" +printf "Fg=Black Bg=White Hid+Inv \e[7;8;30;107mTEST\e[m\n" +printf "Fg=Black Bg=Red Hid+Inv \e[7;8;30;41mTEST\e[m\n" +printf "Fg=Black Bg=BG Hid+Inv \e[7;8;30;49mTEST\e[m\n" +printf "Fg=White Bg=Black Hid+Inv \e[7;8;97;40mTEST\e[m\n" +printf "Fg=White Bg=White Hid+Inv \e[7;8;97;107mTEST\e[m\n" +printf "Fg=White Bg=Red Hid+Inv \e[7;8;97;41mTEST\e[m\n" +printf "Fg=White Bg=BG Hid+Inv \e[7;8;97;49mTEST\e[m\n" +printf "Fg=Red Bg=Black Hid+Inv \e[7;8;31;40mTEST\e[m\n" +printf "Fg=Red Bg=White Hid+Inv \e[7;8;31;107mTEST\e[m\n" +printf "Fg=Red Bg=Red Hid+Inv \e[7;8;31;41mTEST\e[m\n" +printf "Fg=Red Bg=BG Hid+Inv \e[7;8;31;49mTEST\e[m\n" diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 64594a9c..11681434 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -15,8 +15,8 @@ parts: plugin: dump source: . stage: - - Alacritty.desktop + - alacritty.desktop apps: alacritty: command: env XDG_RUNTIME_DIR= XDG_CONFIG_HOME=$SNAP_USER_DATA XDG_DATA_DIRS=$SNAP_DATA PATH=$SNAP/bin:$PATH SNAP= alacritty - desktop: Alacritty.desktop + desktop: alacritty.desktop diff --git a/src/config.rs b/src/config.rs index 295f54cc..e478c3ce 100644 --- a/src/config.rs +++ b/src/config.rs @@ -30,6 +30,8 @@ use ansi::CursorStyle; use util::fmt::Yellow; +const MAX_SCROLLBACK_LINES: u32 = 100_000; + /// Function that returns true for serde default fn true_bool() -> bool { true @@ -246,6 +248,91 @@ impl Default for Alpha { } } +#[derive(Debug, Copy, Clone)] +pub enum Decorations { + Full, + Transparent, + Buttonless, + None, +} + +impl Default for Decorations { + fn default() -> Decorations { + Decorations::Full + } +} + +impl<'de> Deserialize<'de> for Decorations { + fn deserialize(deserializer: D) -> ::std::result::Result + where D: de::Deserializer<'de> + { + + struct DecorationsVisitor; + + impl<'de> Visitor<'de> for DecorationsVisitor { + type Value = Decorations; + + fn expecting(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.write_str("Some subset of full|transparent|buttonless|none") + } + + fn visit_bool(self, value: bool) -> ::std::result::Result + where E: de::Error + { + if value { + eprintln!("deprecated decorations boolean value, use one of \ + default|transparent|buttonless|none instead; Falling back to \"full\""); + Ok(Decorations::Full) + } else { + eprintln!("deprecated decorations boolean value, use one of \ + default|transparent|buttonless|none instead; Falling back to \"none\""); + Ok(Decorations::None) + } + } + + #[cfg(target_os = "macos")] + fn visit_str(self, value: &str) -> ::std::result::Result + where E: de::Error + { + match value { + "transparent" => Ok(Decorations::Transparent), + "buttonless" => Ok(Decorations::Buttonless), + "none" => Ok(Decorations::None), + "full" => Ok(Decorations::Full), + _ => { + eprintln!("invalid decorations value: {}; Using default value", value); + Ok(Decorations::Full) + } + } + } + + #[cfg(not(target_os = "macos"))] + fn visit_str(self, value: &str) -> ::std::result::Result + where E: de::Error + { + match value.to_lowercase().as_str() { + "none" => Ok(Decorations::None), + "full" => Ok(Decorations::Full), + "transparent" => { + eprintln!("macos-only decorations value: {}; Using default value", value); + Ok(Decorations::Full) + }, + "buttonless" => { + eprintln!("macos-only decorations value: {}; Using default value", value); + Ok(Decorations::Full) + } + _ => { + eprintln!("invalid decorations value: {}; Using default value", value); + Ok(Decorations::Full) + } + } + } + } + + deserializer.deserialize_str(DecorationsVisitor) + } +} + #[derive(Debug, Copy, Clone, Deserialize)] pub struct WindowConfig { /// Initial dimensions @@ -257,8 +344,8 @@ pub struct WindowConfig { padding: Delta, /// Draw the window with title bar / borders - #[serde(default, deserialize_with = "failure_default")] - decorations: bool, + #[serde(default)] + decorations: Decorations, } fn default_padding() -> Delta { @@ -278,7 +365,7 @@ fn deserialize_padding<'a, D>(deserializer: D) -> ::std::result::Result bool { + pub fn decorations(&self) -> Decorations { self.decorations } } @@ -288,7 +375,7 @@ impl Default for WindowConfig { WindowConfig{ dimensions: Default::default(), padding: default_padding(), - decorations: true, + decorations: Default::default(), } } } @@ -511,7 +598,18 @@ fn deserialize_scrolling_history<'a, D>(deserializer: D) -> ::std::result::Resul where D: de::Deserializer<'a> { match u32::deserialize(deserializer) { - Ok(lines) => Ok(lines), + Ok(lines) => { + if lines > MAX_SCROLLBACK_LINES { + eprintln!( + "problem with config: scrollback size is {}, but expected a maximum of {}; \ + Using {1} instead", + lines, MAX_SCROLLBACK_LINES, + ); + Ok(MAX_SCROLLBACK_LINES) + } else { + Ok(lines) + } + }, Err(err) => { eprintln!("problem with config: {}; Using default value", err); Ok(default_scrolling_history()) diff --git a/src/display.rs b/src/display.rs index 3d71631e..0c0f0aac 100644 --- a/src/display.rs +++ b/src/display.rs @@ -26,6 +26,7 @@ use font::{self, Rasterize}; use meter::Meter; use renderer::{self, GlyphCache, QuadRenderer}; use term::{Term, SizeInfo}; +use sync::FairMutex; use window::{self, Window}; @@ -99,7 +100,6 @@ pub struct Display { meter: Meter, font_size: font::Size, size_info: SizeInfo, - last_background_color: Rgb, } /// Can wakeup the render loop from other threads @@ -208,7 +208,6 @@ impl Display { meter: Meter::new(), font_size: font::Size::new(0.), size_info, - last_background_color: background_color, }) } @@ -333,7 +332,29 @@ impl Display { /// A reference to Term whose state is being drawn must be provided. /// /// This call may block if vsync is enabled - pub fn draw(&mut self, mut terminal: MutexGuard, config: &Config) { + pub fn draw(&mut self, terminal: &FairMutex, config: &Config) { + let terminal_locked = terminal.lock(); + let size_info = *terminal_locked.size_info(); + let visual_bell_intensity = terminal_locked.visual_bell.intensity(); + let background_color = terminal_locked.background_color(); + + // Clear when terminal mutex isn't held. Mesa for + // some reason takes a long time to call glClear(). The driver descends + // into xcb_connect_to_fd() which ends up calling __poll_nocancel() + // which blocks for a while. + // + // By keeping this outside of the critical region, the Mesa bug is + // worked around to some extent. Since this doesn't actually address the + // issue of glClear being slow, less time is available for input + // handling and rendering. + drop(terminal_locked); + + self.renderer.with_api(config, &size_info, visual_bell_intensity, |api| { + api.clear(background_color); + }); + + let mut terminal = terminal.lock(); + // Clear dirty flag terminal.dirty = !terminal.visual_bell.completed(); @@ -353,13 +374,6 @@ impl Display { } } - let size_info = *terminal.size_info(); - let visual_bell_intensity = terminal.visual_bell.intensity(); - - let background_color = terminal.background_color(); - let background_color_changed = background_color != self.last_background_color; - self.last_background_color = background_color; - { let glyph_cache = &mut self.glyph_cache; @@ -374,11 +388,6 @@ impl Display { // mutable borrow let window_focused = self.window.is_focused; self.renderer.with_api(config, &size_info, visual_bell_intensity, |mut api| { - // Clear screen to update whole background with new color - if background_color_changed { - api.clear(background_color); - } - // Draw the grid api.render_cells( terminal.renderable_cells(config, window_focused), @@ -402,19 +411,6 @@ impl Display { self.window .swap_buffers() .expect("swap buffers"); - - // Clear after swap_buffers when terminal mutex isn't held. Mesa for - // some reason takes a long time to call glClear(). The driver descends - // into xcb_connect_to_fd() which ends up calling __poll_nocancel() - // which blocks for a while. - // - // By keeping this outside of the critical region, the Mesa bug is - // worked around to some extent. Since this doesn't actually address the - // issue of glClear being slow, less time is available for input - // handling and rendering. - self.renderer.with_api(config, &size_info, visual_bell_intensity, |api| { - api.clear(background_color); - }); } pub fn get_window_id(&self) -> Option { diff --git a/src/event.rs b/src/event.rs index 03243c6e..258867a2 100644 --- a/src/event.rs +++ b/src/event.rs @@ -347,7 +347,7 @@ impl Processor { processor.received_char(c); }, MouseInput { state, button, modifiers, .. } => { - if *window_is_focused { + if !cfg!(target_os = "macos") || *window_is_focused { *hide_cursor = false; processor.mouse_input(state, button, modifiers); processor.ctx.terminal.dirty = true; diff --git a/src/grid/row.rs b/src/grid/row.rs index 69a4f2b2..7c12bf99 100644 --- a/src/grid/row.rs +++ b/src/grid/row.rs @@ -15,7 +15,7 @@ //! Defines the Row type which makes up lines in the grid use std::ops::{Index, IndexMut}; -use std::ops::{Range, RangeTo, RangeFrom, RangeFull}; +use std::ops::{Range, RangeTo, RangeFrom, RangeFull, RangeToInclusive}; use std::cmp::{max, min}; use std::slice; @@ -200,3 +200,20 @@ impl IndexMut for Row { &mut self.inner[..] } } + +impl Index> for Row { + type Output = [T]; + + #[inline] + fn index(&self, index: RangeToInclusive) -> &[T] { + &self.inner[..=(index.end.0)] + } +} + +impl IndexMut> for Row { + #[inline] + fn index_mut(&mut self, index: RangeToInclusive) -> &mut [T] { + self.occ = max(self.occ, *index.end); + &mut self.inner[..=(index.end.0)] + } +} diff --git a/src/grid/storage.rs b/src/grid/storage.rs index ad94cf2b..55c73b87 100644 --- a/src/grid/storage.rs +++ b/src/grid/storage.rs @@ -223,7 +223,7 @@ impl Storage { /// instructions. This implementation achieves the swap in only 8 movups /// instructions. pub fn swap(&mut self, a: usize, b: usize) { - assert_eq_size!(Row, [u32; 8]); + assert_eq_size!(Row, [usize; 4]); let a = self.compute_index(a); let b = self.compute_index(b); @@ -232,13 +232,13 @@ impl Storage { // Cast to a qword array to opt out of copy restrictions and avoid // drop hazards. Byte array is no good here since for whatever // reason LLVM won't optimized it. - let a_ptr = self.inner.as_mut_ptr().offset(a as isize) as *mut u64; - let b_ptr = self.inner.as_mut_ptr().offset(b as isize) as *mut u64; + let a_ptr = self.inner.as_mut_ptr().add(a) as *mut usize; + let b_ptr = self.inner.as_mut_ptr().add(b) as *mut usize; // Copy 1 qword at a time // // The optimizer unrolls this loop and vectorizes it. - let mut tmp: u64; + let mut tmp: usize; for i in 0..4 { tmp = *a_ptr.offset(i); *a_ptr.offset(i) = *b_ptr.offset(i); diff --git a/src/input.rs b/src/input.rs index 9abd94a7..7be4d6c2 100644 --- a/src/input.rs +++ b/src/input.rs @@ -211,7 +211,7 @@ impl Action { Action::Paste => { Clipboard::new() .and_then(|clipboard| clipboard.load_primary() ) - .map(|contents| { self.paste(ctx, contents) }) + .map(|contents| { self.paste(ctx, &contents) }) .unwrap_or_else(|err| { eprintln!("Error loading data from clipboard. {}", Red(err)); }); @@ -222,7 +222,7 @@ impl Action { if !ctx.terminal_mode().intersects(mouse_modes) { Clipboard::new() .and_then(|clipboard| clipboard.load_selection() ) - .map(|contents| { self.paste(ctx, contents) }) + .map(|contents| { self.paste(ctx, &contents) }) .unwrap_or_else(|err| { warn!("Error loading data from clipboard. {}", Red(err)); }); @@ -282,10 +282,10 @@ impl Action { } } - fn paste(&self, ctx: &mut A, contents: String) { + fn paste(&self, ctx: &mut A, contents: &str) { if ctx.terminal_mode().contains(TermMode::BRACKETED_PASTE) { ctx.write_to_pty(&b"\x1b[200~"[..]); - ctx.write_to_pty(contents.into_bytes()); + ctx.write_to_pty(contents.replace("\x1b","").into_bytes()); ctx.write_to_pty(&b"\x1b[201~"[..]); } else { // In non-bracketed (ie: normal) mode, terminal applications cannot distinguish diff --git a/src/locale.rs b/src/locale.rs index bea68cad..833de71e 100644 --- a/src/locale.rs +++ b/src/locale.rs @@ -67,7 +67,7 @@ pub fn set_locale_environment() { // try setting `locale_id` let modified = setlocale(LC_CTYPE, locale_ptr); let result = if modified.is_null() { - String::from("") + String::new() } else { locale_id }; diff --git a/src/main.rs b/src/main.rs index 0888c9b5..03a372df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -173,7 +173,7 @@ fn run(mut config: Config, options: &cli::Options) -> Result<(), Box> { // Main display loop loop { // Process input and window events - let mut terminal = processor.process_events(&terminal, display.window()); + let mut terminal_lock = processor.process_events(&terminal, display.window()); // Handle config reloads if let Some(new_config) = config_monitor @@ -183,22 +183,23 @@ fn run(mut config: Config, options: &cli::Options) -> Result<(), Box> { config = new_config.update_dynamic_title(options); display.update_config(&config); processor.update_config(&config); - terminal.update_config(&config); - terminal.dirty = true; + terminal_lock.update_config(&config); + terminal_lock.dirty = true; } // Maybe draw the terminal - if terminal.needs_draw() { + if terminal_lock.needs_draw() { // Try to update the position of the input method editor - display.update_ime_position(&terminal); + display.update_ime_position(&terminal_lock); // Handle pending resize events // // The second argument is a list of types that want to be notified // of display size changes. - display.handle_resize(&mut terminal, &config, &mut [&mut pty, &mut processor]); + display.handle_resize(&mut terminal_lock, &config, &mut [&mut pty, &mut processor]); + drop(terminal_lock); // Draw the current state of the terminal - display.draw(terminal, &config); + display.draw(&terminal, &config); } // Begin shutdown if the flag was raised. diff --git a/src/renderer/mod.rs b/src/renderer/mod.rs index f2f9fdd7..ffd973b0 100644 --- a/src/renderer/mod.rs +++ b/src/renderer/mod.rs @@ -837,12 +837,17 @@ impl<'a> RenderApi<'a> { glyph_cache.font_key }; - let glyph_key = GlyphKey { + let mut glyph_key = GlyphKey { font_key, size: glyph_cache.font_size, c: cell.c }; + // Don't render text of HIDDEN cells + if cell.flags.contains(cell::Flags::HIDDEN) { + glyph_key.c = ' '; + } + // Add cell to batch { let glyph = glyph_cache.get(glyph_key, self); diff --git a/src/term/cell.rs b/src/term/cell.rs index a04eb8e1..ef8509dc 100644 --- a/src/term/cell.rs +++ b/src/term/cell.rs @@ -18,15 +18,16 @@ use index::Column; bitflags! { #[derive(Serialize, Deserialize)] pub struct Flags: u32 { - const INVERSE = 0b0000_0001; - const BOLD = 0b0000_0010; - const ITALIC = 0b0000_0100; - const UNDERLINE = 0b0000_1000; - const WRAPLINE = 0b0001_0000; - const WIDE_CHAR = 0b0010_0000; - const WIDE_CHAR_SPACER = 0b0100_0000; - const DIM = 0b1000_0000; - const DIM_BOLD = 0b1000_0010; + const INVERSE = 0b0_0000_0001; + const BOLD = 0b0_0000_0010; + const ITALIC = 0b0_0000_0100; + const UNDERLINE = 0b0_0000_1000; + const WRAPLINE = 0b0_0001_0000; + const WIDE_CHAR = 0b0_0010_0000; + const WIDE_CHAR_SPACER = 0b0_0100_0000; + const DIM = 0b0_1000_0000; + const DIM_BOLD = 0b0_1000_0010; + const HIDDEN = 0b1_0000_0000; } } diff --git a/src/term/mod.rs b/src/term/mod.rs index 65a6480b..b3a9107a 100644 --- a/src/term/mod.rs +++ b/src/term/mod.rs @@ -14,9 +14,8 @@ // //! Exports the `Term` type which is a high-level API for the Grid use std::ops::{Range, Index, IndexMut}; -use std::ptr; +use std::{ptr, io, mem}; use std::cmp::{min, max}; -use std::io; use std::time::{Duration, Instant}; use arraydeque::ArrayDeque; @@ -424,26 +423,15 @@ impl<'a> Iterator for RenderableCellsIter<'a> { }; // Apply inversion and lookup RGB values - let mut bg_alpha = 1.0; - let fg_rgb; - let bg_rgb; + let mut fg_rgb = self.compute_fg_rgb(cell.fg, &cell); + let mut bg_rgb = self.compute_bg_rgb(cell.bg); - let invert = selected ^ cell.inverse(); - - if invert { - if cell.fg == cell.bg { - bg_rgb = self.colors[NamedColor::Foreground]; - fg_rgb = self.colors[NamedColor::Background]; - bg_alpha = 1.0 - } else { - bg_rgb = self.compute_fg_rgb(cell.fg, &cell); - fg_rgb = self.compute_bg_rgb(cell.bg); - } + let bg_alpha = if selected ^ cell.inverse() { + mem::swap(&mut fg_rgb, &mut bg_rgb); + self.compute_bg_alpha(cell.fg) } else { - fg_rgb = self.compute_fg_rgb(cell.fg, &cell); - bg_rgb = self.compute_bg_rgb(cell.bg); - bg_alpha = self.compute_bg_alpha(cell.bg); - } + self.compute_bg_alpha(cell.bg) + }; return Some(RenderableCell { line: cell.line, @@ -1729,7 +1717,7 @@ impl ansi::Handler for Term { }, ansi::LineClearMode::Left => { let row = &mut self.grid[self.cursor.point.line]; - for cell in &mut row[..(col + 1)] { + for cell in &mut row[..=col] { cell.reset(&template); } }, @@ -1881,6 +1869,8 @@ impl ansi::Handler for Term { Attr::CancelItalic => self.cursor.template.flags.remove(cell::Flags::ITALIC), Attr::Underscore => self.cursor.template.flags.insert(cell::Flags::UNDERLINE), Attr::CancelUnderline => self.cursor.template.flags.remove(cell::Flags::UNDERLINE), + Attr::Hidden => self.cursor.template.flags.insert(cell::Flags::HIDDEN), + Attr::CancelHidden => self.cursor.template.flags.remove(cell::Flags::HIDDEN), _ => { debug!("Term got unhandled attr: {:?}", attr); } diff --git a/src/tty.rs b/src/tty.rs index 4da11c0e..9f6a2e64 100644 --- a/src/tty.rs +++ b/src/tty.rs @@ -211,6 +211,7 @@ pub fn new(config: &Config, options: &Options, size: &T, window_id builder.env("SHELL", shell.program()); builder.env("HOME", pw.dir); builder.env("TERM", "xterm-256color"); // default term until we can supply our own + builder.env("COLORTERM", "truecolor"); // advertise 24-bit support if let Some(window_id) = window_id { builder.env("WINDOWID", format!("{}", window_id)); } diff --git a/src/window.rs b/src/window.rs index 38fdef49..b8c51258 100644 --- a/src/window.rs +++ b/src/window.rs @@ -19,12 +19,11 @@ use glutin::{self, ContextBuilder, ControlFlow, Event, EventsLoop, MouseCursor as GlutinMouseCursor, WindowBuilder}; use glutin::GlContext; - use {LogicalPosition, LogicalSize, MouseCursor, PhysicalSize}; use cli::Options; -use config::WindowConfig; +use config::{Decorations, WindowConfig}; /// Default text for the window's title bar, if not overriden. /// @@ -104,12 +103,8 @@ impl ::std::error::Error for Error { impl Display for Error { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { match *self { - Error::ContextCreation(ref err) => { - write!(f, "Error creating GL context; {}", err) - }, - Error::Context(ref err) => { - write!(f, "Error operating on render context; {}", err) - }, + Error::ContextCreation(ref err) => write!(f, "Error creating GL context; {}", err), + Error::Context(ref err) => write!(f, "Error operating on render context; {}", err), } } } @@ -142,19 +137,12 @@ impl Window { /// Create a new window /// /// This creates a window and fully initializes a window. - pub fn new( - options: &Options, - window_config: &WindowConfig, - ) -> Result { + pub fn new(options: &Options, window_config: &WindowConfig) -> Result { let event_loop = EventsLoop::new(); let title = options.title.as_ref().map_or(DEFAULT_TITLE, |t| t); let class = options.class.as_ref().map_or(DEFAULT_CLASS, |c| c); - let window_builder = WindowBuilder::new() - .with_title(title) - .with_visibility(false) - .with_transparency(true) - .with_decorations(window_config.decorations()); + let window_builder = Window::get_platform_window(title, window_config); let window_builder = Window::platform_builder_ext(window_builder, &class); let window = create_gl_window(window_builder.clone(), &event_loop, false) .or_else(|_| create_gl_window(window_builder, &event_loop, true))?; @@ -175,7 +163,7 @@ impl Window { event_loop, window, cursor_visible: true, - is_focused: true, + is_focused: false, }; window.run_os_extensions(); @@ -196,7 +184,7 @@ impl Window { pub fn inner_size_pixels(&self) -> Option { self.window.get_inner_size() } - + pub fn set_inner_size(&mut self, size: LogicalSize) { self.window.set_inner_size(size); } @@ -215,15 +203,14 @@ impl Window { #[inline] pub fn swap_buffers(&self) -> Result<()> { - self.window - .swap_buffers() - .map_err(From::from) + self.window.swap_buffers().map_err(From::from) } /// Poll for any available events #[inline] pub fn poll_events(&mut self, func: F) - where F: FnMut(Event) + where + F: FnMut(Event), { self.event_loop.poll_events(func); } @@ -236,7 +223,8 @@ impl Window { /// Block waiting for events #[inline] pub fn wait_events(&mut self, func: F) - where F: FnMut(Event) -> ControlFlow + where + F: FnMut(Event) -> ControlFlow, { self.event_loop.run_forever(func); } @@ -263,24 +251,95 @@ impl Window { } } - #[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "openbsd"))] + #[cfg( + any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "openbsd" + ) + )] fn platform_builder_ext(window_builder: WindowBuilder, wm_class: &str) -> WindowBuilder { use glutin::os::unix::WindowBuilderExt; window_builder.with_class(wm_class.to_owned(), "Alacritty".to_owned()) } - #[cfg(not(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "openbsd")))] + #[cfg( + not( + any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "openbsd" + ) + ) + )] fn platform_builder_ext(window_builder: WindowBuilder, _: &str) -> WindowBuilder { window_builder } - #[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "openbsd"))] + #[cfg(not(target_os = "macos"))] + pub fn get_platform_window(title: &str, window_config: &WindowConfig) -> WindowBuilder { + let decorations = match window_config.decorations() { + Decorations::None => false, + _ => true, + }; + + WindowBuilder::new() + .with_title(title) + .with_visibility(false) + .with_transparency(true) + .with_decorations(decorations) + } + + #[cfg(target_os = "macos")] + pub fn get_platform_window(title: &str, window_config: &WindowConfig) -> WindowBuilder { + use glutin::os::macos::WindowBuilderExt; + + let window = WindowBuilder::new() + .with_title(title) + .with_visibility(false) + .with_transparency(true); + + match window_config.decorations() { + Decorations::Full => window, + Decorations::Transparent => window + .with_title_hidden(true) + .with_titlebar_transparent(true) + .with_fullsize_content_view(true), + Decorations::Buttonless => window + .with_title_hidden(true) + .with_titlebar_buttons_hidden(true) + .with_titlebar_transparent(true) + .with_fullsize_content_view(true), + Decorations::None => window + .with_titlebar_hidden(true), + } + } + + #[cfg( + any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "openbsd" + ) + )] pub fn set_urgent(&self, is_urgent: bool) { use glutin::os::unix::WindowExt; self.window.set_urgent(is_urgent); } - #[cfg(not(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "openbsd")))] + #[cfg( + not( + any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "openbsd" + ) + ) + )] pub fn set_urgent(&self, _is_urgent: bool) {} pub fn set_ime_spot(&self, pos: LogicalPosition) { @@ -293,7 +352,7 @@ impl Window { match self.window.get_xlib_window() { Some(xlib_window) => Some(xlib_window as usize), - None => None + None => None, } } @@ -312,17 +371,28 @@ pub trait OsExtensions { fn run_os_extensions(&self) {} } -#[cfg(not(any(target_os = "linux", target_os = "freebsd", target_os="dragonfly", target_os="openbsd")))] -impl OsExtensions for Window { } +#[cfg( + not( + any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "openbsd" + ) + ) +)] +impl OsExtensions for Window {} -#[cfg(any(target_os = "linux", target_os = "freebsd", target_os="dragonfly", target_os="openbsd"))] +#[cfg( + any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "openbsd") +)] impl OsExtensions for Window { fn run_os_extensions(&self) { use glutin::os::unix::WindowExt; - use x11_dl::xlib::{self, XA_CARDINAL, PropModeReplace}; - use std::ffi::{CStr}; - use std::ptr; use libc::getpid; + use std::ffi::CStr; + use std::ptr; + use x11_dl::xlib::{self, PropModeReplace, XA_CARDINAL}; let xlib_display = self.window.get_xlib_display(); let xlib_window = self.window.get_xlib_window(); @@ -336,17 +406,32 @@ impl OsExtensions for Window { let atom = (xlib.XInternAtom)(xlib_display as *mut _, _net_wm_pid.as_ptr(), 0); let pid = getpid(); - (xlib.XChangeProperty)(xlib_display as _, xlib_window as _, atom, - XA_CARDINAL, 32, PropModeReplace, &pid as *const i32 as *const u8, 1); - + (xlib.XChangeProperty)( + xlib_display as _, + xlib_window as _, + atom, + XA_CARDINAL, + 32, + PropModeReplace, + &pid as *const i32 as *const u8, + 1, + ); } // Although this call doesn't actually pass any data, it does cause // WM_CLIENT_MACHINE to be set. WM_CLIENT_MACHINE MUST be set if _NET_WM_PID is set // (which we do above). unsafe { - (xlib.XSetWMProperties)(xlib_display as _, xlib_window as _, ptr::null_mut(), - ptr::null_mut(), ptr::null_mut(), 0, ptr::null_mut(), ptr::null_mut(), - ptr::null_mut()); + (xlib.XSetWMProperties)( + xlib_display as _, + xlib_window as _, + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + 0, + ptr::null_mut(), + ptr::null_mut(), + ptr::null_mut(), + ); } } }