fim(F bi,Linux framebuffer imageviewer)IMproved,是一款通用的影像檔案檢視器。
fim可使用不同的圖形裝置顯示影像檔案,並提供統一的使用介面。鍵盤快捷鍵可自訂,設定於初始化檔中。可與標準輸入輸出互動,特別適合用於shell腳本。內建專為影像檢視設計的腳本語言,支援影像瀏覽、縮放、內部變數操作、命令別名及類Vim的自動命令。此語言可透過具歷史紀錄與Tab補全功能的命令列模式操作。
其他功能包括顯示EXIF標籤、JPEG註解、EXIF旋轉/方向、載入描述檔、影像快取加速載入、命令錄製等。
預設情況下,fim會在偵測到的最適合的圖形裝置上顯示指定檔案。若在X環境下,使用SDL;若透過ssh且無X轉發,使用ASCII藝術驅動(aalib或libcaca);否則使用Linux framebuffer裝置。原生支援BMP、PCX格式,JPEG、PNG、GIF、TIFF、PPM、PGM、PBM、QOI、AVIF、HEIC、HEIF、WEBP等格式則透過第三方函式庫支援。其他格式則透過外部轉換器處理,如XCF使用xcftopnm或xcf2pnm,FIG向量圖使用fig2dev,DIA向量圖使用dia,NEF原始相機影像使用dcraw,SVG向量圖使用cairosvg或inkscape,其他格式則用ImageMagick的convert。轉換器有15秒的轉換時限。
若指定的影像路徑是檔案,格式判斷依內容而非檔名,可透過_file_loader變數調整。若是目錄,則載入該目錄中支援格式的檔案。若路徑尾端有斜線,視為目錄,否則透過stat(2)判斷。相關行為可透過_pushdir_re變數及--no-stat-push和--recursive選項調整。
本手冊頁說明fim的命令列選項與用法,完整語言規範請參考man fimrc (5)。
fim可在互動式shell中啟動並以鍵盤控制,類似一般影像檢視器。
fim以鍵盤操作為主,無使用者選單或按鈕。若預設鍵盤配置無法達成需求,可透過自訂配置或輸入自訂命令,利用內建命令與配置語言實現。
更多腳本導向用法請參考--read-from-stdin、--script-from-stdin及--image-from-stdin選項。
完整命令規範可於執行時透過內建help系統(輸入:help)查詢。
命令列中--後的參數視為檔名,前面的參數若以-開頭視為選項,否則視為檔名。
支援自動縮放,顯示新影像時自動選擇合理縮放比例。
可將任意二進位檔案內容視為原始24或1位元像素圖顯示,寬度不超過_preferred_rendering_width變數設定,為彩蛋功能。
可將任意檔案內容視為文字顯示,非可列印字元顯示為空白,寬度同樣受_preferred_rendering_width限制,亦為彩蛋功能。
可進入首個檔案所在目錄,將其他檔案加入清單,並跳回首檔,適合桌面環境啟動時使用。
-c {commands} 選項可於讀取初始化檔後、進入互動模式前執行命令,無需結尾分號,需適當引用。
-C {commands} 選項則於讀取初始化檔前執行命令,支援早期設定格式=var=val。
可指定framebuffer裝置,預設為系統映射的裝置。
可輸出語言參考說明或預設配置後退出。
-E {scriptfile} 選項於讀取預設初始化檔後執行腳本。
-F {commands} 選項於退出互動模式前執行命令。
-k {keysym} 選項於啟動時模擬按鍵,支援重複次數與十六進位碼。
-K {chars} 選項於啟動時模擬鍵盤輸入,支援多次指定與自動加Enter。
-D {filename} 載入影像描述檔,格式為檔名與描述以分隔符分隔,描述可包含變數與特殊指令,並會覆蓋影像內註解。
-S {sepchar} 指定描述檔中檔名與描述的分隔字元。
--mark-from-image-descriptions-file {filename} 將描述檔中指定的檔案標記。
支援多種視訊模式設定與終端機裝置指定。
支援多種排序、遞迴載入、隨機排序、詳細載入資訊等選項。
支援多種輸出裝置:fb(framebuffer)、sdl、gtk、ca(彩色ASCII藝術)、aa(單色ASCII藝術)、dumb(測試模式)。
支援偏移讀取、外部命令過濾、文字閱讀模式、滑動播放模式、快速檢查等功能。
支援鍵盤快捷鍵自訂,並提供預設快捷鍵如n(下一張)、p(上一張)、+/-(縮放)、h/l/k/j(平移)、q(退出)等。
支援命令列模式,類似Vim的操作與指令。
支援影像裁切、色彩調整、描述檔更新與保存等多種操作。
fim需對framebuffer裝置與Linux控制台有適當權限,建議透過pam_console或群組管理設定。
fim支援GNU readline,受使用者~/.inputrc設定影響。
fim為自由軟體,依GNU通用公共授權條款發佈,無任何保證。
更多詳細資訊與使用範例請參考官方文件與man頁。