Um... that's kind of a deal breaker to me. Really no scrollback at all?
Um... that's kind of a deal breaker to me. Really no scrollback at all?
As far as I can tell, using Tmux's scrollback instead has no downsides of note, but some _very_ significant upsides. For example, (1) shared buffer between terminal windows, and (2) copy/paste modes that are usable with Vim shortcuts.
I'm not saying this is necessarily a bad thing (haven't tried it), I'm just saying this is the way to get my scrollback... uh... back.
Might as well ship the terminal with tmux as a hard dependency and launch a tmux child process by default.
Yeah, but it's not as bad as it sounds once you "move down a layer" and treat Tmux like your terminal manager rather than your terminal. When I need to a new shell, I don't open a new terminal window; instead I open a new Tmux "window" (the spiritual equivalent to a tab) and do the work there. I keep the same two terminal windows open with nested Tmux sessions for months at a time. By extension, opening new Tmux sessions is also an extremely rare event because the ones I already have are persistent.
> Might as well ship the terminal with tmux as a hard dependency and launch a tmux child process by default.
I think it's still nice to leave some room for customization here. Screen is still a pretty good Tmux alternative for example (in fact, five years ago you would have said that Tmux was a screen alternative rather than vice versa), and some people might prefer to use that instead.
This definitely is a polarizing design decision, but one I support.
(edit) from the project's github page in fact
The simplicity goal means that it doesn't have many features like tabs or scroll back as in other terminals. Instead, it is expected that users of Alacritty make use of a terminal multiplexer such as tmux.
This approach also means you can't do anything interesting like what Terminal.app does with detecting prompts, marking them, and letting you jump back to them (or clear history back to them).
This approach could be excused if the terminal actually natively integrated with tmux, thus providing its own gui splits/tabs that represent tmux's panes/windows, but it doesn't sound like it does that.
Also, some terminal emulators (iTerm2 on Mac) let you disable mouse grabbing by holding a special key while clicking, maybe Alacritty could implement something like this?
That said, I really wanted to build this exact same project at some point, so maybe seems like a feature that could be added in a fork :)
For example, here's my mouse-related tmux config:
set -g mouse on
# enter copy-mode by scrolling, but don't select the pane
# The usage of #{mouse_any_flag} just forwards mouse events when in a fullscreen app that wants them
bind -n WheelUpPane if -F -t = "#{mouse_any_flag}" "send-keys -M -t =" "if -F -t = '#{alternate_on}' 'send-keys -t = Up' \"if -F -t = '#{pane_in_mode}' '' 'copy-mode -e -t ='; send-keys -M -t =\""
bind -n WheelDownPane if -F -t = "#{alternate_on}" "send-keys -t = Down" "send-keys -M -t ="
# Start copy-mode with PageUp
# For PageDown, if we're not in copy-mode, discard it
bind -n PageUp if -F "#{alternate_on}" "send-keys PageUp" "copy-mode -eu"
bind -n PageDown if -F "#{alternate_on}" "send-keys PageDown" "if -F '#{pane_in_mode}' 'send-keys PageDown'"However, some people complain about mouse issues. I would suspect that some terminal emulators are trying way too hard to properly handle mouse events.