diff options
author | Ismo Toijala | 2015-06-26 10:45:34 +0200 |
---|---|---|
committer | Ismo Toijala | 2015-06-26 10:45:34 +0200 |
commit | a145b42a7cf4e0454c46c7258d91f778ee4402d0 (patch) | |
tree | ef4b3c32b742c45d03ff4ed4b5d702d3fc9cac77 | |
download | aur-a145b42a7cf4e0454c46c7258d91f778ee4402d0.tar.gz |
initial upload
-rw-r--r-- | .SRCINFO | 40 | ||||
-rw-r--r-- | PKGBUILD | 100 | ||||
-rw-r--r-- | clear.patch | 61 | ||||
-rw-r--r-- | font-width-fix.patch | 24 | ||||
-rw-r--r-- | line-spacing-fix.patch | 25 | ||||
-rw-r--r-- | noinc.diff | 35 | ||||
-rw-r--r-- | popup-menu-hang.diff | 24 | ||||
-rw-r--r-- | secondaryWheel.patch | 119 | ||||
-rw-r--r-- | urxvt-tabbed.desktop | 9 | ||||
-rw-r--r-- | urxvt.desktop | 9 | ||||
-rw-r--r-- | urxvtc.desktop | 9 |
11 files changed, 455 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..3d6bc2d9951e --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,40 @@ +# Generated by makepkg 4.2.1 +# Fri Jun 26 08:44:20 UTC 2015 +pkgbase = rxvt-unicode-fontspacing-noinc-vteclear-secondarywheel + pkgdesc = Unicode enabled rxvt-clone terminal emulator (urxvt) with fixed font spacing, no increment resizing, clear patched to behave like VTEs (keep all lines) and secondaryWheel. + pkgver = 9.21 + pkgrel = 1 + url = http://software.schmorp.de/pkg/rxvt-unicode.html + arch = i686 + arch = x86_64 + license = GPL + depends = rxvt-unicode-terminfo + depends = libxft + depends = perl + depends = startup-notification + optdepends = gtk2-perl: to use the urxvt-tabbed + provides = rxvt-unicode + conflicts = rxvt-unicode + source = http://dist.schmorp.de/rxvt-unicode/rxvt-unicode-9.21.tar.bz2 + source = urxvt.desktop + source = urxvtc.desktop + source = urxvt-tabbed.desktop + source = font-width-fix.patch + source = line-spacing-fix.patch + source = noinc.diff + source = popup-menu-hang.diff + source = clear.patch + source = secondaryWheel.patch + md5sums = a9a06c608258c5fd247c3725d8f44582 + md5sums = fec94dc986fa37ec380079d81de3e0b2 + md5sums = fac55f0a8404c86dad3e702146762332 + md5sums = 8a5599197568c63720e282b9722a7990 + md5sums = f6bb5770d2e7b06d88882513710a267d + md5sums = d4e03127a0d3bbf2e173850770651b08 + md5sums = 1c85de8253b3a9002fabaaaccbdb51de + md5sums = aead33ba3b08eeb251fb0c1427a4a024 + md5sums = 061b851e89e53a71d1afad6947c51ca7 + md5sums = 6e137593a69b4b584305f3d513e471bf + +pkgname = rxvt-unicode-fontspacing-noinc-vteclear-secondarywheel + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..8bc3c44133d9 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,100 @@ +# Maintainer: Ismo Toijala <ismo.toijala@gmail.com> +# Contributor: Daniel Micay <danielmicay@gmail.com> +# Contributor: Sébastien Luttringer <seblu@aur.archlinux.org> +# Contributor: Angel Velasquez <angvp@archlinux.org> +# Contributor: tobias <tobias@archlinux.org> +# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org + +_pkgbase='rxvt-unicode' +pkgname='rxvt-unicode-fontspacing-noinc-vteclear-secondarywheel' +pkgver=9.21 +pkgrel=1 +pkgdesc='Unicode enabled rxvt-clone terminal emulator (urxvt) with fixed font spacing, no increment resizing, clear patched to behave like VTEs (keep all lines) and secondaryWheel.' +arch=('i686' 'x86_64') +url='http://software.schmorp.de/pkg/rxvt-unicode.html' +license=('GPL') +depends=('rxvt-unicode-terminfo' 'libxft' 'perl' 'startup-notification') +optdepends=('gtk2-perl: to use the urxvt-tabbed') +source=("http://dist.schmorp.de/rxvt-unicode/$_pkgbase-$pkgver.tar.bz2" + 'urxvt.desktop' + 'urxvtc.desktop' + 'urxvt-tabbed.desktop' + 'font-width-fix.patch' + 'line-spacing-fix.patch' + 'noinc.diff' + 'popup-menu-hang.diff' + 'clear.patch' + 'secondaryWheel.patch' +) +provides=('rxvt-unicode') +conflicts=('rxvt-unicode') + +prepare() { + cd $_pkgbase-$pkgver + patch -p0 -i ../font-width-fix.patch + patch -p0 -i ../line-spacing-fix.patch + patch -p0 -i ../popup-menu-hang.diff + patch -p1 -i ../noinc.diff + patch -p1 -i ../clear.patch + patch -p1 -i ../secondaryWheel.patch +} + +build() { + cd $_pkgbase-$pkgver + # we disable smart-resize (FS#34807) + ./configure \ + --prefix=/usr \ + --with-terminfo=/usr/share/terminfo \ + --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-pixbuf \ + --disable-frills + 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 $_pkgbase-$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" +} + +md5sums=('a9a06c608258c5fd247c3725d8f44582' + 'fec94dc986fa37ec380079d81de3e0b2' + 'fac55f0a8404c86dad3e702146762332' + '8a5599197568c63720e282b9722a7990' + 'f6bb5770d2e7b06d88882513710a267d' + 'd4e03127a0d3bbf2e173850770651b08' + '1c85de8253b3a9002fabaaaccbdb51de' + 'aead33ba3b08eeb251fb0c1427a4a024' + '061b851e89e53a71d1afad6947c51ca7' + '6e137593a69b4b584305f3d513e471bf') diff --git a/clear.patch b/clear.patch new file mode 100644 index 000000000000..402287677a61 --- /dev/null +++ b/clear.patch @@ -0,0 +1,61 @@ +diff -r 4399ffb6a87c -r 48f53e1cf599 src/command.C +--- a/src/command.C Sat Jan 21 13:57:22 2012 +0100 ++++ b/src/command.C Mon Apr 30 16:22:25 2012 +0200 +@@ -2869,6 +2869,10 @@ + return; + } + ++ /* remember the current row on position change, in case there's a clear screen ++ * right after, so that we can add "preserve" the buffer (e.g. on ^L) */ ++ static int old_row = -1, was_moved = 0; ++ + switch (ch) + { + /* +@@ -2932,6 +2936,12 @@ + + case CSI_CUP: /* 8.3.21: (1,1) CURSOR POSITION */ + case CSI_HVP: /* 8.3.64: (1,1) CHARACTER AND LINE POSITION */ ++ /* if moving to row 1, remember current row in case a clear screen comes next */ ++ if (nargs == 1 && arg[0] == 1 && current_screen == 0) ++ { ++ was_moved = 1; ++ old_row = screen.cur.row; ++ } + scr_gotorc (arg[0] - 1, nargs < 2 ? 0 : (arg[1] - 1), 0); + break; + +@@ -2943,6 +2953,16 @@ + break; + + case CSI_ED: /* 8.3.40: (0) ERASE IN PAGE */ ++ if (was_moved) ++ { ++ /* this is most likely a ^L, so we'll go back to where we where before ++ * the position change, add a screen of empty lines, then move back ++ * on top. that way the (scrolling) buffer will be preserved */ ++ scr_gotorc (old_row, 0, 0); ++ for (int i = nrow - 1; i > 0; --i) ++ scr_add_lines (L"\r\n", 2); ++ scr_gotorc (0, 0, 0); ++ } + scr_erase_screen (arg[0]); + break; + +@@ -3086,6 +3106,16 @@ + default: + break; + } ++ if (was_moved > 0) ++ { ++ if (was_moved > 1) ++ { ++ was_moved = 0; ++ old_row = -1; ++ } ++ else ++ ++was_moved; ++ } + } + /*}}} */ + diff --git a/font-width-fix.patch b/font-width-fix.patch new file mode 100644 index 000000000000..3bc8ce04230d --- /dev/null +++ b/font-width-fix.patch @@ -0,0 +1,24 @@ +--- 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/noinc.diff b/noinc.diff new file mode 100644 index 000000000000..8b64d6c4e7c0 --- /dev/null +++ b/noinc.diff @@ -0,0 +1,35 @@ +--- /src/main.C ++++ /src/main.C +@@ -588,7 +588,7 @@ + unsigned int w, h; + unsigned int max_width, max_height; + +- szHint.flags = PMinSize | PResizeInc | PBaseSize | PWinGravity; ++ szHint.flags = PMinSize | PWinGravity; + szHint.win_gravity = NorthWestGravity; + /* szHint.min_aspect.x = szHint.min_aspect.y = 1; */ + +@@ -703,6 +703,8 @@ + + ncol = width / fwidth; + nrow = height / fheight; ++ width = ncol * fwidth; ++ height = nrow * fheight; + + // When the size of the vt window is not a multiple of the cell + // size, i.e., when the wm does not honour our size hints, there are +@@ -1006,14 +1008,6 @@ + window_calc (newwidth, newheight); + + bool set_hint = !HOOK_INVOKE ((this, HOOK_RESIZE_ALL_WINDOWS, DT_INT, newwidth, DT_INT, newheight, DT_END)); +- +- // to avoid races between us and the wm, we clear the incremental size hints around the xresizewindow +- if (set_hint) +- { +- szHint.flags &= ~(PBaseSize | PResizeInc); +- XSetWMNormalHints (dpy, parent, &szHint); +- szHint.flags |= PBaseSize | PResizeInc; +- } + + if (!ignoreparent) + { diff --git a/popup-menu-hang.diff b/popup-menu-hang.diff new file mode 100644 index 000000000000..09bb3c64b913 --- /dev/null +++ b/popup-menu-hang.diff @@ -0,0 +1,24 @@ +Index: src/perl/urxvt-popup +=================================================================== +RCS file: /schmorpforge/rxvt-unicode/src/perl/urxvt-popup,v +retrieving revision 1.15 +diff -u -r1.15 urxvt-popup +--- src/perl/urxvt-popup 24 Dec 2007 08:21:40 -0000 1.15 ++++ src/perl/urxvt-popup 2 Aug 2009 08:22:52 -0000 +@@ -120,7 +120,7 @@ + $self->refresh; + + # might fail, but try anyways +- $self->grab ($self->{data}{event}{time}, 1) ++ $self->grab ($self->{data}{event}{time}) + and $self->allow_events_async; + + on_button_press $self, $self->{data}{event} if $self->{data}{event}{button}; +@@ -132,7 +132,7 @@ + my ($self, $event) = @_; + + # should definitely not fail +- $self->grab ($self->{data}{event}{time}, 1) ++ $self->grab ($self->{data}{event}{time}) + and $self->allow_events_async; + } diff --git a/secondaryWheel.patch b/secondaryWheel.patch new file mode 100644 index 000000000000..3bb71b8557fb --- /dev/null +++ b/secondaryWheel.patch @@ -0,0 +1,119 @@ +diff --git a/doc/rxvt.1.pod b/doc/rxvt.1.pod +index 87042cd..9dfb861 100644 +--- a/doc/rxvt.1.pod ++++ b/doc/rxvt.1.pod +@@ -417,6 +417,11 @@ B<secondaryScreen>. + Turn on/off secondary screen scroll (default enabled); resource + B<secondaryScroll>. + ++=item B<-ssw>|B<+ssw> ++ ++Turn on/off secondary screen wheel support (default disabled); resource ++B<secondaryWheel>. ++ + =item B<-hold>|B<+hold> + + Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@ +@@ -1029,6 +1034,13 @@ option is enabled, scrolls on the secondary screen will change the + scrollback buffer and, when secondaryScreen is off, switching + to/from the secondary screen will instead scroll the screen up. + ++=item B<secondaryWheel:> I<boolean> ++ ++Turn on/off secondary wheel (default disabled). If enabled, when on ++secondary screen, using the mouse wheel will not scroll in the buffer ++but instead send 3 "fake" keystrokes (Up/Down arrow) to the running ++application (allows e.g. natural scrolling in B<man>, B<less>, etc). ++ + =item B<hold>: I<boolean> + + Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@ +diff --git a/src/command.C b/src/command.C +index 153f0e1..df22652 100644 +--- a/src/command.C ++++ b/src/command.C +@@ -2246,10 +2246,46 @@ rxvt_term::button_release (XButtonEvent &ev) + } + else + # endif ++#ifndef NO_SECONDARY_SCREEN + { +- scr_page (dirn, lines); +- scrollBar.show (1); ++ /* on SECONDARY screen, we send "fake" UP/DOWN keys instead ++ * (this allows to scroll within man, less, etc) */ ++ if (option (Opt_secondaryWheel) && current_screen != PRIMARY) ++ { ++ XKeyEvent event; ++ event.display = ev.display; ++ event.window = ev.window; ++ event.root = ev.root; ++ event.subwindow = ev.subwindow; ++ event.time = ev.time; ++ event.x = ev.x; ++ event.y = ev.y; ++ event.x_root = ev.x_root; ++ event.y_root = ev.y_root; ++ event.same_screen = ev.same_screen; ++ event.state = 0; ++ event.keycode = XKeysymToKeycode(ev.display, ++ (dirn == UP) ? XK_Up : XK_Down); ++ for ( ; lines > 0; --lines) ++ { ++ event.type = KeyPress; ++ XSendEvent (event.display, event.window, True, ++ KeyPressMask, (XEvent *) &event); ++ event.type = KeyRelease; ++ XSendEvent (event.display, event.window, True, ++ KeyPressMask, (XEvent *) &event); ++ } ++ } ++ /* on PRIMARY screen, we scroll in the buffer */ ++ else ++#endif ++ { ++ scr_page (dirn, lines); ++ scrollBar.show (1); ++ } ++#ifndef NO_SECONDARY_SCREEN + } ++#endif + } + break; + #endif +diff --git a/src/optinc.h b/src/optinc.h +index d814035..a365037 100644 +--- a/src/optinc.h ++++ b/src/optinc.h +@@ -26,6 +26,7 @@ + def(cursorBlink) + def(secondaryScreen) + def(secondaryScroll) ++ def(secondaryWheel) + def(pastableTabs) + def(cursorUnderline) + #if ENABLE_FRILLS +diff --git a/src/rsinc.h b/src/rsinc.h +index 1483955..10f6642 100644 +--- a/src/rsinc.h ++++ b/src/rsinc.h +@@ -103,6 +103,7 @@ + #ifndef NO_SECONDARY_SCREEN + def (secondaryScreen) + def (secondaryScroll) ++ def (secondaryWheel) + #endif + #if OFF_FOCUS_FADING + def (fade) +diff --git a/src/xdefaults.C b/src/xdefaults.C +index 69acdd8..3e858de 100644 +--- a/src/xdefaults.C ++++ b/src/xdefaults.C +@@ -262,6 +262,7 @@ optList[] = { + #ifndef NO_SECONDARY_SCREEN + BOOL (Rs_secondaryScreen, "secondaryScreen", "ssc", Opt_secondaryScreen, 0, "enable secondary screen"), + BOOL (Rs_secondaryScroll, "secondaryScroll", "ssr", Opt_secondaryScroll, 0, "enable secondary screen scroll"), ++ BOOL (Rs_secondaryWheel, "secondaryWheel", "ssw", Opt_secondaryWheel, 0, "enable secondary screen wheel"), + #endif + #if ENABLE_PERL + RSTRG (Rs_perl_lib, "perl-lib", "string"), //, "colon-separated directories with extension scripts"),TODO diff --git a/urxvt-tabbed.desktop b/urxvt-tabbed.desktop new file mode 100644 index 000000000000..172006b4ac12 --- /dev/null +++ b/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/urxvt.desktop b/urxvt.desktop new file mode 100644 index 000000000000..76229187034f --- /dev/null +++ b/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/urxvtc.desktop b/urxvtc.desktop new file mode 100644 index 000000000000..3a2df410f7db --- /dev/null +++ b/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; |