Nautilus / Files 3.6+ liste görünümünde tam tarih ve saat nasıl gösterilir?


39

Nautilus 3.6’nın liste görünümü, tarih dosyalarının çeşitli şekillerde değiştirildiğini gösterir: mevcut günde değiştirildiyse saat ve dakika, geçerli yıl boyunca değiştirildiyse ay ve gün ve bir geçen yıl. Tarih ve saati tüm dosyalarda tutarlı bir şekilde görmek istiyorum (örneğin:) Sat 20 Apr 2012 01:28:34 PM EDT.

Bunu daha önce kurmuştum, ancak 3.6 sürümüyle nasıl yapacağımı çözemiyorum. Bu soruyu buldum, ancak cevaplar artık Nautilus 3.6 için geçerli değil: Nautilus liste sütunlarında tarih formatı nasıl değiştirilir?

Bunu Nautilus 3.6+ 'da nasıl yapabilirim?


Kesin ve akla ilişkin ayarlara bakıldığında bunlar aynıdır, bu yüzden nautilus'tan kaldırılmış bir özellik olabilir, ancak yine de yeniden ekleyebilecek bir eklenti veya komut dosyası olabilir.
Davmor2

3
gsettings'deki tarih formatı anahtarı bu taahhütten çıkarıldı: bu hata raporuna ait olan git.gnome.org/browse/nautilus/commit/libnautilus-private/… : bugzilla.gnome.org/show_bug.cgi?id=676898
djfun

3
İşlevselliğin geri yüklenmesini isteyen bir "hata" ya bağlantı: bugzilla.gnome.org/show_bug.cgi?id=699055
Aibara 18

Bana v3.14.2'de oluyor. Carlos adlı bir kişi goo.gl/AE7FRA'da bunun nautilus v3.16'da sabit olduğunu belirtti.
AlikElzin-kilaka

1
@becko Ubuntu 16.04 Nautilus 3.14 ile birlikte gelir. Bu sürümde sabit değil. Test etmedim 3.16.
Aibara

Yanıtlar:


24

Nautilus'u yeniden derleyerek tüm tarihi geri alabilirsiniz:

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

Satır 77'yi değiştir

"attribute", "date_modified",

için

"attribute", "date_modified_full",

Değiştirilen paketi yeniden oluşturun ve yükleyin:

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

Her zamanki gibi, Ubuntu'da nautilus için bir güncelleme olduğunda her zaman bu adımları uygulamanız gerekir.

Şimdi, sorunun tam bir analizi:

Bu değişikliğe neden olan gerçek yama şudur: https://git.gnome.org/browse/nautilus/commit/?id=3fd9cba41e56f44ed955b28755ad03135026d021

Nautilus_file_get_date_as_string işlevi "compact" ek bir gboolean parametresi elde eder - kısaltılmış tarih verildiğinde true olur.

Bu işleve hiçbir zaman doğrudan çağrılmaz - nautilus_file_get_string_attribute_q sarma işleviyle erişilir. Bu işlev "date_modified" gibi öznitelik parametreleri alır. Nautilus_file_get_date_as_string'in yeni imzasını almak için yeni bir özellik "date_modified_full" eklenir. Bu değişiklikten sonra, dosya tarih dizesini kullanan nautilus'taki herhangi bir kod kısaltılmış tarihi alır.

Son olarak, dosya özellikleri iletişim kutusu "date_modified_full" niteliğini kullanacak şekilde güncellenir.

Bu yüzden nautilusun liste tarihini tam tarihte gösterebilmesi için, sadece kod satırında değişiklik yapılması gerekmektedir: libnautilus-private / nautilus-column-utilities.c dizininde, satır 77 "date_modified" den "date_modified_full" a.

Biraz daha kullanışlı bir yama, tarihin tamamını gösterecek yeni bir sütun türü ekleyerek bunu isteğe bağlı bir özellik haline getirebilir ve yalnızca 10 satırlık bir kod ekleyebilir.


12
Bu yüzden açık kaynağı seviyorum - geliştiriciler çılgına döndüğünde, kendim düzeltebilirim.
Alistair Buxton

6
Halen bu sorunu çözmenin tek yolu bu mu?
Philippe

3
@AlistairBuxton İkinci yamayı Gnome geliştiricisine göndermeyi denediniz mi? Tarihin tamamını kullanılamaz
kılmak

3
Artık Nautilus kullanmıyorum ve aynısını yapmanızı öneririm.
Alistair Buxton

2
Bu daha yeni sürümlerde düzeltildi mi (yeniden derlemem gerekmiyor)?
becko

6

Kullanmak trustyve derlemek istemeyenler için yamalı nautilus için bir test ppa hazırladım. (Alistair Buxton'un düzeltme ekini kullanarak

Yapı şu anda ayrıca 1 tanesi güvenilir, 1 tanesi ütopik olan 2 hata düzeltme eki içeriyor.

Ek olarak, bir süredir benim tarafımdan test edilmiş 3 küçük yama var ve hiçbir sorun çıkmıyor.

  1. klasörlerde aç

  2. "Me" yerine görüntülenen gerçek dosya sahibinin adı

  3. Başlatıcının adı olarak Dosya Yöneticisi

'Tarih-zaman' yaması biraz test ettim, hiç sorun yaşamadım. Denemeye yatkın olanlar için - herhangi bir sorun bulunursa, launchpad e-postası aracılığıyla benimle iletişime geçin.

"Değiştirildi (tam)" sütunu, listview> Görünüm> Görünür Sütunlar ... öğesinde nautilus aracılığıyla eklenebilir veya nautilus> Düzenle> Tercihler> Sütunları Listele

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

Bilgi için ppa sayfasını ve gerektiğinde kolayca nasıl geri döneceğinizi okuyun.


Bu nautilus versiyonunun yüklenmesini sağlayamıyorum. sudo apt-get install nautilusSadece bunu sonucuna varıyorum latest is already installed. sudo apt-get --reinstall install nautilusYeniden denemeyi denemek , ancak aynı olanı. Herhangi bir şansa göre, örneğin /etc/apt/preferences.d/, bu şeyin gerçekten kurulmasını sağlayan bir şey var mı, yoksa başka ne yapabilir? (on Trusty)
Hannu

@ Hannu, tekrar dene, güncellenmesi gerekiyor
doug

dpkg --list | grep nautilus...+datesürümü gösterdi . Birkaç kez denedim. Yalnızca bu sürüm yüklüyken yeniden başlattıktan sonra Terminal'e ve oraya gönderdikten sonra nautilus --no-desktop( orada görünüp görünmediğinden emin olarak) kullandıktan sonra nautilus --force-desktopI - nihayet - liste görünümünde "Modified (full)" seçeneğini buldum. Şimdi her zaman var gibi görünüyor. Soru : İçerik değiştirilebilir mi? Örneğin "strftime ()" kullanımı için umarım?
Hannu

Hmm ... LC_TIME=...bu formatı belirleyen olabilir mi?
Hannu

1
Ppa'yı bir sonraki güncellemeniz için önyargısız bir istek, lütfen Değiştirilen sütun için başka bir biçim eklemeyi düşünün; aynıdate +'%Y-%m-%d, %T'
Hannu,

4

Bu blog yazısı çok daha kolay bir çözüm gösteriyor. Alternatif bir "değiştirilmiş sütun" olarak seçilebilecek bir uzantı oluşturmaya dayanmaktadır. 16.04 altında test edilmiştir.

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

  2. Bu kodu kullan:

#!/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 -qve nautilus .Nautilus'u yeniden başlatmak ve uzantıyı düzgün şekilde yükleyip yüklemediğini görmek için.

  3. Liste sütun tercihlerinde yeni "longdate" sütununu seçin.

Sonuç şöyle görünecek:

örnek


2
İlk nautilus-python yükleyin:sudo apt-get install python-nautilus
DrMoishe Pippik

Çok teşekkürler - Disco'da çalışıyor gibi görünüyor - Ubuntu 19.04! Ama Longdate'e göre sıralayamazsın. Maalesef bunu kendim düzeltemiyorum. Zaten iyi iş. @Alistair Buxton'un dediği gibi: Bu yüzden açık kaynağı seviyorum - geliştiriciler çılgına döndüğünde, kendim düzeltebilirim. Peki, yardımınla! TEŞEKKÜR.
opinion_no9

Bu, Ubuntu 14.04'deki Nautilus ("Dosyalar" 3.10.1) üzerinde çalışmıyor. Nautilus komut satırından başlatıldığında, 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 directorylütfen kullanıcı paylaşımını etkinleştirmek için sysadm'den isteyin diyor . Sonra altı kez ** (nautilus:21161): CRITICAL **: nautilus_menu_provider_get_background_items: assertion 'NAUTILUS_IS_FILE_INFO (current_folder)' failed. Olacak yeni sütun seçimlerinde gösterilmez.
Şubat’a
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.