Skip to content

clock: Backport Evolution calendar integration from gnome-panel#1489

Merged
oz123 merged 3 commits into
masterfrom
evolution-calendar-integration
Aug 3, 2025
Merged

clock: Backport Evolution calendar integration from gnome-panel#1489
oz123 merged 3 commits into
masterfrom
evolution-calendar-integration

Conversation

@vkareh
Copy link
Copy Markdown
Member

@vkareh vkareh commented Jul 25, 2025

Add Evolution Data Server (EDS) calendar integration to the MATE panel clock applet, most of it ported copy/pasted from gnome-panel's clock applet. This allows users to view calendar events and tasks directly from the clock popup calendar.

The calendar integration is disabled by default and can be enabled with --enable-eds during configuration. When disabled, the clock applet functions normally without any EDS dependencies.

Note: This requires the changes in mate-desktop/libmateweather#133 (libedataserver requires libsoup-3 to work and it otherwise conflicts with the weather display using libsoup2)

Screenshot at 2025-07-25 16-33-58

Fixes #480

@vkareh vkareh requested a review from a team July 25, 2025 20:42
@vkareh vkareh force-pushed the evolution-calendar-integration branch from caa6883 to dafe6cc Compare July 25, 2025 20:52
@lukefromdc
Copy link
Copy Markdown
Member

lukefromdc commented Jul 26, 2025 via email

@oz123
Copy link
Copy Markdown

oz123 commented Jul 31, 2025

@vkareh this is really awesome ! That was one of my favorite features of the old gnome 2. I really wanted to have it mate, but I don't have the skills to do it.
Anyway, I tested it on gentoo (where both libsoup-2.4 and libsoup-3.0) are install. To get it compiled I had to patch two files:

applets/clock/pixmaps/Makefile:CLOCK_CFLAGS = -I/usr/include/libsoup-3.0 ...
applets/clock/Makefile:CLOCK_CFLAGS = -I/usr/include/libsoup-3.0 ... 

Of course, I have also installed the latest version of libmateweather from git too.

Also, I had to pass --enable-eds for this specific feature to build.

However, after building and installing it, the clock applet no longer works (I tested with mate-panel-test-applets).

vkareh added 2 commits August 1, 2025 20:21
Add Evolution Data Server (EDS) calendar integration to the MATE panel
clock applet, most of it ported from gnome-panel's clock applet. This
allows users to view calendar events and tasks directly from the clock
popup calendar.

The calendar integration is disabled by default and can be enabled
with --enable-eds during configuration. When disabled, the clock
applet functions normally without any EDS dependencies.
We remove a bunch of functions, since they are already handled by
libecal, and add correction to times based on the difference between the
event's own timezone and our current local timezone.
@vkareh vkareh force-pushed the evolution-calendar-integration branch from 2704077 to b76af19 Compare August 2, 2025 00:22
@vkareh
Copy link
Copy Markdown
Member Author

vkareh commented Aug 2, 2025

In playing with this I found a few NULL pointer issues - I just pushed some potential fixes. I still can't get the mate-panel-test-applets thing to work though (the actual applet still works fine)

Provide a fallback preferences path in case the applet doesn't provide
one. This happens when running outside the actual panel, like in the
case of mate-panel-test-applets.
@vkareh
Copy link
Copy Markdown
Member Author

vkareh commented Aug 2, 2025

@oz123 - okay, found the issue and pushed a commit. Let me know whenever you have the chance of testing this.

@oz123
Copy link
Copy Markdown

oz123 commented Aug 2, 2025

@vkareh thank you! After some back and forth with gentoo, I have it running.

The trick was to compile libmateweather with:

./configure --prefix=/usr --libdir=/usr/lib64

And then , compile mate-panel with:

./configure --prefix=/usr

And verify that it's only linked against libsoup-3 and not against libsoup-2.4.

$ ldd .libs/clock-applet | grep soup
	libsoup-3.0.so.0 => /usr/lib64/libsoup-3.0.so.0 (0x00007fe48a2a2000)

and finally, make evolution start so I can test this feature. Evolution crashed with:

oznt@yeni2:~ $ evolution 

(org.gnome.Evolution:17997): dbind-WARNING **: 14:40:32.902: Couldn't connect to accessibility bus: Failed to connect to socket /run/user/0/at-spi/bus_0: Permission denied

(evolution-alarm-notify:18035): dbind-WARNING **: 14:40:33.257: Couldn't connect to accessibility bus: Failed to connect to socket /run/user/0/at-spi/bus_0: Permission denied
libEGL warning: DRI2: failed to authenticate
bwrap: Can't find source path /run/user/0/at-spi: Permission denied

** (org.gnome.Evolution:17997): ERROR **: 14:40:33.504: Failed to fully launch dbus-proxy: Child process exited with code 1
Trace/breakpoint trap
~~~

Changing /run/user/0/at-api/ permissions fixed the issue:

sudo  chmod o+rx /run/user/0/ 
sudo chmod o+rx /run/user/0/at-spi/

oznt@yeni2:~ $ evolution 

(org.gnome.Evolution:19675): dbind-WARNING **: 14:43:19.114: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

(evolution-alarm-notify:19687): dbind-WARNING **: 14:43:19.885: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
libEGL warning: DRI2: failed to authenticate

** (process:2): WARNING **: 14:43:25.593: Error writing credentials to socket: Error sending message: Broken pipe

** (WebKitWebProcess:2): WARNING **: 14:43:26.058: Can't connect to a11y bus: The connection is closed

** (WebKitWebProcess:2): WARNING **: 14:44:28.393: Can't connect to a11y bus: The connection is closed

** (WebKitWebProcess:2): WARNING **: 14:44:29.218: Can't connect to a11y bus: The connection is closed

** (WebKitWebProcess:2): WARNING **: 14:44:29.272: Can't connect to a11y bus: The connection is closed

And I can start evolution (connecting to my gmail) and it shows event from my google calendar in the calendar app!

cal

Really nice! I missed this feature a lot.

Copy link
Copy Markdown
Member

@lukefromdc lukefromdc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cannot run evolution (and its a lot of packages to install) as I do not have any compatable email accounts to run it with,

That said, the non-Evolution build finishes and runs just fine, giving this text in the config results with my normal build options:

       Applets to build in-process:    wncklet clock fish notification-area
       Wayland support:               yes
       X11 support:                   yes
       XRandr support:                yes
       Evolution Data Server support: no
       Build introspection support:   yes
       Build gtk-doc documentation:   no

@oz123 oz123 merged commit 29a8742 into master Aug 3, 2025
9 of 10 checks passed
@oz123 oz123 deleted the evolution-calendar-integration branch August 3, 2025 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integration with Evolution Calendar lost?

3 participants