applications-menu icon indicating copy to clipboard operation
applications-menu copied to clipboard

File Roller not showing up in the Applications

Open eugenialoli opened this issue 6 months ago • 20 comments

What Happened?

I have the elementary version of file-roller installed, but it's not showing up in the Applications. It's properly installed afaik.

I later installed the deb version from the repo, and the same problem occured: no icon in the Applications to launch it.

I installed the menu editor app, and it does show File Roller there.

If this is hard coded to not show up in the Applications, I think it's a bad decision, and I'd like to see it reversed.

Steps to Reproduce

File roller

Expected Behavior

To show up in the Apps list

OS Version

8.x (Circe)

Session Type

Secure Session (Wayland)

Software Version

Latest release (I have run all updates)

Log Output


Hardware Info

No response

eugenialoli avatar May 24 '25 06:05 eugenialoli

If this is hard coded to not show up in the Applications, I think it's a bad decision, and I'd like to see it reversed.

It seems to be hidden intentionally for some reason.

https://github.com/elementary/applications-menu/blob/6ad22d84e3a7ea59fc856319e150d71cd8fcf2f4/src/Backend/AppSystem.vala#L155

ryonakano avatar May 24 '25 07:05 ryonakano

It was hidden because it pretty much exists to be a utility for the file browser and its important actions are available as menu items in Files. Most people are either compressing a selection (and this is a tiny minority) or uncompressing an archive they downloaded (the vast majority use case). So much so that I think in some other desktops they don't even ship a separate archive manager but just add these actions to the file browser. (Which tbh we should probably do this as well)

danirabbit avatar May 24 '25 16:05 danirabbit

I hope this changes, because today I booted again on ElementaryOS, and unless I'm blind, I can't find a way to compress files from Files. I open the file manager, I select a file, and I right click. No menu item to compress anything. So I'm not sure what you're referring to. Maybe there's some other button that does that, but it was not immediately obvious to me.

eugenialoli avatar Jun 03 '25 12:06 eugenialoli

@eugenialoli There should be a "Compress" item at the bottom of the context menu (below "Send by Email" and color tag chooser). This item is provided by the "Contractor" plugin which shows which contracts are installed in /usr/share/contractor. You should see usr/share/contractor/io.elementary.contractor.file-roller-compress.contract' and a similar extract-here contract,

The compress contract is:

[Contractor Entry]
Name=Compress
Icon=add-files-to-archive
Description=Create a compressed archive with the selected objects
MimeType=!archive;inode/blockdevice;inode/chardevice;inode/fifo;inode/socket;
Exec=flatpak run org.gnome.FileRoller --add %U
Gettext-Domain=file-roller

So you need the Flatpak version of file roller installed and the selected files must match one of the specified MimeTypes.

I suggest you open Terminal and use flatpak list to check that you have the flatpak installed. If so you could try running flatpak run org.gnome.FileRoller --add <insert-path-to-file> to check it is working properly.

jeremypw avatar Jun 04 '25 10:06 jeremypw

Note this only works with the elementary file manager. If you are using a different one then it may provide this facility in another way.

jeremypw avatar Jun 04 '25 10:06 jeremypw

This works OK for me on OS8 although there is a noticeable delay before the flatpak fires up for the first time.

jeremypw avatar Jun 04 '25 10:06 jeremypw

I thought I was crazy, but I'm not... the option is not there for me. @danirabbit

I think it's because I have also installed file-roller from the ubuntu repo too (because I couldn't see it in the menu, I decided to install the native package instead). But that shouldn't have done that anyway.

Image

eugenialoli avatar Jun 04 '25 10:06 eugenialoli

@eugenia Yes, this should work out of the box - elementary should come with file-roller pre-installed. I am pretty sure it did for me.

jeremypw avatar Jun 04 '25 18:06 jeremypw

It did for me too. The flatpak is installed. It's just that the compress option is not there.

eugenialoli avatar Jun 04 '25 18:06 eugenialoli

Can you confirm whether the expected contractor entries are present in /usr/share/contractor please? If so you can open them in Code to check whether the contents are correct.

jeremypw avatar Jun 04 '25 18:06 jeremypw

Contractor entries aren't/can't be shipped with the flatpak. They're shipped separately in the deb package org.gnome.fileroller https://github.com/elementary/fileroller/tree/deb-packaging

danirabbit avatar Jun 04 '25 18:06 danirabbit

I have installed both packages, both the flatpak, and the file-roller from the repo (sudo apt install file-roller). Both are present. So I don't know why it doesn't show up.

eugenialoli avatar Jun 04 '25 18:06 eugenialoli

@eugenialoli this is a third package called org.gnome.fileroller from apt, not file-roller

danirabbit avatar Jun 04 '25 18:06 danirabbit

Well, I don't know why it's not there then. Maybe it got de-installed automatically when I installed org.gnome.fileroller, due to a conflict or something. Regardless, I did it because the icon was missing in the app menu. I expected the utility to be there.

eugenialoli avatar Jun 04 '25 18:06 eugenialoli

@eugenialoli can you confirm that the package org.gnome.fileroller is installed with the command sudo apt-cache policy org.gnome.fileroller?

and if it is, can you then confirm whether or not you have the contract files installed to /usr/share/contractor as requested in this comment: https://github.com/elementary/applications-menu/issues/638#issuecomment-2939427900

danirabbit avatar Jun 04 '25 18:06 danirabbit

org.gnome.fileroller says: Installed: [None]

As for /usr/share/contractor/, the folder does not exist at all.

eugenialoli avatar Jun 04 '25 19:06 eugenialoli

@danirabbit

Contractor entries aren't/can't be shipped with the flatpak. They're shipped separately in the deb package org.gnome.fileroller https://github.com/elementary/fileroller/tree/deb-packaging

If file compression/decompression is hidden from the Applications menu because it is expected to available in Files then shouldn't the install process set things up so that it works oob? I thought it did. Something is off if the user needs to install both the Flatpak (from AppCenter - because the contract references it) and the deb (to install the contract). Or am I misunderstanding?

@eugenialoli If /usr/share/contractor is missing then you will also be missing the "Print" contract. What do you see in the context menu for a text file? I notice you do have the the "Send Files by Bluetooth" contract though. Not sure where this is stored if /usr/share/contractor is missing. Do you have ~/.local/share/contractor (where ~ represents your home folder)? Note that this is a hidden file so you need to have "Show Hidden" on.

jeremypw avatar Jun 04 '25 19:06 jeremypw

@eugenialoli this is the package that supplies the contract files. So you need to install it with sudo apt install org.gnome.fileroller

@jeremypw Yes, the package org.gnome.fileroller which installs the contract files is supposed to be installed by default. But this is indeed really fragile. I think a better solution would be to either just hardcode file roller support in Files or do the same as GNOME Files and just handle it ourselves: https://razvanchitu.wordpress.com/2016/07/14/extraction-support-in-nautilus/

There is no more print contract. It's been replaced by the print portal

danirabbit avatar Jun 04 '25 19:06 danirabbit

@danirabbit

There is no more print contract. It's been replaced by the print portal

I still have a print contract on my install of OS8 but if it is discontinued then I guess Files will need updating accordingly.

I think the only other contract still in use is "Send by Bluetooth" (installed by io.elementary.bluetooth) so I guess we still need the contractor plugin.

I think a better solution would be to either just hardcode file roller support in Files or do the same as GNOME Files and just handle it ourselves

Looks like libarchive already has a Vala binding so it should be possible to handle it internally at the cost of another dependency.

jeremypw avatar Jun 05 '25 11:06 jeremypw

I still have a print contract on my install of OS8

@jeremypw oh you know what, I'm thinking of the email contract we replaced with the portal. I think we didn't replace the print contract yet maybe 🤔 but there is a portal for that these days

danirabbit avatar Jun 06 '25 23:06 danirabbit