Google Drive in GNOME 50

@beango1 ,@Joda which distros are you using?

Here are the packages I made so far.

This replaces system components with Drive-enabled ones. I recommend taking a system snapshot beforehand or using a VM.

Fedora 44

sudo dnf copr enable fluhus/gnome-googledrive
sudo dnf update --refresh

Arch

paru -S gnome-online-accounts-googledrive gvfs-googledrive
# It will say that it conflicts with existing packages, that's okay. Let it remove the old ones.

Ubuntu if you can please!!!

I am also using ubuntu. Just upgraded to LTS 26.04.

Hello @fluhus ! Awesome work! Thanks for reviving support for this much needed feature. In your copr repo, could you please also provide builds for Fedora 44 aarch64 packages? This would be very useful for Asahi Fedora systems.

@zheltikov I’ve built the packages for f44-aarch64, but I haven’t tested them yet because I’m not sure how without an aarch64 machine. You should be able to install it now, just please be careful, and please let me know how it works for you!

Ubuntu people, you are not forgotten! :slight_smile: I’m still figuring out how to create PPAs for these packages. It’s more complicated than I expected. Will update here when it’s ready.

Any help/tips are welcome!

The Fedora 44 aarch64 packages work great! The Google Drive mount seems to disconnect quite often, probably because of my less-than-ideal cellular connection… But I remember the previous/original gvfs version working more stable.

Thank you @fluhus ! Looking forward to future updates!

Here goes

Ubuntu 26.04

sudo add-apt-repository ppa:fluhus/gnome-googledrive
sudo apt update
sudo apt install gnome-online-accounts gvfs

# You might need to log out and in again after installing.

@beango1 @Joda
Let me know how it goes.

Thank you for the feedback! Sorry you’re experiencing these hiccups.

Network issues might be the reason, but let’s make sure it’s not a software issue:

  1. You can run journalctl --user -b | grep -iE 'gvfs|goa|google' and check if you’re spotting any crashes or errors.
  2. If you are comfortable with running virtual machines, you can run f43 on a VM (with the old builtin Google Drive integration) and see if these hiccups repeat.

@fluhus , I checked on both cellular and a stable Wi‑Fi connection; this doesn’t seem to be a network issue. The journal shows several crashes:

~ $ journalctl --user -b | grep -iE 'gvfs|goa|google'
Apr 30 00:31:52 fedora goa-daemon[3197]: goa-daemon version 3.58.1 starting
Apr 30 00:31:52 fedora goa-identity-se[3218]: GoaKerberosIdentityManager: Using polling for change notification for credential cache type 'KCM'
Apr 30 00:31:56 fedora systemd[2859]: Starting gvfs-metadata.service - Virtual filesystem metadata service...
Apr 30 00:31:56 fedora systemd[2859]: Started gvfs-metadata.service - Virtual filesystem metadata service.
Apr 30 00:32:50 fedora systemd[2859]: Starting gvfs-udisks2-volume-monitor.service - Virtual filesystem service - disk device monitor...
Apr 30 00:32:50 fedora systemd[2859]: Started gvfs-udisks2-volume-monitor.service - Virtual filesystem service - disk device monitor.
Apr 30 00:32:50 fedora systemd[2859]: Starting gvfs-mtp-volume-monitor.service - Virtual filesystem service - Media Transfer Protocol monitor...
Apr 30 00:32:50 fedora systemd[2859]: Started gvfs-mtp-volume-monitor.service - Virtual filesystem service - Media Transfer Protocol monitor.
Apr 30 00:32:50 fedora systemd[2859]: Starting gvfs-gphoto2-volume-monitor.service - Virtual filesystem service - digital camera monitor...
Apr 30 00:32:50 fedora systemd[2859]: Started gvfs-gphoto2-volume-monitor.service - Virtual filesystem service - digital camera monitor.
Apr 30 00:32:50 fedora systemd[2859]: Starting gvfs-afc-volume-monitor.service - Virtual filesystem service - Apple File Conduit monitor...
Apr 30 00:32:50 fedora systemd[2859]: Started gvfs-afc-volume-monitor.service - Virtual filesystem service - Apple File Conduit monitor.
Apr 30 00:32:50 fedora systemd[2859]: Starting gvfs-goa-volume-monitor.service - Virtual filesystem service - GNOME Online Accounts monitor...
Apr 30 00:32:50 fedora systemd[2859]: Started gvfs-goa-volume-monitor.service - Virtual filesystem service - GNOME Online Accounts monitor.
Apr 30 00:33:00 fedora gvfsd-wsdd[10751]: Unable to connect to the wsdd socket: No such file or directory
Apr 30 00:33:00 fedora gvfsd-network[10721]: Couldn't create directory monitor on wsdd:///. Error: Automount failed: Failed to establish connection with the underlying wsdd daemon.
Apr 30 00:33:00 fedora gvfsd-network[10721]: Couldn't create directory monitor on wsdd:///. Error: Automount failed: mountpoint for org.gtk.vfs.mountpoint_wsdd already running
Apr 30 00:33:34 fedora systemd-coredump[11304]: Process 10809 (gvfsd-google) of user 1000 dumped core.
                                                Module /usr/libexec/gvfsd-google from rpm gvf-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgvfsdbus.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgoa-1.0.so.0 from rpm gnome-online-accounts-3.58.1-1.fc44.copr1777494735.aarch64
                                                Module libgvfscommon.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgvfsdaemon.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                #3  0x0000aaab2af7ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #4  0x0000aaab2af7f05c g_vfs_backend_google_seek_on_read (/usr/libexec/gvfsd-google + 0xf05c)
                                                #5  0x0000ffff4e292a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #6  0x0000aaab2af7703c daemon_main.constprop.0 (/usr/libexec/gvfsd-google + 0x703c)
                                                #7  0x0000aaab2af76690 main (/usr/libexec/gvfd-google + 0x6690)
                                                #10 0x0000aaab2af76770 _start (/usr/libexec/gvfsd-google + 0x6770)
                                                #4  0x0000aaab2af7ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #5  0x0000aaab2af7f05c g_vfs_backend_google_seek_on_read (/usr/libexec/gvfsd-google + 0xf05c)
                                                #6  0x0000ffff4e292a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #4  0x0000aaab2af7ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #5  0x0000aaab2af7f05c g_vfs_backend_google_seek_on_read (/usr/libexec/gvfsd-google + 0xf05c)
                                                #6  0x0000ffff4e292a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #19 0x0000aaab2af7ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #20 0x0000aaab2af7f05c g_vfs_backend_google_seek_on_read (/usr/libexec/gvfsd-google + 0xf05c)
                                                #21 0x0000ffff4e292a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                Module libgioremote-volume-monitor.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgvfscommon.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgvfsdbus.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
Apr 30 00:34:40 fedora systemd-coredump[13302]: Process 11358 (gvfsd-google) of user 1000 dumped core.
                                                Module /usr/libexec/gvfsd-google from rpm gvf-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgvfsdbus.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgoa-1.0.so.0 from rpm gnome-online-accounts-3.58.1-1.fc44.copr1777494735.aarch64
                                                Module libgvfscommon.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgvfsdaemon.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                #3  0x0000aaaaf972ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #4  0x0000aaaaf972ecc0 g_vfs_backend_google_open_for_read (/usr/libexec/gvfsd-google + 0xecc0)
                                                #5  0x0000ffff5abc2a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #6  0x0000aaaaf972703c daemon_main.constprop.0 (/usr/libexec/gvfsd-google + 0x703c)
                                                #7  0x0000aaaaf9726690 main (/usr/libexec/gvfd-google + 0x6690)
                                                #10 0x0000aaaaf9726770 _start (/usr/libexec/gvfsd-google + 0x6770)
                                                #4  0x0000aaaaf972ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #5  0x0000aaaaf972f05c g_vfs_backend_google_seek_on_read (/usr/libexec/gvfsd-google + 0xf05c)
                                                #6  0x0000ffff5abc2a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #4  0x0000aaaaf972ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #5  0x0000aaaaf972ecc0 g_vfs_backend_google_open_for_read (/usr/libexec/gvfsd-google + 0xecc0)
                                                #6  0x0000ffff5abc2a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #19 0x0000aaaaf972ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #20 0x0000aaaaf972ecc0 g_vfs_backend_google_open_for_read (/usr/libexec/gvfsd-google + 0xecc0)
                                                #21 0x0000ffff5abc2a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #4  0x0000aaaaf972ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #5  0x0000aaaaf972ecc0 g_vfs_backend_google_open_for_read (/usr/libexec/gvfsd-google + 0xecc0)
                                                #6  0x0000ffff5abc2a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #4  0x0000aaaaf972ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #5  0x0000aaaaf972ecc0 g_vfs_backend_google_open_for_read (/usr/libexec/gvfsd-google + 0xecc0)
                                                #6  0x0000ffff5abc2a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #4  0x0000aaaaf972ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #5  0x0000aaaaf972ecc0 g_vfs_backend_google_open_for_read (/usr/libexec/gvfsd-google + 0xecc0)
                                                #6  0x0000ffff5abc2a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
Apr 30 00:34:40 fedora vlc.desktop[12714]: [0000fffe60001af0] filesystem stream error: cannot open file /run/user/1000/gvfs/google-drive:host=gmail.com,user=XXXXXXXX/My Drive/16-9bRdDj1TTMQ5XUmw6HwLibGVuVLnKm/10JtJJDKF0wLm9ezcHFQ8jK7g3-GXK0Ya/1JrMsCl0iPUK_PUtR1rjqa8lD1puw12I3/1tsLqQT8bem4xkbweHvsc24kVPIApKgcb (No such file or directory)
Apr 30 08:02:15 fedora systemd-coredump[55238]: Process 15355 (gvfsd-google) of user 1000 dumped core.
                                                Module /usr/libexec/gvfsd-google from rpm gvf-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgvfsdbus.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgoa-1.0.so.0 from rpm gnome-online-accounts-3.58.1-1.fc44.copr1777494735.aarch64
                                                Module libgvfscommon.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                Module libgvfsdaemon.so from rpm gvfs-1.60.0-1.fc44.copr1777494385.aarch64
                                                #3  0x0000aaab8ee6ea78 g_vfs_google_service_download_file_range_sync (/usr/libexec/gvfsd-google + 0xea78)
                                                #4  0x0000aaab8ee6ecc0 g_vfs_backend_google_open_for_read (/usr/libexec/gvfsd-google + 0xecc0)
                                                #5  0x0000fffed06f2a74 g_vfs_job_run (libgvfsdaemon.so + 0x12a74)
                                                #6  0x0000aaab8ee6703c daemon_main.constprop.0 (/usr/libexec/gvfsd-google + 0x703c)
                                                #7  0x0000aaab8ee66690 main (/usr/libexec/gvfd-google + 0x6690)
                                                #10 0x0000aaab8ee66770 _start (/usr/libexec/gvfsd-google + 0x6770)

So far so good!

Have you tried to get this PR in yet ?

The updated Fedora 44 aarch64 packages work great: no evident issues or crashes during my usual workflow (downloading, uploading, moving, renaming, deleting files, etc.). Looking forward to this getting merged. Thanks, @fluhus !

The power of open source. Thank you for the update.

Works great on my surface laptop 3 with F44

Incredible. Thank you very much! This worked for me as advertised. I just rebooted, deleted existing accounts in GNOME account mgr, and re-added them.

I created a merge request for the Google Drive support.

In the meantime it can be installed using the community repositories as written above. I’ll be updating those as new changes are made.

Thanks everyone for the feedback. One issue has already been resolved thanks to @zheltikov’s help. Keep the feedback coming!

Hi @fluhus. This is absolutely fantastic. Installing on my F44 system now. I noticed that, when downloading Google Docs, Slides, and Sheets, you appear to prefer Microsoft formats for download. Is it possible to configure your implementation to pull down ODT/ODS/ODP? If not, could this be considered because of the ubiquity of LibreOffice? and because it is an open standard rather than Microsoft’s? Or, does Google export better representations of their files in Microsoft formats, even with whatever conversion that LibreOffice or similar will do? Or, is this for another reason which I’m not thinking of? Thanks in advance, and really appreciate your work.

Really miss this feature and it’s awesome that we have the progress with implementing this feature! Tested it out and the auth and mounting process went well, but in the mounted FUSE directory I see the file ids instead of file names, so the content looks like this:

$ ls /run/user/1000/gvfs/google-drive\:host\=gmail.com\,user\=murznn/My\ Drive/ -1
0B65OeTkVeIyzNzc1YjhjNTUtOTVhZC00MzQ5LTlkMTYtMWM0NmIwOGZhMjFl
0B65OeTkVeIyzdTdIOGIzSE03SEE
1-YLTF8-EBijbzWnnTqDLdKbSlKVXGjg6
12ilE4T97071ySERvIEuByj1kElrigbsT
13Itwte7WhlW20Ze7mtB0taiwfQQOZBxP-BkW1sKFgJI
...

What can be done wrong and how to fix this issue?

Hi @ntcarver, thanks for the feedback! Yes, the current implementation defaults to MS Office formats. This is meant to replicate the web UI’s behavior - when you click ‘Download’ on a native file it downloads it as an MS Office file. The idea is to maintain as much consistency with the web UI as possible and create fewer surprises to people coming from it.

However, I can see why exporting open formats would make sense in a Linux setting, where LibreOffice is prevalent. Perhaps this behavior could be configurable. Off the top of my head I’m thinking maybe a gsettings option for the export format can be a good solution - keeps the default behavior and is easy to change. If anyone has any other ideas for this please let me know.

Hi @Murz, thanks for the input! Yes, what you are seeing does look weird. This is how it worked in the previous implementation too. I think the reason for this is that Google Drive allows files with the same name in the same folder, so GIO uses their unique file IDs as display names. At the moment I’m not sure how to solve this.

You can, however, use their “regular” names in your input, for example:

cp /run/user/1000/gvfs/google-drive\:host\=gmail.com\,user\=.../My\ Drive/School/homework.py ~/Documents/

I hope this helps.

Awesome. Yes, a setting would be great. Also, managed to get a rate limit exceeded copying a bunch of junk into an archive folder… whoops LOL. On a more serious note, when creating directories in Files, I get two duplicate directories. Refreshing clears it. Anything I can do to help track down this issue?

Maybe we can just add (N) suffixes to the file names, which are the duplicates? So, when we are building the list of files, display the first unique file name as is, and if there is a duplicate of the already displayed name, add (1) suffix to the file name, and so on. This is how many Google Drive sync tools work like InSync, RClone, ExpanDrive, etc.