- name: zuhaitz-fat
- description: A modern, TUI-based file and archive viewer for your terminal.
- snapcraft: fat/snap/snapcraft.yaml at main · Zuhaitz-dev/fat · GitHub.
- upstream: GitHub - Zuhaitz-dev/fat: FAT is a TUI-based file and archive viewer for your terminal that allows you to inspect text files, binary files, and archives like ZIPs and TARs in a single interface.
- upstream-relation: I am the upstream author and project lead.
- supported-category: This application is a Developer Tool. Based on the “Known categories” for classic confinement, it fits into the supported category of “tools for local, non-root user driven configuration of/switching to development workspaces/environments”.
- reasoning: The primary reason for this request is that
fat
’s core functionality aligns directly with one of the explicit criteria listed for classic confinement: the ability to run an “arbitrary command (esp if user-configurable such as a developer tool…)”.
A key feature of fat
is “Open with external command,” which allows a developer to open the file they are currently inspecting in any command-line tool of their choice (e.g., vim
, nvim
, less
, etc.). This behavior is user-configurable via the fatrc
file, allowing users to integrate fat
seamlessly into their personal development environment and workflow.
This functionality is impossible under strict
confinement. We have tested this and the security policy correctly blocks the execution of arbitrary host commands with a “Permission denied” error.
We also investigated alternatives as suggested by the documentation for unsupported use cases. The standard xdg-open
mechanism is not a viable solution because it is designed to launch default GUI handlers and does not support our core requirement: allowing the user to specify and launch an arbitrary, often terminal-based, application.
For fat
to fulfill its purpose as an effective developer tool that integrates with a user’s command-line ecosystem, classic confinement is a necessity.
I understand that strict confinement is generally preferred over classic.
I’ve tried the existing interfaces to make the snap to work under strict confinement.