summaryrefslogtreecommitdiff
path: root/rxvt-unicode-better-wheel-scrolling
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2020-11-23 15:34:25 +0100
committerErich Eckner <git@eckner.net>2020-11-23 15:40:39 +0100
commit4af19c8e880197059f5deedd2bfe65223cd259c3 (patch)
tree1206e2ce7bfc6bbc2aa0d4cbb4b79ac7211ae10a /rxvt-unicode-better-wheel-scrolling
parent870ba439f81111754da90897294033ba058eaeea (diff)
downloadarchlinuxewe.git.save-4af19c8e880197059f5deedd2bfe65223cd259c3.tar.xz
rxvt-unicode-better-wheel-scrolling neu
Diffstat (limited to 'rxvt-unicode-better-wheel-scrolling')
-rw-r--r--rxvt-unicode-better-wheel-scrolling/PKGBUILD89
-rw-r--r--rxvt-unicode-better-wheel-scrolling/secondaryWheel.patch119
-rw-r--r--rxvt-unicode-better-wheel-scrolling/urxvt-tabbed.desktop9
-rw-r--r--rxvt-unicode-better-wheel-scrolling/urxvt.desktop9
-rw-r--r--rxvt-unicode-better-wheel-scrolling/urxvtc.desktop9
5 files changed, 235 insertions, 0 deletions
diff --git a/rxvt-unicode-better-wheel-scrolling/PKGBUILD b/rxvt-unicode-better-wheel-scrolling/PKGBUILD
new file mode 100644
index 00000000..458d4c31
--- /dev/null
+++ b/rxvt-unicode-better-wheel-scrolling/PKGBUILD
@@ -0,0 +1,89 @@
+# Maintainer: Erich Eckner <arch at eckner dot net>
+# Contributor: jjacky
+# Contributor: Angel Velasquez <angvp@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+_pkgname=rxvt-unicode
+pkgname=${_pkgname}-better-wheel-scrolling
+pkgver=9.22
+pkgrel=5
+pkgdesc="An unicode enabled rxvt-clone terminal emulator (urxvt) w/ better wheel scrolling (VTE-like) (& no utmp/wtmp support)"
+arch=('i686' 'pentium4' 'x86_64')
+url="http://software.schmorp.de/pkg/rxvt-unicode.html"
+license=('GPL')
+_pinned_dependencies=(
+ 'gcc-libs=10.2.0'
+ 'glibc>=2.32'
+ 'libfontconfig.so=1'
+ 'libx11=1.7.0'
+ 'libxft=2.3.3'
+ 'libxrender=0.9.10'
+ 'startup-notification=0.12'
+)
+depends=('rxvt-unicode-terminfo' 'perl' 'libnsl' "${_pinned_dependencies[@]}")
+optdepends=('gtk2-perl: to use the urxvt-tabbed')
+provides=("$_pkgname=$pkgver")
+conflicts=("$_pkgname")
+source=(http://dist.schmorp.de/rxvt-unicode/${_pkgname}-${pkgver}.tar.bz2 \
+ urxvt.desktop
+ urxvtc.desktop
+ urxvt-tabbed.desktop
+ secondaryWheel.patch)
+sha512sums=('b39f1b2cbe6dd3fbd2a0ad6a9d391a2b6f49d7c5e67bc65fe44a9c86937f8db379572c67564c6e21ff6e09b447cdfd4e540544e486179e94da0e0db679c04dd9'
+ '7184714a908071a4e8e5c065c5f90255e94dfd072df459c8d6f66fca3647781b3d1f6908b9303bcfd0d5b3f2e3822a8d66efaaa8a7c4d44f6e682839031a6e99'
+ 'aa501eeeb220ba03b3f101b160230612efbca87694fef88c469b2976d29769c24b34576ea82f6c7941fad6039ac776f32e397add9b957b49bf2e84aeb67b66d6'
+ '18c7afb0c3eb8c832893b9ead09d25374b70ae1cd5479a5291d11794906c53daa6f1a1bf698b37efda062bb2b991cacac53a0a6c185ca416b8718fde2bb6a7af'
+ '9693b52c682ec71885962e197f55bc834ab7a6e51dda75947803e6094b01feaa9cd0628120e40522395efd538c15fd3c4edb9dac9b93c723260672b2b7af93b7')
+
+prepare() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ patch -p1 -i ../secondaryWheel.patch
+}
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ ./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-pixbuf \
+ --disable-frills
+ make
+}
+
+package() {
+ # 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}-${pkgver}"
+ # workaround terminfo installation
+ export TERMINFO=/dev/null
+ 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/rxvt-unicode-better-wheel-scrolling/secondaryWheel.patch b/rxvt-unicode-better-wheel-scrolling/secondaryWheel.patch
new file mode 100644
index 00000000..ebb0e1af
--- /dev/null
+++ b/rxvt-unicode-better-wheel-scrolling/secondaryWheel.patch
@@ -0,0 +1,119 @@
+diff --git a/doc/rxvt.1.pod b/doc/rxvt.1.pod
+index 169e104..4bb13b3 100644
+--- a/doc/rxvt.1.pod
++++ b/doc/rxvt.1.pod
+@@ -427,6 +427,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@@
+@@ -1044,6 +1049,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 d212764..3b7e266 100644
+--- a/src/command.C
++++ b/src/command.C
+@@ -2237,10 +2237,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 09f9a26..c79a5be 100644
+--- a/src/optinc.h
++++ b/src/optinc.h
+@@ -27,6 +27,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 682322c..6325057 100644
+--- a/src/rsinc.h
++++ b/src/rsinc.h
+@@ -104,6 +104,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 2308844..0f5d2d0 100644
+--- a/src/xdefaults.C
++++ b/src/xdefaults.C
+@@ -264,6 +264,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/rxvt-unicode-better-wheel-scrolling/urxvt-tabbed.desktop b/rxvt-unicode-better-wheel-scrolling/urxvt-tabbed.desktop
new file mode 100644
index 00000000..172006b4
--- /dev/null
+++ b/rxvt-unicode-better-wheel-scrolling/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-better-wheel-scrolling/urxvt.desktop b/rxvt-unicode-better-wheel-scrolling/urxvt.desktop
new file mode 100644
index 00000000..76229187
--- /dev/null
+++ b/rxvt-unicode-better-wheel-scrolling/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-better-wheel-scrolling/urxvtc.desktop b/rxvt-unicode-better-wheel-scrolling/urxvtc.desktop
new file mode 100644
index 00000000..3a2df410
--- /dev/null
+++ b/rxvt-unicode-better-wheel-scrolling/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;