Bug 365147 - multimonitor fn key not working if mapped to Windows+p
Summary: multimonitor fn key not working if mapped to Windows+p
Status: RESOLVED FIXED
Alias: None
Product: KScreen
Classification: Plasma
Component: common (show other bugs)
Version: 5.6.95
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Sebastian Kügler
URL:
Keywords: multiscreen
Depends on:
Blocks:
 
Reported: 2016-07-06 11:07 UTC by rockonthemoonfm
Modified: 2017-01-16 11:08 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
attachment-30916-0.html (2.19 KB, text/html)
2016-07-07 07:56 UTC, rockonthemoonfm
Details
attachment-5850-0.html (1.84 KB, text/html)
2016-07-07 09:41 UTC, rockonthemoonfm
Details
attachment-10441-0.html (1.07 KB, text/html)
2016-07-07 10:48 UTC, rockonthemoonfm
Details

Note You need to log in before you can comment on or make changes to this bug.
Description rockonthemoonfm 2016-07-06 11:07:19 UTC
One of many multimonitor headaches.
I'm rolling on Plasma 5.7 final, Qt5.7, KF5 2.23.

Asus x554LA. With other DE it worked.

Reproducible: Always

Steps to Reproduce:
1. plug external screen
2. press fn+f8 (multimonitor fn key)

Actual Results:  
nothing happens
Comment 1 Sebastian Kügler 2016-07-06 23:37:52 UTC
Thanks for the report!

I assume that this is about the "XF86Display" key code (you can check with xev)?

I'm not sure which component is responsible for handling the Fn key. Martin, is this something that can/should be done in kglobalaccel, perhaps as simple as adding a shortcut?
Comment 2 Martin Flöser 2016-07-07 05:59:34 UTC
kscreen already registers the key as a global shortcut:
kded/daemon.cpp:    KGlobalAccel::self()->setGlobalShortcut(action, Qt::Key_Display);

So the only question is: why is the shortcut not triggered. Xev should tell us.
Comment 3 rockonthemoonfm 2016-07-07 07:56:01 UTC
Created attachment 99912 [details]
attachment-30916-0.html

xev output: fn+f8

KeyRelease event, serial 40, synthetic NO, window 0x3e00001,
   root 0xf6, subw 0x0, time 16840795, (-8,210), root:(724,239),
   state 0x50, keycode 33 (keysym 0x70, p), same_screen YES,
   XLookupString gives 1 bytes: (70) "p"
   XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x3e00001,
   root 0xf6, subw 0x0, time 16841441, (-8,210), root:(724,239),
   state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
   XLookupString gives 0 bytes:
   XFilterEvent returns: False


Don't ask me why now it's recognized as "p" and not "XF86Display".
Anyway it worked with every distro / DE.
It worked, as long as I can remember, in version 5.6 too (I'm not 100%
sure).


2016-07-07 7:59 GMT+02:00 Martin Gräßlin via KDE Bugzilla <
bugzilla_noreply@kde.org>:

> https://bugs.kde.org/show_bug.cgi?id=365147
>
> --- Comment #2 from Martin Gräßlin <mgraesslin@kde.org> ---
> kscreen already registers the key as a global shortcut:
> kded/daemon.cpp:    KGlobalAccel::self()->setGlobalShortcut(action,
> Qt::Key_Display);
>
> So the only question is: why is the shortcut not triggered. Xev should
> tell us.
>
> --
> You are receiving this mail because:
> You reported the bug.
>
Comment 4 Martin Flöser 2016-07-07 09:23:34 UTC
> Don't ask me why now it's recognized as "p" and not "XF86Display".

Given the output it generates Windows+P, which seems to be used by Microsoft Windows (confirmed by quick google search). @sebas: please add Qt::MetaModifier + Qt::Key_P as an alternative global shortcut.

> Anyway it worked with every distro / DE.

I guess they also added support for that shortcut. At least I was not aware of that shortcut.
Comment 5 rockonthemoonfm 2016-07-07 09:41:36 UTC
Created attachment 99914 [details]
attachment-5850-0.html

(I'll do the "Portoguese" now. Also the Airplane mode button isn't working
in Plasma! Works in gnome)

KeyPress event, serial 37, synthetic NO, window 0x3800001,
   root 0xf6, subw 0x0, time 2997000, (78,646), root:(78,675),
   state 0x10, keycode 255 (keysym 0x0, NoSymbol), same_screen YES,
   XLookupString gives 0 bytes:
   XmbLookupString gives 0 bytes:
   XFilterEvent returns: False


2016-07-07 11:23 GMT+02:00 Martin Gräßlin via KDE Bugzilla <
bugzilla_noreply@kde.org>:

> https://bugs.kde.org/show_bug.cgi?id=365147
>
> --- Comment #4 from Martin Gräßlin <mgraesslin@kde.org> ---
> > Don't ask me why now it's recognized as "p" and not "XF86Display".
>
> Given the output it generates Windows+P, which seems to be used by
> Microsoft
> Windows (confirmed by quick google search). @sebas: please add
> Qt::MetaModifier
> + Qt::Key_P as an alternative global shortcut.
>
> > Anyway it worked with every distro / DE.
>
> I guess they also added support for that shortcut. At least I was not
> aware of
> that shortcut.
>
> --
> You are receiving this mail because:
> You reported the bug.
>
Comment 6 Martin Flöser 2016-07-07 10:34:35 UTC
> Also the Airplane mode button isn't working in Plasma! Works in gnome

please report that in a new bug report, otherwise it's getting tricky to properly track this.
Comment 7 rockonthemoonfm 2016-07-07 10:48:21 UTC
Created attachment 99918 [details]
attachment-10441-0.html

done https://bugs.kde.org/show_bug.cgi?id=365187

2016-07-07 12:34 GMT+02:00 Martin Gräßlin via KDE Bugzilla <
bugzilla_noreply@kde.org>:

> https://bugs.kde.org/show_bug.cgi?id=365147
>
> --- Comment #6 from Martin Gräßlin <mgraesslin@kde.org> ---
> > Also the Airplane mode button isn't working in Plasma! Works in gnome
>
> please report that in a new bug report, otherwise it's getting tricky to
> properly track this.
>
> --
> You are receiving this mail because:
> You reported the bug.
>
Comment 8 Sebastian Kügler 2016-07-11 21:44:50 UTC
Git commit dbdca53354137535a0ae076a4aaa5c2ccca73d6a by Sebastian Kügler, on behalf of l10n daemon script.
Committed on 11/07/2016 at 21:44.
Pushed by sebas into branch 'master'.

Add a shortcut for Meta+P

Summary:
Also relevant: http://mjg59.livejournal.com/121851.html

Reviewers: #plasma, davidedmundson, graesslin

Reviewed By: #plasma, davidedmundson, graesslin

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D2112

M  +2    -1    kded/daemon.cpp

http://commits.kde.org/kscreen/dbdca53354137535a0ae076a4aaa5c2ccca73d6a
Comment 9 Martin Flöser 2016-07-12 05:55:44 UTC
Please push the fix also into Plasma/5.7 branch!
Comment 10 Sebastian Kügler 2016-07-12 09:05:42 UTC
Git commit 8201d07e4b800e82c1f620d506f56f7d4388f938 by Sebastian Kügler, on behalf of l10n daemon script.
Committed on 12/07/2016 at 09:05.
Pushed by sebas into branch 'Plasma/5.7'.

Add a shortcut for Meta+P

Summary:
Also relevant: http://mjg59.livejournal.com/121851.html

Reviewers: #plasma, davidedmundson, graesslin

Reviewed By: #plasma, davidedmundson, graesslin

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D2112

M  +2    -1    kded/daemon.cpp

http://commits.kde.org/kscreen/8201d07e4b800e82c1f620d506f56f7d4388f938
Comment 11 Dainius Masiliūnas 2017-01-16 11:08:13 UTC
Here's an interesting twist to this: I tend to bind my Windows key to COMPOSE via the keyboard KCM. So when I do Fn+F4 (the display button on my HP laptop), I actually get:

KeyPress event, serial 40, synthetic NO, window 0x1200001,
    root 0xd5, subw 0x0, time 7890932, (788,550), root:(2162,579),
    state 0x0, keycode 133 (keysym 0xff20, Multi_key), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: True

KeyPress event, serial 40, synthetic NO, window 0x1200001,
    root 0xd5, subw 0x0, time 7890938, (788,550), root:(2162,579),
    state 0x0, keycode 33 (keysym 0x70, p), same_screen YES,
    XLookupString gives 1 bytes: (70) "p"
    XmbLookupString gives 1 bytes: (70) "p"
    XFilterEvent returns: True

KeyRelease event, serial 40, synthetic NO, window 0x1200001,
    root 0xd5, subw 0x0, time 7891049, (788,550), root:(2162,579),
    state 0x0, keycode 33 (keysym 0x70, p), same_screen YES,
    XLookupString gives 1 bytes: (70) "p"
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x1200001,
    root 0xd5, subw 0x0, time 7892632, (788,550), root:(2162,579),
    state 0x0, keycode 133 (keysym 0xff20, Multi_key), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

If I press that in the shortcuts KCM, it just shows "p", and indeed binds just the letter "p" to mean switch display, and that's of course quite disastrous.

If I unbind the COMPOSE key, then the shortcuts KCM indeed recognises the keypress as Meta+p.

I don't suppose there's any way to deal with that apart from manually binding the display key to some other key combination...