summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO39
-rw-r--r--.gitignore5
-rw-r--r--Makefile7
-rw-r--r--PKGBUILD98
-rw-r--r--background-opacity.patch20
-rw-r--r--fix-smart-resize-with-x11-frame-borders.patch54
-rw-r--r--font-width-fix.patch26
-rw-r--r--line-spacing-fix.patch25
-rw-r--r--matcher-vi-bindings.patch26
-rw-r--r--urxvt-tabbed.desktop10
-rw-r--r--urxvt.desktop10
-rw-r--r--urxvtc.desktop10
12 files changed, 330 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..2a789e3ab33b
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,39 @@
+pkgbase = rxvt-unicode-pixbuf-patched
+ pkgdesc = Unicode enabled rxvt-clone terminal emulator (urxvt), with pixbuf, fixed font spacing, fixed line spacing, vi-bindings for matcher and fixed opacity.
+ pkgver = 9.22
+ pkgrel = 0
+ url = http://software.schmorp.de/pkg/rxvt-unicode.html
+ arch = i686
+ arch = x86_64
+ license = GPL
+ depends = libxft
+ depends = perl
+ depends = startup-notification
+ depends = rxvt-unicode-terminfo
+ depends = gdk-pixbuf2
+ optdepends = gtk2-perl: to use the urxvt-tabbed
+ provides = rxvt-unicode
+ conflicts = rxvt-unicode
+ source = http://dist.schmorp.de/rxvt-unicode/rxvt-unicode-9.22.tar.bz2
+ source = urxvt.desktop
+ source = urxvtc.desktop
+ source = urxvt-tabbed.desktop
+ source = font-width-fix.patch
+ source = line-spacing-fix.patch
+ source = https://gist.githubusercontent.com/alexoj/df5bae7a4825cb596581/raw/75a1e75c2ae1ec5c0db68a29f8a6821e9e3d87a5/sgr-mouse-mode.patch
+ source = fix-smart-resize-with-x11-frame-borders.patch
+ source = background-opacity.patch
+ source = matcher-vi-bindings.patch
+ sha1sums = e575b869782fbfed955f84f48b204ec888d91ba1
+ sha1sums = b5a4507f85ebb7bac589db2e07d9bc40106720d9
+ sha1sums = 62c4ffecfce6967def394dd4d418b68652372ea2
+ sha1sums = cd204d608d114d39c80331efe0af0231ad6b7e18
+ sha1sums = 01ee8f212add79a158dcd4ed78d0ea1324bdc59b
+ sha1sums = b7fde1c46af45e831828738874f14b092b1e795f
+ sha1sums = dfbc8729c545105eff21e20ef3a4a3841a68a192
+ sha1sums = 6dfa49a211c48193c8d87fb9993ed459b2b4387b
+ sha1sums = 786f1d4159ca4d644e34bf22e8a24ac483e719d6
+ sha1sums = eb11ce847839d9764b7883d45d59c5fbdcae5962
+
+pkgname = rxvt-unicode-pixbuf-patched
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..babeb0996ab5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+pkg/
+rxvt-unicode-9.22.tar.bz2
+rxvt-unicode-pixbuf-patched-9.22-0-x86_64.pkg.tar.xz
+sgr-mouse-mode.patch
+src/
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000000..7f9a3c3ec5f1
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,7 @@
+update: PKGBUILD .SRCINFO
+
+PKGBUILD:
+ updpkgsums
+
+.SRCINFO: PKGBUILD
+ makepkg --printsrcinfo > $@
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..fb048a49efb5
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,98 @@
+# Maintainer: Brate Z <brate kann karate at gmail dot com>
+# This is a fork of rxvt-unicode-patched. Added pixbuf and some patches.
+
+_pkgname=rxvt-unicode
+pkgname=rxvt-unicode-pixbuf-patched
+pkgver=9.22
+pkgrel=0
+pkgdesc='Unicode enabled rxvt-clone terminal emulator (urxvt), with pixbuf, fixed font spacing, fixed line spacing, vi-bindings for matcher and fixed opacity.'
+arch=('i686' 'x86_64')
+url='http://software.schmorp.de/pkg/rxvt-unicode.html'
+license=('GPL')
+depends=('libxft' 'perl' 'startup-notification' 'rxvt-unicode-terminfo' 'gdk-pixbuf2')
+optdepends=('gtk2-perl: to use the urxvt-tabbed')
+provides=(rxvt-unicode)
+conflicts=(rxvt-unicode)
+source=(http://dist.schmorp.de/rxvt-unicode/$_pkgname-$pkgver.tar.bz2
+ 'urxvt.desktop'
+ 'urxvtc.desktop'
+ 'urxvt-tabbed.desktop'
+ 'font-width-fix.patch'
+ 'line-spacing-fix.patch'
+ 'https://gist.githubusercontent.com/alexoj/df5bae7a4825cb596581/raw/75a1e75c2ae1ec5c0db68a29f8a6821e9e3d87a5/sgr-mouse-mode.patch'
+ 'fix-smart-resize-with-x11-frame-borders.patch'
+ 'background-opacity.patch'
+ 'matcher-vi-bindings.patch')
+sha1sums=('e575b869782fbfed955f84f48b204ec888d91ba1'
+ 'b5a4507f85ebb7bac589db2e07d9bc40106720d9'
+ '62c4ffecfce6967def394dd4d418b68652372ea2'
+ 'cd204d608d114d39c80331efe0af0231ad6b7e18'
+ '01ee8f212add79a158dcd4ed78d0ea1324bdc59b'
+ 'b7fde1c46af45e831828738874f14b092b1e795f'
+ 'dfbc8729c545105eff21e20ef3a4a3841a68a192'
+ '6dfa49a211c48193c8d87fb9993ed459b2b4387b'
+ '786f1d4159ca4d644e34bf22e8a24ac483e719d6'
+ 'eb11ce847839d9764b7883d45d59c5fbdcae5962')
+
+prepare() {
+ cd $_pkgname-$pkgver
+
+ patch -p0 -i ../font-width-fix.patch
+ patch -p0 -i ../line-spacing-fix.patch
+ patch -p0 -i ../sgr-mouse-mode.patch
+ patch -p1 -i ../fix-smart-resize-with-x11-frame-borders.patch
+ patch -p0 -i ../background-opacity.patch
+ patch -p0 -i ../matcher-vi-bindings.patch
+}
+
+build() {
+ cd $_pkgname-$pkgver
+
+ # 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 \
+ --enable-smart-resize \
+ --enable-startup-notification \
+ --enable-transparency \
+ --enable-unicode3 \
+ --enable-utmp \
+ --enable-wtmp \
+ --enable-xft \
+ --enable-xim \
+ --enable-xterm-scroll \
+ --enable-pixbuf
+ make
+}
+
+package() {
+
+ # install freedesktop menu
+ for _f in urxvt urxvtc urxvt-tabbed; do
+ install -Dm644 $_f.desktop "$pkgdir/usr/share/applications/$_f.desktop"
+ done
+
+ cd $_pkgname-$pkgver
+
+ # 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"
+}
diff --git a/background-opacity.patch b/background-opacity.patch
new file mode 100644
index 000000000000..c8c7cb1b6890
--- /dev/null
+++ b/background-opacity.patch
@@ -0,0 +1,20 @@
+--- src/rxvtimg.C
++++ src/rxvtimg.C
+@@ -770,9 +770,15 @@
+
+ if (repeat == RepeatNone)
+ {
+- XRenderColor rc = { 0, 0, 0, 0 };
++ rgba bg = GET_R->pix_colors[Color_bg];
++ XRenderColor rc = {
++ (unsigned short)(bg.r * bg.a / 65535),
++ (unsigned short)(bg.g * bg.a / 65535),
++ (unsigned short)(bg.b * bg.a / 65535),
++ GET_R->depth == 32 ? bg.a : 65535
++ };
+ XRenderFillRectangle (cc.dpy, PictOpSrc, cc.dst, &rc, 0, 0, w, h);//TODO: split into four fillrectangles
+- XRenderComposite (cc.dpy, PictOpSrc, cc.src, None, cc.dst, 0, 0, 0, 0, x, y, ref->w, ref->h);
++ XRenderComposite (cc.dpy, PictOpOver, cc.src, None, cc.dst, 0, 0, 0, 0, x, y, ref->w, ref->h);
+ }
+ else
+ XRenderComposite (cc.dpy, PictOpSrc, cc.src, None, cc.dst, -x, -y, 0, 0, 0, 0, w, h);
diff --git a/fix-smart-resize-with-x11-frame-borders.patch b/fix-smart-resize-with-x11-frame-borders.patch
new file mode 100644
index 000000000000..9311f9d70d8d
--- /dev/null
+++ b/fix-smart-resize-with-x11-frame-borders.patch
@@ -0,0 +1,54 @@
+commit bec3f19
+Author: Emanuele Giaquinta <e.giaquinta@glauco.it>
+Date: Tue Jun 28 21:56:17 2016 +0000
+
+ Fix invalid moves when smart resize is enabled and the wm uses X11 borders for the frame windows.
+
+ Patch by Uli Schlachter.
+---
+ src/main.C | 25 +++++++++++++++++++++++--
+ 1 file changed, 23 insertions(+), 2 deletions(-)
+
+diff --git a/src/main.C b/src/main.C
+index 39aa5ec..5fa605e 100644
+--- a/src/main.C
++++ b/src/main.C
+@@ -1054,6 +1054,25 @@ rxvt_term::alias_color (int dst, int src)
+ pix_colors[dst].set (this, rs[Rs_color + dst] = rs[Rs_color + src]);
+ }
+
++#ifdef SMART_RESIZE
++static unsigned int
++get_parent_bw (Display *dpy, Window w)
++{
++ int idummy;
++ unsigned int udummy;
++ Window wdummy, parent;
++ Window *children;
++ unsigned int nchildren, border_width;
++
++ XQueryTree (dpy, w, &wdummy, &parent, &children, &nchildren);
++ XFree (children);
++ XGetGeometry (dpy, parent, &wdummy, &idummy, &idummy,
++ &udummy, &udummy, &border_width, &udummy);
++
++ return border_width;
++}
++#endif
++
+ /* -------------------------------------------------------------------- *
+ * - WINDOW RESIZING - *
+ * -------------------------------------------------------------------- */
+@@ -1098,8 +1117,10 @@ rxvt_term::resize_all_windows (unsigned int newwidth, unsigned int newheight, in
+ */
+ if (x1 != x || y1 != y)
+ {
+- x -= x1;
+- y -= y1;
++ unsigned int border_width = get_parent_bw (dpy, parent);
++
++ x -= x1 + border_width;
++ y -= y1 + border_width;
+ }
+
+ x1 = (DisplayWidth (dpy, display->screen) - old_width ) / 2;
diff --git a/font-width-fix.patch b/font-width-fix.patch
new file mode 100644
index 000000000000..811d9e615ab4
--- /dev/null
+++ b/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/line-spacing-fix.patch b/line-spacing-fix.patch
new file mode 100644
index 000000000000..8431c4fa0cb4
--- /dev/null
+++ b/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/matcher-vi-bindings.patch b/matcher-vi-bindings.patch
new file mode 100644
index 000000000000..da84fc2a83c0
--- /dev/null
+++ b/matcher-vi-bindings.patch
@@ -0,0 +1,26 @@
+--- src/perl/matcher.orig 2020-02-29 23:45:24.063211389 +0100
++++ src/perl/matcher 2020-03-01 00:17:42.830703028 +0100
+@@ -467,11 +467,11 @@
+ } elsif ($keysym == 0xff1b) { # escape
+ $self->view_start ($self->{view_start});
+ $self->select_leave;
+- } elsif ($keysym == 0xff50) { # home
++ } elsif ($keysym == 0xff50 || $keysym == 0x0067) { # home
+ $self->select_search (+1, $self->top_row)
+- } elsif ($keysym == 0xff57) { # end
++ } elsif ($keysym == 0xff57 || $keysym == 0x0047) { # end
+ $self->select_search (-1, $self->nrow - 1)
+- } elsif ($keysym == 0xff52) { # up
++ } elsif ($keysym == 0xff52 || $keysym == 0x006b) { # up
+ if ($self->{id} > 0) {
+ $self->{id}--;
+ $self->want_refresh;
+@@ -480,7 +480,7 @@
+ $self->select_search (-1, $line->beg - 1)
+ if $line->beg > $self->top_row;
+ }
+- } elsif ($keysym == 0xff54) { # down
++ } elsif ($keysym == 0xff54 || $keysym == 0x006a) { # down
+ if ($self->{id} < @{ $self->{matches} } - 1) {
+ $self->{id}++;
+ $self->want_refresh;
diff --git a/urxvt-tabbed.desktop b/urxvt-tabbed.desktop
new file mode 100644
index 000000000000..f3efdc9b9e37
--- /dev/null
+++ b/urxvt-tabbed.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=urxvt (tabbed)
+Comment=An unicode capable and tabbed rxvt clone
+Exec=urxvt-tabbed
+Icon=terminal
+Terminal=false
+Type=Application
+Categories=Application;System;TerminalEmulator;
diff --git a/urxvt.desktop b/urxvt.desktop
new file mode 100644
index 000000000000..0a9baf7dfcce
--- /dev/null
+++ b/urxvt.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=urxvt
+Comment=An unicode capable rxvt clone
+Exec=urxvt
+Icon=terminal
+Terminal=false
+Type=Application
+Categories=Application;System;TerminalEmulator;
diff --git a/urxvtc.desktop b/urxvtc.desktop
new file mode 100644
index 000000000000..e39a418f6522
--- /dev/null
+++ b/urxvtc.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=urxvt (client)
+Comment=An unicode capable rxvt clone client for urxvtd
+Exec=urxvtc
+Icon=terminal
+Terminal=false
+Type=Application
+Categories=Application;System;TerminalEmulator;