In tmux 3.4, a regression was introduced that breaks the deprecated (but still
supported for backwards compatibility) -p option to split-window. Several
external tools (for example fzf.kak, fzf-tmux and nnn) break due to this. Add
the proposed upstream fix from https://github.com/tmux/tmux/pull/3840.
Many packages have some kind of flag indicating whether or not to build with
systemd support. Most of these default to `stdenv.isLinux`, but systemd does
not build on (and is marked `broken` for) `isStatic`. Only a few packages have
the needed `&& !isStatic` in the default value for their parameter.
This commit moves the logic for the default value of these flags into
`systemd.meta.{platforms,badPlatforms}` and evaluates those conditions using
`lib.meta.availableOn`.
This provides three benefits:
1. The default values are set correctly (i.e. including `&& isStatic`)
2. The default values are set consistently
3. The way is paved for any future non-Linux systemd platforms (FreeBSD is
reported to have experimental systemd support)
Currently, tmux does not render emoji from Unicode 15 (e.g. U+1FABF 🪿), because the
`wcwidth` function from glibc does not know about the new characters.
Support was added upstream but not released yet
(https://sourceware.org/git/?p=glibc.git;a=commit;h=7fe6734d28feb18acb3c50b13a5f5a52f66d39cf).
Instead, tmux can use the `wcwidth` function from utf8proc, which has
regular updates so that we don't have to wait 6 months for the new
characters to be supported.
Without utf8proc, tmux on Darwin does not get enough information about character
widths. This means that tmux has rendering issues involving multi-byte
characters like emoji, ending up with visual artifacts.
From the changelog:
* Fix build on systems without sys/queue.h.
* Fix crash when allow-rename is on and an empty name is set.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
From the changelog:
* Do not close stdout prematurely in control mode since it is needed to print
exit messages. Prevents hanging when detaching with iTerm2.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
tmux 2.8 has a broken version string (2.8-rc) which we patch in configure.ac
CHANGES FROM 2.7 to 2.8
* Make display-panes block the client until a pane is chosen or it
times out.
* Clear history on RIS like most other terminals do.
* Add an "Any" key to run a command if a key is pressed that is not
bound in the current key table.
* Expand formats in load-buffer and save-buffer.
* Add a rectangle_toggle format.
* Add set-hook -R to run a hook immediately.
* Add README.ja.
* Add pane focus hooks.
* Allow any punctuation as separator for s/x/y not only /.
* Improve resizing with the mouse (fix resizing the wrong pane in some
layouts, and allow resizing multiple panes at the same time).
* Allow , and } to be escaped in formats as #, and #}.
* Add KRB5CCNAME to update-environment.
* Change meaning of -c to display-message so the client is used if it
matches the session given to -t.
* Fixes to : form of SGR.
* Add x and X to choose-tree to kill sessions, windows or panes.