So here's the issue: double commander was developed by russian developer. Which is a red flag by default. Alternatiive solution should be found.
And gnome commander is one of them. Which has very similar design to total commander which I was using over 10 years ago on windows machines.
$ sudo apt install gnome-commander
It was fine on startup but then I found a segfault error when changing from text->image->text in the internal viewer!
And the version that available in the ubuntu reps is gnome-commander/noble 1.16.1-1build4 amd64
Here's the errors:
Thread 1 "gnome-commander" received signal SIGSEGV, Segmentation fault.
0x00007ffff748fc52 in gtk_widget_get_mapped () from /lib/x86_64-linux-gnu/libgtk-4.so.1
(gdb) bt
#0 0x00007ffff748fc5a in gtk_widget_get_mapped () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#1 0x00007ffff73db86a in ??? () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#2 0x00007ffff6e666bd in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
So the next stop was to build the latest 2.0.1 version from the sources!
$ git clone https://gitlab.gnome.org/GNOME/gnome-commander.git
The whole setup process is not described inthe INSTALL file in the repository. First you need these 2 main programs.
$ sudo apt install meson rustup
Next step is build dependancies, but first add "Source code" to your setup via this program.
$ software-properties-gtk
If you don't want to use it you can do everything manually. In the latest Ubuntu 24
change Types: deb deb-src
$ sudo nano /etc/apt/sources.list.d/ubuntu.sources
Or if you upgraded from the previous Ubuntu check this file and uncomment deb-src lines. Be patient to release alias.
$ sudo nano /etc/apt/sources.list
Finally we can build deps:
$ sudo apt build-dep exiv2 taglib libgsf poppler yelp
And update rust crates to the latest
$ sudo rustup update stable
If you se some errors
error: rustup could not choose a version of cargo to run, because one wasn't specified explicitly, and no default is configured.
help: run 'rustup default stable' to download the latest stable release of Rust and set it as your default toolchain.
try to force installation of the stable crates.
$ rustup toolchain install stable --force
Next step is to try config and build gnome-commander via meson. Check INSTALL file in the repo root
Simple install procedure
========================
% meson setup builddir # prepare the build
% meson compile -C builddir # build Gnome Commander
% meson install -C builddir # install Gnome Commander
This installs Gnome Commander to the default directory, usually under
'/usr/local/bin/'.
I got a bit of errors on setup
Error: Unable to find a source package for libexiv2
meson.build:101:12: ERROR: Dependency "gtk4" not found, tried pkgconfig and cmake
Run-time dependency vte-2.91-gtk4 found: NO (tried pkgconfig and cmake)
The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.75.0).
So here is the another pack of ssoftware you possibly will need to build the program.
$ sudo apt install libgtk-4-dev libvte-2.91-gtk4-dev libwebkit2gtk-4.1-dev
And maybe these for other interesting compilation stuff
$ sudo apt install gi-docgen libgirepository1.0-dev itstool
Finally it was compiled successfully. And from what I can say, the segfault issue was fixed in that version.
But I found another one with Internal Viewer window so I've created a PR to fix this Internal Viewer window issue!
https://gitlab.gnome.org/GNOME/gnome-commander/-/work_items/324
I didn't work with Rust before. The code is so unusual for me. But it was really nice to fix this issue!
But I still miss some functionality:
- To navigate the files by start typing the first filename symbols
- to open the terminal from current active folder
- theme switcher is not working
- home button is not working
- file navigation is not fast, I feel lag when returning level up from the folder