44

The list view of Nautilus 3.6 shows the dates files were modified in a variety of ways: the hour and minute if modified on the current day, and the month and day if modified during the current year, and the year tacked on if modified during a previous year. I would like to see the entire date and time consistently on all the files (e.g.: Sat 20 Apr 2012 01:28:34 PM EDT).

I had this set up before, but I can't figure out how to do so with version 3.6. I did find this question, but the answers no longer apply to Nautilus 3.6: How to change the date format in Nautilus list columns?

How can I do so in Nautilus 3.6+?

26

You can get back the full date by recompiling nautilus:

sudo apt-get build-dep nautilus
sudo apt-get install quilt
export QUILT_PATCHES=debian/patches
apt-get source nautilus
cd nautilus*
quilt new 999_full_dates.patch
quilt edit libnautilus-private/nautilus-column-utilities.c

Change line 77 from

"attribute", "date_modified",

to

"attribute", "date_modified_full",

Rebuild and install modified package:

quilt refresh
fakeroot dpkg-buildpackage
cd ..
killall nautilus
sudo dpkg -i nautilus_*.deb
nautilus &

As always, you have to perform these steps every time there is an update for nautilus in Ubuntu.

Now, a full analysis of the problem:

The actual patch which caused this change is this one.

The function nautilus_file_get_date_as_string gains an extra gboolean parameter "compact" - when true the abbreviated date is returned.

This function is never called directly - it is accessed through the wrapper function nautilus_file_get_string_attribute_q. This function takes attribute parameters like "date_modified". To accommodate the new signature of nautilus_file_get_date_as_string a new attribute is added "date_modified_full". After this change, any code in nautilus which uses the file date string will get the abbreviated date.

Finally, the file properties dialog is updated to use "date_modified_full" attribute.

So in order to have nautilus display the full date in list view, it is only necessary to change one line of code: in libnautilus-private/nautilus-column-utilities.c, line 77 from "date_modified" to "date_modified_full".

A slightly more useful patch could add a new column type which would show the full date, making this an optional feature, and only add 10 lines of code.

| improve this answer | |
  • 16
    This is why I love open source - when the developers go crazy, I can fix it myself. – Alistair Buxton Apr 26 '13 at 18:58
  • 6
    Is this currently still the only way to handle this issue? – Philippe Jul 9 '13 at 17:13
  • 4
    @AlistairBuxton Have you tried submitting the second patch to the Gnome developers? It would be great if they could at least give us a choice instead of keeping the full date unavailable… – n.st May 11 '14 at 14:46
  • 4
    I no longer use Nautilus and I suggest you do the same. – Alistair Buxton May 11 '14 at 15:24
  • 2
    Has this been fixed in more recent versions (so that I don't have to recompile)? – becko May 31 '16 at 20:04
12

This blog post shows a much easier solution. It is based on creating an extension which can be selected as an alternative "modified column". Tested under 16.04.

  1. gedit ~/.local/share/nautilus-python/extensions/longdate.py

  2. Use this code (always copy code you trust):

    #!/usr/bin/env python
    
    import os
    import urllib
    import datetime
    from gi.repository import Nautilus, GObject
    
    class ColumnExtension(GObject.GObject, Nautilus.ColumnProvider, Nautilus.InfoProvider):
        def __init__(self):
            pass
    
        def get_columns(self):
            return (Nautilus.Column(
                name="NautilusPython::Longdate", 
                attribute="longdate", 
                label="Longdate", 
                description="Get long date"),)
    
        def update_file_info(self, file):
            if file.get_uri_scheme() != 'file':
                return
    
            filename = urllib.unquote(file.get_uri()[7:])
            statbuf = os.stat(filename)
            formatteddate = datetime.datetime.fromtimestamp(statbuf.st_mtime).strftime('%Y-%m-%d %H:%M:%S')
            file.add_string_attribute('longdate', str(formatteddate))
    
  3. chmod +x ~/.local/share/nautilus-python/extensions/longdate.py

  4. sudo apt install python-nautilus

  5. nautilus -q and nautilus . to restart Nautilus and see if it properly loads the extension.

  6. Select the new "Longdate" column in the list column preferences.

The result will look like this:

example

| improve this answer | |
  • 4
    First install nautilus-python: sudo apt-get install python-nautilus – DrMoishe Pippik Aug 26 '18 at 4:47
  • Thanks a lot - it seems to work in Disco - Ubuntu 19.04 ! But you can not sort by Longdate. Unfortunately I can not fix that myself. Great job anyways. As @Alistair Buxton said: This is why I love open source - when the developers go crazy, I can fix it myself. Well, with your help! THX. – opinion_no9 Jan 13 '19 at 13:22
  • This isn't working on Nautilus ("Files" 3.10.1) on Ubuntu 14.04. When Nautilus is started from command line, it says Nautilus-Share-Message: Called "net usershare info" but it failed: 'net usershare' returned error 255: net usershare: cannot open usershare directory /var/lib/samba/usershares. Error No such file or directory Please ask sysadm to enable user sharing. Then six times ** (nautilus:21161): CRITICAL **: nautilus_menu_provider_get_background_items: assertion 'NAUTILUS_IS_FILE_INFO (current_folder)' failed. The would-be new column doesn't show in the choices. – wallyk Feb 20 '19 at 15:02
  • Thanks ! Works for me under Bionic (18.04.4 LTS), Nautilus 3.26.4 and nautilus-python 1.1-6. – Mutos May 2 at 9:54
  • Here is another solution you should only use if you read it or trust it. – Pablo Bianchi Nov 24 at 3:56
5

For those using trusty & not wishing to compile I've set up a test ppa for a patched nautilus. (using Alistair Buxton's patch

The build currently also includes 2 bug fix patches, 1 from trusty-proposed, 1 from utopic.

Additionally there are 3 minor patches that have been tested by me over quite some time & pose no issues.

  1. open with on folders

  2. real file owner name displayed instead of "Me"

  3. File Manager as name of launcher

The 'date-time' patch I've tested a bit, seen no issues. For those inclined to try - if any issue found contact me thru launchpad email.

The "Modified (full)" column can be added thru nautilus in listview > View > Visible Columns.. or thru nautilus > Edit > Preferences > List Columns

https://launchpad.net/~mc3man/+archive/nauty-mods

Read ppa page for info & how to easily revert if need be.

| improve this answer | |
  • I can't seem to get this nautilus version installed. sudo apt-get install nautilus just concludes that latest is already installed. Trying sudo apt-get --reinstall install nautilus reinstalls, but the very same that there already is. Do you by any chance have something for e.g. /etc/apt/preferences.d/ that makes this thing actually get installed, or how else to do it? (on Trusty) – Hannu Jan 23 '16 at 15:11
  • @ Hannu, try again, needed to be updated – doug Jan 23 '16 at 20:47
  • dpkg --list | grep nautilus showed the ...+date version. Retried, several times. Only after having rebooted with this version installed, then delved into the Terminal and there after using nautilus --no-desktop (unsure if it appeared there) and then nautilus --force-desktop I - at last - found the "Modified (full)" option in the list view. Now it seems to be present at all times. question: Can the content be modified? e.g. I'd hope as for use of "strftime()" ? – Hannu Jan 24 '16 at 15:09
  • Hmm... might it be LC_TIME=... that specifies the format? – Hannu Jan 24 '16 at 15:22
  • 1
    An unprejudiced request for next time you update the ppa, please consider adding yet another format for the Modifed column; same as date +'%Y-%m-%d, %T' – Hannu Jan 30 '16 at 13:41
2

Nemo is a fork of Nautilus that includes Creation date and a button for Ctrl+L.

sudo apt install nemo

To replace Nautilus for Documents links etc.:

xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search

That updates your mime settings:

$ cat ~/.config/mimeapps.list |grep inode
inode/directory=nemo.desktop
inode/directory=exo-file-manager.desktop;
$ cat /etc/gnome/defaults.list |grep inode
inode/directory=org.gnome.Nautilus.desktop
| improve this answer | |
  • how do i make it the default file manager? – Michael Jun 17 at 0:35
  • @Michael I've updated my answer. – Cees Timmerman Jun 29 at 19:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.