노틸러스 / 파일 3.6 이상에서 전체 날짜 및 시간을 표시하는 방법은 무엇입니까?


39

노틸러스 3.6의 목록보기는 파일이 다양한 방식으로 수정 된 날짜를 보여줍니다. 현재 날짜에 수정 된 시간 및 분, 현재 연도에 수정 된 월 및 일, 수정 된 날짜에 수정 된 연도 전년도. 모든 파일에서 전체 날짜와 시간을 일관되게보고 싶습니다 (예 :) Sat 20 Apr 2012 01:28:34 PM EDT.

이전 에이 설정을했지만 버전 3.6으로 설정하는 방법을 알 수 없습니다. 이 질문을 찾았지만 답변이 더 이상 노틸러스 3.6 : 노틸러스 목록 열의 날짜 형식을 변경하는 방법에 적용되지 않습니다 .

노틸러스 3.6 이상에서 어떻게 할 수 있습니까?


정확한 설정과 Raring 설정을 보면 동일하므로 노틸러스에서 제거 된 기능이라고 가정하지만 플러그인이나 스크립트를 다시 추가 할 수 있다고 가정합니다.
Davmor2

3
gsettings의 날짜 형식의 키가 이것에 의해 제거는 커밋 : git.gnome.org/browse/nautilus/commit/libnautilus-private/... 이 버그 리포트에 속하는 : bugzilla.gnome.org/show_bug.cgi?id=676898를
djfun

3
기능의 복원을 요구하는 "버그"링크 : bugzilla.gnome.org/show_bug.cgi?id=699055
Aibara

v3.14.2에서 나에게 일어난 일. Carlos라는 사람은 goo.gl/AE7FRA 에서 이것이 노틸러스 v3.16에서 수정되었다고 언급했습니다.
AlikElzin-kilaka

1
@becko Ubuntu 16.04는 노틸러스 3.14와 함께 제공됩니다. 해당 버전에서는 수정되지 않았습니다. 3.16을 테스트하지 않았습니다.
Aibara 2016 년

답변:


24

노틸러스를 다시 컴파일하여 전체 날짜를 되돌릴 수 있습니다.

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 &

항상 그렇듯이 우분투에 노틸러스가 업데이트 될 때마다이 단계를 수행해야합니다.

이제 문제에 대한 전체 분석 :

이 변경을 발생시킨 실제 패치는 다음과 같습니다. 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"이라는 새 속성이 추가되었습니다. 이 변경 후, 파일 날짜 문자열을 사용하는 노틸러스 코드는 약식 날짜를 갖습니다.

마지막으로, "date_modified_full"속성을 사용하도록 파일 속성 대화 상자가 업데이트되었습니다.

따라서 노틸러스가 목록보기에 전체 날짜를 표시하게하려면 libnautilus-private / nautilus-column-utilities.c의 77 행에서 77 행을 "date_modified"에서 "date_modified_full"로 변경하면됩니다.

약간 더 유용한 패치는 전체 날짜를 표시하는 새 열 유형을 추가하여 선택적인 기능으로 만들고 10 줄의 코드 만 추가 할 수 있습니다.


12
이것이 오픈 소스를 좋아하는 이유입니다. 개발자가 미쳤을 때 직접 고칠 수 있습니다.
Alistair Buxton

6
이것이 여전히이 문제를 처리 할 수있는 유일한 방법입니까?
Philippe

3
@AlistairBuxton Gnome 개발자에게 두 번째 패치를 제출해 보셨습니까? 그들은 적어도 대신에 사용할 수없는 전체 날짜를 유지의 우리에게 선택의 여지를 줄 수 있다면 ... 좋은 것
n.st

3
더 이상 노틸러스를 사용하지 않으며 동일한 작업을 수행하는 것이 좋습니다.
Alistair Buxton

2
최신 버전에서 수정 되었습니까 (다시 컴파일하지 않아도 됨)?
becko

6

trusty컴파일하고 싶지 않은 & 사용 하지 않는 사람들을 위해 패치 된 노틸러스에 대한 테스트 ppa를 설정했습니다. (Alistair Buxton의 패치 사용

이 빌드에는 현재 2 개의 버그 수정 패치, 1 개는 신뢰할 수있는 제안, 1 개는 utopic에서 제공합니다.

또한 꽤 오랜 시간 동안 나에 의해 테스트 된 3 개의 사소한 패치가 있으며 문제가 없습니다.

  1. 폴더에서 열기

  2. "Me"대신 실제 파일 소유자 이름이 표시됨

  3. 실행기 이름으로 파일 관리자

테스트 한 '날짜-시간'패치는 문제가 없었습니다. 문제가 발견되면 런치 패드 이메일을 통해 저에게 연락하십시오.

"수정 (전체)"열은 listview>보기> 보이는 열 에서 노틸러스를 통해 추가 할 수 있습니다 . 또는 노틸러스를 통해> 편집> 기본 설정> 열 나열

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

정보 및 필요한 경우 쉽게 되 돌리는 방법은 ppa 페이지를 읽으십시오.


이 노틸러스 버전을 설치할 수 없습니다. sudo apt-get install nautilus그냥 결론을 내립니다 latest is already installed. sudo apt-get --reinstall install nautilus다시 설치 하려고 하지만 이미 존재하는 것과 동일합니다. 예를 들어 /etc/apt/preferences.d/실제로 설치하거나 다른 방법으로 무언가를 만들 수 있습니까? (신뢰할 수 있음)
Hannu

@ Hannu, 다시 시도하십시오, 업데이트해야 함
doug

dpkg --list | grep nautilus...+date버전을 보여 주었다 . 여러 번 재 시도했습니다. 이 버전이 설치된 상태에서 재부팅 한 후에 만 ​​터미널로 이동 한 후 (사용 nautilus --no-desktop여부가 확실하지 않은 경우 nautilus --force-desktop) 목록보기에서 "수정 된 (전체)"옵션을 찾았습니다. 이제는 항상 존재하는 것 같습니다. 질문 : 내용을 수정할 수 있습니까? 예를 들어 "strftime ()"을 사용하고 싶습니까?
Hannu

흠 ... LC_TIME=...형식을 지정했을까요?
Hannu

1
다음에 ppa를 업데이트 할 때 비 예측적인 요청 인 경우 수정 열에 다른 형식을 추가하는 것을 고려하십시오. 동일date +'%Y-%m-%d, %T'
Hannu

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 -qnautilus .노틸러스를 다시 시작하고 제대로 확장을로드하면 볼 수 있습니다.

  3. 목록 열 환경 설정에서 새 "longdate"열을 선택하십시오.

결과는 다음과 같습니다.

예


2
먼저 노틸러스 - 파이썬을 설치 :sudo apt-get install python-nautilus
DrMoishe Pippik

정말 감사합니다-Disco-Ubuntu 19.04에서 작동하는 것 같습니다! 그러나 Longdate별로 정렬 할 수는 없습니다. 불행히도 나는 그것을 스스로 고칠 수 없다. 어쨌든 훌륭한 직업. @Alistair Buxton이 말했듯이 : 이것이 오픈 소스를 좋아하는 이유입니다. 개발자가 미쳤을 때 직접 해결할 수 있습니다. 글쎄, 당신의 도움으로! 고마워.
opinion_no9

우분투 14.04의 노틸러스 ( "파일"3.10.1)에서는 작동하지 않습니다. 명령 줄에서 노틸러스를 시작하면 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 directorysysadm에 사용자 공유를 요청하십시오.라는 메시지가 표시됩니다. 그런 다음 여섯 번 ** (nautilus:21161): CRITICAL **: nautilus_menu_provider_get_background_items: assertion 'NAUTILUS_IS_FILE_INFO (current_folder)' failed. 새로운 열은 선택 사항에 표시되지 않습니다.
wallyk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.