Re: Mouse wheel workspace switching behavior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Trinity (TDE) Desktop Users]     [Fedora KDE]     [Fedora Desktop]     [Linux Kernel]     [Gimp]     [GIMP for Windows]     [Gnome]     [Yosemite Hiking]
  Powered by Linux