web-dev-qa-db-fra.com

Comment afficher la date et l'heure complètes dans la vue liste de Nautilus / Files 3.6+?

La liste de Nautilus 3.6 montre que les fichiers de dates ont été modifiés de différentes manières: l’heure et la minute si elles sont modifiées le jour en cours, et le mois et le jour si elles sont modifiées au cours de l’année en cours, et l’année ajoutée si elles sont modifiées au cours d’une année précédente. Je voudrais voir la date entière et l'heure uniformément sur tous les fichiers (par exemple: Sat 20 Apr 2012 01:28:34 PM EDT).

Je l'avais déjà configuré auparavant, mais je ne vois pas comment le faire avec la version 3.6. J'ai trouvé cette question, mais les réponses ne s'appliquent plus à Nautilus 3.6: Comment changer le format de date dans les colonnes de la liste Nautilus?

Comment puis-je le faire dans Nautilus 3.6+?

39
Aibara

Vous pouvez récupérer la date complète en recompilant 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

Changer la ligne 77 de

"attribute", "date_modified",

à

"attribute", "date_modified_full",

Reconstruire et installer le paquet modifié:

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

Comme toujours, vous devez suivre ces étapes à chaque fois qu’une mise à jour de nautilus est mise à jour dans Ubuntu.

Maintenant, une analyse complète du problème:

Le correctif qui a provoqué ce changement est celui-ci: https://git.gnome.org/browse/nautilus/commit/?id=3fd9cba41e56f44ed955b28755ad03135026d021

La fonction nautilus_file_get_date_as_string gagne un paramètre gboolean supplémentaire "compact" - lorsque true, la date abrégée est renvoyée.

Cette fonction n'est jamais appelée directement. Elle est accessible via la fonction wrapper nautilus_file_get_string_attribute_q. Cette fonction prend des paramètres d'attribut tels que "date_modified". Pour prendre en charge la nouvelle signature de nautilus_file_get_date_as_string, un nouvel attribut est ajouté "date_modified_full". Après cette modification, tout code de nautilus qui utilise la chaîne de date du fichier obtiendra la date abrégée.

Enfin, la boîte de dialogue des propriétés du fichier est mise à jour pour utiliser l'attribut "date_modified_full".

Ainsi, pour que Nautilus affiche la date complète en mode liste, il suffit de modifier en ligne le code: dans libnautilus-private/nautilus-column-utilities.c, ligne 77 de "date_modified" à "date_modified_full".

n correctif légèrement plus utile pourrait ajouter un nouveau type de colonne qui afficherait la date complète, ce qui en ferait une fonctionnalité facultative, et ajouter seulement 10 lignes de code.

24
Alistair Buxton

Pour ceux qui utilisent trusty& qui ne souhaitent pas compiler, j’ai mis en place un test ppa pour un nautile corrigé. (en utilisant le patch de Alistair Buxton

La version inclut également 2 correctifs de correctifs, un de trusty-proposé, un d’utopique.

En outre, 3 correctifs mineurs ont été testés par moi pendant un certain temps et ne posent aucun problème.

  1. ouvrir avec des dossiers

  2. nom du propriétaire du fichier réel affiché à la place de "moi"

  3. Gestionnaire de fichiers en tant que nom du lanceur

Le correctif "date-heure" que j'ai testé un peu, ne présente aucun problème. Pour ceux qui sont enclins à essayer - si un problème a été trouvé, contactez-moi par email.

La colonne "Modifié (complet)" peut être ajoutée via Nautilus dans listviewname__> Affichage> Colonnes visibles .. ou via Nautilus> Edition> Préférences> Liste des colonnes.

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

Lisez la page ppa pour plus d’informations et comment revenir facilement en cas de besoin.

6
doug

Ce article de blog montre une solution beaucoup plus simple. Il est basé sur la création d'une extension pouvant être sélectionnée comme alternative "colonne modifiée". Testé sous 16.04.

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

  2. Utilisez ce code:

#!/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))
  1. chmod +x ~/.local/share/nautilus-python/extensions/longdate.py

  2. nautilus -q et nautilus . pour redémarrer Nautilus et voir s’il charge correctement l’extension.

  3. Sélectionnez la nouvelle colonne "longdate" dans les préférences de colonne de la liste.

Le résultat ressemblera à ceci:

example

4
bluenote10