Làm cách nào để hiển thị đầy đủ ngày và giờ trong chế độ xem danh sách Nautilus / Files 3.6+?


39

Chế độ xem danh sách của Nautilus 3.6 cho thấy các tệp ngày được sửa đổi theo nhiều cách khác nhau: giờ và phút nếu được sửa đổi vào ngày hiện tại và tháng và ngày nếu được sửa đổi trong năm hiện tại và năm được xử lý nếu được sửa đổi trong một năm trước. Tôi muốn thấy toàn bộ ngày và giờ nhất quán trên tất cả các tệp (ví dụ Sat 20 Apr 2012 01:28:34 PM EDT:).

Tôi đã thiết lập điều này trước đây, nhưng tôi không thể tìm ra cách thực hiện với phiên bản 3.6. Tôi đã tìm thấy câu hỏi này, nhưng câu trả lời không còn áp dụng cho Nautilus 3.6: Làm cách nào để thay đổi định dạng ngày trong các cột danh sách Nautilus?

Làm thế nào tôi có thể làm như vậy trong Nautilus 3.6+?


Nhìn vào các cài đặt trên chính xác và hiếm khi chúng giống hệt nhau, vì vậy tôi cho rằng đó là một tính năng được xóa khỏi nautilus, có thể có một plugin hoặc tập lệnh có thể thêm lại mặc dù.
Davmor2

3
phím ngày định dạng trong gsettings đã được gỡ bỏ bằng cách này cam kết: git.gnome.org/browse/nautilus/commit/libnautilus-private/... mà thuộc về báo cáo lỗi này: bugzilla.gnome.org/show_bug.cgi?id=676898
djfun

3
Một liên kết đến một "lỗi" yêu cầu chức năng được khôi phục: bugzilla.gnome.org/show_orms.cgi?id=699055
Aibara

Xảy ra với tôi trên v3.14.2. Một người tên Carlos đã nhận xét trong goo.gl/AE7FRA rằng điều này được sửa trong nautilus v3.16.
AlikElzin-kilaka

1
@becko Ubuntu 16.04 xuất xưởng với Nautilus 3.14. Nó không được sửa trong phiên bản đó. Tôi chưa thử nghiệm 3.16.
Aibara

Câu trả lời:


24

Bạn có thể lấy lại ngày đầy đủ bằng cách biên dịch lại 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

Thay đổi dòng 77 từ

"attribute", "date_modified",

đến

"attribute", "date_modified_full",

Xây dựng lại và cài đặt gói sửa đổi:

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

Như mọi khi, bạn phải thực hiện các bước này mỗi khi có bản cập nhật cho nautilus trong Ubuntu.

Bây giờ, một phân tích đầy đủ của vấn đề:

Bản vá thực sự gây ra thay đổi này là bản vá này: https://git.gnome.org/browse/nautilus/commit/?id=3fd9cba41e56f44ed955b28755ad03135026d021

Hàm nautilus_file_get_date_as_opes nhận thêm một tham số gboolean "compact" - khi đúng là ngày viết tắt được trả về.

Hàm này không bao giờ được gọi trực tiếp - nó được truy cập thông qua hàm bao bọc nautilus_file_get_opes_attribution_q. Hàm này lấy các tham số thuộc tính như "date_modified". Để phù hợp với chữ ký mới của nautilus_file_get_date_as_opes, một thuộc tính mới được thêm vào "date_modified_full". Sau thay đổi này, bất kỳ mã nào trong nautilus sử dụng chuỗi ngày của tệp sẽ nhận được ngày viết tắt.

Cuối cùng, hộp thoại thuộc tính tệp được cập nhật để sử dụng thuộc tính "date_modified_full".

Vì vậy, để nautilus hiển thị ngày đầy đủ trong chế độ xem danh sách, chỉ cần thay đổi dòng mã: trong libnautilus-private / nautilus-cột-ích.c, dòng 77 từ "date_modified" thành "date_modified_full".

Một bản vá hữu ích hơn một chút có thể thêm một loại cột mới sẽ hiển thị ngày đầy đủ, làm cho tính năng này trở thành một tính năng tùy chọn và chỉ thêm 10 dòng mã.


12
Đây là lý do tại sao tôi yêu thích nguồn mở - khi các nhà phát triển phát điên, tôi có thể tự sửa nó.
Alistair Buxton

6
Đây có phải là cách duy nhất để xử lý vấn đề này?
Philippe

3
@AlistairBuxton Bạn đã thử gửi bản vá thứ hai cho các nhà phát triển Gnome chưa? Sẽ thật tuyệt nếu ít nhất họ có thể cho chúng ta lựa chọn thay vì giữ nguyên ngày tháng không có sẵn
n.st

3
Tôi không còn sử dụng Nautilus và tôi khuyên bạn nên làm như vậy.
Alistair Buxton

2
Điều này đã được sửa trong các phiên bản gần đây hơn (để tôi không phải biên dịch lại)?
vẫy gọi

6

Đối với những người sử dụng trustyvà không muốn biên dịch, tôi đã thiết lập một ppa thử nghiệm cho một nautilus được vá. (sử dụng bản vá của Alistair Buxton

Bản dựng hiện tại cũng bao gồm 2 bản vá sửa lỗi, 1 từ đề xuất đáng tin cậy, 1 từ không tưởng.

Ngoài ra, có 3 bản vá nhỏ đã được tôi kiểm tra trong một thời gian và không có vấn đề gì.

  1. mở với các thư mục

  2. tên chủ sở hữu tệp thực được hiển thị thay vì "Tôi"

  3. Trình quản lý tệp như tên của trình khởi chạy

Bản vá 'thời gian' tôi đã thử nghiệm một chút, không thấy vấn đề gì. Đối với những người có xu hướng thử - nếu có bất kỳ vấn đề nào, hãy liên hệ với tôi qua email launchpad.

Có thể thêm cột "Đã sửa đổi (đầy đủ)" thông qua listview> Xem> Cột có thể nhìn thấy .. hoặc thông qua nautilus> Chỉnh sửa> Tùy chọn> Cột danh sách

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

Đọc trang ppa để biết thông tin & cách dễ dàng hoàn nguyên nếu cần.


Tôi dường như không thể cài đặt phiên bản nautilus này. sudo apt-get install nautiluschỉ kết luận rằng latest is already installed. Đang thử sudo apt-get --reinstall install nautiluscài đặt lại, nhưng cũng giống như vậy. Bạn có bất cứ điều gì có ví dụ như /etc/apt/preferences.d/làm cho thứ này thực sự được cài đặt, hoặc làm thế nào khác để làm điều đó? (trên Trusty)
Hannu

@ Hannu, thử lại, cần được cập nhật
doug

dpkg --list | grep nautiluscho thấy ...+datephiên bản. Đã thử lại, nhiều lần. Chỉ sau khi khởi động lại với phiên bản này được cài đặt, sau đó đào sâu vào Terminal và ở đó sau khi sử dụng nautilus --no-desktop(không chắc là nó có xuất hiện ở đó không) và nautilus --force-desktopcuối cùng tôi - đã tìm thấy tùy chọn "Đã sửa đổi (đầy đủ)" trong chế độ xem danh sách. Bây giờ nó dường như có mặt mọi lúc. Câu hỏi : Nội dung có thể được sửa đổi? ví dụ: tôi hy vọng khi sử dụng "strftime ()"?
Hannu

Hmm ... có thể LC_TIME=...chỉ định định dạng?
Hannu

1
Một yêu cầu không được đánh giá cho lần tiếp theo bạn cập nhật ppa, vui lòng xem xét thêm một định dạng khác cho cột Modifed; giống nhưdate +'%Y-%m-%d, %T'
Hannu

4

Bài đăng blog này cho thấy một giải pháp dễ dàng hơn nhiều. Nó dựa trên việc tạo một tiện ích mở rộng có thể được chọn làm "cột sửa đổi" thay thế. Đã thử nghiệm dưới 16.04.

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

  2. Sử dụng mã này:

#!/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 -qnautilus .để khởi động lại Nautilus và xem nếu nó tải đúng phần mở rộng.

  3. Chọn cột "longdate" mới trong tùy chọn cột danh sách.

Kết quả sẽ như thế này:

thí dụ


2
Lần đầu tiên cài đặt nautilus-python:sudo apt-get install python-nautilus
DrMoishe Pippik

Cảm ơn rất nhiều - có vẻ như nó hoạt động trong Sàn nhảy - Ubuntu 19.04! Nhưng bạn không thể sắp xếp theo Longdate. Thật không may, tôi không thể tự sửa nó. Dù sao công việc tuyệt vời. Như @Alistair Buxton đã nói: Đây là lý do tại sao tôi yêu thích nguồn mở - khi các nhà phát triển phát điên, tôi có thể tự sửa nó. Vâng, với sự giúp đỡ của bạn! CÁM ƠN.
Ý kiến_no9

Điều này không hoạt động trên Nautilus ("Tệp" 3.10.1) trên Ubuntu 14.04. Khi Nautilus được bắt đầu từ dòng lệnh, nó cho biết 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 directoryHãy hỏi sysadm để cho phép chia sẻ người dùng. Rồi sáu lần ** (nautilus:21161): CRITICAL **: nautilus_menu_provider_get_background_items: assertion 'NAUTILUS_IS_FILE_INFO (current_folder)' failed. Cột mới sẽ không hiển thị trong các lựa chọn.
wallyk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.