diff --git a/rxvt-unicode-cvs/PKGBUILD b/rxvt-unicode-cvs/PKGBUILD new file mode 100644 index 0000000..0bfdc25 --- /dev/null +++ b/rxvt-unicode-cvs/PKGBUILD @@ -0,0 +1,111 @@ +# Maintainer: Von Random +# Contributor: Adriaan Zonnenberg +# Contributor: Florian Bruhin (The-Compiler) +# Contributor: Daniel Micay +# Contributor: Sébastien Luttringer +# Contributor: Angel Velasquez +# Contributor: tobias +# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org + +_pkgname=rxvt-unicode +pkgname=('rxvt-unicode-cvs' 'rxvt-unicode-terminfo-cvs') +pkgver=$(date +%Y%m%d) +pkgrel=1 +arch=('x86_64') +url='http://software.schmorp.de/pkg/rxvt-unicode.html' +license=('GPL') +makedepends=('libxft' 'perl' 'startup-notification' 'libnsl' 'gdk-pixbuf2' 'cvs') +source=( + urxvt.desktop + urxvtc.desktop + urxvt-tabbed.desktop + font-width-fix.patch + line-spacing-fix.patch + terminfo-truecolor.patch + urxvt-sgr.patch +) +sha256sums=( + 5f9c435d559371216d1c5b49c6ec44bfdb786b12d925d543c286b0764dea0319 + 91536bb27c6504d6cb0d33775a0c4709a4b439670b900f0c278c25037f19ad66 + ccd7c436e959bdc9ab4f15801a67c695b382565b31d8c352254362e67412afcb + 686770fe4e8d6bb0ba497ad2e1f217d17515f2544d80abe76496c63ead2bfaa4 + 546a388d0595404a59c71c3eaeba331031032a75f96c57e9a860f27bbd7ebfcc + da1405889a660fe912a1d9cda9204d33daffa3de83140610fe227cca9fc4ea8e + f36110dce2dce4d6e275410de820f314b72a02dbad08f637c64b0da769c0c8f4 +) + +prepare() { + cvs -z3 -d :pserver:anonymous@cvs.schmorp.de/schmorpforge co ${_pkgname} + cd ${_pkgname} + + patch -p0 -i ../font-width-fix.patch + patch -p0 -i ../line-spacing-fix.patch + patch -p0 -i ../urxvt-sgr.patch + patch -p0 -i ../terminfo-truecolor.patch +} + +build() { + cd ${_pkgname} + # we disable smart-resize (FS#34807) + # do not specify --with-terminfo (FS#46424) + ./configure \ + --prefix=/usr \ + --enable-256-color \ + --enable-combining \ + --enable-fading \ + --enable-font-styles \ + --enable-iso14755 \ + --enable-keepscrolling \ + --enable-lastlog \ + --enable-mousewheel \ + --enable-next-scroll \ + --enable-perl \ + --enable-pointer-blank \ + --enable-rxvt-scroll \ + --enable-selectionscrolling \ + --enable-slipwheeling \ + --disable-smart-resize \ + --enable-startup-notification \ + --enable-transparency \ + --enable-unicode3 \ + --enable-utmp \ + --enable-wtmp \ + --enable-xft \ + --enable-xim \ + --enable-xterm-scroll \ + --disable-frills + make +} + +package_rxvt-unicode-cvs() { + pkgdesc='A unicode enabled rxvt-clone terminal emulator (urxvt) - latest cvs revision' + depends=('rxvt-unicode-terminfo-cvs' 'libxft' 'perl' 'startup-notification' 'libnsl') + optdepends=('gtk2-perl: to use the urxvt-tabbed') + provides=('rxvt-unicode') + conflicts=('rxvt-unicode') + + # install freedesktop menu + for _f in urxvt urxvtc urxvt-tabbed; do + install -Dm 644 ${_f}.desktop "${pkgdir}/usr/share/applications/${_f}.desktop" + done + + cd $_pkgname + # workaround terminfo installation + export TERMINFO="${srcdir}/terminfo" + install -d "${TERMINFO}" + make DESTDIR="${pkgdir}" install + # install the tabbing wrapper ( requires gtk2-perl! ) + sed -i 's/\"rxvt\"/"urxvt"/' doc/rxvt-tabbed + install -Dm 755 doc/rxvt-tabbed "${pkgdir}/usr/bin/urxvt-tabbed" +} + +package_rxvt-unicode-terminfo-cvs() { + provides=('rxvt-unicode-terminfo') + conflicts=('rxvt-unicode-terminfo') + pkgdesc='Terminfo files for urxvt' + conflict=('rxvt-unicode<=9.18-6') + install -dm 755 "${pkgdir}/usr/share/" + mv terminfo "${pkgdir}/usr/share/" +} + +# vim: ts=2 sw=2 et: diff --git a/rxvt-unicode-cvs/font-width-fix.patch b/rxvt-unicode-cvs/font-width-fix.patch new file mode 100644 index 0000000..811d9e6 --- /dev/null +++ b/rxvt-unicode-cvs/font-width-fix.patch @@ -0,0 +1,26 @@ +--- src/rxvtfont.C.bukind 2007-11-30 14:36:33.000000000 +0600 ++++ src/rxvtfont.C 2007-11-30 14:39:29.000000000 +0600 +@@ -1171,12 +1171,21 @@ + XGlyphInfo g; + XftTextExtents16 (disp, f, &ch, 1, &g); + ++/* ++ * bukind: don't use g.width as a width of a character! ++ * instead use g.xOff, see e.g.: http://keithp.com/~keithp/render/Xft.tutorial ++ + g.width -= g.x; + + int wcw = WCWIDTH (ch); + if (wcw > 0) g.width = (g.width + wcw - 1) / wcw; + + if (width < g.width ) width = g.width; ++ */ ++ int wcw = WCWIDTH (ch); ++ if (wcw > 1) g.xOff = g.xOff / wcw; ++ if (width < g.xOff) width = g.xOff; ++ + if (height < g.height ) height = g.height; + if (glheight < g.height - g.y) glheight = g.height - g.y; + } + + diff --git a/rxvt-unicode-cvs/line-spacing-fix.patch b/rxvt-unicode-cvs/line-spacing-fix.patch new file mode 100644 index 0000000..8431c4f --- /dev/null +++ b/rxvt-unicode-cvs/line-spacing-fix.patch @@ -0,0 +1,25 @@ +--- src/rxvtfont.C.orig 2011-07-20 22:19:29.878012201 -0300 ++++ src/rxvtfont.C 2011-07-20 22:19:33.634671723 -0300 +@@ -1237,11 +1237,22 @@ + + FT_Face face = XftLockFace (f); + ++/* ++ * use ascent, descent and height from XftFont *f instead of FT_Face face. ++ * this somehow reproduces the behaviour of the line height as seen on xterm. ++ + ascent = (face->size->metrics.ascender + 63) >> 6; + descent = (-face->size->metrics.descender + 63) >> 6; + height = max (ascent + descent, (face->size->metrics.height + 63) >> 6); + width = 0; + ++ */ ++ ++ ascent = f->ascent; ++ descent = f->descent; ++ height = max (ascent + descent, f->height); ++ width = 0; ++ + bool scalable = face->face_flags & FT_FACE_FLAG_SCALABLE; + + XftUnlockFace (f); diff --git a/rxvt-unicode-cvs/terminfo-truecolor.patch b/rxvt-unicode-cvs/terminfo-truecolor.patch new file mode 100644 index 0000000..35b8080 --- /dev/null +++ b/rxvt-unicode-cvs/terminfo-truecolor.patch @@ -0,0 +1,18 @@ +--- doc/etc/rxvt-unicode.terminfo.orig 2019-01-28 17:26:10.680252189 +0300 ++++ doc/etc/rxvt-unicode.terminfo 2019-01-28 17:26:10.690252302 +0300 +@@ -190,3 +190,4 @@ + colors#256, + pairs#32767, + use=rxvt-unicode, ++ Tc, +--- doc/Makefile.in.orig 2019-01-28 17:24:07.168856085 +0300 ++++ doc/Makefile.in 2019-01-28 17:24:10.458893241 +0300 +@@ -98,7 +98,7 @@ + $(INSTALL_DATA) rxvtc.1.man $(DESTDIR)$(man1dir)/$(RXVTNAME)c.$(man1ext) + $(INSTALL_DATA) rxvtd.1.man $(DESTDIR)$(man1dir)/$(RXVTNAME)d.$(man1ext) + $(INSTALL_DATA) rxvt.7.man $(DESTDIR)$(man7dir)/$(RXVTNAME).$(man7ext) +- @TIC@ $(srcdir)/etc/rxvt-unicode.terminfo ++ @TIC@ -sx $(srcdir)/etc/rxvt-unicode.terminfo + + distdepend: alldoc + diff --git a/rxvt-unicode-cvs/urxvt-sgr.patch b/rxvt-unicode-cvs/urxvt-sgr.patch new file mode 100644 index 0000000..cb1b409 --- /dev/null +++ b/rxvt-unicode-cvs/urxvt-sgr.patch @@ -0,0 +1,90 @@ +--- src/command.C 2014-12-13 13:22:09.000000000 +0100 ++++ src/command.C 2016-01-13 04:50:39.161862513 +0100 +@@ -1280,6 +1280,8 @@ + int x, y; + int code = 32; + ++ if (priv_modes & PrivMode_ExtMouseSgr) code = 0; ++ + x = Pixel2Col (ev.x) + 1; + y = Pixel2Row (ev.y) + 1; + +@@ -1293,11 +1295,18 @@ + code += 32; + } + +- if (MEvent.button == AnyButton) ++ if (!(priv_modes & PrivMode_ExtMouseSgr) && 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; +@@ -1347,16 +1356,22 @@ + #endif + + #if ENABLE_FRILLS ++ if (priv_modes & PrivMode_ExtMouseSgr) ++ tt_printf ("\033[<%d;%d;%d%c", ++ code + button_number + key_state, ++ x, ++ y, ++ (ev.type == ButtonRelease ? 'm' : 'M')); +- if (priv_modes & PrivMode_ExtMouseRight) ++ else if (priv_modes & PrivMode_ExtMouseRight) + tt_printf ("\033[%d;%d;%dM", + code + button_number + key_state, + x, + y); + else if (priv_modes & PrivMode_ExtModeMouse) + tt_printf ("\033[M%c%lc%lc", + code + button_number + key_state, + wint_t (32 + x), + wint_t (32 + y)); + else + #endif + tt_printf ("\033[M%c%c%c", +@@ -2908,7 +2913,7 @@ + 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); +@@ -3713,13 +3718,14 @@ + { 1003, PrivMode_MouseAnyEvent }, + #if ENABLE_FRILLS + { 1004, PrivMode_FocusEvent }, + { 1005, PrivMode_ExtModeMouse }, ++ { 1006, PrivMode_ExtMouseSgr }, + #endif + { 1010, PrivMode_TtyOutputInh }, // rxvt extension + { 1011, PrivMode_Keypress }, // rxvt extension + #if ENABLE_FRILLS + { 1015, PrivMode_ExtMouseRight }, // urxvt extension of 1005 + #endif + // 1035 enable modifiers for alt, numlock NYI + // 1036 send ESC for meta keys NYI + // 1037 send DEL for keypad delete NYI +--- src/rxvt.h 2014-12-17 16:33:08.000000000 +0100 ++++ src/rxvt.h 2016-01-13 03:42:31.508911380 +0100 +@@ -644,6 +644,7 @@ + #define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales + #define PrivMode_BlinkingCursor (1UL<<25) + #define PrivMode_FocusEvent (1UL<<26) ++#define PrivMode_ExtMouseSgr (1UL<<27) // sgr mouse extension + + #define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent) + diff --git a/rxvt-unicode-cvs/urxvt-tabbed.desktop b/rxvt-unicode-cvs/urxvt-tabbed.desktop new file mode 100644 index 0000000..172006b --- /dev/null +++ b/rxvt-unicode-cvs/urxvt-tabbed.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Name=urxvt (tabbed) +Comment=An unicode capable and tabbed rxvt clone +Exec=urxvt-tabbed +Icon=utilities-terminal +Terminal=false +Type=Application +Categories=System;TerminalEmulator; diff --git a/rxvt-unicode-cvs/urxvt.desktop b/rxvt-unicode-cvs/urxvt.desktop new file mode 100644 index 0000000..7622918 --- /dev/null +++ b/rxvt-unicode-cvs/urxvt.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Name=urxvt +Comment=An unicode capable rxvt clone +Exec=urxvt +Icon=utilities-terminal +Terminal=false +Type=Application +Categories=System;TerminalEmulator; diff --git a/rxvt-unicode-cvs/urxvtc.desktop b/rxvt-unicode-cvs/urxvtc.desktop new file mode 100644 index 0000000..3a2df41 --- /dev/null +++ b/rxvt-unicode-cvs/urxvtc.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Name=urxvt (client) +Comment=An unicode capable rxvt clone client for urxvtd +Exec=urxvtc +Icon=utilities-terminal +Terminal=false +Type=Application +Categories=System;TerminalEmulator;