Mouse wheel workspace switching behavior

Mirko K. mirkok.lists at googlemail.com
Thu Sep 20 08:49:22 BST 2012


On 19.09.2012 23:23, Stephen Dowdy wrote:
> Mirko K. wrote, On 09/19/2012 01:42 PM:
>> On 19.09.2012 19:27, Duncan wrote:
>>> Mirko K. posted on Wed, 19 Sep 2012 18:39:21 +0200 as excerpted:
>>>
>>>> I'm using KDE 4.8.4 on Ubuntu 12.04 with a 3x2 virtual desktop. The
>>>> mouse wheel is bound to switch to the next/previous Desktop, and it goes
>>>> through all desktops.
>>>>
>>>> I'd like a different behavior: Wheel without modifier should switch one
>>>> desktop to the left/right, and wheel plus some modifier (Alt or Super)
>>>> should switch one desktop up/down.
>>>>
>>>> Any idea how to do that?
>>>
>>> You don't mention whether you already know about the mouse actions
>>> settings, which let you assign various mouse events (modified or not) to
>>
>> Thanks for your reply, and sorry for not mentioning where all I had looked, which is pretty much everywhere. System Settings up and down, Hotkeys and Gestures, Mouse, Desktop behaviour, etc. The settings of the Folderview and other Activities. Grepped the KDE config files in $HOME and /usr/share, etc. But nothing. :-)
>>
>> The mouse actions don't work, as the only related option is the standard "Switch Desktop" (Arbeitsfläche wechseln, in my German system).
>>
>> The cube doesn't help either, as there also no option to make the mouse wheel to only switch horizontal.
>>
>> I think there's really no way yet, which actually isn't that much of a problem. I've just recently started to use the 3x2 layout after years with a 4x1 layout. Perhaps I try to get used to the Activities which could give me a somewhat similar workflow as I intend here.
>>
>> Anyway, if anybody knows a solution, I'm all ears.


Thank you for the following very informative post! :-)

Just curious. I see my above reply in overly long, not wrapped 
lines. Is that me causing that? I don't seem to have that problem 
with other newsgroup or mailing lists.

> I use Keybindings to switch to Desktop N (CTRL-F{n} -> Desktop N).
> With a fixed pager layout, not a problem.
>
> KWin has a dbus interface that supports several desktop/pager switching options:
>
> $ qdbus org.kde.kwin /KWin | grep -i 'org.kde.kwin.*desktop'
> method Q_NOREPLY void org.kde.KWin.cascadeDesktop()
> method void org.kde.KWin.circulateDesktopApplications()
> method int org.kde.KWin.currentDesktop()
> method void org.kde.KWin.nextDesktop()
> method void org.kde.KWin.previousDesktop()
> method bool org.kde.KWin.setCurrentDesktop(int desktop)
> method Q_NOREPLY void org.kde.KWin.unclutterDesktop()
>
> What desktop am i currently on?
> $ qdbus org.kde.kwin /KWin currentDesktop
> 1
> Switch to Desktop 4
> $ qdbus org.kde.kwin /KWin setCurrentDesktop 4
> true
>
> Unfortunately, there's no method "RowsByColumns()" or such, so no way to get
> how many rows/columns you have to figure out what desktop would be adjacent
> on a horizontal or vertical move (without reading the kwinrc config)
>
> So, the trick here would be to find a tool that would allow input actions to
> bind to a script that would issue those functions, along with figuring out
> what desktop was adjacent based on the input and currentDesktop().
>
>     kcmshell4 khotkeys
>
> lets you map key inputs to various actions, including DBus, or exec
> a command.  Unfortunately, for me, at least, i can't get it to
> recognize a scroll event as an acceptable input, either modified or
> not. (so you're back to keys, if you can't get mouse actions), and
> that's already handled in:
>
>      kcmshell4 keys  [ select [Kwin] component]
>
> which DOES have key actions defined for relative
>      Switch One Desktop to the (up,down,left,right)
> desktop switch motions.  (so, this would really
> be the place to assign a {un,}modified mouse action.


Now that's exactly the problem, I already have Super-CursorKeys to 
do exactly what I want. I just can't find a way to remap wheel 
events to anything other than what's available in the mouse actions. 
Over the weekend I'll look at the source and see if I can't just add 
a call to the relative movements to the action list.


> 'xev' shows my mouse generating:
>
>      MotionNotify event, serial 34, synthetic NO, window 0x3600001,
>          root 0x290, subw 0x0, time 1909453451, (145,33), root:(149,1051),
>          state 0x0, is_hint 0, same_screen YES
>
>      LeaveNotify event, serial 34, synthetic NO, window 0x3600001,
>          root 0x290, subw 0x0, time 1909453451, (145,33), root:(149,1051),
>          mode NotifyGrab, detail NotifyAncestor, same_screen YES,
>          focus NO, state 2048
>
>      EnterNotify event, serial 34, synthetic NO, window 0x3600001,
>          root 0x290, subw 0x0, time 1909453451, (145,33), root:(149,1051),
>          mode NotifyUngrab, detail NotifyAncestor, same_screen YES,
>          focus NO, state 2048
>
>      KeymapNotify event, serial 34, synthetic NO, window 0x0,
>          keys:  4294967184 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>                 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
>
>      ButtonPress event, serial 34, synthetic NO, window 0x3600001,
>          root 0x290, subw 0x0, time 1909453451, (145,33), root:(149,1051),
>          state 0x0, button 4, same_screen YES
>
>      ButtonRelease event, serial 34, synthetic NO, window 0x3600001,
>          root 0x290, subw 0x0, time 1909453451, (145,33), root:(149,1051),
>          state 0x800, button 4, same_screen YES
>
> for a single-click scroll-up action.  Not sure if it's (easily) possible
> to get that sequence of events to map to a key input sequence where you
> might be able to do something like:
>
> kwriteconfig \
>      --file kglobalshortcutsrc \
>      --group kwin \
>      --key "Switch One Desktop to the Right"
>              "Ctrl+Alt+Shift+Right"
>
> which assigns those 4 keys chorded (right=right-arrow) to invoke that function.
>
> This might give you more ideas:
>
> http://marian.schedenig.name/2012/06/07/mapping-kde-actions-to-extra-mouse-buttons/
> and here's something using qdbus {prev,next}Desktop i described above (but, that
> doesn't answer your question about relative up/down/left/right motion)
> http://krisko210.blogspot.com/2011/06/kde-46-desktop-switching-with-mouse.html

Thanks for those. They will become handy later. I recently switched 
from Gnome to KDE and I had some desktop automation which don't work 
anymore with KDE.

> Good luck!

Thanks! I'm going to need it. :-)

> --stephen
>



___________________________________________________
This message is from the kde mailing list.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.


More information about the kde mailing list