diff --git a/.builds/freebsd.yml b/.builds/freebsd.yml index 88232e5de1..ba863a55f3 100644 --- a/.builds/freebsd.yml +++ b/.builds/freebsd.yml @@ -24,8 +24,8 @@ tasks: cargo test - oldstable: | cd alacritty - rustup toolchain install --profile minimal 1.46.0 - rustup default 1.46.0 + rustup toolchain install --profile minimal 1.53.0 + rustup default 1.53.0 cargo test - clippy: | cd alacritty diff --git a/.builds/linux.yml b/.builds/linux.yml index 3dc3655305..c23375f588 100644 --- a/.builds/linux.yml +++ b/.builds/linux.yml @@ -27,8 +27,8 @@ tasks: cargo +nightly fmt -- --check - oldstable: | cd alacritty - rustup toolchain install --profile minimal 1.46.0 - rustup default 1.46.0 + rustup toolchain install --profile minimal 1.53.0 + rustup default 1.53.0 cargo test - clippy: | cd alacritty diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f0b713cbdf..65e8f2774a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: run: cargo test - name: Oldstable run: | - rustup default 1.46.0 + rustup default 1.53.0 cargo test - name: Clippy run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fe814ae23..5ec65dce42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Packaging - New `extra/alacritty-msg.man` manpage for the `alacritty msg` subcommand +- Minimum Rust version has been bumped to 1.53.0 ### Added - Option `colors.transparent_background_colors` to allow applying opacity to all background colors - Support for running multiple windows from a single Alacritty instance (see docs/features.md) +- Urgency support on Wayland via `xdg_activation_v1` ### Changed @@ -29,6 +31,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Invisible cursor with matching foreground/background colors - Crash when hovering over a match emptied by post-processing +### Removed + +- Wayland client side decorations were simplified + ## 0.9.0 ### Packaging diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5794fc8a6d..0d262082a0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,7 +42,7 @@ and [easy](https://github.com/alacritty/alacritty/issues?q=is%3Aopen+is%3Aissue+label%3A%22D+-+easy%22) issues. -Please note that the minimum supported version of Alacritty is Rust 1.46.0. All patches are expected +Please note that the minimum supported version of Alacritty is Rust 1.53.0. All patches are expected to work with the minimum supported version. Since `alacritty_terminal`'s version always tracks the next release, make sure that the version is diff --git a/Cargo.lock b/Cargo.lock index 71a0955421..1fd188d8cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,13 +1,5 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 - -[[package]] -name = "ab_glyph_rasterizer" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9fe5e32de01730eb1f6b7f5b51c17e03e2325bf40a74f754f04f130043affff" - [[package]] name = "adler32" version = "1.2.0" @@ -22,7 +14,7 @@ dependencies = [ "alacritty_terminal", "bitflags", "clap", - "cocoa 0.24.0", + "cocoa", "copypasta", "crossfont", "dirs", @@ -71,11 +63,11 @@ dependencies = [ "dirs", "libc", "log", - "mio", + "mio 0.6.23", "mio-anonymous-pipes", "mio-extras", "miow 0.3.7", - "nix 0.22.0", + "nix", "parking_lot", "regex-automata", "serde", @@ -88,19 +80,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "andrew" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4afb09dd642feec8408e33f92f3ffc4052946f6b20f32fb99c1f58cd4fa7cf" -dependencies = [ - "bitflags", - "rusttype", - "walkdir", - "xdg", - "xml-rs", -] - [[package]] name = "android_glue" version = "0.2.3" @@ -151,14 +130,20 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "bumpalo" +version = "3.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" + [[package]] name = "calloop" -version = "0.6.5" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b036167e76041694579972c28cf4877b4f92da222560ddb49008937b6a6727c" +checksum = "42dcfbd723aa6eff9f024cfd5ad08b11144d79b2d8d37b4a31a006ceab255c77" dependencies = [ "log", - "nix 0.18.0", + "nix", ] [[package]] @@ -222,22 +207,6 @@ dependencies = [ "cc", ] -[[package]] -name = "cocoa" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54201c07dcf3a5ca33fececb8042aed767ee4bfd5a0235a8ceabcda956044b2" -dependencies = [ - "bitflags", - "block", - "cocoa-foundation", - "core-foundation 0.9.1", - "core-graphics 0.22.2", - "foreign-types 0.3.2", - "libc", - "objc", -] - [[package]] name = "cocoa" version = "0.24.0" @@ -392,7 +361,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c0967e93a0440865bf1d867c3a50d6993f5054b2a10186fc2830397918241d" dependencies = [ - "cocoa 0.24.0", + "cocoa", "core-foundation 0.9.1", "core-foundation-sys 0.8.2", "core-graphics 0.22.2", @@ -407,11 +376,17 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + [[package]] name = "darling" -version = "0.10.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +checksum = "757c0ded2af11d8e739c4daea1ac623dd1624b06c844cf3f5a39f1bdbd99bb12" dependencies = [ "darling_core", "darling_macro", @@ -419,23 +394,23 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.10.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +checksum = "2c34d8efb62d0c2d7f60ece80f75e5c63c1588ba68032740494b0b9a996466e3" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.9.3", + "strsim 0.10.0", "syn", ] [[package]] name = "darling_macro" -version = "0.10.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +checksum = "ade7bff147130fe5e6d39f089c6bd49ec0250f35d70b2eebf72afdfc919f15cc" dependencies = [ "darling_core", "quote", @@ -479,22 +454,13 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" -[[package]] -name = "dlib" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76" -dependencies = [ - "libloading 0.6.7", -] - [[package]] name = "dlib" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" dependencies = [ - "libloading 0.7.0", + "libloading", ] [[package]] @@ -685,13 +651,13 @@ dependencies = [ [[package]] name = "glutin" -version = "0.26.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ae1cbb9176b9151c4ce03f012e3cd1c6c18c4be79edeaeb3d99f5d8085c5fa3" +checksum = "00ea9dbe544bc8a657c4c4a798c2d16cd01b549820e47657297549d28371f6d2" dependencies = [ "android_glue", "cgl", - "cocoa 0.23.0", + "cocoa", "core-foundation 0.9.1", "glutin_egl_sys", "glutin_emscripten_sys", @@ -699,7 +665,7 @@ dependencies = [ "glutin_glx_sys", "glutin_wgl_sys", "lazy_static", - "libloading 0.6.7", + "libloading", "log", "objc", "osmesa-sys", @@ -806,6 +772,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" dependencies = [ "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", ] [[package]] @@ -829,6 +798,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "js-sys" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "kernel32-sys" version = "0.2.2" @@ -869,16 +847,6 @@ version = "0.2.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790" -[[package]] -name = "libloading" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" -dependencies = [ - "cfg-if 1.0.0", - "winapi 0.3.9", -] - [[package]] name = "libloading" version = "0.7.0" @@ -937,18 +905,9 @@ checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] name = "memmap2" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a" -dependencies = [ - "libc", -] - -[[package]] -name = "memmap2" -version = "0.2.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4" +checksum = "00b6c2ebff6180198788f5db08d7ce3bc1d0b617176678831a7510825973e357" dependencies = [ "libc", ] @@ -990,13 +949,26 @@ dependencies = [ "winapi 0.2.8", ] +[[package]] +name = "mio" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2" +dependencies = [ + "libc", + "log", + "miow 0.3.7", + "ntapi", + "winapi 0.3.9", +] + [[package]] name = "mio-anonymous-pipes" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bc513025fe5005a3aa561b50fdb2cda5a150b84800ae02acd8aa9ed62ca1a6b" dependencies = [ - "mio", + "mio 0.6.23", "miow 0.3.7", "parking_lot", "spsc-buffer", @@ -1011,7 +983,7 @@ checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" dependencies = [ "lazycell", "log", - "mio", + "mio 0.6.23", "slab", ] @@ -1023,7 +995,7 @@ checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" dependencies = [ "iovec", "libc", - "mio", + "mio 0.6.23", ] [[package]] @@ -1049,10 +1021,11 @@ dependencies = [ [[package]] name = "ndk" -version = "0.2.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb167c1febed0a496639034d0c76b3b74263636045db5489eee52143c246e73" +checksum = "96d868f654c72e75f8687572699cdabe755f03effbb62542768e995d5b8d699d" dependencies = [ + "bitflags", "jni-sys", "ndk-sys", "num_enum", @@ -1061,9 +1034,9 @@ dependencies = [ [[package]] name = "ndk-glue" -version = "0.2.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf399b8b7a39c6fb153c4ec32c72fd5fe789df24a647f229c239aa7adb15241" +checksum = "fc291b8de2095cba8dab7cf381bf582ff4c17a09acf854c32e46545b08085d28" dependencies = [ "lazy_static", "libc", @@ -1075,9 +1048,9 @@ dependencies = [ [[package]] name = "ndk-macro" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d" +checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" dependencies = [ "darling", "proc-macro-crate", @@ -1088,9 +1061,9 @@ dependencies = [ [[package]] name = "ndk-sys" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c44922cb3dbb1c70b5e5f443d63b64363a898564d739ba5198e3a9138442868d" +checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121" [[package]] name = "net2" @@ -1103,30 +1076,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "nix" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055" -dependencies = [ - "bitflags", - "cc", - "cfg-if 0.1.10", - "libc", -] - -[[package]] -name = "nix" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" -dependencies = [ - "bitflags", - "cc", - "cfg-if 1.0.0", - "libc", -] - [[package]] name = "nix" version = "0.22.0" @@ -1162,17 +1111,26 @@ dependencies = [ "fsevent-sys", "inotify", "libc", - "mio", + "mio 0.6.23", "mio-extras", "walkdir", "winapi 0.3.9", ] +[[package]] +name = "ntapi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "num_enum" -version = "0.4.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4" +checksum = "3f9bd055fb730c4f8f4f57d45d35cd6b3f0980535b056dc7ff119cee6a66ed6f" dependencies = [ "derivative", "num_enum_derive", @@ -1180,9 +1138,9 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.4.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d" +checksum = "486ea01961c4a818096de679a8b740b26d9033146ac5291b1c98557658f8cdd9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1234,15 +1192,6 @@ dependencies = [ "shared_library", ] -[[package]] -name = "owned_ttf_parser" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f923fb806c46266c02ab4a5b239735c144bdeda724a50ed058e5226f594cde3" -dependencies = [ - "ttf-parser", -] - [[package]] name = "parking_lot" version = "0.11.1" @@ -1293,10 +1242,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "0.1.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" dependencies = [ + "thiserror", "toml", ] @@ -1344,11 +1294,11 @@ dependencies = [ [[package]] name = "raw-window-handle" -version = "0.3.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" +checksum = "fba75eee94a9d5273a68c9e1e105d9cffe1ef700532325788389e5a83e2522b7" dependencies = [ - "libc", + "cty", ] [[package]] @@ -1385,16 +1335,6 @@ version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" -[[package]] -name = "rusttype" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc7c727aded0be18c5b80c1640eae0ac8e396abf6fa8477d96cb37d18ee5ec59" -dependencies = [ - "ab_glyph_rasterizer", - "owned_ttf_parser", -] - [[package]] name = "ryu" version = "1.0.5" @@ -1513,7 +1453,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29fd5867f1c4f2c5be079aee7a2adf1152ebb04a4bc4d341f504b7dece607ed4" dependencies = [ "libc", - "mio", + "mio 0.6.23", "mio-uds", "signal-hook", ] @@ -1541,35 +1481,18 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "smithay-client-toolkit" -version = "0.12.3" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4750c76fd5d3ac95fa3ed80fe667d6a3d8590a960e5b575b98eea93339a80b80" +checksum = "210cf40de565aaaa085face1d860b17f6aee9f76f9d2816307ea2cc45eeb64f3" dependencies = [ - "andrew", "bitflags", "calloop", - "dlib 0.4.2", - "lazy_static", - "log", - "memmap2 0.1.0", - "nix 0.18.0", - "wayland-client", - "wayland-cursor", - "wayland-protocols", -] - -[[package]] -name = "smithay-client-toolkit" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec783683499a2cfc85b6df3d04f83b1907b5cbd98a1aed44667dbdf1eac4e64c" -dependencies = [ - "bitflags", - "dlib 0.5.0", + "dlib", "lazy_static", "log", - "memmap2 0.2.3", - "nix 0.20.0", + "memmap2", + "nix", + "pkg-config", "wayland-client", "wayland-cursor", "wayland-protocols", @@ -1577,11 +1500,11 @@ dependencies = [ [[package]] name = "smithay-clipboard" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "986c5b4a7bd4f50d4c51f81f844745535cb488360f9cf63293780b109b9295f3" +checksum = "610b551bd25378bfd2b8e7a0fcbd83d427e8f2f6a40c47ae0f70688e9949dd55" dependencies = [ - "smithay-client-toolkit 0.14.0", + "smithay-client-toolkit", "wayland-client", ] @@ -1599,9 +1522,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "strsim" -version = "0.9.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "structopt" @@ -1686,12 +1609,6 @@ dependencies = [ "serde", ] -[[package]] -name = "ttf-parser" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5d7cd7ab3e47dda6e56542f4bbf3824c15234958c6e1bd6aaa347e93499fdc" - [[package]] name = "unicode-segmentation" version = "1.8.0" @@ -1785,16 +1702,70 @@ version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +[[package]] +name = "wasm-bindgen" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" + [[package]] name = "wayland-client" -version = "0.28.6" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ab332350e502f159382201394a78e3cc12d0f04db863429260164ea40e0355" +checksum = "9108ec1c37f4774d0c2937ba1a6c23d1786b2152c4a13bd9fdb20e42d16e8841" dependencies = [ "bitflags", "downcast-rs", "libc", - "nix 0.20.0", + "nix", "scoped-tls", "wayland-commons", "wayland-scanner", @@ -1803,11 +1774,11 @@ dependencies = [ [[package]] name = "wayland-commons" -version = "0.28.6" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21817947c7011bbd0a27e11b17b337bfd022e8544b071a2641232047966fbda" +checksum = "265ef51b3b3e5c9ef098f10425c39624663f459c3821dcaacc4748be975f1beb" dependencies = [ - "nix 0.20.0", + "nix", "once_cell", "smallvec", "wayland-sys", @@ -1815,20 +1786,20 @@ dependencies = [ [[package]] name = "wayland-cursor" -version = "0.28.6" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be610084edd1586d45e7bdd275fe345c7c1873598caa464c4fb835dee70fa65a" +checksum = "6c19bb6628daf4097e58b7911481e8371e13318d5a60894779901bd3267407a7" dependencies = [ - "nix 0.20.0", + "nix", "wayland-client", "xcursor", ] [[package]] name = "wayland-egl" -version = "0.28.6" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ba1ab1e18756b23982d36f08856d521d7df45015f404a2d7c4f0b2d2f66956" +checksum = "accf27d1e5e1f64ba30b683fd926c2c916cc1014bea3376fb258e80abf622e40" dependencies = [ "wayland-client", "wayland-sys", @@ -1836,9 +1807,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.28.6" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "286620ea4d803bacf61fa087a4242ee316693099ee5a140796aaba02b29f861f" +checksum = "7b3b6f1dc0193072ef4eadcb144da30d58c1f2895516c063804d213310703c8e" dependencies = [ "bitflags", "wayland-client", @@ -1848,9 +1819,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.28.6" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1" +checksum = "eaaf2bc85e7b9143159af96bd23d954a5abe391c4376db712320643280fdc6f4" dependencies = [ "proc-macro2", "quote", @@ -1859,15 +1830,25 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.28.6" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d841fca9aed7febf9bed2e9796c49bf58d4152ceda8ac949ebe00868d8f0feb8" +checksum = "ba9e06acb775b3007f8d3094438306979e572d1d3b844d7a71557a84b055d959" dependencies = [ - "dlib 0.5.0", + "dlib", "lazy_static", "pkg-config", ] +[[package]] +name = "web-sys" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "winapi" version = "0.2.8" @@ -1913,12 +1894,13 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winit" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4eda6fce0eb84bd0a33e3c8794eb902e1033d0a1d5a31bc4f19b1b4bbff597" +checksum = "70466a5f4825cc88c92963591b06dbc255420bffe19d847bfcda475e82d079c0" dependencies = [ "bitflags", - "cocoa 0.24.0", + "block", + "cocoa", "core-foundation 0.9.1", "core-graphics 0.22.2", "core-video-sys", @@ -1927,8 +1909,7 @@ dependencies = [ "lazy_static", "libc", "log", - "mio", - "mio-extras", + "mio 0.8.0", "ndk", "ndk-glue", "ndk-sys", @@ -1937,8 +1918,11 @@ dependencies = [ "percent-encoding", "raw-window-handle", "serde", - "smithay-client-toolkit 0.12.3", + "smithay-client-toolkit", + "wasm-bindgen", "wayland-client", + "wayland-protocols", + "web-sys", "winapi 0.3.9", "x11-dl", ] diff --git a/alacritty/Cargo.toml b/alacritty/Cargo.toml index 82a47a8689..85d7abe807 100644 --- a/alacritty/Cargo.toml +++ b/alacritty/Cargo.toml @@ -25,7 +25,7 @@ fnv = "1" serde = { version = "1", features = ["derive"] } serde_yaml = "0.8" serde_json = "1" -glutin = { version = "0.26.0", default-features = false, features = ["serde"] } +glutin = { version = "0.28.0", default-features = false, features = ["serde"] } notify = "4" parking_lot = "0.11.0" crossfont = { version = "0.3.1", features = ["force_system_fontconfig"] } @@ -48,13 +48,13 @@ xdg = "2.4.0" png = { version = "0.16.8", default-features = false, optional = true } [target.'cfg(target_os = "macos")'.dependencies] -raw-window-handle = "0.3.3" +raw-window-handle = "0.4.0" cocoa = "0.24.0" objc = "0.2.2" [target.'cfg(not(any(target_os="windows", target_os="macos")))'.dependencies] x11-dl = { version = "2", optional = true } -wayland-client = { version = "0.28.0", features = ["dlopen"], optional = true } +wayland-client = { version = "0.29.0", features = ["dlopen"], optional = true } [target.'cfg(windows)'.dependencies] winapi = { version = "0.3.7", features = ["impl-default", "wincon"]} @@ -65,5 +65,5 @@ embed-resource = "1.3" [features] default = ["wayland", "x11"] x11 = ["copypasta/x11", "glutin/x11", "x11-dl", "png"] -wayland = ["copypasta/wayland", "glutin/wayland", "wayland-client"] +wayland = ["copypasta/wayland", "glutin/wayland", "glutin/wayland-dlopen", "wayland-client"] nightly = [] diff --git a/alacritty/src/cli.rs b/alacritty/src/cli.rs index fb3cb01153..9b1b8e6c4d 100644 --- a/alacritty/src/cli.rs +++ b/alacritty/src/cli.rs @@ -238,7 +238,7 @@ impl From for PtyConfig { let working_directory = options.working_directory.take(); let shell = options.command(); let hold = options.hold; - PtyConfig { hold, shell, working_directory } + PtyConfig { shell, working_directory, hold } } } diff --git a/alacritty/src/display/mod.rs b/alacritty/src/display/mod.rs index 5cd5971179..cd46591347 100644 --- a/alacritty/src/display/mod.rs +++ b/alacritty/src/display/mod.rs @@ -56,8 +56,6 @@ pub mod window; mod bell; mod color; mod meter; -#[cfg(all(feature = "wayland", not(any(target_os = "macos", windows))))] -mod wayland_theme; /// Maximum number of linewraps followed outside of the viewport during search highlighting. pub const MAX_SEARCH_LINES: usize = 100; diff --git a/alacritty/src/display/wayland_theme.rs b/alacritty/src/display/wayland_theme.rs deleted file mode 100644 index b56ad0c709..0000000000 --- a/alacritty/src/display/wayland_theme.rs +++ /dev/null @@ -1,81 +0,0 @@ -use glutin::platform::unix::{ARGBColor, Button, ButtonState, Element, Theme as WaylandTheme}; - -use alacritty_terminal::term::color::Rgb; - -use crate::config::color::Colors; - -const INACTIVE_OPACITY: u8 = 127; - -#[derive(Debug, Clone)] -pub struct AlacrittyWaylandTheme { - pub foreground: ARGBColor, - pub background: ARGBColor, - pub dim_foreground: ARGBColor, - pub hovered_close_icon: ARGBColor, - pub hovered_maximize_icon: ARGBColor, - pub hovered_minimize_icon: ARGBColor, -} - -impl AlacrittyWaylandTheme { - pub fn new(colors: &Colors) -> Self { - let hovered_close_icon = colors.normal.red.into_rgba(); - let hovered_maximize_icon = colors.normal.green.into_rgba(); - let hovered_minimize_icon = colors.normal.yellow.into_rgba(); - let foreground = colors.search_bar_foreground().into_rgba(); - let background = colors.search_bar_background().into_rgba(); - - let mut dim_foreground = foreground; - dim_foreground.a = INACTIVE_OPACITY; - - Self { - foreground, - background, - dim_foreground, - hovered_close_icon, - hovered_maximize_icon, - hovered_minimize_icon, - } - } -} - -impl WaylandTheme for AlacrittyWaylandTheme { - fn element_color(&self, element: Element, window_active: bool) -> ARGBColor { - match element { - Element::Bar | Element::Separator => self.background, - Element::Text if window_active => self.foreground, - Element::Text => self.dim_foreground, - } - } - - fn button_color( - &self, - button: Button, - state: ButtonState, - foreground: bool, - window_active: bool, - ) -> ARGBColor { - if !foreground { - return ARGBColor { a: 0, r: 0, g: 0, b: 0 }; - } else if !window_active { - return self.dim_foreground; - } - - match (state, button) { - (ButtonState::Idle, _) => self.foreground, - (ButtonState::Disabled, _) => self.dim_foreground, - (_, Button::Minimize) => self.hovered_minimize_icon, - (_, Button::Maximize) => self.hovered_maximize_icon, - (_, Button::Close) => self.hovered_close_icon, - } - } -} - -trait IntoArgbColor { - fn into_rgba(self) -> ARGBColor; -} - -impl IntoArgbColor for Rgb { - fn into_rgba(self) -> ARGBColor { - ARGBColor { a: 0xff, r: self.r, g: self.g, b: self.b } - } -} diff --git a/alacritty/src/display/window.rs b/alacritty/src/display/window.rs index feeb6fb214..84ef2b0707 100644 --- a/alacritty/src/display/window.rs +++ b/alacritty/src/display/window.rs @@ -13,9 +13,6 @@ use { wayland_client::protocol::wl_surface::WlSurface, wayland_client::{Attached, EventQueue, Proxy}, glutin::platform::unix::EventLoopWindowTargetExtUnix, - - crate::config::color::Colors, - crate::display::wayland_theme::AlacrittyWaylandTheme, }; #[rustfmt::skip] @@ -61,10 +58,6 @@ use crate::gl; #[cfg(all(feature = "x11", not(any(target_os = "macos", windows))))] static WINDOW_ICON: &[u8] = include_bytes!("../../alacritty.png"); -/// Maximum DPR on X11 before it is assumed that XRandr is reporting incorrect values. -#[cfg(all(feature = "x11", not(any(target_os = "macos", windows))))] -const MAX_X11_DPR: f64 = 10.; - /// This should match the definition of IDI_ICON from `windows.rc`. #[cfg(windows)] const IDI_ICON: WORD = 0x101; @@ -209,10 +202,6 @@ impl Window { #[cfg(all(feature = "wayland", not(any(target_os = "macos", windows))))] let wayland_surface = if is_wayland { - // Apply client side decorations theme. - let theme = AlacrittyWaylandTheme::new(&config.colors); - windowed_context.window().set_wayland_theme(theme); - // Attach surface to Alacritty's internal wayland queue to handle frame callbacks. let surface = windowed_context.window().wayland_surface().unwrap(); let proxy: Proxy = unsafe { Proxy::from_c_ptr(surface as _) }; @@ -221,14 +210,7 @@ impl Window { None }; - #[allow(unused_mut)] - let mut dpr = windowed_context.window().scale_factor(); - - // Handle winit reporting invalid values due to incorrect XRandr monitor metrics. - #[cfg(all(feature = "x11", not(any(target_os = "macos", windows))))] - if !is_wayland && dpr > MAX_X11_DPR { - dpr = 1.; - } + let dpr = windowed_context.window().scale_factor(); Ok(Self { current_mouse_cursor, @@ -423,11 +405,6 @@ impl Window { self.wayland_surface.as_ref() } - #[cfg(all(feature = "wayland", not(any(target_os = "macos", windows))))] - pub fn set_wayland_theme(&mut self, colors: &Colors) { - self.window().set_wayland_theme(AlacrittyWaylandTheme::new(colors)); - } - /// Adjust the IME editor position according to the new location of the cursor. pub fn update_ime_position(&mut self, point: Point, size: &SizeInfo) { let nspot_x = f64::from(size.padding_x() + point.column.0 as f32 * size.cell_width()); @@ -457,7 +434,7 @@ impl Window { #[cfg(target_os = "macos")] pub fn set_has_shadow(&self, has_shadows: bool) { let raw_window = match self.window().raw_window_handle() { - RawWindowHandle::MacOS(handle) => handle.ns_window as id, + RawWindowHandle::AppKit(handle) => handle.ns_window as id, _ => return, }; diff --git a/alacritty/src/window_context.rs b/alacritty/src/window_context.rs index 6763420c37..f0b111b5a9 100644 --- a/alacritty/src/window_context.rs +++ b/alacritty/src/window_context.rs @@ -177,9 +177,6 @@ impl WindowContext { self.display.window.set_title(&config.window.title); } - #[cfg(all(feature = "wayland", not(any(target_os = "macos", windows))))] - self.display.window.set_wayland_theme(&config.colors); - // Set subpixel anti-aliasing. #[cfg(target_os = "macos")] crossfont::set_font_smoothing(config.font.use_thin_strokes);