ID:36649
 
Keywords: stupidity
I like Ubuntu. I'm really getting comfortable with working in Linux; there are less shiny games to distract me (once I uninstalled the several dozen games that come with Gnome), if I have a problem I can usually hack on it until it goes away, and the development tools actually work. Gold. Every couple of days I discover something new that I like about the system.

I only have one gripe. This may sound minor and petty, but considering how easy it is to customise the rest of the system, this is starting to get on my nerves.

If you move the mouse over the task list and scroll the mouse wheel, then the windows switch. This is annoying. Every now and then I'll be scrolling something and my mouse will slip a few pixels down and WHAM where did my window go? Cue a couple of seconds disorientation while I figure out which window I was in and click on it again. Oh, and it completely fubars the task switch order, so if I want to alt-tab back to another window I have to actually pay attention to where the window is in the queue. I do this a lot; it's very common for me to use two windows, one for coding and one for compiling for example; so this really irritates me.

The mouse wheel shouldn't do anything on the task list. That whole rectangle of screen space should be a dead zone as far as the mouse wheel is concerned.

It wouldn't be so bad if it was actually a useful feature, but it's not. At least with my mouse, it's impossible to control properly. In order to get enough traction to actually make the wheel move, I usually have to pull it so far that several wheel movements register all at once, causing windows to go flickering all over the place. Utterly, completely useless.

There's a bug report from early last year for making this behaviour optional. It's listed as a "wishlist" feature, and the upstream bug is listed as an "enhancement". I'm not holding my breath.
So in other words it's spoiled you. In Windows you would have put up with a dumb feature like that, but now you've grown used to having everything your way you simply wont stand for such a thing. =P
You could always disable the scroll wheel...
Yeah Ubuntu is really great. I've had it on my laptop for a while now and I was more than pleased with the newest update. I hear the next one is coming sometime early next year.

And yes, that scrolling does get on my nerves at times too. I've just had to learn to deal/work with it.
If I have to choose between spoiled and inconvenienced, I'll take the former...

Flame Sage wrote:
You could always disable the scroll wheel...

Right, and lose it for webpages and text editors. Not happening. The scroll wheel is the best thing to happen to the mouse ever since they added a third button. =)
Do you mean the workspaces switch?
Well, it's not exactly easy, but you could go and edit the gnome source code to remove that. It wouldn't be easy, however. I've always had problems with gnome and customization. I feel like KDE just gives you more options, but I'm not sure how it handles this behavior. I would recommend trying different desktop environments if gnome bothers you.
Gnome is great except for this one little thing. :-/

Yeah, I could edit the source code and rebuild it, but that seems like overkill.

Do you mean the workspaces switch?

Not the workspaces (as in the multiple desktops thing) as such, no. The windows themselves.
That's weird...
Dosen't happen to me.
Are you running Compiz? Beryl? Metacity?
Crispy wrote:
Gnome is great except for this one little thing. :-/

[There's a hole in my GNOME, dear Liza, it scrolls!]

Then fix it, dear Crispy, dear Crispy, fix it.

Yeah, I could edit the source code and rebuild it, but that seems like overkill.

[With what shall I fix it, dear Liza, too hard!]

Just use apt-get, dear Crispy, dear Crispy, apt-get!

No no! It's not overkill, it's actually really easy to do!

Look here, I'll even walk you through it. It takes less than 10 commands.

~$ sudo apt-get build-dep libwnck18

[ Apt installs everything needed to build libwnck18 (takes a minute or so) ]

~$ apt-get source libwnck18

[ Apt downloads, unpacks and patches libwnck18 source code for you. You may want to do this in a new directory as it makes 5 or 6 files and directories.

If this fails, make sure you've got deb-src repository lines in /etc/apt/sources.list. The GUI package manager thing may have an option to automatically add this for you. I can't check as I'm just ssh-ing into a Ubuntu machine, I don't have Ubuntu at home. ]


~$ cd libwnck-2.18.0/libwnck

libwnck-2.18.0/libwnck$ cp tasklist.c tasklist.c.orig
libwnck-2.18.0/libwnck$ vi tasklist.c

[ Disable the scrolling on tasklist (see example patch below) ]

libwnck-2.18.0/libwnck$ diff -u tasklist.c.orig tasklist.c
--- tasklist.c.orig 2007-11-17 20:51:41.000000000 +1100
+++ tasklist.c 2007-11-17 20:52:48.000000000 +1100
@@ -1823,12 +1823,13 @@
wnck_tasklist_set_screen (tasklist, screen);

/* callback when there is a scroll-event for switching to the next window */
+#if 0 /* hack: Disable for Crispy. */
g_signal_connect_object (G_OBJECT (tasklist),
"scroll-event",
G_CALLBACK (wnck_tasklist_scroll_cb),
G_OBJECT (tasklist),
0);
-
+#endif /* hack: Disable for Crispy. */
return GTK_WIDGET (tasklist);
}

libwnck-2.18.0/libwnck$ cd ..

libwnck-2.18.0$ dpkg-buildpackage -rfakeroot -uc -b

[ system compiles libwnck and creates .deb packages for it, no questions asked. ]

libwnck-2.18.0$ cd ..
$ ls *.deb
libwnck18_2.18.0-0ubuntu1_i386.deb libwnck-common_2.18.0-0ubuntu1_all.deb libwnck-dev_2.18.0-0ubuntu1_i386.deb

[ Now just install the new packages and relogin. ]
$ sudo dpkg -i *.deb


See now, wasn't that actually quicker than blogging about the problem? :-P

Interesting, Bob. That was rather simple, now how hard would it be at add a toggle option in the settings page for that behavior? Then how hard would it be to submit that as a possible change for future GNOME releases?
Heh, heh. How did I know you'd drop in with a solution, Bob? :-)

I have to admit I completely forgot about apt-get source. Doh. I'm too used to building things from tarballs and having to hunt down all the dependencies manually.

See now, wasn't that actually quicker than blogging about the problem? :-P

But moaning and whinging blogging about it is so therapeutic. :-P

@Flame Sage: Nah, no Beryl or Compiz, just bog-standard GNOME, with Metacity as per default. I was using Beryl at one point but it had a few problems; a bug or two, and for some reason switching to the desktop was really really slow. (I set Win-D to display the desktop, since I'm used to using that on Windows.)
Danial.Beta wrote:
how hard would it be at add a toggle option in the settings page for that behaviour

Probably a bit more difficult as there's several different packages you'd need to modify and you'd actually need to know how to use the GNOME and GTK APIs (I don't) instead of just removing lines of code by guesswork until the scroll functionality breaks. :-P

1. Add something to the libwnck API that allows clients to disable scroll behaviour.

2. Get gnome-panel source and add a gconf option that's passed along to libwnck. (Hint: the place to start is probably gnome-panel-2.18.1/applets/wncklet/window-list.c).

3. Add the gconf option to the settings page. I've never done any development with GNOME so I'm not sure where you'd need to go for this. Possibly the gnome-control-center project.

Then how hard would it be to submit that as a possible change for future GNOME releases?

You would first need to get the libwnck changes committed, then once that's done you can submit your patch to gnome-panel and then finally once that's also in you could submit to gnome-control-center. I don't know what GNOME's policy is for patch submission but it could well be different for each of those packages as they're probably each maintained by a different set of people.

So anyway probably no problem for someone who's already done some GNOME development but otherwise there'd be a bit of figuring out required.
Perhaps it would just be easier to make/revive a feature request to make that change, rather than attempting to run it up the flag pole your way.

It does point out a small abstraction problem with Linux in general. A million parts maintained by a million people makes for a mess. Linux is remarkable, but it does suffer from this problem, which becomes very clear when you start using a GUI. GNOME has a really detailed document on how GNOME based applications should be designed, but it still has problems.
Danial.Beta wrote:
Perhaps it would just be easier to make/revive a feature request to make that change, rather than attempting to run it up the flag pole your way.

Yep, but feature requests aren't often fulfilled in volunteer projects unless a developer thinks it's particularly important (like it's driving them nuts too). One reasonable option is to put a bounty on it, offer say $10 or $20 to whoever fixes it and gets the fix into upstream.

It does point out a small abstraction problem with Linux in general. A million parts maintained by a million people makes for a mess.

Yes indeed, all software projects that rely on a lot of libraries are going to have this problem. It's much worse for development with closed-sourced platforms, at least we have the option of fixing it ourselves, even if it is a little involved sometimes. Avoid closed libraries whenever you possibly can, I've had some rather painful experiences spending days trying to come up with a workaround for some stupid platform bug that would be trivial to fix once and for all if I had the source.

Linux is remarkable, but it does suffer from this problem, which becomes very clear when you start using a GUI.

Yep, I'm mostly a command-line guy. Simple is good (and easier to tweak to your liking).
This fits neatly with my longstanding theory that penguin-thumpers suck. The interface designers among them in particular seem to be criminally stupid, like they went out of their way to make everything as cumbersome as possible, to the point where I can't imagine they're even good people. Of course, I've disliked every Linux GUI environment I've ever run across, and any time I use an open-source program in Windows that tries to mimic the Linux interface, I want to kill the idiot who decided to do it. (See also the GIMP.)
Actually, I find some interfaces to be pretty good. KDE is a decent interface, and most programs within follow a nice convention. And people are working on cleaning up the interface. I've been running Linux for years now, and every version of Ubuntu has seen a vastly improved interface, especially in configuration pages. Still, it does need work, no doubt about that. And don't point to GIMP as a common interface design of open sourced programs. GIMP went a crazy direction for reasons unknown to me. Pidgin is a great example of good interface design of a open-sourced project.

There is a big effort, as of late, to improve the interface design. Mostly because it's very important to clean things up if those(/we) "penguin-thumpers" ever want wide spread adoption of Linux. And I'm very happy to see it. I, personally, see Vista as a step back for Windows when it comes to interface design, so let's hope those penguin-thumpers take advantage of that.
Yeah, interface design is a hard problem. I've never used a UI (graphical or not) that I've been completely happy with, even ones I've designed specifically for myself. Some are better than others but there's always some problems. It doesn't help that taste has a lot to do with it, it's too easy to just get caught up in pointless arguments.
Lummox JR wrote:
Of course, I've disliked every Linux GUI environment I've ever run across, and any time I use an open-source program in Windows that tries to mimic the Linux interface, I want to kill the idiot who decided to do it. (See also the GIMP.)

The GIMP is indeed a travesty of UI design (even on Linux, though at least on Linux it can be mitigated slightly by putting the GIMP on its own virtual desktop). Thankfully, it's the only UI I've ever seen designed that way. The other open source projects I've used generally have better interfaces.

Another UI crime that cross-platform projects often commit is writing their own widgets (this is acceptable in games, but usually not in apps). Inevitably, the widgets suck, and clash badly with the usual UI in the target operating system. See: Qt; Java's Swing with any non-native theme; etc. When will people learn that you should just wrap the native widgets? wxWidgets is one of those rare projects that do the right thing here.
Crispy wrote:
Another UI crime that cross-platform projects often commit is writing their own widgets (this is acceptable in games, but usually not in apps). Inevitably, the widgets suck, and clash badly with the usual UI in the target operating system. See: Qt; Java's Swing with any non-native theme; etc. When will people learn that you should just wrap the native widgets? wxWidgets is one of those rare projects that do the right thing here.

Don't forget Tcl/tk. I hate Tcl/tk...
Page: 1 2