For years, everybody list files on unix based on LC_COLLATE. Then Gnome developpers decide to interpret number in filename...
Strange choice, and we cannot personalize this.
ls show something like
001 004 1 A B a b
and for example, nautilus show:
1 001 004 A B a b
This behavior use command g_utf8_collate_key_for_filename from Glib library. Thank you to
- https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/322271
- https://bugzilla.gnome.org/show_bug.cgi?id=355152
- https://bugs.launchpad.net/ubuntu/+source/thunar/+bug/684317
-
- 30 related bugs opened
This little override this function with g_utf8_collate_key.
Compilation dependencies
sudo apt-get install libglib2.0-dev
make all
To override this behavior, this library need to be preload before each program who use Glib library. Todo that you can
LD_PRELOAD=/pathToYourLib/glibSortFileNameHack.so nautilus
echo "export LD_PRELOAD=/pathToYourLib/glibSortFileNameHack.so" >> ~/.gnomerc
and restart your gnome session. Be careful, this settings produce effect on whole gnome session.
make install
this command will create a libs directory in your home, copy library, and append LD_PRELOAD to ~/.gnomerc
Before open an issue, please follow this guide
to verify that it works, create some dummy files.
e.g.:
touch 001
touch 004
touch 1
touch 4
touch a
touch A
touch b
touch B
ls will show:
001 004 1 4 a A b B
nautilus on a standard installation will show:
1 001 4 004 a A b B
With hack nautilus will show
001 004 1 4 a A b B
before anything, kill any nautilus process
ps -aux | grep nautilus
kill -9 nautilusProcess
launch it from lib directory to test it:
LD_PRELOAD=./glibSortFileNameHack.so nautilus .
Related bug : https://bugzilla.gnome.org/show_bug.cgi?id=754777
Enjoy !
Alexandre Richonnier