2017-07-03 47 views
0

如果觸摸一個新的文件或採取截圖與scrot/escrotum,沒有「新文件」是在GTK2/GTK3文件瀏覽器中可見在「Recent Files」標籤中(你可以很容易地在Firefox或Chrome瀏覽器的CTRL + O窗口中看到它的一個例子)的Linux GTK2/GTK3最近的文件瀏覽器不顯示最近的外殼創建的文件

我該怎麼做才能看到我最近的「手」編輯或創建的文件在GTK Recent Files文件瀏覽器中更新?

例如:

$touch words.txt 
$scrot image.jpg 

這兩個生成的文件都不會在Recent Files GTK選項卡中可見。

謝謝

+1

你將不得不使你使用的每個命令都支持GtkRecentManager。這聽起來很有用(對任何特定的程序都不會有困難),但實際上可能不會 - 像單純的命令一樣,像touch這樣的實用程序可以用來修改數以千計的文件。你真的想讓所有這些文件出現在最近的文件?出於同樣的原因,在Nautilus中移動文件不會使它們成爲「最近的文件」... – jku

+1

@jku:一個更簡單的替代方法是創建一個命令行工具,它接收一堆文件名並從GtkRecentManager中添加它們。 。這裏有一些python代碼:https://stackoverflow.com/a/39927261/518853 – liberforce

回答

2

因此,基於以上我的意見,這裏是被稱爲recent小python腳本,增加了作爲參數傳遞給新的文件傳遞來的文件。這當然可以改進,以更好地處理URI,而不是假設所有文件都是本地的,清理最近的文件列表,刪除特定條目等。它也可以用C重寫,以避免爲此運行完整的Python解釋器。

#! /usr/bin/env python 

import os.path 
import sys 

from gi.repository import Gtk, GObject 

def main(): 
    recent_mgr = Gtk.RecentManager.get_default() 
    for filename in sys.argv[1:]: 
     uri = 'file://{path}'.format(path=os.path.abspath(filename)) 
     recent_mgr.add_item(uri) 

    GObject.idle_add(Gtk.main_quit) 
    Gtk.main() 

if __name__ == '__main__': 
    main()