Nautilus 3.6 的列表视图以多种方式显示文件修改的日期:如果是在当天修改的,则显示小时和分钟;如果是在当年修改的,则显示月和日;如果是在前一年修改的,则显示附加的年份。我希望在所有文件上一致地看到完整的日期和时间(例如:)Sat 20 Apr 2012 01:28:34 PM EDT
。
我之前已经设置过,但我不知道如何在 3.6 版中设置。我确实找到了这个问题,但答案不再适用于 Nautilus 3.6:如何更改 Nautilus 列表列中的日期格式?
我如何在 Nautilus 3.6+ 中做到这一点?
答案1
您可以通过重新编译 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 有更新时,您都必须执行这些步骤。
现在,对问题进行全面分析:
导致此更改的实际补丁这是。
该函数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 行代码。
答案2
这博客文章显示了一个更简单的解决方案。它基于创建一个可以选择作为替代“修改列”的扩展。在 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
sudo apt install python-nautilus
nautilus -q
并nautilus .
重新启动 Nautilus,查看它是否正确加载扩展。在列表列首选项中选择新的“Longdate”列。
结果将如下所示:
答案3
对于那些使用trusty
但不想编译的人,我已经为修补的 nautilus 设置了一个测试 ppa。(使用 Alistair Buxton 的补丁
该版本目前还包含 2 个错误修复补丁,1 个来自 trusty-proposed,1 个来自 utopic。
此外,还有 3 个小补丁,我已经测试了很长时间并且没有出现任何问题。
使用文件夹打开
显示真实文件所有者名称而不是“我”
文件管理器作为启动器的名称
我对“日期时间”补丁进行了一些测试,没有发现任何问题。对于那些想要尝试的人 - 如果发现任何问题,请通过启动板电子邮件与我联系。
listview
可以通过 nautilus > 查看 > 可见列添加“已修改(完整)”列。或者通过 nautilus > 编辑 > 首选项 > 列表列添加
https://launchpad.net/~mc3man/+archive/nauty-mods
阅读 ppa 页面以获取信息以及如何在需要时轻松恢复。
答案4
Nemo 是 Nautilus 的一个分支,其中包括创建日期和 Ctrl+L 按钮。
sudo apt install nemo
到取代 Nautilus对于文档链接等:
xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search
这将更新你的 mime 设置:
$ cat ~/.config/mimeapps.list |grep inode
inode/directory=nemo.desktop
inode/directory=exo-file-manager.desktop;
$ cat /etc/gnome/defaults.list |grep inode
inode/directory=org.gnome.Nautilus.desktop