diff options
author | bratekarate | 2020-04-09 23:27:23 +0200 |
---|---|---|
committer | bratekarate | 2020-04-09 23:27:23 +0200 |
commit | 71d42d1c1bd60abefdc16a4b5f29de3bbfc12c5a (patch) | |
tree | ffa198361f876c5c4f8e958e874e8dbbd9850706 | |
download | aur-71d42d1c1bd60abefdc16a4b5f29de3bbfc12c5a.tar.gz |
initial package commit
-rw-r--r-- | .SRCINFO | 39 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | PKGBUILD | 98 | ||||
-rw-r--r-- | background-opacity.patch | 20 | ||||
-rw-r--r-- | fix-smart-resize-with-x11-frame-borders.patch | 54 | ||||
-rw-r--r-- | font-width-fix.patch | 26 | ||||
-rw-r--r-- | line-spacing-fix.patch | 25 | ||||
-rw-r--r-- | matcher-vi-bindings.patch | 26 | ||||
-rw-r--r-- | urxvt-tabbed.desktop | 10 | ||||
-rw-r--r-- | urxvt.desktop | 10 | ||||
-rw-r--r-- | urxvtc.desktop | 10 |
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; |