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以降でこれを行うにはどうすればよいですか?


正確な設定とraringの設定は同じであるため、nautilusから削除された機能で、再追加可能なプラグインまたはスクリプトがあると想定しています。
Davmor2

3
gsettingsの日付形式キーは、このコミットによって削除されました:git.gnome.org/browse/nautilus/commit/libnautilus-private/…このバグレポートに属する:bugzilla.gnome.org/show_bug.cgi
djfun

3
機能の復元を要求する「バグ」へのリンク:bugzilla.gnome.org/show_bug.cgi
Aibara

v3.14.2で私に起こったこと。Carlosという名前の人が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にリストビューで完全な日付を表示するには、コードの行で変更するだけです。libnautilus-private/ nautilus-column-utilities.cの77行目を「date_modified」から「date_modified_full」に変更します。

もう少し便利なパッチは、完全な日付を表示する新しい列タイプを追加し、これをオプション機能にして、10行のコードのみを追加できます。


12
これが私がオープンソースが好きな理由です-開発者が夢中になったとき、私はそれを自分で修正できます。
アリスターバクストン

6
現在、これがこの問題を処理する唯一の方法ですか?
フィリップ

3
@AlistairBuxton Gnome開発者に2番目のパッチを提出しようとしましたか?彼らは少なくとも...私たちの代わりに使用できない完全な日付を維持する選択肢を与えることができればそれは素晴らしいことだ
n.st

3
私はもうNautilusを使用していません。同じことをすることをお勧めします。
アリスターバクストン

2
これは最近のバージョンで修正されていますか(再コンパイルする必要がないように)?
becko

6

使用しtrustyたい、コンパイルしたくない人のために、パッチを適用したnautilusのテストppaをセットアップしました。(Alistair Buxtonのパッチを使用

ビルドには現在、2つのバグ修正パッチが含まれています。1つはtrusty-proposed、1つはutopicです。

さらに、かなりの期間にわたって私によってテストされた3つのマイナーパッチがあり、問題はありません。

  1. フォルダで開く

  2. 「Me」の代わりに表示される実際のファイル所有者名

  3. ランチャーの名前としてのファイルマネージャー

私が少しテストした「date-time」パッチ、問題は見られなかった。試してみたい人のために-問題が見つかった場合は、ランチパッドのメールでご連絡ください。

「変更(完全)」列は、nautilusからlistview> View> Visible Columns ..またはnautilus> Edit> Preferences> List Columns で追加できます。

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

情報および必要に応じて簡単に元に戻す方法については、PPAページを参照してください。


このnautilusバージョンがインストールされていないようです。sudo apt-get install nautilusちょうどそれを結論付けるlatest is already installedsudo apt-get --reinstall install nautilus再インストールを試みますが、すでに存在するものとまったく同じです。たぶん/etc/apt/preferences.d/、このものを実際にインストールさせるような何かを持っていますか、または他にそれを行う方法はありますか?(トラスティ上)
Hannu

@ Hannu、もう一度試してください、更新する必要があります
ダグ

dpkg --list | grep nautilus...+dateバージョンを示した。何度か再試行しました。このバージョンがインストールされた状態で再起動し、使用してからターミナルをnautilus --no-desktop調べて(そこに表示されているかどうか不明)、nautilus --force-desktop最後にリストビューに「修正(フル)」オプションが見つかりました。今では常に存在しているようです。質問:コンテンツを変更できますか?たとえば、「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 .ノーチラスを再起動し、それが適切に拡張をロードするかどうかを確認します。

  3. リスト列の設定で新しい「longdate」列を選択します。

結果は次のようになります。

例


2
まずオウムガイ-のpythonをインストールしますsudo apt-get install python-nautilus
DrMoishe Pippik

どうもありがとう-Disco-Ubuntu 19.04で動作するようです!ただし、Longdateで並べ替えることはできません。残念ながら、私はそれを自分で修正することはできません。とにかく素晴らしい仕事。@Alistair Buxtonが言ったように:これが私がオープンソースを愛している理由です-開発者が夢中になったとき、私は自分でそれを修正できます。さて、あなたの助けを借りて!THX。
advice_no9

これは、Ubuntu 14.04のNautilus(「ファイル」3.10.1)では機能しません。コマンドラインから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にユーザー共有を有効にするように依頼してくださいというメッセージが表示されます。それから6回** (nautilus:21161): CRITICAL **: nautilus_menu_provider_get_background_items: assertion 'NAUTILUS_IS_FILE_INFO (current_folder)' failed。新しい列は選択肢に表示されません。
ウォリック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.