Как показать полную дату и время в виде списка Nautilus / Files 3.6+?


39

Представление списка Nautilus 3.6 показывает, что файлы дат были изменены различными способами: час и минута, если они были изменены в текущий день, и месяц и день, если они были изменены в течение текущего года, и год, отмеченный в случае изменения во время изменения. предыдущий год. Я хотел бы видеть всю дату и время последовательно на всех файлах (например:) Sat 20 Apr 2012 01:28:34 PM EDT.

Я настроил это раньше, но я не могу понять, как это сделать с версией 3.6. Я нашел этот вопрос, но ответы больше не относятся к Наутилусу 3.6: Как изменить формат даты в столбцах списка Наутилуса?

Как я могу сделать это в Nautilus 3.6+?


Глядя на настройки точных и рэринговых, они идентичны, так что я предполагаю, что это функция, удаленная из nautilus, там может быть плагин или скрипт, который может повторно добавить его.
Davmor2

3
ключ формата даты в gsettings был удален этим коммитом: git.gnome.org/browse/nautilus/commit/libnautilus-private/…, который относится к этому сообщению об ошибке: bugzilla.gnome.org/show_bug.cgi?id=676898
djfun

3
Ссылка на «ошибку», требующую восстановления функциональности: требующую bugzilla.gnome.org/show_bug.cgi?id=699055
Aibara

Случилось со мной на v3.14.2. Человек по имени Карлос прокомментировал в goo.gl/AE7FRA что это исправлено в nautilus v3.16.
АликЭльзин-килака

1
@becko Ubuntu 16.04 поставляется с Nautilus 3.14. Это не исправлено в этой версии. Я не проверял 3.16.
Айбара

Ответы:


24

Вы можете получить полную дату, перекомпилировав 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

Изменить строку 77 с

"attribute", "date_modified",

в

"attribute", "date_modified_full",

Перестройте и установите модифицированный пакет:

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

Как всегда, вы должны выполнять эти шаги каждый раз, когда в Ubuntu есть обновление для nautilus.

Теперь полный анализ проблемы:

Фактический патч, который вызвал это изменение: https://git.gnome.org/browse/nautilus/commit/?id=3fd9cba41e56f44ed955b28755ad03135026d021

Функция nautilus_file_get_date_as_string получает дополнительный параметр gboolean «compact» - при значении true возвращается сокращенная дата.

Эта функция никогда не вызывается напрямую - доступ к ней осуществляется через функцию-обертку nautilus_file_get_string_attribute_q. Эта функция принимает параметры атрибута, такие как «date_modified». Для размещения новой подписи nautilus_file_get_date_as_string добавлен новый атрибут «date_modified_full». После этого изменения любой код в nautilus, который использует строку даты файла, получит сокращенную дату.

Наконец, диалог свойств файла обновляется для использования атрибута date_modified_full.

Поэтому для того, чтобы nautilus отображал полную дату в виде списка, необходимо изменить только строку кода: в libnautilus-private / nautilus-column-utilities.c, строка 77 от «date_modified» до «date_modified_full».

Чуть более полезный патч может добавить новый тип столбца, который будет отображать полную дату, сделав это дополнительной функцией, и добавить только 10 строк кода.


12
Вот почему я люблю open source - когда разработчики сходят с ума, я могу исправить это сам.
Алистер Бакстон

6
В настоящее время это единственный способ решить эту проблему?
Филипп

3
@AlistairBuxton Вы пытались отправить второй патч разработчикам Gnome? Было бы замечательно , если бы они могли бы по крайней мере дать нам выбор вместо того , чтобы полная дату недоступной ...
n.st

3
Я больше не использую Наутилус и предлагаю вам сделать то же самое.
Алистер Бакстон

2
Это было исправлено в более поздних версиях (чтобы мне не пришлось перекомпилировать)?
Беко

6

Для тех, кто использует trusty & не хочет компилировать, я установил тестовый ppa для исправленного nautilus. (используя патч Алистер Бакстон

В настоящее время сборка также включает 2 исправления ошибок, 1 из предложенных верных, 1 из утопических.

Кроме того, есть 3 незначительных патча, которые были проверены мной в течение достаточно долгого времени и не представляют никаких проблем.

  1. открыть с папками

  2. реальное имя владельца файла отображается вместо «Я»

  3. Файловый менеджер как имя программы запуска

Патч «дата-время», который я немного протестировал, не видел проблем. Для тех, кто склонен попробовать - если обнаружится какая-либо проблема, свяжитесь со мной по электронной почте на панели запуска.

Столбец «Модифицированный (полный)» можно добавить через nautilus в listview > Вид> Видимые столбцы .. или через nautilus> Правка> Параметры> Список столбцов

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

Прочитайте страницу ppa для информации и как легко вернуться в случае необходимости.


Я не могу установить эту версию nautilus. sudo apt-get install nautilusпросто приходит к выводу, что latest is already installed. Пытаюсь sudo apt-get --reinstall install nautilusпереустанавливать, но то самое, что там уже есть. У вас случайно есть что-то, например, /etc/apt/preferences.d/что делает эту вещь действительно установленной, или как еще это сделать? (на Trusty)
Ханну

@ Ханну, попробуй еще раз, нужно обновить
doug

dpkg --list | grep nautilusпоказал ...+dateверсию. Повторил, несколько раз. Только после перезагрузки с этой установленной версией, затем углубился в Терминал и там после использования nautilus --no-desktop(не уверен, появился ли он там), а затем nautilus --force-desktopя - наконец-то - нашел опцию «Modified (full)» в представлении списка. Теперь, кажется, присутствует всегда. вопрос : можно ли изменить контент? Например, я надеюсь, что для использования "strftime ()"?
Ханну

Хм ... может быть, LC_TIME=...это определяет формат?
Ханну

1
Непредвзятый запрос при следующем обновлении ppa, пожалуйста, рассмотрите возможность добавления еще одного формата для столбца Modifed; так же, какdate +'%Y-%m-%d, %T'
Ханну

4

Этот пост блога показывает гораздо более простое решение. Он основан на создании расширения, которое можно выбрать в качестве альтернативного «модифицированного столбца». Проверено по 16.04.

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

  2. Используйте этот код:

#!/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и nautilus .перезапустить Nautilus и посмотреть, правильно ли он загружает расширение.

  3. Выберите новый столбец "longdate" в настройках столбца списка.

Результат будет выглядеть так:

пример


2
Сначала установите nautilus-python:sudo apt-get install python-nautilus
DrMoishe Pippik

Большое спасибо - похоже, работает в Disco - Ubuntu 19.04! Но вы не можете сортировать по Longdate. К сожалению, я не могу это исправить сам. Отличная работа в любом случае. Как сказал @Alistair Buxton: вот почему я люблю open source - когда разработчики сходят с ума, я могу это исправить самостоятельно. Ну, с вашей помощью! СПАСИБО.
idea_no9

Это не работает на Nautilus («Файлы» 3.10.1) на Ubuntu 14.04. Когда Nautilus запускается из командной строки, он говорит: « 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Пожалуйста, попросите sysadm разрешить совместное использование пользователя». Затем шесть раз ** (nautilus:21161): CRITICAL **: nautilus_menu_provider_get_background_items: assertion 'NAUTILUS_IS_FILE_INFO (current_folder)' failed. Потенциальный новый столбец не отображается при выборе.
Wallyk
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.