Widgets from old gnome 2

The lost screenshot of Ubuntu Natty with Pointer Capture Applet:

Its man-page:

NAME
       pointer-capture-applet - Creates an area on the panel to capture the pointer

SYNOPSIS
       pointer-capture-applet

DESCRIPTION
       The  Pointer  Capture  applet is part of the mousetweaks package. It creates an area on the panel which can capture the pointer until the user
       releases it with a predefined button and modifier key combination.

BUGS
       Report bugs to <http://bugzilla.gnome.org/> ⟨http://bugzilla.gnome.org/⟩

AUTHORS
       pointer-capture-applet was written by Gerd Kohlberger. This manual page was written by Francesco Fumanti.

LICENSE
       Licenced under the GNU General Public License v3 or later.

SEE ALSO
       mousetweaks(1), dwell-click-applet(1)



                                                                                                                            pointer-capture-applet(1)

Below is a screenshot with locked mouse:

Technical details.
This applet comes from mousetweaks package:

$ apt-cache policy mousetweaks 
mousetweaks:
  Installed: 3.0.0-0ubuntu2
  Candidate: 3.0.0-0ubuntu2
  Version table:
 *** 3.0.0-0ubuntu2 0
        500 http://old-releases.ubuntu.com/ubuntu/ natty/main amd64 Packages
        100 /var/lib/dpkg/status

$ dpkg -L mousetweaks | grep bin.*applet
/usr/bin/pointer-capture-applet
/usr/bin/dwell-click-applet

Its source code for 11.04 (natty) is located on the corresponding branch on launchpad. Theoretically it should work on 11.10 (oneiric), but this functionality was not compiled (oneiric branch is here). It is known that functionality was removed from 12.04 LTS (as it has GNOME 3.4).

Oneiric and Natty configure scripts have two options related to these applets:

  --enable-pointer-capture     Enable pointer-capture applet
  --enable-dwell-click         Enable dwell-click applet

The main problem with it - it uses old GNOME 2.32 and dependencies from it. But modern systems have GNOME 3.

I tried to install older mousetweaks with hacky way on Ubuntu MATE 14.04 LTS, 16.04 LTS and 18.04 LTS by the following commands:

sudo apt-get install liborbit2 libgconf-2-4

wget http://old-releases.ubuntu.com/ubuntu/pool/main/g/gnome-panel/libpanel-applet-3-0_2.32.1-0ubuntu6.5_amd64.deb
sudo dpkg -x libpanel-applet-3-0_2.32.1-0ubuntu6.5_amd64.deb /

wget http://old-releases.ubuntu.com/ubuntu/pool/main/m/mousetweaks/mousetweaks_3.0.0-0ubuntu2_amd64.deb
sudo dpkg -x mousetweaks_3.0.0-0ubuntu2_amd64.deb /

and as the result pointer-capture-applet and dwell-click-applet do not crash but do not work too (not shown anywhere). So MATE desktop do not detect these applets.

@vkareh , @Wimpy What do you think - is it possible to create proxy-applet, which allows to place old GNOME2 applet to mate-panel? Do we have any?

1 Like

This is a great find! The file is there in the repo: /src/pointer-capture-applet.c - it would need some massaging to get it working for mate-panel, but it seems doable.

1 Like

Thank you for investigating this further! I have not been successful in my attempts, but you guys are way ahead of me! I’ll follow this thread for any developments. I don’t know how many people used the pointer applet, but it was sure handy in it’s time!
John

1 Like

I have good news - I got got mousetweaks compiled on Ubuntu 16.04 LTS MATE.

Below is complete instruction.

  1. You need to download archive (mousetweaks-mate.tar.gz) with source code to your ~/Downloads folder. It is manually patched bzr-code from natty.

  2. Then install all necessary dependencies:

     sudo apt-get install build-essential intltool gnome-doc-utils rarian-compat \
     libmate-panel-applet-dev libgconf2-dev libgtk2.0-dev
     sudo apt-get build-dep mate-applets mousetweaks
    
  3. Extract archive, compile software and install it to system

     cd ~/Downloads
     tar -xf mousetweaks-mate.tar.gz
     cd mousetweaks-mate
     ./configure --enable-dwell-click --enable-pointer-capture
     make
     sudo make install
    

Note: if you want to remove it - run sudo make uninstall in the ~/Downloads/mousetweaks-mate folder.

The result is shown on screenshot:

Currently I can't compile on 18.04 LTS because of Gtk2<->Gtk3 mess (it do not want to compile on 18.04 LTS, and installing version from 16.04 LTS ends with crash caused by GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported as the result).

2 Likes

@Norbert_X this is brilliant! I will give it a try on my side as soon as I get a chance.

Off topic question, what’s your host system with the orange-brown old-school looking title bar?

Fabulous - I did get it to successfully ./configure after I added the gsettings development files, but unfortunately as you have indicated, it will not install because of the GTK issue, but I also had to add a lot more dependencies than you listed here (probably because I don’t do much compiling on this computer) and now my teminal history doesn’t go back far enough to remind me what else I had to install !! :grinning:

That old feisty destop is pretty cool!

@Norbert_X this is brilliant! I will give it a try on my side as soon as I get a chance.

It would be great!

Off topic question, what’s your host system with the orange-brown old-school looking title bar?

On host I’m using Ubuntu MATE 16.04.5 LTS with Human-Clearlooks theme (from human-theme official Ubuntu package). But it is gray on 18.04 LTS. So I’ll stay on 16.04 LTS for a while.

Ah, of course! GTK3 changed how theme colors are handled, and this is a GTK2 theme…

1 Like

I’m not that much familiar with GTK+, but it’s possible to refurnish the /src/pointer-capture-applet.c code to work with GTK+ 3 by following the necessary migration steps, right?

I’d love to give it a go after my exam finishes tomorrow; I will have some time to kill, and this looks like a sweet opportunity! :slight_smile:

1 Like

@Apollonius - there’s not much to change, actually. Here’s most of what you need:

https://developer.gnome.org/gtk3/stable/gtk-migrating-theme-GtkStyleContext-engines.html

As well as some reference to GtkObject in a callback (just needs updating the function prototype). I’ve pushed a branch to launchpad: https://code.launchpad.net/~vkareh/+junk/mousetweaks
With apologies to @Norbert_X - who did all the porting work to MATE. I rebased it from the mousetweaks in oneiric and updated some things to GTK3. I’m not super familiar with bzr/launchpad, so I’ll have to figure out a way to attribute that initial port in the commit logs to nrbrtx.

Anyway, the work is not done - I still haven’t managed to load it in the latest mate-panel in 18.04, but it seems to compile so far.

2 Likes

I’m interested in the whole procedure; after establishing a code, where should I compile and test this type of thing? I guess not on my native system, that bears the risk of screwing it up… should I do this on a VM? Or is there any other way?

Sorry if I’m bugging you too much!

Thank you very much @vkareh for the idea about Code on Launchpad. I uploaded patched natty’s (Gtk2) version to the corresponding branch and created PPA with recipe for it. For now I have binary packages.

On Ubuntu MATE 16.04 LTS patched mousetweaks package may be installed with:

sudo add-apt-repository ppa:nrbrtx/mousetweaks-mate
sudo apt-get update
sudo apt-get install mousetweaks

On Ubuntu MATE 14.04 LTS patched mousetweaks package may be installed by downloading deb-package from pool and installing it manually. This is because of PPA-build-dependency on compilation time.

Currently I’m not running any Ubuntu 18.04 LTS on daily basis.

I’ll try to use these applets on my Ubuntu 16.04 LTS systems :slight_smile:

Thank you Norbert! do you have a signing key for your repository? unfortunately all my other machines here run vanilla gnome 14.04, so I can’t test it on those. I’d like to test on 18.04 if you think it’d work!

@johnf The Signing key is listed on PPA page under Technical details about this PPA link.

On Ubuntu MATE 14.04 LTS I have simply installed my package with

sudo dpkg -i ./mousetweaks*.deb

The key was not required.

@vkareh
May be to broad, and some off-topic, but I have questions.
What is the release plan of Ubuntu MATE development? Assuming that someone will port the old Gtk2 applets - will this work be in vain? Or will there not be a full transition to GtK3? What are its main causes? Will this at the same time preserve the traditional look of the desktop?

@Norbert_X - Both Ubuntu MATE and the MATE Desktop are fully transitioned to GTK3. And we’re constantly upgrading any deprecated functions from even GTK3 (we’ve actually dropped support for anything less than GTK3.22 for our latest builds, and currently discussing the transition to GTK3.24 in the future).

The traditional look and feel of the desktop is one of our top priorities, and everything has been preserved to the best of our abilities.

As for old GTK2 applets, like the pointer-capture one, those are third-party and don’t really belong to MATE, so we have no say there. It falls on the community to port them to GTK3 and make them available for others to use. If enough people care, it could be included in future releases, but adding applets carries a maintenance burden for @Wimpy.

As to whether porting mousetweaks to MATE/GTK3 is in vain, I would say: not if you use it! I’m personally curious as to how this applet works and what it does so I spent some time hacking at it. I’m not a big mouse user, so this applet might prove useful for me. That said, I feel there are people here who probably care about it a lot more than I do, but I’m happy to help in any way I can :slight_smile:

4 Likes

@Norbert_X

This is what happens on 18.04. I downloaded and installed

mousetweaks_3.99.99-really3.0.0~70~ubuntu16.04.1_amd64.deb

synaptic says that it is installed the same package is installed

this is what happens:

xxxx@xxxx:~$mousetweaks

(mousetweaks:1947): GLib-GIO-ERROR **: 20:41:04.110: Settings schema ‘org.mate.mousetweaks’ is not installed

Trace/breakpoint trap (core dumped)
xxxx@xxxx:~$

The pointer capture applet is displayed in the panel menu but when you add it with the ‘add’ function, no pointer-capture app is generated - probably because mousetweaks is not running according to ps -aux (but the add pointer-capture function in the panel may be some process I really don’t understand)

Thanks for your investigation with this function!!

@vkareh

It’s good to know what the exact policy is - it’s a drag because I cant help with these updates (all these libraries and apps orders of magnitude more complicated than my very limited programming knowledge provides) And it’s also good to know about how you feel about it too! :slight_smile:

Thanks also for providing this forum - I don’t know where I’d get these answers anywhere else! :relaxed:

1 Like

@johnf

Thank you for your bug-report. Fixed in revision 71.
But the main problem is that we can not mix Gtk2 and Gtk3 on 18.04 LTS. I have the following errors on bionic VM (while trying to run mousetweaks_3.99.99-really3.0.0~71~ubuntu16.04.1_amd64.deb on it):

mate@bionic:~/Downloads$ dwell-click-applet 

(dwell-click-applet:22372): Gtk-ERROR **: 13:40:19.634: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
Trace/breakpoint trap (core dumped)
mate@bionic:~/Downloads$ pointer-capture-applet 

(pointer-capture-applet:22380): Gtk-ERROR **: 13:40:51.316: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
Trace/breakpoint trap (core dumped)

So here we need some non trivial (for me) patching from @vkareh :slight_smile:

@Norbert_X, heh - it would be my pleasure :slight_smile:

I’ll try to take a stab at it today and report back

1 Like

Other interesting Gtk2 applets are:

But they have very old dependencies such as Bonobo, so it is very hard to compile it on Gtk2-based Ubuntu MATE ...

There was so much variety in the old Ubu installs! :sunglasses: