Package: xfce4
Version: 4.12.4
Severity: normal

Dear Maintainer,

When running emacs on the XFCE desktop I discovered that hitting the
PageUp key did not scroll up the text by a page as expected and
instead invoked the edt help page that normally you get in emacs edt
mode by hitting the keypad key that is marked "/", i.e., the first row
second column keypad key.  Also, other uses of the PageUp key under
XFCE (e.g., scrolling up in a browser window, scrolling up in the less
command) did not work.  Further investigation with xev showed the
following near identical results between these two keys with the XFCE
desktop:

PageUp key

KeyPress event, serial 37, synthetic NO, window 0x3800001,
    root 0x4ae, subw 0x0, time 1022442481, (-430,494), root:(201,852),
    state 0x0, keycode 112 (keysym 0xff92, KP_F2), same_screen YES,
    XKeysymToKeycode returns keycode: 106
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3800001,
    root 0x4ae, subw 0x0, time 1022442561, (-430,494), root:(201,852),
    state 0x0, keycode 112 (keysym 0xff92, KP_F2), same_screen YES,
    XKeysymToKeycode returns keycode: 106
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Keypad "/" key

KeyPress event, serial 37, synthetic NO, window 0x3800001,
    root 0x4ae, subw 0x0, time 1022455529, (-430,494), root:(201,852),
    state 0x0, keycode 106 (keysym 0xff92, KP_F2), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3800001,
    root 0x4ae, subw 0x0, time 1022455601, (-430,494), root:(201,852),
    state 0x0, keycode 106 (keysym 0xff92, KP_F2), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

In constrast, here are the corresponding xev results for the KDE desktop
where the two keys are clearly distinguished:

PageUp key

KeyPress event, serial 37, synthetic NO, window 0x2e00001,
    root 0x4ae, subw 0x0, time 953810335, (-945,110), root:(317,139),
    state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x2e00001,
    root 0x4ae, subw 0x0, time 953810407, (-945,110), root:(317,139),
    state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Keypad "/" key

KeyPress event, serial 40, synthetic NO, window 0x2e00001,
    root 0x4ae, subw 0x0, time 953822366, (-945,110), root:(317,139),
    state 0x0, keycode 106 (keysym 0xff92, KP_F2), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x2e00001,
    root 0x4ae, subw 0x0, time 953822438, (-945,110), root:(317,139),
    state 0x0, keycode 106 (keysym 0xff92, KP_F2), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Also, the PageUp key works properly for the KDE desktop in emacs, browser
scrolling, less scrolling, etc.

So clearly the XKB setup of the PageUp key is correct for the KDE
desktop but not correct for the XFCE desktop.

Note that because of <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900087>
I currently cannot run this fast box (Ryzen 7 1700, 8 cores, 64GB)
very long with direct X display before it locks up.  So until that bug
is fixed (likely when kernel 4.17 propagates to Debian Buster) I run
the XFCE and KDE desktops on this fast box with xdm installed
and configured in such a way that I can actively manage and display
those desktop results on a slow box (connected to the fast box via a
1Gb/s LAN implemented with approprate ethernet hardware on both ends
plus a crossover cable) where I execute "X -query <fast_box_name>" to
start the X server on the slow "X-terminal" box.

I launch the XFCE desktop with a
.xsession file configured as follows on the fast box:

#!/bin/sh

# load the keyboard definitions
XKBDIR="$HOME/.xkb"
XKBMAPFILE="$XKBDIR/keymap/xmodmap_replace"
# DISPLAY should be defined at this point by X.
# The POSIX pattern removal %%.* removes a trailing "." followed by
# any number of characters from the DISPLAY value.  So one invocation
# we saw was
# xkbcomp -I"$XKBDIR" "$XKBMAPFILE" "${DISPLAY%%.*}"
# But that screws up remote DISPLAY values which are typically
# FQDN:0, i.e., meadowlark.mylan.home:0  Therefore just use the
# exact $DISPLAY with no changes.
xkbcomp -I"$XKBDIR" "$XKBMAPFILE" "$DISPLAY"
unset XKBDIR XKBMAPFILE
# The keyboard definitions have now been loaded.

xfce4-session

and I launch KDE exactly the same way except that xfce4-session
is replaced at the end by

bash --login startkde

The xkbcomp boilerplate that I use in both cases was set up a long time
ago so that xjed and jed work properly under xterm.  The only two
files in $HOME/.xkb have the following contents.

cat .xkb/symbols/xmodmap_replace
partial alphanumeric_keys
  xkb_symbols "redefine_keypad" {
    replace key <NMLK> { [ KP_F1 ] };
    replace key <KPDV> { [ KP_F2 ] };
    replace key <KPMU> { [ KP_F3 ] };
    replace key <KPSU> { [ KP_F4 ] };
    replace key <KP7> { [ KP_7 ] };
    replace key <KP8> { [ KP_8 ] };
    replace key <KP9> { [ KP_9 ] };
    replace key <KPAD> { [ KP_Separator ] };
    replace key <KP4> { [ KP_4 ] };
    replace key <KP5> { [ KP_5 ] };
    replace key <KP6> { [ KP_6 ] };
    replace key <KP1> { [ KP_1 ] };
    replace key <KP2> { [ KP_2 ] };
    replace key <KP3> { [ KP_3 ] };
    replace key <KPEN> { [ KP_Enter ] };
    replace key <KP0> { [ KP_0 ] };
    replace key <KPDL> { [ KP_Decimal ] };
  };

partial modifier_keys
  xkb_symbols "no_numlock_modifier" {
    replace key <NMLK> { [ VoidSymbol ] };
  };


cat .xkb/keymap/xmodmap_replace
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete" };
        xkb_compat    { include "complete" };
        xkb_symbols   { include 
"pc+us+inet(evdev)+terminate(ctrl_alt_bksp)+xmodmap_replace(no_numlock_modifier)+xmodmap_replace(redefine_keypad)"
 };
        xkb_geometry  { include "pc(pc105)" };
};

So that first file explains why the keypad "/" key is identified as
KP_F2 by xev for both the KDE and XFCE desktops.  But there is no
mention of the PageUp key in either of these two files so I doubt my
above personal XKB configuration is the reason why the PageUp key is
incorrectly interpreted as identical to the keypad "/" key for the
XFCE desktop.

I used

dpkg --list |grep -i xfce |sed -e 's?  *? ?g' |cut --delimiter=" " --fields=2 
|sort

to determine which XFCE-related packages I had installed on this fast
box.  Those results are the following:

gtk2-engines-xfce
libexo-1-0:amd64
libexo-2-0:amd64
libgarcon-1-0
libxfce4panel-2.0-4
libxfce4ui-1-0:amd64
libxfce4ui-2-0:amd64
libxfce4ui-common
libxfce4ui-utils
libxfce4util7:amd64
libxfce4util-bin
libxfce4util-common
libxfconf-0-2
mousepad
orage
ristretto
thunar
xfburn
xfce4
xfce4-appfinder
xfce4-battery-plugin
xfce4-clipman
xfce4-clipman-plugin
xfce4-cpufreq-plugin
xfce4-cpugraph-plugin
xfce4-datetime-plugin
xfce4-dict
xfce4-diskperf-plugin
xfce4-fsguard-plugin
xfce4-genmon-plugin
xfce4-mailwatch-plugin
xfce4-mount-plugin
xfce4-netload-plugin
xfce4-notes
xfce4-notes-plugin
xfce4-notifyd
xfce4-panel
xfce4-places-plugin
xfce4-power-manager
xfce4-power-manager-data
xfce4-power-manager-plugins
xfce4-pulseaudio-plugin:amd64
xfce4-screenshooter
xfce4-sensors-plugin
xfce4-session
xfce4-settings
xfce4-smartbookmark-plugin
xfce4-systemload-plugin
xfce4-taskmanager
xfce4-terminal
xfce4-timer-plugin
xfce4-verve-plugin
xfce4-wavelan-plugin
xfce4-weather-plugin
xfce4-whiskermenu-plugin
xfconf
xfdesktop4
xfdesktop4-data
xfwm4

Presumably it is one of those packages that is interfering with the XKB 
interpretation
of the PageUp key, but I don't know which one so I have reported this XFCE bug 
against
the xfce4 package.  Let me know if there is any further test or modified version
of one of the above XFCE-related packages that you would like me to try.

Alan

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 4.16.0-2-amd64 (SMP w/16 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_CA:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages xfce4 depends on:
ii  gtk2-engines-xfce        3.2.0-3
ii  libxfce4ui-utils         4.12.1-3
ii  orage                    4.12.1-4
ii  thunar                   1.6.15-1
ii  xfce4-appfinder          4.12.0-2
ii  xfce4-panel              4.12.2-1
ii  xfce4-pulseaudio-plugin  0.4.1-1
ii  xfce4-session            4.12.1-6
ii  xfce4-settings           4.12.3-1
ii  xfconf                   4.12.1-1
ii  xfdesktop4               4.12.4-1
ii  xfwm4                    4.12.4-1

Versions of packages xfce4 recommends:
ii  desktop-base      9.0.7
ii  tango-icon-theme  0.8.90-7
ii  thunar-volman     0.8.1-2
ii  xfce4-notifyd     0.4.2-1
ii  xorg              1:7.7+19

Versions of packages xfce4 suggests:
pn  gtk3-engines-xfce    <none>
pn  xfce4-goodies        <none>
ii  xfce4-power-manager  1.6.1-1

-- no debconf information

Reply via email to