问题描述
Nautilus 3.6的列表视图显示日期文件以多种方式进行修改:如果在当天修改的小时和分钟,以及在当前年份修改的月份和日期,以及在修改期间修改的年份。去年。我希望在所有文件上一致地看到整个日期和时间(例如:Sat 20 Apr 2012 01:28:34 PM EDT
)。
之前我已经设置了这个,但我无法弄清楚如何使用3.6版本。我确实找到了这个问题,但答案不再适用于Nautilus 3.6:How to change the date format in Nautilus list columns?
我怎么能在Nautilus 3.6+中这样做?
最佳解决方案
您可以通过重新编译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中,从”date_modified”到”date_modified_full”的第77行。
次佳解决方案
对于那些使用trusty
&不希望编译我已经为修补过的 nautilus 设置了测试ppa。 (使用Alistair Buxton的补丁
该版本目前还包括2个bug修复补丁,1个来自trusty-proposed,1个来自utopic。
另外还有3个小补丁,经过相当长的时间我已经过测试。没有问题。
-
打开文件夹
-
显示真实文件所有者名称而不是”Me”
-
文件管理器作为启动器的名称
‘date-time’补丁我测试了一下,没有看到任何问题。对于那些倾向于尝试的人 – 如果发现任何问题,请通过launchpad电子邮件与我联系。
可以通过listview
中的nautilus添加“Modified(full)”列。查看>可见列..或通过 nautilus >编辑>偏好>列表列
https://launchpad.net/~mc3man/+archive/nauty-mods
阅读ppa页面获取信息&如果需要,如何轻松恢复。
第三种解决方案
这个blog post显示了一个更容易的解决方案。它基于创建一个扩展,可以选择”modified column”作为替代。测试低于16.04。
-
gedit ~/.local/share/nautilus-python/extensions/longdate.py
-
使用此代码:
#!/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))
-
chmod +x ~/.local/share/nautilus-python/extensions/longdate.py
-
nautilus -q
和nautilus .
重新启动Nautilus并查看它是否正确加载了扩展名。 -
在列表列首选项中选择新的”longdate”列。
结果将如下所示: