Як відобразити повну дату та час у списку Nautilus / Files 3.6+?


39

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

У мене це було налаштовано раніше, але я не можу зрозуміти, як це зробити з версією 3.6. Я знайшов це запитання, але відповіді більше не стосуються Nautilus 3.6: Як змінити формат дати у стовпцях списку Nautilus?

Як я можу це зробити в 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.
AlikElzin-kilaka

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 відображав повну дату у вікні списку, потрібно лише змінити рядок коду: у рядку 77 від "date_modified" до "date_modified_full" у libnautilus-private / nautilus-column-utilities.c, рядок 77.

Трохи корисніший виправлення міг би додати новий тип стовпця, який би відображав повну дату, роблячи цю необов'язкову функцію та додаючи лише 10 рядків коду.


12
Ось чому я люблю відкритий код - коли розробники сходять з розуму, я можу це виправити самостійно.
Алістер Бакстон

6
Чи є це наразі єдиним способом вирішення цього питання?
Філіпп

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

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

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)
Ханну

@ Hannu, спробуйте ще раз, потрібно було оновити
дог

dpkg --list | grep nautilusпоказав ...+dateверсію. Повторний повтор, кілька разів. Тільки після перезавантаження з встановленою цією версією, потім заглибився в термінал і там після використання nautilus --no-desktop(не впевнений, чи він там з'явився), і тоді nautilus --force-desktopя, нарешті, знайшов опцію "Модифікований (повний)" у вікні списку. Зараз, здається, він присутній у всі часи. питання : Чи можна змінити вміст? Наприклад, я сподіваюся, що для використання "strngth ()"?
Ханну

Хм ... може бути, 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: Ось чому я люблю відкритий код - коли розробники сходять з розуму, я можу це виправити самостійно. Ну, з вашою допомогою! ДЯКУЮ.
думка_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.