From 4af19c8e880197059f5deedd2bfe65223cd259c3 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 23 Nov 2020 15:34:25 +0100 Subject: rxvt-unicode-better-wheel-scrolling neu --- rxvt-unicode-better-wheel-scrolling/PKGBUILD | 89 +++++++++++++++ .../secondaryWheel.patch | 119 +++++++++++++++++++++ .../urxvt-tabbed.desktop | 9 ++ rxvt-unicode-better-wheel-scrolling/urxvt.desktop | 9 ++ rxvt-unicode-better-wheel-scrolling/urxvtc.desktop | 9 ++ 5 files changed, 235 insertions(+) create mode 100644 rxvt-unicode-better-wheel-scrolling/PKGBUILD create mode 100644 rxvt-unicode-better-wheel-scrolling/secondaryWheel.patch create mode 100644 rxvt-unicode-better-wheel-scrolling/urxvt-tabbed.desktop create mode 100644 rxvt-unicode-better-wheel-scrolling/urxvt.desktop create mode 100644 rxvt-unicode-better-wheel-scrolling/urxvtc.desktop (limited to 'rxvt-unicode-better-wheel-scrolling') 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 +# Contributor: jjacky +# Contributor: Angel Velasquez +# Contributor: tobias +# 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. + Turn on/off secondary screen scroll (default enabled); resource + B. + ++=item B<-ssw>|B<+ssw> ++ ++Turn on/off secondary screen wheel support (default disabled); resource ++B. ++ + =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 I ++ ++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, B, etc). ++ + =item B: I + + 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; -- cgit v1.2.3-54-g00ecf