从源码构建需要 Rust 1.92 或更新版本以及 C 编译器,首次 release 构建因启用 LTO 需数分钟;Linux 视频缩略图需另装 ffmpeg、PDF 需 poppler-utils、压缩与 3D 缩略图需较新的 7-Zip;递归文件夹大小与日期默认关闭,需手动开启并选择 1 到 16 的深度。
Favnyr
GlitchAwakenedGPL-3.0活跃维护用 Rust 和 Slint 写的轻量级跨平台文件管理器,在 Windows 和 Linux 上提供现代流畅的浏览体验,适合嫌系统自带资源管理器笨重的人。
A workspace-based, multi-pane file manager for Windows and Linux
cargo run --release --bin favnyrREADME 未说明显存或 GPU 要求;程序以普通用户权限运行,Windows 与 Linux 均可使用,视频和 PDF 缩略图在 Windows 走系统 shell 提供程序,Linux 可选装 ffmpeg 与 poppler-utils。
单文件便携的多窗格文件管理器,用 Rust 和 Slint 编写,可保存工作区布局,无安装、无遥测
用 Rust 和 Slint 写的轻量级跨平台文件管理器,在 Windows 和 Linux 上提供现代流畅的浏览体验,适合嫌系统自带资源管理器笨重的人。
核心能力
- 水平或垂直分屏,最多 32 个视图,各自保留标签、历史和排序
- 把视图与标签保存为工作区,一键恢复或绑定数字快捷键加载
- 自定义命令支持 {file}、{files}、{dir} 等占位符并固定到右键菜单
- 内置批量重命名、属性面板与 MD5/SHA 校验和计算
- 纯 Rust 解码常见图片并显示音频封面、3D 与视频缩略图
容易踩的坑
- v0.3.8最新正式版2026-11-04 · 2026-11-04 18:06 UTC
Full Changelog: https://github.com/GlitchAwakened/Favnyr/compare/v0.3.7...v0.3.8
Summary of this release
Favnyr 0.3.8 brings two major improvements:
- Tab groups: The tab system has been completely redesigned. You can now organize tabs into named groups, give each group a color, and collapse groups to keep your workspace tidy. To add a tab group: Right-click a selection of tabs (using Ctrl+Click or Shift+Click) / Group Tabs / New Group...
https://github.com/user-attachments/assets/933f0e71-474b-4be8-be59-248086202c47
- Batch renaming: Select multiple files or folders and rename them together (F2) in a dedicated panel. Preview the results before applying any changes. #34
As usual, you can find all the other changes in the full changelog :
Tabs and views
- Tab and Shift+Tab now move between views in visual reading order, regardless of how the views were split, moved or swapped.
- Group tabs : select tabs with Ctrl / Shift + click, then create a named group or add them to an existing one. Groups can be colored, renamed, collapsed and ungrouped.
- Drag selected tabs and groups together to reorder them, move them to another view, split a view or detach them.
- The tab bar can be hidden per view or by default. Ctrl+Shift+B toggles it for the active view; tab shortcuts remain available while the bar is hidden. #35
- Ctrl+F opens the active view's search bar. Especially useful for Japanese in order to not lose the first keystroke. #44
Batch rename #34
- Multi-selection now opens a batch rename preview from the context menu or the Rename shortcut. Supports a common name, text replacement, prefixes and suffixes, numbering, letter case and optional extension changes.
- The preview catches naming conflicts before changing files. Extensions stay unchanged by default; renames that exchange names are supported without overwriting files. If a batch fails or is cancelled, Favnyr attempts to restore the original names and reports any item it could not restore.
Thumbnails and file operations
- Choose an application now selects an app before launching it.
- On Windows, the New submenu now includes file types registered by installed applications, using Windows' own document templates and creation commands. Supported templates and plain-text documents open the New file dialog before creation and select the new file afterward. Application assistants keep their native workflow. #41 The list is cached after first use to avoid repeated loading on hover, and a dedicated checkbox in Settings can hide these registered file types.
- Grid labels are left aligned. Long names keep their beginning visible across up to two lines. #40
- Reopening a note on a file or folder now shows its existing text, ready to review or edit. #36
- Fixed Search subfolders results remaining blocked after dragging a file outside the window. #37
- Image thumbnails and reported dimensions now respect EXIF orientation, including rotation and mirroring, without changing the original file. #33
- In List view with compact icons enabled, unsupported image formats keep a
compact row instead of enlarging their application icon as a thumbnail. #43
TypeScript
.tsfiles no longer appear as videos. MPEG-TS media sharing the extension are recognized in the background when visible. #46 - On Windows, simply opening a folder with online-only photos, for example in Dropbox, could previously cause them to be downloaded while Favnyr generated thumbnails. Favnyr makes no network requests itself, but reading such a photo can cause Windows to ask the cloud provider for its contents automatically. Favnyr now avoids these automatic reads for cloud files it recognizes as not fully available locally. The files remain visible with a cloud emblem; hovering over it explains why no thumbn
- v0.3.72026-10-25 · 2026-10-25 20:51 UTC
查看更新说明
Summary of this release
The highlight of this update is the addition of new themes, along with the ability to create your own :)
You can also override the global theme for specific workspaces, allowing you to use a different theme for each workspace if you wish.
This update required a major rewrite and reorganization of the theme system.
As usual, you can find all the other changes in the full changelog.
Done in V0.3.7
Custom themes
-
New builtin themes :
- Everforest
- Tokyo Night
- Catppuccin themes
- Atom
- Fluvy
- Sonokai Atlantis, with an adapted light counterpart
- Rosé Pine, paired with Rosé Pine Dawn in light mode
- Gruvbox Hard
-
Ability to add your own custom themes. The README describes the workflow.
Workspaces
- A saved workspace can have its own local theme that overrides the global theme.
- Only the theme family belongs to the workspace. The appearance, Auto, Light or Dark, stays the application's, because every theme carries both of them and Auto follows the desktop.
Terminal #32
- Settings > General > Terminal chooses which terminal Favnyr opens, for the context menu entry and for the keyboard shortcut alike.
- The list is built when it is opened, so a terminal installed while Favnyr is running is there. On Windows it offers what Windows provides, and Browse… picks any other, those usually being installed outside the search path.
Menus #31
- Context submenus now open to the left when there is not enough room on the right, instead of sliding over their parent menu. Floating menus also stay within the window when opened near its edges.
Linux file copies
- Reworked the Linux copy engine for much faster transfers using kernel-assisted copying and shared data blocks where supported.
Filter bar
- The bar that appears when you type in a view is now a real text field. You can select its text with the mouse, place the caret anywhere in it, and cut, copy and paste.
Folder modified date fix
- Fixed Folder modified date to use the newest file within the selected depth, with the folder's own date as fallback; date sorting now follows that value, and Linux copies preserve file modification dates.
Network shares
- Shared folders now have their own icon, a folder with a network mark, so they stand out from regular folders. A share can have restricted rights and refuse what a local folder accepts.
- On Windows it marks the shares listed when browsing a network computer and the folders this computer shares.
- On Linux it marks remote folders mounted by the desktop (SMB, NFS, SFTP, WebDAV…), network filesystems mounted in a folder, and the folders shared through the desktop's sharing option.
Trash
- On Linux, pressing Delete on an item inside the trash now deletes it permanently after a confirmation, instead of sending it to the trash again. The context menu entry reads "Delete permanently" there.
Windows drag and drop fix (again)
- On Windows Fixed intermittent external drops being unavailable.
Full Changelog: https://github.com/GlitchAwakened/Favnyr/compare/v0.3.6...v0.3.7
-
- v0.3.62026-10-18 · 2026-10-18 08:17 UTC
查看更新说明
A note on the executable size
Over the last few releases, Favnyr's executable had been getting bigger, and I couldn't figure out why. None of the features I had added explained the increase. I checked the usual suspects, like the image decoders and the renderer, but they weren't responsible.
The problem was how translated labels were stored. They were all kept together in one large structure. The interface accessed this structure in about 450 places, and each access copied the entire structure just to get one label. The compiler generated code for all those copies, making the executable much larger. As more translations were added, the executable kept growing for no good reason.
Now, each label is stored separately and accessed directly. None of the translations or their files had to change.
The executable is now about 60% smaller on windows and 35% smaller on linux. I confirmed this by comparing two builds that were otherwise identical. Favnyr is light again, as it was always meant to be.
As always you can see the full changelog below :
Done in V0.3.6
Executable size (much lower)
- Translated labels now use individual Slint properties, avoiding copies of a large shared structure when reading a single label.
- On the measured Windows release, this change reduces the executable from 94.30 MiB to 37.19 MiB, about 60.6%, with the same build profile and features.
3D thumbnails #23
- Added thumbnails for
.3mf,.blend, 7-Zip is needed for compressed.blendfiles & uncompressed.blendfiles need no external tool. STL files, binary or ASCII, now receive a shaded CPU-rendered thumbnail.OBJ,GLBandglTF 2.0files use the same lightweight renderer for static geometry. OBJ polygons, including concave faces, and glTF scene transforms are supported. Textures, materials and skeletal or morph deformation are outside this preview renderer's scope.- CPU rendering has bounded memory and computation, with a ten-second budget. Models exceeding the preview limits keep their usual icon or Windows shell preview. No thumbnail cache is written to disk.
Properties panel #11
- Favnyr now has its own Properties panel, for sessions with no desktop file manager to ask for one. Three tabs: general facts, permissions and checksums.
- General lists the type, location, size and size on disk, and the creation, modification and access dates. A symbolic link reports itself rather than its destination, names that destination, and says so when it is broken.
- Permissions, on Linux, offers the three classes of users, an execute switch, the owner and group, and the mode in octal. A permission the three usual choices cannot express is shown as it is instead of being rounded, and changing one class leaves the others, the execute bits and the setuid, setgid and sticky flags untouched.
- Checksums computes MD5, SHA-1, SHA-256 and SHA-512 in a single pass. A checksum pasted from a download page is compared against them, and the verdict names the algorithm that matched.
Running programs #12
- On Linux, a program or script launched from Favnyr that fails in its first seconds now shows what it printed instead of failing in silence, so a message like "run with sudo" reaches you. A later failure is written to the log only.
Safe closing during file operations #27
- Closing Favnyr during file operations now offers staying in Favnyr or cancelling the operations and quitting.
- After confirmation, Favnyr waits for operations to stop and temporary files to be cleaned up before exiting. Already completed changes are kept.
- The guard also covers pending archive jobs, emptying the trash and device ejection. Normal closure is protected on Windows and Linux; forced process termination and crashes remain outside this protection.
Search subfolders #26
- The name filter can now search the current folder
- v0.3.52026-10-12 · 2026-10-12 00:01 UTC
查看更新说明
Done in V0.3.5
Grid layout
- Views can now display their items as a grid. The display button opens a menu offering List or Grid, then Icons or Thumbnails, and all four combinations are available. Ctrl+P still toggles thumbnails.
- The grid has a compact sort control using the same six criteria as the list, a direction toggle, and access to grouping, columns, extension filter and manual order. List column widths stay remembered while in grid.
Manual order
- A new "Manual order" option in the column header menu lets items be arranged by hand. Dragging moves a single item or a whole multi-selection as a block, with an insertion line, and a badge in the header confirms the mode. While it is active, sorting, grouping and filtering are suspended.
- A manual arrangement belongs to its folder, not to the tab that made it. It is shared by every tab, view, workspace and window, and coming back to a folder restores it.
Views and navigation
- "Open in a new view" from the context menu creates a view beside or below the current one. While dragging a single folder, holding Space turns the gesture into that same action, and releasing it turns it back, just like the Ctrl and Shift modifiers of the same drag (#13 ).
- A whole view can now be moved onto the edges of another view. Dropping a tab in the centre of a view offers "Move here", while its edges keep "Split here", and drop zones are marked during the drag (#15 #16).
- The ceiling on splits moves from 16 views to 32. It is only a guard against a runaway layout: nothing is sized on it, so a window with a handful of views costs exactly what it did before.
- New tabs and views can start with hidden files shown, from a new general setting. Tabs already open, and restored ones, keep their own choice (#17 ).
- Narrow views got an adaptive sort header, and their outline is no longer covered by it (#14 ).
- A double-click in the empty gutter on the left of the items selects everything.
Workspaces and favorites
- Nine workspaces can be loaded with Ctrl+1 to Ctrl+9. The index belongs to the workspace, is visible and editable, and survives saving, renaming and overwriting. Giving an index to one workspace takes it away from whichever had it (#19 ).
- Ctrl+S now saves the current workspace from the workspaces panel itself #19 .
- Favorites accept files again, both by drag and from the context menu (#18 ).
- "Colour and note" is now reachable from a tab's menu and from a favorite pointing at a folder, not only from the list.
Settings
- The General panel is reorganised into cards. The defaults that apply to new tabs are grouped together under a single shared note, and "Storage locations" moved to a tab of its own.
- Interface zoom, view text size and a new item spacing control share one card, with their scopes made explicit and a reset button on each (#5 ).
Languages
- Russian (#4 ) , Simplified Chinese (#20 ) and Japanese are added. Favnyr now ships eight languages.
Opening folders from outside Favnyr
- A path or a local
file:URI given on the command line now opens folders, one tab each, spaces included. Launching a named workspace by argument was removed; workspaces load from the interface (#9 ). - A
favnyr.desktoplauncher now travels in the Linux archive, so the binary can be integrated with a desktop menu and offered as a folder handler.
Operations and feedback
- Copies, duplications and moves now show throughput and an estimated time remaining under the transferred volume.
- Refused operations report a translated reason in the bottom banner: creating, renaming, deleting, copying, duplicating, moving and restoring from trash.
Linux and distribution
- The "Open terminal here" shortcut moved to Shift+F4 on Linux. GNOME and most KDE setups bind Ctrl+Alt+T the
- v0.3.42026-09-30 · 2026-09-30 20:18 UTC
查看更新说明
Full Changelog: https://github.com/GlitchAwakened/Favnyr/compare/v0.3.3...v0.3.4
Done in V0.3.4
Views and navigation
- Settings can now choose whether new views open as a list or with previews.
- Folder colors are now also visible on tabs and favorites, and views can group coloured folders first.
- Renaming a folder in Favnyr also updates its open tabs, shortcuts and favorites instead of leaving stale paths or labels behind.
Archives and optional tools
- Added a new "Compress to..." Ready-made commands that supports ZIP, 7z and compressed TAR archives, with control over the output name and compression, plus optional password protection for compatible formats.
- Archive extraction through Ready-made commands (Extract here/Extract to folder) now handles password requests, reports failures properly and shows progress for longer operations.
- Linux settings now provide availability checks for the useful external tools : FFmpeg, Poppler and 7-Zip.
Favorites and custom commands
- Custom-command program paths now accept environment variables on Linux and
Windows, as well as
~on Linux.
Windows drag and drop
- Files and folders dragged from Windows Explorer now use Favnyr's Move/Copy/Link menu instead of being limited to copying.
- Favnyr now refreshes its file-drop registration after the computer wakes from sleep, addressing cases where external drops stopped working until a restart.
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Favnyr
Favnyr : A portable file browser for Windows and Linux. Single executable, no installer, no administrator rights, no telemetry.
https://github.com/user-attachments/assets/a59d8aac-5b9d-499d-bc37-f774ffce9066
https://github.com/user-attachments/assets/2522fd49-1803-4419-8fa6-deba85dacc20
(It's worth watching the videos part 1 & 2 until the end. It goes well past the basics and shows most of the gestures and shortcuts collected under Pro tips.)
Favnyr came out of a simple frustration: wanting several folders open side by side, being able to come back to the same arrangement tomorrow, and not wondering what the program does when nobody is looking. It is written in Rust with Slint, which is why it starts fast and stays small. I am Favnyr's first user, and I use it daily literally every day.
Copy the executable where you want and run it. That is the whole installation.
*NixOS : See the NixOS footnote below.
Private by construction
Favnyr makes no network request. There is no account, no telemetry, no update check, no crash reporting.
Its settings, favorites and workspaces are plain TOML files in the usual per-user folders. You do not have to guess where: Settings → Storage lists the exact paths and opens them.
Thumbnails live in a bounded memory cache for the length of the session. Nothing is written to a thumbnail database on disk.
Favnyr runs with ordinary user permissions. It installs no service and no background process. It still obeys the permissions of the files you ask it to touch, obviously.
What it does
Views. Split the window horizontally or vertically, up to 32 views. Each keeps its own tabs, history, sorting and columns.
Tab groups. Organize tabs with a name and an optional color. Tab groups can be expanded or collapsed.
https://github.com/user-attachments/assets/933f0e71-474b-4be8-be59-248086202c47
https://github.com/user-attachments/assets/8f466e2b-7c92-453f-9fac-69893a8b3903
Workspaces. A workspace is a saved set of views and tabs. Keep one per project and restore the whole arrangement in one click, or assign it a number to load it with a keyboard shortcut. Settings provide separate save policies for the Workspaces panel and numbered shortcuts (CTRL+1, CTRl+2...). A workspace can have its own theme, independently of the global theme.
Favorites. Shared across every workspace, so your usual places do not depend on which layout is open.
Terminal. Open one in the current folder, from the right-click menu or the keyboard. Settings > General > Terminal chooses which one.
Custom commands. Run any program on the selection with your own arguments, using placeholders: {file}, {files} (the whole selection), {dir}, {dirname}, {setname}, {name}, {stem}, {ext}, {names}, {uri}. A command can be pinned to the right-click menu, and restricted to the extensions where it makes sense.
Ready-made recipes (ready-made commands) are proposed when available : send by email, send to a device and archive commands. Each arrives already pinned to the right-click menu and limited to the extensions where it makes sense. This is genuinely useful on Linux, where no equivalent shell integration exists. So if 7-Zip is installed (7zz, 7z or 7za), Favnyr compresses and extracts without leaving the window :
Compress to…opens a form where you can define : archive name, format (ZIP, 7z or TAR), compression level, and an optional password.Extract hereandExtract to folderwork on the archive types 7-Zip reads, RAR included.
Keyboard. Actions follow the usual conventions and can be rebound from Settings.
Columns. Show, hide, resize and reorder them per view.
List and grid. The display menu selects the arrangement and whether to show icons or thumbnails. Each tab remembers its layout and grid size; Ctrl+wheel adjusts the size. The grid keeps selection, file drops, folder annotations and manual ordering. In manual order, drop before or after a tile to reposition the selection, including across rows. Drop in the centre of a folder to target that folder. Settings provide defaults for new tabs, text size and spacing on both grid axes.
Search. Start typing to narrow a folder by name, or press Ctrl+F for the search bar, which can extend the search to subfolders.
Recursive folder size and date. Off by default. Turn either on and choose a depth from 1 to 16: Favnyr then shows the real size and latest modification date of a folder's contents, computed in the background. Both metrics share a single directory walk, so enabling the two costs one pass, not two.
Files and folders. Copy, move, link, rename, create, trash and delete, with progress reported. Several operations can run at once. Multi-selection, drag and drop between views and to other applications, and reopening closed tabs. Folders can be given a color, any item (file/folder) a short note, and both follow it when it is renamed or moved within Favnyr.
Batch rename. Select several files or folders, then choose Batch rename… from the context menu, or use the Rename shortcut (F2 by default). Preview a common name, text replacement, prefixes and suffixes, numbering, letter case, or an optional extension change.
Properties. A built-in panel for when no desktop file manager offers one: type, location, sizes and dates, Unix permissions and ownership, and MD5, SHA-1, SHA-256 and SHA-512 checksums computed on request. Every value is selectable.
Languages. English, French, Spanish, German, Italian, Russian, Simplified Chinese, and Japanese.
Themes. Nord, Atom, Tokyo Night, Sonokai Atlantis, Catppuccin Frappé, Macchiato, Mocha, Rosé Pine, Everforest, Gruvbox Hard, Fluvy... each available in light and dark variants. You can also create your own themes.
Thumbnails
Images are decoded in pure Rust :
.jpg, .jpeg, .png, .gif, .webp, .bmp, .tif, .tiff, .tga, .hdr, .ico
.svg is rendered by Slint's own vector engine.
PSD files (.psd) display Photoshop's embedded JPEG thumbnail when one is
present. This is deliberately best-effort.
Affinity Photo, Designer and Publisher files (.afphoto, .afdesign, .afpub
and .af) receive the same lightweight treatment.
MP3 and FLAC files (.mp3, .flac) display their embedded cover art. A track without embedded artwork simply keeps the normal audio icon.
3D files .blend, .3mf, .stl, .glb, .gltf, .obj thumbnails are supported. 7-Zip is only necessary for a compressed .blend.
Videos (.mp4, .mkv, .mov, .avi, .webm, .wmv, .flv, .m4v, .mpg, .mpeg, .ts, .3gp) and PDFs get a thumbnail too, through a different route on each system:
- Windows -> the shell's thumbnail providers, so nothing extra to install.
- Linux ->
ffmpegfor video, Poppler (pdftoppmorpdftocairo) for PDF. Both optional; without them Favnyr simply shows the file-type icon.
Pro tips
A few things that are easy to miss.
- Search a view.
- Option 1: press Ctrl+F (the default) to open the search bar. Tick Search subfolders in it to include child folders.
- Option 2: type directly in the active view to search as you go. Careful with Japanese and Chinese, the first character comes out wrong this way, so prefer Option 1.
- Ctrl+wheel resizes the entries, and past a size threshold they switch to thumbnails.
- Shift+wheel scrolls a view horizontally when its columns overflow.
- Tab / Shift+Tab select the next / previous view in visual reading order. Both shortcuts can be changed in Settings.
- The wheel over a tab bar switches tabs, forwards and back, wrapping around at the ends.
- Hide the tab bar from its position menu, or choose Hidden in the default tab bar setting for new views. Ctrl+Shift+B toggles the active view's bar. The workspace remembers this choice. Ctrl+Tab / Ctrl+Shift+Tab still navigate hidden tabs.
- Ctrl+click selects tabs or whole groups; Shift+click selects a range. A selected group includes every child, including hidden tabs.
- Create a tab group : Right-click a selected tab and choose Group tabs.
- The wheel still scrolls during a drag. It scrolls whichever view sits under the cursor, so a folder further down the list can be reached without releasing the drag.
- Hold Space while dragging one folder and the drag opens it instead of moving it: drop on the edge of a view to split there, or in its middle to add a tab.
- Drag modifiers. Ctrl copies straight away, Shift moves straight away, and no modifier shows the Move/Copy menu.
- Drop files on an executable to open them with that program.
- Double-click the gutter, the narrow empty strip to the left of the entries, to select everything (similar to CTRL+A).
- Double-click a separator to even out the views it divides, and double-click it again to put the previous sizes back.
- Middle-click is three gestures: held down in a view it scrolls from where it was pressed, on a sidebar entry or a favorite it opens in a new tab, and on a tab it closes it.
- Workspace shortcuts. In the Workspaces panel (Ctrl+Q by default), each saved workspace has a badge for assigning a slot from 1 to 9. The matching shortcut (Ctrl+1 to Ctrl+9 by default) loads it directly. These shortcuts can be rebound, including on keyboards where the digit row needs Shift.
- Unsaved workspace changes. Settings → General → Workspaces has separate three-choice policies for loading from the panel and from numbered shortcuts: ask when changes are unsaved (the default), continue without saving, or save the current workspace first. The panel policy also applies to Start new workspace. In a confirmation, Remember this choice updates only the policy for that action's source. Cancel leaves both the workspace and the policy unchanged. If saving fails, the load or new workspace is stopped and an error is shown.
Custom themes
Favnyr's themes are plain TOML files, so the simplest way to make a theme is to copy one that already
exists, for instance crates/favnyr-core/src/theme/builtins/atom.toml, and edit the colors you want to change.
Drop the file in Favnyr's themes directory, under any name you like:
- Linux ->
~/.local/share/favnyr/themes(orXDG_DATA_HOME) - Windows ->
%APPDATA%\favnyr\themes
A theme declares both appearances, light and dark.
Every role you leave out is inherited from Nord, Favnyr's base theme, so a complete and valid theme can be this short:
schema_version = 1
[light.colors]
accent_background = "#1F7A54"
[dark.colors]
accent_background = "#A0D6BC"
crates/favnyr-core/src/theme/builtins/nord.toml is the exhaustive reference:
it carries all 56 color roles in both appearances, with the names to use. Colors are written #RRGGBB, and
#RRGGBBAA is accepted only for track, disk_normal, disk_warning,
disk_critical and modal_overlay, the roles that are drawn over something
else. Each appearance also takes an optional [<appearance>.opacity] table
with hidden and age, two numbers between zero and one that dim hidden items
and the background of file-age badges.
About AI-assisted development
Because of the project’s complexity, AI has been used as a development assistant. Nothing was accepted because it compiled. Every change was carefully tried by hand on both Windows and Linux, lived with, and reworked until it held up in the awkward cases as well as the obvious ones. That patient testing and finishing took far longer than the writing.
Building
Needs Rust 1.92 or newer and a C compiler. The first release build takes several minutes: it is optimised with link-time optimisation.
Windows
Install Rust from https://rust-lang.org/tools/install/ (the x64 rustup-init.exe), then the Visual Studio Build Tools with the Desktop development with C++ workload, which provides MSVC and the Windows SDK:
winget install Microsoft.VisualStudio.2022.BuildTools --override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"
Video and PDF thumbnails use Windows providers.
Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Then the build dependencies:
- Debian / Ubuntu / Mint ->
sudo apt install build-essential pkg-config libfontconfig1-dev - Fedora ->
sudo dnf install gcc pkgconf-pkg-config fontconfig-devel - Arch ->
sudo pacman -S --needed base-devel fontconfig
Optionally install ffmpeg for video thumbnails, poppler-utils for PDF
thumbnails, and a recent 7-Zip (7zz or 7z) for embedded 3D thumbnails and
the advanced compression and extraction recipes (ready-made commands).
Build and run
cargo run --release --bin favnyr
The executable lands in target/release/ (favnyr on Linux, favnyr.exe on Windows). Copy it anywhere. cargo clean reclaims the build directory, which is large.
NixOS
Run directly
nix run 'github:GlitchAwakened/Favnyr?dir=packaging/nix'
Install via Profile
nix profile install 'github:GlitchAwakened/Favnyr?dir=packaging/nix'
Install via Flake
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
favnyr.url = "github:GlitchAwakened/Favnyr?dir=packaging/nix";
};
outputs = { self, nixpkgs, favnyr, ... }: {
nixosConfigurations.myhostname = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
({ pkgs, ... }: {
environment.systemPackages = [
favnyr.packages.${pkgs.system}.default
];
})
];
};
};
}
License
GNU General Public License v3.0 or later.