diff options
Diffstat (limited to 'x11-terms')
-rw-r--r-- | x11-terms/rxvt-unicode/files/rxvt-unicode-9.22-sgr-mouse-mode-flag.patch | 165 | ||||
-rw-r--r-- | x11-terms/rxvt-unicode/metadata.xml | 3 | ||||
-rw-r--r-- | x11-terms/rxvt-unicode/rxvt-unicode-9.22-r7.ebuild | 112 |
3 files changed, 280 insertions, 0 deletions
diff --git a/x11-terms/rxvt-unicode/files/rxvt-unicode-9.22-sgr-mouse-mode-flag.patch b/x11-terms/rxvt-unicode/files/rxvt-unicode-9.22-sgr-mouse-mode-flag.patch new file mode 100644 index 000000000000..3f6f5d90618e --- /dev/null +++ b/x11-terms/rxvt-unicode/files/rxvt-unicode-9.22-sgr-mouse-mode-flag.patch @@ -0,0 +1,165 @@ +diff --git a/config.h.in b/config.h.in +index 914d606..b869bfb 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -9,6 +9,9 @@ + /* Define if you want handling for rarely used but handy features */ + #undef ENABLE_FRILLS + ++/* Define if you want support for SGR mouse mode 1006 */ ++#undef ENABLE_SGRMOUSE ++ + /* Define if you can embed a perl interpreter */ + #undef ENABLE_PERL + +diff --git a/configure.ac b/configure.ac +index 0da3b59..c8b9c80 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -76,6 +76,7 @@ AC_SEARCH_LIBS(gethostbyname, nsl) + AC_SEARCH_LIBS(socket, socket) + + support_frills=yes ++support_sgrmouse=yes + support_inheritpixmap=yes + support_fading=yes + support_keepscrolling=yes +@@ -109,6 +110,7 @@ AC_ARG_ENABLE(everything, + [ + if test x$enableval = xno; then + support_frills=no ++ support_sgrmouse=no + support_inheritpixmap=no + support_fading=no + support_keepscrolling=no +@@ -137,6 +139,7 @@ AC_ARG_ENABLE(everything, + fi + if test x$enableval = xyes; then + support_frills=yes ++ support_sgrmouse=yes + support_inheritpixmap=yes + support_fading=yes + support_keepscrolling=yes +@@ -359,6 +362,12 @@ AC_ARG_ENABLE(frills, + support_frills=$enableval + fi]) + ++AC_ARG_ENABLE(sgrmouse, ++ [ --enable-sgrmouse enable support for SGR mouse mode 1006], ++ [if test x$enableval = xyes -o x$enableval = xno; then ++ support_sgrmouse=$enableval ++ fi]) ++ + AC_ARG_ENABLE(keepscrolling, + [ --enable-keepscrolling enable continual scrolling on scrollbar arrow press], + [if test x$enableval = xyes -o x$enableval = xno; then +@@ -666,6 +675,9 @@ fi + if test x$support_frills = xyes; then + AC_DEFINE(ENABLE_FRILLS, 1, Define if you want handling for rarely used but handy features) + fi ++if test x$support_sgrmouse = xyes; then ++ AC_DEFINE(ENABLE_SGRMOUSE, 1, Define if you want support for SGR mouse mode 1006) ++fi + if test x$support_mousewheel = xyes; then + AC_DEFINE(MOUSE_WHEEL, 1, Define to use wheel events (button4 and button5) to scroll) + fi +diff --git a/src/command.C b/src/command.C +index 7b79f51..a62ef87 100644 +--- a/src/command.C ++++ b/src/command.C +@@ -1282,6 +1282,13 @@ rxvt_term::mouse_report (XButtonEvent &ev) + int button_number, key_state = 0; + int x, y; + int code = 32; ++ bool mode_sgr = false; ++ ++#if ENABLE_SGRMOUSE ++ if (priv_modes & PrivMode_ExtMouseSgr) mode_sgr = true; ++#endif ++ ++ if (mode_sgr) code = 0; + + x = Pixel2Col (ev.x) + 1; + y = Pixel2Row (ev.y) + 1; +@@ -1296,11 +1303,18 @@ rxvt_term::mouse_report (XButtonEvent &ev) + code += 32; + } + +- if (MEvent.button == AnyButton) ++ if (!(mode_sgr) && MEvent.button == AnyButton) + button_number = 3; + else + { +- button_number = MEvent.button - Button1; ++ if (ev.type == MotionNotify) { ++ if (ev.state & Button1Mask) button_number = 0; ++ else if (ev.state & Button2Mask) button_number = 1; ++ else if (ev.state & Button3Mask) button_number = 2; ++ else return; ++ } else { ++ button_number = ev.button - Button1; ++ } + /* add 0x3D for wheel events, like xterm does */ + if (button_number >= 3) + button_number += 64 - 3; +@@ -1361,6 +1375,15 @@ rxvt_term::mouse_report (XButtonEvent &ev) + wint_t (32 + x), + wint_t (32 + y)); + else ++#endif ++#if ENABLE_SGRMOUSE ++ if (mode_sgr) ++ tt_printf ("\033[<%d;%d;%d%c", ++ code + button_number + key_state, ++ x, ++ y, ++ (ev.type == ButtonRelease ? 'm' : 'M')); ++ else + #endif + tt_printf ("\033[M%c%c%c", + code + button_number + key_state, +@@ -2904,7 +2927,7 @@ rxvt_term::process_csi_seq () + scr_soft_reset (); + + static const int pm_h[] = { 7, 25 }; +- static const int pm_l[] = { 1, 3, 4, 5, 6, 9, 66, 1000, 1001, 1005, 1015, 1049 }; ++ static const int pm_l[] = { 1, 3, 4, 5, 6, 9, 66, 1000, 1001, 1002, 1003, 1005, 1006, 1015, 1049 }; + + process_terminal_mode ('h', 0, ecb_array_length (pm_h), pm_h); + process_terminal_mode ('l', 0, ecb_array_length (pm_l), pm_l); +@@ -3710,6 +3733,9 @@ rxvt_term::process_terminal_mode (int mode, int priv ecb_unused, unsigned int na + { 1003, PrivMode_MouseAnyEvent }, + #if ENABLE_FRILLS + { 1005, PrivMode_ExtModeMouse }, ++#endif ++#if ENABLE_SGRMOUSE ++ { 1006, PrivMode_ExtMouseSgr }, + #endif + { 1010, PrivMode_TtyOutputInh }, // rxvt extension + { 1011, PrivMode_Keypress }, // rxvt extension +diff --git a/src/rxvt.h b/src/rxvt.h +index 5c7cf66..2ffd3fb 100644 +--- a/src/rxvt.h ++++ b/src/rxvt.h +@@ -645,6 +645,7 @@ enum { + #define PrivMode_ExtModeMouse (1UL<<23) // xterm pseudo-utf-8 hack + #define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales + #define PrivMode_BlinkingCursor (1UL<<25) ++#define PrivMode_ExtMouseSgr (1UL<<27) // sgr mouse extension + + #define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent) + +diff --git a/src/xdefaults.C b/src/xdefaults.C +index 894aa8d..e5952b7 100644 +--- a/src/xdefaults.C ++++ b/src/xdefaults.C +@@ -359,6 +359,9 @@ static const char optionsstring[] = "options: " + #if defined(ENABLE_FRILLS) + "frills," + #endif ++#if defined(ENABLE_SGRMOUSE) ++ "sgrmouse," ++#endif + #if defined(SELECTION_SCROLLING) + "selectionscrolling," + #endif diff --git a/x11-terms/rxvt-unicode/metadata.xml b/x11-terms/rxvt-unicode/metadata.xml index e088706493d5..b2f262896f27 100644 --- a/x11-terms/rxvt-unicode/metadata.xml +++ b/x11-terms/rxvt-unicode/metadata.xml @@ -21,6 +21,9 @@ <flag name="iso14755">Enable ISO-14755 support</flag> <flag name="mousewheel">Enable scrolling via mouse wheel or buttons 4 and 5</flag> <flag name="perl">Enable perl script support. You can still disable this at runtime with -pe ""</flag> +<flag name="sgrmouse">Enable unofficial support for the xterm SGR 1006 mouse-tracking extension. + Needed to properly support mouse events for terminals with more than 223 + rows or columns, in applications not supporting the urxvt 1015 extension.</flag> <flag name="unicode3">Use 21 instead of 16 bits to represent unicode characters</flag> <flag name="utmp">Enable utmp support</flag> <flag name="wtmp">Enable wtmp support</flag> diff --git a/x11-terms/rxvt-unicode/rxvt-unicode-9.22-r7.ebuild b/x11-terms/rxvt-unicode/rxvt-unicode-9.22-r7.ebuild new file mode 100644 index 000000000000..3f1cb44b6c4b --- /dev/null +++ b/x11-terms/rxvt-unicode/rxvt-unicode-9.22-r7.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools desktop systemd + +COLOUR_PATCH_NAME="${PN}-9.22_24-bit-color_cpixl-20201108.patch" + +DESCRIPTION="rxvt clone with xft and unicode support" +HOMEPAGE="http://software.schmorp.de/pkg/rxvt-unicode.html" +SRC_URI="http://dist.schmorp.de/rxvt-unicode/Attic/${P}.tar.bz2 + https://dev.gentoo.org/~marecki/dists/${PN}/${COLOUR_PATCH_NAME}.xz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris" +IUSE="-24-bit-color 256-color blink fading-colors +font-styles gdk-pixbuf iso14755 +mousewheel + +perl -sgrmouse startup-notification unicode3 +utmp +wtmp xft" + +RESTRICT="test" + +RDEPEND=">=sys-libs/ncurses-5.7-r6:= + media-libs/fontconfig + x11-libs/libX11 + x11-libs/libXrender + gdk-pixbuf? ( x11-libs/gdk-pixbuf ) + kernel_Darwin? ( dev-perl/Mac-Pasteboard ) + perl? ( dev-lang/perl:= ) + startup-notification? ( x11-libs/startup-notification ) + xft? ( x11-libs/libXft )" +DEPEND="${RDEPEND} + x11-base/xorg-proto" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-9.06-case-insensitive-fs.patch + "${FILESDIR}"/${PN}-9.21-xsubpp.patch + "${FILESDIR}"/${PN}-9.22-sgr-mouse-mode-flag.patch + "${WORKDIR}"/${COLOUR_PATCH_NAME} +) +DOCS=( + Changes + README.FAQ + doc/README.xvt + doc/changes.txt + doc/etc/${PN}.term{cap,info} + doc/rxvt-tabbed +) + +src_prepare() { + default + + # kill the rxvt-unicode terminfo file - #192083 + sed -i -e "/rxvt-unicode.terminfo/d" doc/Makefile.in || die "sed failed" + + eautoreconf +} + +src_configure() { + # --enable-everything goes first: the order of the arguments matters + econf --enable-everything \ + $(use_enable 24-bit-color) \ + $(use_enable 256-color) \ + $(use_enable blink text-blink) \ + $(use_enable fading-colors fading) \ + $(use_enable font-styles) \ + $(use_enable gdk-pixbuf pixbuf) \ + $(use_enable iso14755) \ + $(use_enable mousewheel) \ + $(use_enable perl) \ + $(use_enable sgrmouse) \ + $(use_enable startup-notification) \ + $(use_enable unicode3) \ + $(use_enable utmp) \ + $(use_enable wtmp) \ + $(use_enable xft) +} + +src_compile() { + default + + sed -i \ + -e 's/RXVT_BASENAME = "rxvt"/RXVT_BASENAME = "urxvt"/' \ + "${S}"/doc/rxvt-tabbed || die +} + +src_install() { + default + + systemd_douserunit "${FILESDIR}"/urxvtd.service + + make_desktop_entry urxvt rxvt-unicode utilities-terminal \ + "System;TerminalEmulator" +} + +pkg_postinst() { + if use 24-bit-color; then + ewarn + ewarn "You have enabled 24-bit colour support in ${PN}, which is UNOFFICIAL and INCOMPLETE." + ewarn "You may or may not encounter visual glitches or stability issues. When in doubt," + ewarn "rebuild =${CATEGORY}/${PF} with USE=-24-bit-color (the default setting)." + ewarn + fi + + if use sgrmouse; then + ewarn + ewarn "Support for the SGR 1006 mouse extension in ${PN} is UNOFFICIAL and provided as-is." + ewarn "When in doubt, rebuild =${CATEGORY}/${PF} with USE=-sgrmouse (the default setting)." + ewarn + fi +} |