profile
viewpoint
Kirill Chibisov kchibisov Moscow, Russia

Smithay/smithay-clipboard 9

Provides access to the wayland clipboard for client applications

kchibisov/vim-scythe 2

moved to https://git.sr.ht/~kchibisov/vim-scythe

kchibisov/alacritty 0

A cross-platform, GPU-accelerated terminal emulator

kchibisov/calloop 0

A callback-based Event Loop

kchibisov/client-toolkit 0

Smithay's toolkit for writing wayland clients

kchibisov/copypasta 0

Cross-platform Rust system clipboard library

kchibisov/freetype-rs 0

Rust bindings for FreeType library

kchibisov/freetype-sys 0

Low level bindings for the FreeType font library

kchibisov/gentoo 0

[MIRROR] Official Gentoo ebuild repository

kchibisov/glutin 0

A low-level library for OpenGL context creation, written in pure Rust.

pull request commentrust-windowing/winit

rename CompostionEvent to IMEPreeditEvent

so the current solution would be never sending Disable event and send Enable event at the beginning.

Looks fine to me, I guess.

garasubo

comment created time in 3 hours

issue commentalacritty/alacritty

Randomly jumping cursor from the bottom to the middle of the screen

Just how many bugs does it fix and what's the speed trade-off, compared to WinPTY?

WinPty is basically dead, and you should use ConPty, since it's the only one that is being developed right now iirc. And it's something that is used and maintained by windows terminal team. The most important thing wrt ConPty is that it really depends on what windows you're using, and there're ways to provide more up to date binary for ConPty instead of builtin system one.

So if you have an option, try updating windows, since you'll update ConPty as well.

b-will-c

comment created time in 4 hours

issue commentalacritty/alacritty

Randomly jumping cursor from the bottom to the middle of the screen

Looks like windows conpty bug to me...

b-will-c

comment created time in 6 hours

pull request commentalacritty/alacritty

Add touchscreen support

@kchibisov / @nixpulvis does anyone of you have touch devices and is willing to maintain this in the future? I do not have anything and am definitely not going to change that any time soon. Unless we have someone capable of maintaining this, it cannot be merged.

I don't have anything, so can't really test. Maybe at some point there will be some tool that emulates touchscreen for wayland, but there's nothing I'm aware of right now afaics.

ch-sy

comment created time in a day

issue closedalacritty/alacritty

error: could not compile `alacritty`

System

OS: Debian 10 Version: master branch rustc 1.47.0

Logs


Building [=====================================================> ] 218/219: alacritty(bin)

error: could not compile `alacritty`.

Caused by:
  process didn't exit successfully: `rustc --crate-name alacritty --edition=2018 alacritty/src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto -C debuginfo=1 --cfg 'feature="default"' --cfg 'feature="wayland"' --cfg 'feature="wayland-client"' --cfg 'feature="winpty"' --cfg 'feature="x11"' --cfg 'feature="x11-dl"' -C metadata=8a1b110963dac5ca -C extra-filename=-8a1b110963dac5ca --out-dir /home/admin/alacritty/target/release/deps -L dependency=/home/admin/alacritty/target/release/deps --extern alacritty_terminal=/home/admin/alacritty/target/release/deps/libalacritty_terminal-25a1876ad448385a.rlib --extern clap=/home/admin/alacritty/target/release/deps/libclap-a4260f2965bde9cc.rlib --extern copypasta=/home/admin/alacritty/target/release/deps/libcopypasta-5de3fa30495a65c4.rlib --extern crossfont=/home/admin/alacritty/target/release/deps/libcrossfont-90b9c938e676370a.rlib --extern fnv=/home/admin/alacritty/target/release/deps/libfnv-5c3f4aa46faf2810.rlib --extern glutin=/home/admin/alacritty/target/release/deps/libglutin-6f901f740a23b943.rlib --extern image=/home/admin/alacritty/target/release/deps/libimage-50c8922bf46ae5f1.rlib --extern libc=/home/admin/alacritty/target/release/deps/liblibc-1ab04d93d036e721.rlib --extern log=/home/admin/alacritty/target/release/deps/liblog-7bdb1fc1bd32790e.rlib --extern notify=/home/admin/alacritty/target/release/deps/libnotify-2fc8cf9d5a1b8d62.rlib --extern parking_lot=/home/admin/alacritty/target/release/deps/libparking_lot-905176e25af3df1c.rlib --extern serde=/home/admin/alacritty/target/release/deps/libserde-adfefa67735a78fd.rlib --extern serde_json=/home/admin/alacritty/target/release/deps/libserde_json-20704604d44e7b88.rlib --extern serde_yaml=/home/admin/alacritty/target/release/deps/libserde_yaml-cdd54d060e099b3a.rlib --extern time=/home/admin/alacritty/target/release/deps/libtime-ecebebe2dc076aec.rlib --extern unicode_width=/home/admin/alacritty/target/release/deps/libunicode_width-88c23923dffb4ea3.rlib --extern urlocator=/home/admin/alacritty/target/release/deps/liburlocator-0598a5c8cfda6467.rlib --extern wayland_client=/home/admin/alacritty/target/release/deps/libwayland_client-6e2c9dd50060c240.rlib --extern x11_dl=/home/admin/alacritty/target/release/deps/libx11_dl-1226a48e436aec06.rlib --extern xdg=/home/admin/alacritty/target/release/deps/libxdg-3bae084349fe1a30.rlib -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu` (signal: 9, SIGKILL: kill)

Thank you!

closed time in a day

timonson

issue commentalacritty/alacritty

error: could not compile `alacritty`

Yeah, you need something around 2-3GB, since we're doing lto, something about that. You may try to edit default Cargo.toml and disable lto there, should reduce the memory usage...

timonson

comment created time in a day

issue commentalacritty/alacritty

error: could not compile `alacritty`

Do you have 2-3GB of RAM?

timonson

comment created time in a day

PullRequestReviewEvent

Pull request review commentalacritty/vtebench

Initialize history before scrolling benchmarks

+#!/bin/sh++for _ in {0..100000}; do+    echo "y"+done

Can we use printf here, since we use it for everything already and it's a bit more portable?

chrisduerr

comment created time in 2 days

PullRequestReviewEvent
PullRequestReviewEvent

push eventalacritty/alacritty

Christian Duerr

commit sha 5a3bf69e3fd771271921f62219cdb8f920db39ee

Remove rustc_tools_util dependency Since our usage of the rustc_tools_util crate is so trivial, it seems like we should be able to just inline it directly into Alacritty. It's a very well trusted crate, being hosted directly by rust-lang and it does not pull in any other dependencies, but having a dependency for just 6 lines of code seems a bit extreme.

view details

push time in 2 days

PR merged alacritty/alacritty

Remove rustc_tools_util dependency

Since our usage of the rustc_tools_util crate is so trivial, it seems like we should be able to just inline it directly into Alacritty.

It's a very well trusted crate, being hosted directly by rust-lang and it does not pull in any other dependencies, but having a dependency for just 6 lines of code seems a bit extreme.

+13 -12

0 comment

3 changed files

chrisduerr

pr closed time in 2 days

PullRequestReviewEvent

issue commentalacritty/alacritty

Alacritty not opening

try building from master if you're running gnome or similar. if not provide backtrace,

Jimmysit0

comment created time in 2 days

Pull request review commentalacritty/alacritty

Use dynamic storage for zerowidth characters

 impl<T> Term<T> {         let num_lines = size.screen_lines;          let history_size = config.scrolling.history() as usize;-        let grid = Grid::new(num_lines, num_cols, history_size, Cell::default());-        let alt = Grid::new(num_lines, num_cols, 0 /* scroll history */, Cell::default());+        let grid = Grid::new(num_lines, num_cols, history_size);+        let alt = Grid::new(num_lines, num_cols, 0 /* scroll history */);

Could we remove that C style comment wrt what the last argument is, I don't really see a point in it.

chrisduerr

comment created time in 2 days

Pull request review commentalacritty/alacritty

Use dynamic storage for zerowidth characters

 impl<'a, C> RenderableCellsIter<'a, C> {     } } -#[derive(Copy, Clone, Debug, PartialEq, Eq)]+#[derive(Debug, PartialEq, Eq)] pub enum RenderableCellContent {-    Chars([char; cell::MAX_ZEROWIDTH_CHARS + 1]),+    Chars((char, Option<Vec<char>>)),     Cursor(CursorKey), } -#[derive(Copy, Clone, Debug)]+#[derive(Debug)]

I wonder why we've removed Clone from the public API, I feel like it could make sense to add at least some Clone impl for that?

chrisduerr

comment created time in 2 days

Pull request review commentalacritty/alacritty

Use dynamic storage for zerowidth characters

 impl<T: PartialEq> PartialEq for Storage<T> {  impl<T> Storage<T> {     #[inline]-    pub fn with_capacity(visible_lines: Line, template: Row<T>) -> Storage<T>+    pub fn with_capacity(visible_lines: Line, cols: Column) -> Storage<T>     where-        T: Clone,+        T: GridCell + Default + Clone,     {-        // Initialize visible lines, the scrollback buffer is initialized dynamically.-        let inner = vec![template; visible_lines.0];+        // Initialize visible lines; the scrollback buffer is initialized dynamically.

Not sure about that semi colon here...

chrisduerr

comment created time in 2 days

Pull request review commentalacritty/alacritty

Use dynamic storage for zerowidth characters

 impl<T: Copy> Row<T> {      /// Reset all cells in the row to the `template` cell.     #[inline]-    pub fn reset(&mut self, template: T)+    pub fn reset<I, D>(&mut self, template: I)     where-        T: GridCell + PartialEq,+        I: ResetDiscriminant<D> + Into<T> + Clone,+        T: ResetDiscriminant<D> + GridCell + PartialEq,+        D: PartialEq,     {         debug_assert!(!self.inner.is_empty());          // Mark all cells as dirty if template cell changed.         let len = self.inner.len();-        if !self.inner[len - 1].fast_eq(template) {+        if self.inner[len - 1].discriminant() != template.discriminant() {             self.occ = len;         } -        // Reset every dirty in the row.-        for item in &mut self.inner[..self.occ] {-            *item = template;-        }+        if self.occ != 0 {+            // Reset every dirty cell in the row.+            for item in &mut self.inner[1..self.occ] {+                *item = template.clone().into();+            }+            self.inner[0] = template.into();

Are you saving one clone here in favor of one branch?

chrisduerr

comment created time in 2 days

PullRequestReviewEvent
PullRequestReviewEvent

issue closedalacritty/alacritty

Small unicode characters:

Small unicode characters: At left is st and at right is alacritty. image

System

OS: Linux Linux ArchLinux 5.9.1-arch1-1 Version: alacritty 0.5.0 (a6681e3a) Linux/BSD: X11, Compositor and WM dwm

Logs

Font/Terminal size:

[2020-10-24 11:48:16.231625632] [INFO] Welcome to Alacritty
[2020-10-24 11:48:16.231699627] [INFO] Configuration loaded from "/home/lucas/.config/alacritty/alacritty.yml"
[2020-10-24 11:48:16.239207597] [DEBUG] Estimated DPR: 2
[2020-10-24 11:48:16.239234637] [DEBUG] Estimated Cell Size: 18 x 34
[2020-10-24 11:48:16.239242489] [DEBUG] Estimated Dimensions: None
[2020-10-24 11:48:16.304257278] [INFO] Device pixel ratio: 2
[2020-10-24 11:48:16.309022974] [INFO] Initializing glyph cache...
[2020-10-24 11:48:16.320169278] [INFO] ... finished initializing glyph cache in 0.011113102s
[2020-10-24 11:48:16.320201420] [INFO] Cell Size: 18 x 34
[2020-10-24 11:48:16.320208507] [INFO] Padding: 0 x 0
[2020-10-24 11:48:16.320217140] [INFO] Width: 800, Height: 600
[2020-10-24 11:48:16.333963060] [INFO] PTY dimensions: Line(17) x Column(44)
[2020-10-24 11:48:16.337509238] [INFO] Initialisation complete
[2020-10-24 11:48:16.337813366] [DEBUG] Term::resize dimensions unchanged
[2020-10-24 11:48:16.337841964] [INFO] Width: 800, Height: 600
[2020-10-24 11:48:18.054575800] [INFO] Goodbye

Keyboard and bindings:

[2020-10-24 11:49:43.785616355] [INFO] Welcome to Alacritty
[2020-10-24 11:49:43.785691811] [INFO] Configuration loaded from "/home/lucas/.config/alacritty/alacritty.yml"
[2020-10-24 11:49:43.857942195] [INFO] Device pixel ratio: 2
[2020-10-24 11:49:43.862758989] [INFO] Initializing glyph cache...
[2020-10-24 11:49:43.875772328] [INFO] ... finished initializing glyph cache in 0.012970669s
[2020-10-24 11:49:43.875803787] [INFO] Cell Size: 18 x 34
[2020-10-24 11:49:43.875810795] [INFO] Padding: 0 x 0
[2020-10-24 11:49:43.875818843] [INFO] Width: 800, Height: 600
[2020-10-24 11:49:43.884677403] [INFO] PTY dimensions: Line(17) x Column(44)
[2020-10-24 11:49:43.888202229] [INFO] Initialisation complete
[2020-10-24 11:49:43.888232199] [INFO] glutin event: NewEvents(Init)
[2020-10-24 11:49:43.888330072] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: Resized(PhysicalSize { width: 800, height: 600 }) }
[2020-10-24 11:49:43.888346347] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: Moved(PhysicalPosition { x: 0, y: 40 }) }
[2020-10-24 11:49:43.888366277] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: Focused(true) }
[2020-10-24 11:49:43.888373978] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: CursorMoved { device_id: DeviceId(X(DeviceId(2))), position: PhysicalPosition { x: 901.0, y: 717.0 }, modifiers: (empty) } }
[2020-10-24 11:49:43.888440689] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: KeyboardInput { device_id: DeviceId(X(DeviceId(3))), input: KeyboardInput { scancode: 28, state: Pressed, virtual_keycode: Some(Return), modifiers: (empty) }, is_synthetic: true } }
[2020-10-24 11:49:43.888461529] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:43.888469885] [INFO] glutin event: RedrawRequested(WindowId(X(WindowId(100663298))))
[2020-10-24 11:49:43.888475745] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:43.888527126] [INFO] Width: 800, Height: 600
[2020-10-24 11:49:43.908046213] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2485, tv_nsec: 775810096 }, requested_resume: None })
[2020-10-24 11:49:43.908098813] [INFO] glutin event: DeviceEvent { device_id: DeviceId(X(DeviceId(10))), event: Key(KeyboardInput { scancode: 28, state: Released, virtual_keycode: Some(Return), modifiers: (empty) }) }
[2020-10-24 11:49:43.908138698] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: KeyboardInput { device_id: DeviceId(X(DeviceId(3))), input: KeyboardInput { scancode: 28, state: Released, virtual_keycode: Some(Return), modifiers: (empty) }, is_synthetic: false } }
[2020-10-24 11:49:43.908151329] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:43.908157325] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:43.916581757] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2485, tv_nsec: 782337631 }, requested_resume: None })
[2020-10-24 11:49:43.916619180] [INFO] glutin event: UserEvent(TerminalEvent(Wakeup))
[2020-10-24 11:49:43.916637741] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:43.916643530] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:43.918344542] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2485, tv_nsec: 792509492 }, requested_resume: None })
[2020-10-24 11:49:43.918403800] [INFO] glutin event: UserEvent(TerminalEvent(Wakeup))
[2020-10-24 11:49:43.918421311] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:43.918471873] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:43.934853631] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2485, tv_nsec: 809019688 }, requested_resume: None })
[2020-10-24 11:49:43.934954790] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:43.934971180] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:45.460166738] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2485, tv_nsec: 809158761 }, requested_resume: None })
[2020-10-24 11:49:45.460264846] [INFO] glutin event: DeviceEvent { device_id: DeviceId(X(DeviceId(10))), event: Key(KeyboardInput { scancode: 125, state: Pressed, virtual_keycode: None, modifiers: (empty) }) }
[2020-10-24 11:49:45.460294261] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: ModifiersChanged(LOGO) }
[2020-10-24 11:49:45.460332963] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: KeyboardInput { device_id: DeviceId(X(DeviceId(3))), input: KeyboardInput { scancode: 125, state: Pressed, virtual_keycode: None, modifiers: LOGO }, is_synthetic: false } }
[2020-10-24 11:49:45.460362407] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:45.460375028] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:45.668309886] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2487, tv_nsec: 334561265 }, requested_resume: None })
[2020-10-24 11:49:45.668514298] [INFO] glutin event: DeviceEvent { device_id: DeviceId(X(DeviceId(10))), event: Key(KeyboardInput { scancode: 17, state: Pressed, virtual_keycode: Some(W), modifiers: LOGO }) }
[2020-10-24 11:49:45.668655850] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:45.668710026] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:45.668776785] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2487, tv_nsec: 542929253 }, requested_resume: None })
[2020-10-24 11:49:45.668989071] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: KeyboardInput { device_id: DeviceId(X(DeviceId(3))), input: KeyboardInput { scancode: 17, state: Released, virtual_keycode: Some(W), modifiers: LOGO }, is_synthetic: true } }
[2020-10-24 11:49:45.669025302] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: KeyboardInput { device_id: DeviceId(X(DeviceId(3))), input: KeyboardInput { scancode: 125, state: Released, virtual_keycode: None, modifiers: LOGO }, is_synthetic: true } }
[2020-10-24 11:49:45.669053566] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: ModifiersChanged((empty)) }
[2020-10-24 11:49:45.669066722] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: Focused(false) }
[2020-10-24 11:49:45.669086325] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:45.669104241] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:45.683937544] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2487, tv_nsec: 558096286 }, requested_resume: None })
[2020-10-24 11:49:45.684028365] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(100663298))), event: CloseRequested }
[2020-10-24 11:49:45.684062300] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:45.684079643] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:45.684107355] [INFO] glutin event: NewEvents(WaitCancelled { start: Instant { tv_sec: 2487, tv_nsec: 558272041 }, requested_resume: None })
[2020-10-24 11:49:45.684139444] [INFO] glutin event: UserEvent(TerminalEvent(Exit))
[2020-10-24 11:49:45.684158345] [INFO] glutin event: MainEventsCleared
[2020-10-24 11:49:45.684180966] [INFO] glutin event: RedrawEventsCleared
[2020-10-24 11:49:45.684205213] [INFO] glutin event: LoopDestroyed
[2020-10-24 11:49:45.689379420] [INFO] Goodbye

closed time in 2 days

lucasmsoares96

issue commentalacritty/alacritty

Small unicode characters:

Those are from different fonts actually. Left are from non monospace variant, and right from monospace variants. If you want bigger icons, make fontconfig prefer non-monospace variant, or delete monospace variants of those icons.

lucasmsoares96

comment created time in 2 days

pull request commentalacritty/alacritty

Use dynamic storage for zerowidth characters

macOS and Linux laptop both seem great with performance I wouldn't mind merging, but the scrolling performance without turbo seems to be down by around 15%, which is more than I'd be willing to take.

I may rerun, but IIRC it was consistent, I'm not sure that you can really do anything, assuming that you scrolling is faster with turbo...

chrisduerr

comment created time in 2 days

issue commentalacritty/alacritty

feature: keep input line at the top

I mean in theory you could just run clear in your prompt.

I mean the point is to keep the output afterward, I guess, otherwise I don't see a point of clear...

basaran

comment created time in 2 days

pull request commentalacritty/alacritty

[wip] Add optional configuration imports

Before doing any sort of review, I'd be curious what @nixpulvis / @kchibisov think about this (see more discussion in the issue #4330).

IIRC I was suggesting to add optional for everything when this feature was implemented, I'm not sure if it's recorded anywhere though. I do think that everything as optional is a good idea and it's simpler. If your config is missing unintentionally, I bet you can notice it without throwing a warning/error on the users face.

EdenEast

comment created time in 2 days

pull request commentalacritty/alacritty

Use dynamic storage for zerowidth characters

My output of vtebench on my machines on both 8924b75 and f33a44e.

linux-desktop-4700

linux-desktop-3600

linux-laptop

macos-laptop

The only suspicious thing here is that without turbo my desktop had slower scrolling, but with it it was faster...

As for macOS and a laptop(4750u) I can't really fix frequency on both, so they just use + to indicate that, the same applies to my desktop under turbo(here I'm just lazy to do that properly for turbo, since requires reboot).

chrisduerr

comment created time in 2 days

push eventalacritty/alacritty

Christian Duerr

commit sha 269f00051ea85e423a078e9b952ea526230e5338

Remove all duplicate dependencies from Linux/BSD This bumps andrew and removes the last duplicate dependency ('num-traits') from Alacritty's Linux/BSD dependencies.

view details

push time in 2 days

PR merged alacritty/alacritty

Remove all duplicate dependencies from Linux

This bumps andrew and removes the last duplicate dependency (line_drawing) from Alacritty's Linux dependencies.

+46 -63

0 comment

1 changed file

chrisduerr

pr closed time in 2 days

PullRequestReviewEvent

issue closedalacritty/alacritty

error: attributes are not yet allowed on if expressions

System

Debian 10.6.0 alacritty: master

Problem

I try to build alacritty on a newly installed debian distro.

After installing debian I ran:

apt-get --yes install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev python3 cargo git
git clone https://github.com/alacritty/alacritty
cd alacritty
cargo build --release

Shortly before finishing it throws the following error:

error: attributes are not yet allowed on 'if' expressions

alacritty-2020-10-24

closed time in 2 days

timonson

issue commentalacritty/alacritty

error: attributes are not yet allowed on if expressions

The minimum supported rust version is 1.43.0.

timonson

comment created time in 2 days

issue closedalacritty/alacritty

feature: keep input line at the top

Hello,

Would it be possible to have an option to keep the command line always fixed to the top of the alacritty window? I understand this could rather be a bizarre and not possible to achieve request, but main benefit would be more for the neck and eye ergonomics, especially when using a window manager and keeping a narrow terminal area on a large display.

image

closed time in 2 days

basaran

issue commentalacritty/alacritty

feature: keep input line at the top

Would it be possible to have an option to keep the command line always fixed to the top of the alacritty window? I understand this could rather be a bizarre and not possible to achieve request, but main benefit would be more for the neck and eye ergonomics, especially when using a window manager and keeping a narrow terminal area on a large display.

No, it's not possible, we don't know what you're running inside, and we don't know what the prompt is. It's also not possible to do in your shell, since shell can't access scrollback, since there's no escape sequence(that exists) to do that.

In anyway, from alacritty side it's purely impossible to do, and on your screen shot you're providing a screenshot from tmux, hence another terminal emulator...

basaran

comment created time in 2 days

issue commentalacritty/alacritty

Transparency not working with Pop OS 20.10

So is it running in a vm? It could be a vm specific issue then.

JFitzy1321

comment created time in 2 days

Pull request review commentalacritty/alacritty

Use dynamic storage for zerowidth characters

 impl<T: PartialEq> PartialEq for Row<T> {     } } -impl<T: Copy> Row<T> {-    pub fn new(columns: Column, template: T) -> Row<T>+impl<T: Clone> Row<T> {+    /// Create a new terminal row.+    ///+    /// Ideally the `template` should be `Copy` in all performance sensitive scenarios.+    pub fn new<I>(columns: Column, template: I) -> Row<T>     where+        I: Into<T> + Clone,         T: GridCell,     {-        let occ = if template.is_empty() { 0 } else { columns.0 };-        Row { inner: vec![template; columns.0], occ }+        debug_assert!(columns.0 >= 1);++        let mut inner: Vec<T> = Vec::with_capacity(columns.0);++        // This is a slightly optimized version of `std::vec::Vec::resize`.

Is it really necessary to do that and not use resize?

chrisduerr

comment created time in 3 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentalacritty/alacritty

Use dynamic storage for zerowidth characters

 bitflags! {     } } -const fn default_extra() -> [char; MAX_ZEROWIDTH_CHARS] {-    [' '; MAX_ZEROWIDTH_CHARS]+/// Trait for determining if a reset should be performed.+pub trait ResetDiscriminant<T: PartialEq> {+    /// Value based on which equality for the reset will be determined.+    fn discriminant(&self) -> T;+}++impl ResetDiscriminant<Color> for Color {+    fn discriminant(&self) -> Color {+        *self+    }+}++impl ResetDiscriminant<Color> for Cell {+    fn discriminant(&self) -> Color {+        self.bg+    } } -#[derive(Copy, Clone, Debug, Serialize, Deserialize, Eq, PartialEq)]+#[derive(Default, Debug, Clone, Eq, PartialEq)]+struct CellExtra {+    zerowidth: Vec<char>,

Do you think it'll make sense to give an upper bound for zerowidth chars, like no more than 32 or something like that, I doubt it makes sense to give arbitrary amount of space for them?

chrisduerr

comment created time in 3 days

Pull request review commentalacritty/alacritty

Use dynamic storage for zerowidth characters

 impl<T: PartialEq> PartialEq for Row<T> {     } } -impl<T: Copy> Row<T> {-    pub fn new(columns: Column, template: T) -> Row<T>+impl<T: Clone> Row<T> {+    /// Create a new terminal row.+    ///+    /// Ideally the `template` should be `Copy` in all performance sensitive scenarios.+    pub fn new<I>(columns: Column, template: I) -> Row<T>     where+        I: Into<T> + Clone,         T: GridCell,     {-        let occ = if template.is_empty() { 0 } else { columns.0 };-        Row { inner: vec![template; columns.0], occ }+        debug_assert!(columns.0 >= 1);

Are we debug_assert! or we should assert! here?

chrisduerr

comment created time in 3 days

Pull request review commentalacritty/alacritty

Use dynamic storage for zerowidth characters

 impl<T: GridCell + Default + PartialEq + Copy> Grid<T> {     }      #[inline]-    pub fn scroll_down(&mut self, region: &Range<Line>, positions: Line, template: T) {+    pub fn scroll_down<I>(&mut self, region: &Range<Line>, positions: Line, template: I)

The signature looks different compared to scroll_up function, if there any reason for that?

chrisduerr

comment created time in 3 days

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentrust-windowing/winit

rename CompostionEvent to IMEPreeditEvent

do you think we should give up enable/disable event only on X11?

Have you looked into something like that gtk on that? It seems strange that there's no indication that IME got opened, though, we can just always send enable when creating IME object and send Disabledon close or never send Disabled if it's too complicated to implement now. The point is to send Enabled, if it won't be optimal we won't lose anything, since right now downstream assumes that IME is always enabled.

The thing is that we must send it, but what we use to indicate that could be something not really optimal, if implementing it is something that complicated.

garasubo

comment created time in 3 days

PullRequestReviewEvent

issue commentalacritty/alacritty

Failed to compile alacritty with cargo build --release

Note: My os is debian

How old is your debian? This fontconfig version was like 7 years ago, so I feel like that's why you're getting gpg errors as well, since stuff is just too old, I'd really suggest to moving to something newer, like newer debian.

AlphaTechnolog

comment created time in 4 days

issue openedneomutt/neomutt

Error from new_mail_command breaks layout

If you're using a command for new_mail_command that happened to not exist on a system, the inbox layout will break when getting a new mail.

created time in 4 days

pull request commentalacritty/alacritty

Add pollling for a new config to watch when config is deleted

Where and how should that be implemented ?

I suggest to add an ReloadConfig binding for key_bindings, and leave the current polling alone, adding more complexity to it isn't what everyone wants to maintain for very small amount of users.

So to implement it you'd need to add that binding to alacritty/src/config/bindings.rs.

Then you should add handling into alacritty/src/input.rs. The implementation of that binding could be done in a following way:

  • Get current config logical path (not sure if it's stored anywhere, may require storing)`
  • Try to load config from the current logical path, if the physical path to that config differs to the current config physical path start watching new config and drop watching of the old one
  • Reload config, could be done via issuing Event::ConfigReload or we may call to reload_config function from event.rs directly, though it could require moving it a bit.

The most complicated part here is recreating or updating the config watcher thread. With the current model it seems like recreating is what should be performed. I feel like the less complex is recreating config watcher, since for informing thing you'd need something like mio, though we already depend on it...

I'm not sure that the name should be just ReloadConfig, but I guess we can figure that out later, maybe ForceConfigReload.

oknozor

comment created time in 4 days

PullRequestReviewEvent

Pull request review commentalacritty/alacritty

Spawn new alacritty process in CWD on macOS

 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `Add` and `Subtract` keys are now named `NumpadAdd` and `NumpadSubtract` respectively - Feature checking when cross compiling between different operating systems - Crash when writing to the clipboard fails on Wayland+- `SpawnNewInstance` will now remain in the same working directory on macOS

I don't really like the way it's written here.

Maybe something like

`SpawnNewInstance` not using working directory of active process on macOS
nixpulvis

comment created time in 4 days

Pull request review commentalacritty/alacritty

Spawn new alacritty process in CWD on macOS

 use std::borrow::Cow; use std::cmp::{max, min}; use std::env; use std::fmt::Debug;-#[cfg(unix)]+#[cfg(all(unix, not(target_os = "macos")))]

For such cases we use #[cfg(not(any(target_os = "macos", windows)))]

nixpulvis

comment created time in 4 days

PullRequestReviewEvent
PullRequestReviewEvent

push eventrust-windowing/winit

Waridley

commit sha 8aa1be8336898c57910675502e3888c2a699f558

On Unix, fix cross-compiling to wasm32 Aborting compilation by using 'compile_error!' macro in build.rs was resulting in failing cross compilation, thus this commit removes build.rs. The compilation will now be aborted on existing 'compile_error!' macros in corresponding platform sources.

view details

push time in 4 days

PR merged rust-windowing/winit

Move `#[cfg(...)]` -based compile errors from build.rs to lib.rs

#[cfg(...)] attributes don't work as expected from build.rs -- they refer to the configuration of the host system which the build.rs script will be running on. If you attempt to cross-compile to a different target, the crate may attempt to compile when it shouldn't, or fail when it should work.

The other way to check this would be to read Cargo environment variables in build.rs, as described in https://github.com/rust-lang/cargo/issues/4302 However, since this crate does nothing else in build.rs anway, I figured it made sense to just move the existing configuration checks to lib.rs

+1 -21

17 comments

2 changed files

Waridley

pr closed time in 4 days

PullRequestReviewEvent

push eventkchibisov/alacritty

Stefano Figura

commit sha 21eb84fc5e0e649f53e3785957fa127ee9a78688

Add license symlinks for crates

view details

Christian Duerr

commit sha 80688e082d13197b6661cfb6cfa60734034270cf

Check viewport size after initial resize Since the 'set_inner_size' call might immediately alter the window size, the query for the window's dimensions should be performed after the resize has been requested.

view details

push time in 4 days

push eventalacritty/alacritty

Christian Duerr

commit sha 80688e082d13197b6661cfb6cfa60734034270cf

Check viewport size after initial resize Since the 'set_inner_size' call might immediately alter the window size, the query for the window's dimensions should be performed after the resize has been requested.

view details

push time in 5 days

PR merged alacritty/alacritty

Check viewport size after initial resize

Since the set_inner_size call might immediately alter the window size, the query for the window's dimensions should be performed after the resize has been requested.

+2 -3

0 comment

1 changed file

chrisduerr

pr closed time in 5 days

PullRequestReviewEvent

issue openedgreshake/i3status-rust

Networkmanager's on_click method leaves zombies

Clicking on networkmanager icon in status bar should result in zombie process being left after executing.

Minimal config to repro

[[block]]
 block = "networkmanager"
 ap_format = "{ssid}"
 device_format = "{icon}"
 on_click = "bash -c false"

created time in 5 days

issue commentalacritty/alacritty

Background blur

You can make blur, by making screen shot of the entire screen, sure, but you can't make it work cross platform that way. Also, this is the most stupid way to make blur you can imagine, and I only saw that on X11.

chriskrycho

comment created time in 5 days

issue commentalacritty/alacritty

Background blur

Alacritty already uses the GPU for rendering, hence it might be easier to leverage shaders for the blur as well to get an useful yet efficient blur implementation.

This is not how it works, alacritty can't possibly do blur because it doesn't know about contents you have on screen. That being said, blur is done by system's compositor on all display servers I'm aware of. The only thing that alacritty can do is ask for blur your system's compositor, and hope that it blurs things.

chriskrycho

comment created time in 5 days

issue commentalacritty/alacritty

Windows key no longer works as a modifier on Windows 10

The log seems correct and indicates that you've pressed Win + V, how are you testing it? Win + V should do nothing by default, unless you've bind it to something.

partcyborg

comment created time in 5 days

issue commentalacritty/alacritty

Right click copy till where I clicked, not the whole selection

Wow! Thank you very much. I am now feeling like an alacritty Pro.

fyi, it generally works in every application on Linux + X11, just select and it's auto copied to primary selection buffer, so you can paste from it, nothing special about alacritty here.

blueray453

comment created time in 6 days

issue commentw23/alacritty

hidpi glithes

Oddly enough, I can't see any similar artifacts on Linux+x11. This is even w/o rebase.

Maybe Windows doens't like shaders for whatever reason? I'd suggest to assert fractional parts of size info feilds before setting uniforms, maybe something is fractional..

w23

comment created time in 6 days

issue commentalacritty/alacritty

Right click copy till where I clicked, not the whole selection

And also, is there any solution I can use so that if I right click anywhere in the middle of the selection, it copy the whole line.

I don't see a point why you need right click in that equation, just selecting anything on Linux will already copy things (the transfer won't happen until you paste though), no need to do extra work. So triple clicking on Linux will already copy the entire line, without doing anything extra.

blueray453

comment created time in 6 days

issue commentalacritty/alacritty

Right click copy till where I clicked, not the whole selection

I am trying to create a log file using alacritty --print-events. However, It delete the log file (in /tmp) after I close the terminal. is there any way I can keep the log file.

Press middle mouse button, you're copying to primary selection buffer, which is on middle mouse on Linux. If you want to copy to clipboard buffer, use Copy, but I'd say not to bind anything on rmb, since it's used for selection expansion already...

blueray453

comment created time in 6 days

issue commentalacritty/alacritty

Right click copy till where I clicked, not the whole selection

If I copy something from the terminal, I can not paste it outside the terminal.

How are you testing it? Are you pressing middle mouse button to paste? Also, if you've copied text with Ctrl + shift + c are you pasting with Ctrl + V in other applications which uses Ctrl + V as a shortcut?

However, If I click and drag from the end of the line till the beginning of the line, then right click in the beginning of the line - It copies the whole line but does not deselect the selection.

That's expected, right click expands selection from start of the selection to the point you've clicked, it shouldn't deselect anything.

If I click and drag from the beginning of the line till the end of the line, then right click in the beginning of the line - It copies the whole line and deselect the selection which is an expected behaviour.

It doesn't deselect, it makes empty selection, and thus it's not copied.

Issue 3

Again, If I click and drag from the end of the line till the beginning of the line, then right click anywhere in the middle of the selection - It copies from end of the till where I right clicked (though the whole line is selected).

That's expected, right click alters the selection, so

blueray453

comment created time in 6 days

PullRequestReviewEvent

pull request commentalacritty/alacritty

Fix an issue where self.grid[point.line] would be out of bounds

Could you repro that on the current master? I guess it is a duplicate of by https://github.com/alacritty/alacritty/issues/4109 which was alraedy fixed.

xyproto

comment created time in 6 days

issue commentalacritty/alacritty

Italics not working for Fira Code on macOS

We don't support auto italics on macOS yet, and Fira Code doesn't have italics.

So adding auto italics, like we have with freetype backend should help here.

ronakg

comment created time in 6 days

delete branch kchibisov/winit

delete branch : fix-with-min-inner-size-wayland

delete time in 7 days

push eventrust-windowing/winit

Kirill Chibisov

commit sha 037d4121a105c0d1e69956ff6804b7cfdbd9bc8b

On Wayland, fix 'with_min_inner_size' disabling resize Building window with 'set_min_inner_size' was setting 'max_inner_size' under the hood, thus completely disabling window resize, since the window isn't resizeable on Wayland when its minimum size is equal to its maximum size.

view details

push time in 7 days

PR merged rust-windowing/winit

On Wayland, fix 'with_min_inner_size' disabling resize

Building window with 'set_min_inner_size' was setting 'max_inner_size' under the hood, thus completely disabling window resize, since the window isn't resizeable on Wayland when its minimum size is equal to its maximum size.

+2 -1

0 comment

2 changed files

kchibisov

pr closed time in 7 days

PR opened rust-windowing/winit

On Wayland, fix 'with_min_inner_size' disabling resize

Building window with 'set_min_inner_size' was setting 'max_inner_size' under the hood, thus completely disabling window resize, since the window isn't resizeable on Wayland when its minimum size is equal to its maximum size.

+2 -1

0 comment

2 changed files

pr created time in 7 days

create barnchkchibisov/winit

branch : fix-with-min-inner-size-wayland

created branch time in 7 days

issue commentw23/alacritty

hidpi glithes

Well, if you think that it's due to HiDPI and you have XWayland around, you can do WINIT_X11_SCALE_FACTOR=1.2 (or whatever) to try setting arbitrary scaling factors. However before you start digging into that I'd suggest you to rebase, so you'll get latest update to SizeInfo handling.

w23

comment created time in 7 days

pull request commentSmithay/wayland-rs

Use minimal rust version for lints on CI

The cost of one minor commit every 6 weeks to update the few lines that need to be updated seems small enough.

The point is not to ignore new clippy updates, but to don't perform silencing of clippy warnings permanently, since the only way to fix is to silence them like you did here, so you'll never get any new warnings for that check, unless you remember to re enable it when you'll be bumping version, thus you'll be ignoring more than fixing clippy issues.

kchibisov

comment created time in 7 days

Pull request review commentrust-windowing/winit

rename CompostionEvent to IMEPreeditEvent

 pub struct KeyboardInput {  #[derive(Debug, Clone, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]-pub enum CompositionEvent {-    CompositionStart(String),-    CompositionUpdate(String, usize),-    CompositionEnd(String),+pub enum PreeditState {

So, your suggestion is the application can detect the session start by checking the second argument is empty?

But why do you need to detect session start at all? The start is when you've got any IME event.

I mean, I don't understand how end users will handle Start differently to Preedit? Could you give an example where handling of those 2 are different and it makes sense? I get that it's common API for X11 and Web, but it really feels like someone decided to add redundant event that you can mirror with other events.

garasubo

comment created time in 8 days

PullRequestReviewEvent

Pull request review commentrust-windowing/winit

rename CompostionEvent to IMEPreeditEvent

 pub struct KeyboardInput {  #[derive(Debug, Clone, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]-pub enum CompositionEvent {-    CompositionStart(String),-    CompositionUpdate(String, usize),-    CompositionEnd(String),+pub enum PreeditState {

In X11 and Web API allows to start with some texts. For example, I have a committed text "きょうは", and I want to convert it into Kanji after commit, then I can select this string and press key to convert, then the new session will start with "きょうは".

Yeah, I'll just get Preedit for that on Wayland, not start, and my primary concern why can't we merge Start and Preedit, since it's literally doesn't matter what reports initial text, right? Or you want different handling for Start("Hello") and Preedit("Hello", None, None), I'd assume for both cases you shouldn't insert text into widget, right? Since it's a job of Commit.

garasubo

comment created time in 8 days

PullRequestReviewEvent

Pull request review commentrust-windowing/winit

rename CompostionEvent to IMEPreeditEvent

 pub struct KeyboardInput {     pub modifiers: ModifiersState, } +#[derive(Debug, Clone, PartialEq, Eq, Hash)]+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]+pub enum IMEEvent {+    /// The user enables IME+    Enabled,

Does X11 have an event to tell you when you actually have IME running or how to you obtain that information? Also does it tell you when disable happens, since if X11 doesn't have those events they should be issued at some points, since users may only handle IME things after you've actually got those, since IME is user initiated, I guess.

Or it's not the case for X11 and it just always works?

garasubo

comment created time in 8 days

PullRequestReviewEvent

Pull request review commentrust-windowing/winit

rename CompostionEvent to IMEPreeditEvent

 pub struct KeyboardInput {  #[derive(Debug, Clone, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]-pub enum CompositionEvent {-    CompositionStart(String),-    CompositionUpdate(String, usize),-    CompositionEnd(String),+pub enum PreeditState {

My main concern is that I can't really send anything about on PreeditStart on Wayland, since I don't have a Start at all, I can synthesize a PreeditStart(""), but I don't feel like it'll make sense, so I was wondering if we can send Preedit("", None, None) instead of start on those platforms.

garasubo

comment created time in 8 days

PullRequestReviewEvent

Pull request review commentrust-windowing/winit

rename CompostionEvent to IMEPreeditEvent

 pub struct KeyboardInput {  #[derive(Debug, Clone, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]-pub enum CompositionEvent {-    CompositionStart(String),-    CompositionUpdate(String, usize),-    CompositionEnd(String),+pub enum PreeditState {

By start you mean that input method got open or just new input? Since Wayland has a concept of 'Enabled', when user uses its IME, like they opened 'fcitx' or 'ibus' and focused your app. But there's no notion of 'Start', and everything is communicated via 'Preedit' and 'Commit'.

My question was about start, since it looked like Preedit("", None, None) to me.

garasubo

comment created time in 8 days

PullRequestReviewEvent

issue commentalacritty/alacritty

Feature: Differnent cursor thickness for focused and unfocused windows

But I personally like applying thickness to hollow block cursor, since it's more visible, so I don't think that we should do anything at all here.

If downstream wants to make certain cursor thinner, they can patch their sources here.

matthewhughes934

comment created time in 8 days

issue commentalacritty/alacritty

Feature: Differnent cursor thickness for focused and unfocused windows

I guess the goal is not to increase, since it becomes more like block cursor, but decrease, but I don't want it extra thin, so we can use the default thickness value for Hollow Block cursor, which is 0.15.

So we not making it thicker, we just not apply thickness to it.

matthewhughes934

comment created time in 8 days

issue commentalacritty/alacritty

Feature: Differnent cursor thickness for focused and unfocused windows

What do you mean by this?

I mean to use some hardcoded value for HollowBlock thickness, like 0.15.

matthewhughes934

comment created time in 8 days

issue commentalacritty/alacritty

Feature: Differnent cursor thickness for focused and unfocused windows

I personally was already skeptical of the general cursor thickness configuration, though @kchibisov convinced me otherwise. I'd definitely draw the line here and say this is too much.

Yeah, I agree, that's going to far. Alternatively we can use predefined HollowBlock thickness and that's it, adding configuration for unfocused thickness isn't an option.

matthewhughes934

comment created time in 8 days

issue commentalacritty/alacritty

Add unicode shortcut ctrl+Shift+u support

Fcitx5 the word selection window doesn't appear but it might be a Fcitx5 issue.

Yeah, and we don't support inline input method right now, which is #1613

duslabo

comment created time in 8 days

issue commentalacritty/alacritty

Add unicode shortcut ctrl+Shift+u support

fcitx5 on sway won't work without sway patch to grab input, from alacritty side everything for some basic IME stuff is done, and it works on GNOME Wayland.

duslabo

comment created time in 8 days

issue commentw23/alacritty

hidpi glithes

On Windows w/ hidpi u_cell_dim can end up being not integer, thus breaking pixel alignment in shader.

Are you sure that cell dimensions are non integer? All cell metrics are floor'ed in a code, and it'll be strange to get something like that. But I can only speak for latest master, since SizeInfo got changed.

w23

comment created time in 8 days

issue openedw23/alacritty

Dynamic padding is transparent

The dynamic padding around the window is transparent, since the gl:Clear is called with 0 alpha afaics, so it should be called with a proper background color and alpha. You may also do that in shader, but since clear is called also during display init, you should do it there as well(it'll be noticeable on X11 if you don't do that in clear during init).

created time in 9 days

delete branch kchibisov/winit

delete branch : remove-mio-dep-wayland

delete time in 9 days

push eventrust-windowing/winit

Kirill Chibisov

commit sha ee3996cac6766780d0f52b734d5c0ad104da52da

Feature gate more dependencies Wayland backend is self contained and only requires smithay-client-toolkit to work, thus feature gate the rest of the deps that are only for X11.

view details

push time in 9 days

PR merged rust-windowing/winit

Feature gate more dependencies

Wayland backend is self contained and only requires smithay-client-toolkit to work, thus feature gate the rest of the deps that are only for X11.

+11 -11

0 comment

1 changed file

kchibisov

pr closed time in 9 days

more