Jak wyświetlić pełną datę i godzinę w widoku listy Nautilus / Pliki 3.6+?

39

Widok listy Nautilus 3.6 pokazuje, że pliki dat zostały zmodyfikowane na różne sposoby: godzinę i minuty, jeśli zmodyfikowano w bieżącym dniu, oraz miesiąc i dzień, jeśli zmieniono w bieżącym roku, oraz rok wskazany, jeśli zmodyfikowano podczas Poprzedni rok. Chciałbym widzieć całą datę i godzinę konsekwentnie na wszystkich plikach (np Sat 20 Apr 2012 01:28:34 PM EDT.:).

Miałem to wcześniej skonfigurowane, ale nie mogę wymyślić, jak to zrobić w wersji 3.6. Znalazłem to pytanie, ale odpowiedzi nie dotyczą już Nautilus 3.6: Jak zmienić format daty w kolumnach listy Nautilus?

Jak mogę to zrobić w Nautilus 3.6+?

Aibara
źródło
Patrząc na ustawienia precyzji i rozróżniania, są one identyczne, więc zakładam, że jest to funkcja usunięta z nautilus, może istnieje wtyczka lub skrypt, który może ją ponownie dodać.
Davmor2,
3
klucz formatu daty w gsettings został usunięty przez to zatwierdzenie: git.gnome.org/browse/nautilus/commit/libnautilus-private/…, który należy do tego raportu o błędzie: bugzilla.gnome.org/show_bug.cgi?id=676898
djfun
3
Link do „błędu” z prośbą o przywrócenie funkcjonalności: bugzilla.gnome.org/show_bug.cgi?id=699055
Aibara
Zdarza mi się na v3.14.2. Osoba o imieniu Carlos skomentowała w goo.gl/AE7FRA, że zostało to naprawione w nautilus v3.16.
AlikElzin-kilaka
1
@becko Ubuntu 16.04 jest dostarczany z Nautilus 3.14. Nie jest to naprawione w tej wersji. Nie testowałem 3.16.
Aibara,

Odpowiedzi:

24

Możesz odzyskać pełną datę, kompilując 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

Zmień linię 77 z

"attribute", "date_modified",

do

"attribute", "date_modified_full",

Odbuduj i zainstaluj zmodyfikowany pakiet:

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

Jak zawsze, musisz wykonać te kroki za każdym razem, gdy pojawi się aktualizacja dla nautilus w Ubuntu.

Teraz pełna analiza problemu:

Rzeczywista łatka, która spowodowała tę zmianę, to ta: https://git.gnome.org/browse/nautilus/commit/?id=3fd9cba41e56f44ed955b28755ad03135026d021

Funkcja nautilus_file_get_date_as_string zyskuje dodatkowy parametr gboolean „kompaktowy” - gdy true, zwracana jest skrócona data.

Ta funkcja nigdy nie jest wywoływana bezpośrednio - jest dostępna poprzez funkcję opakowania nautilus_file_get_string_attribute_q. Ta funkcja przyjmuje parametry atrybutów, takie jak „data_modyfikowana”. Aby dostosować się do nowej sygnatury pliku nautilus_file_get_date_as_string, dodano nowy atrybut „data_modified_full”. Po tej zmianie każdy kod w nautilus, który używa ciągu daty pliku, otrzyma datę skróconą.

Na koniec okno dialogowe właściwości pliku zostało zaktualizowane i używa atrybutu „data_modified_full”.

Aby więc nautilus wyświetlał pełną datę w widoku listy, konieczna jest tylko zmiana wiersza kodu: w libnautilus-private / nautilus-column-utilities.c, wiersz 77 od „date_modified” do „date_modified_full”.

Nieco bardziej przydatna łatka mogłaby dodać nowy typ kolumny, który pokazywałby pełną datę, czyniąc ją opcjonalną i dodając tylko 10 linii kodu.

Alistair Buxton
źródło
12
Dlatego uwielbiam open source - kiedy programiści oszaleją, mogę to naprawić samodzielnie.
Alistair Buxton
6
Czy obecnie jest to jedyny sposób rozwiązania tego problemu?
Philippe
3
@AlistairBuxton Czy próbowałeś przesłać drugą łatkę do deweloperów Gnome? Byłoby wspaniale, gdyby mogli przynajmniej dać nam wybór, zamiast pozostawić pełną datę niedostępną…
n
3
Nie używam już Nautilusa i sugeruję, abyś zrobił to samo.
Alistair Buxton
2
Czy zostało to naprawione w nowszych wersjach (aby nie musiałem ponownie kompilować)?
becko
6

Dla tych, którzy używają trustyi nie chcą się kompilować, ustawiłem test ppa dla łatanego nautilusa. (używając łatki Alistaira Buxtona

Obecnie kompilacja zawiera również 2 łatki naprawcze, 1 od zaufanego proponowanego, 1 od utopicznego.

Dodatkowo istnieją 3 drobne łatki, które zostały przeze mnie przetestowane przez dłuższy czas i nie powodują żadnych problemów.

  1. otwórz za pomocą folderów

  2. wyświetlana jest prawdziwa nazwa właściciela pliku zamiast „Ja”

  3. Menedżer plików jako nazwa programu uruchamiającego

Łatka „data-godzina”, którą trochę przetestowałem, nie widziała problemów. Dla osób skłonnych do spróbowania - w przypadku znalezienia problemu skontaktuj się ze mną za pośrednictwem wiadomości e-mail startera.

Kolumnę „Zmodyfikowana (pełna)” można dodać przez nautilus w listview> Widok> Widoczne kolumny .. lub przez nautilus> Edytuj> Preferencje> Listy kolumn

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

Przeczytaj stronę ppa, aby uzyskać informacje i jak łatwo przywrócić w razie potrzeby.

doug
źródło
Nie mogę zainstalować tej wersji nautilus. sudo apt-get install nautiluspo prostu podsumowuje to latest is already installed. Próbuję sudo apt-get --reinstall install nautilusponownie zainstalować, ale to samo, co już jest. Czy masz przypadkiem coś, na przykład, /etc/apt/preferences.d/co sprawia, że ​​to się faktycznie instaluje lub jak to zrobić? (na Trusty)
Hannu,
@ Hannu, spróbuj ponownie, konieczna aktualizacja
doug
dpkg --list | grep nautiluspokazał ...+datewersję. Ponowiłem kilka prób. Dopiero po ponownym uruchomieniu z zainstalowaną tą wersją, następnie zagłębiłem się w Terminal i tam po użyciu nautilus --no-desktop(nie nautilus --force-desktopjestem pewien, czy tam się pojawił), a potem - w końcu - znalazłem opcję „Zmodyfikowano (pełną)” w widoku listy. Teraz wydaje się być obecny przez cały czas. pytanie : Czy treść można modyfikować? np. mam nadzieję, że jeśli chodzi o użycie „strftime ()”?
Hannu
Hmm ... może to LC_TIME=...określa format?
Hannu
1
Nieuzasadnione żądanie kolejnej aktualizacji ppa, rozważ dodanie kolejnego formatu dla kolumny Zmodyfikowanej; tak samo jakdate +'%Y-%m-%d, %T'
Hannu
4

Ten post na blogu pokazuje znacznie łatwiejsze rozwiązanie. Opiera się na utworzeniu rozszerzenia, które można wybrać jako alternatywną „zmodyfikowaną kolumnę”. Testowane pod 16.04.

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

  2. Użyj tego kodu:

#!/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 -qi nautilus .ponownie uruchom Nautilus i sprawdź, czy poprawnie ładuje rozszerzenie.

  3. Wybierz nową kolumnę „longdate” w preferencjach kolumny listy.

Wynik będzie wyglądał następująco:

przykład

bluenote10
źródło
2
Najpierw zainstaluj nautilus-python:sudo apt-get install python-nautilus
DrMoishe Pippik
Wielkie dzięki - wydaje się, że działa w Disco - Ubuntu 19.04! Ale nie możesz sortować według Longdate. Niestety sam nie mogę tego naprawić. W każdym razie świetna robota. Jak powiedział @Alistair Buxton: Właśnie dlatego uwielbiam oprogramowanie typu open source - kiedy deweloperzy oszaleją, mogę to naprawić samodzielnie. Z twoją pomocą! DZIĘKI.
opinia_no9
To nie działa na Nautilus („Pliki” 3.10.1) na Ubuntu 14.04. Gdy Nautilus jest uruchamiany z wiersza poleceń, mówi: 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 directoryPoproś sysadm o włączenie udostępniania użytkowników. Potem sześć razy ** (nautilus:21161): CRITICAL **: nautilus_menu_provider_get_background_items: assertion 'NAUTILUS_IS_FILE_INFO (current_folder)' failed. Niedoszła nowa kolumna nie wyświetla się w wyborach.
wallyk