Skip to content
user-no-foundPublic

About

基于 TuiOS 的飞牛 fnOS 原生终端应用

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

FnTuiOS

FnTuiOS packages a Chinese TUIOS interface for the fnOS desktop. The desktop entry opens an iframe under /app/tuios/; the authenticated NAS user owns the terminal process, groups, home, configuration and sessions. Browser traffic uses the NAS origin and WebSocket through the official Unix-socket gateway.

Source: user-no-found/FnTuiOS. Download architecture-specific FPKs from Releases.

This repository contains the gateway, build adapters, reviewed translation memory and fnOS packaging. Upstream source is fetched into ignored build storage and is never vendored. Every build resolves the current default-branch HEAD of user-no-found/Fnbak-tuios, as configured by project.json.upstream, records one SHA and uses it for both upstream executables and architectures. The fork retains the canonical github.com/Gaurav-Gosain/tuios Go module and imports and the original licenses. These identifiers do not choose the Git repository fetched by this build. A new phrase or dependency asset requires review before another Chinese package can be built.

Build on native Linux amd64 with Python 3.11+, Git, taskset and official fnpack. Provide explicit checkouts (or FnPackKit's extracted source distribution) for the shared tools; each project keeps its own metadata and adapters:

/path/to/BuildFlow/setup.sh
/path/to/FnPackKit/setup.sh
./setup.sh --playwright /path/to/node_modules/playwright --chromium /path/to/chrome
./build.sh

Initialization validates and records already installed paths; it does not install dependencies. Shared tool paths are stored under the user configuration directory, and browser tools are shared through the user-level buildflow/browser.json registration. Use an independent Playwright environment rather than another application's cache. ./setup.sh delegates browser registration and validation to BuildFlow. After initialization, run ./build.sh without exports in an existing or new shell. Explicit environment variables still override the saved paths.

The root script locates this repository from its own path, so it also works from another working directory. FnPackKit loads the selected application's plan, and BuildFlow executes source resolution, localization, tests and native compilation. FnPackKit renders and checks the actual FPK. Both tool versions must satisfy the requirements in project.json; these tools are build-time dependencies and are not installed as NAS applications. The shared Go runtime is linked into fntuios through a temporary module file. The tool checkouts and their source hashes are recorded with the build inputs. The tool repositories must contain their Python package, runtime and shared web asset sources before this command can work; an empty remote repository is not an installable dependency.

The compiler is the newer requirement from upstream go and toolchain directives, verified against go.dev's SHA-256. It stays in .cache/toolchains/. Compilation and tests inherit bounded CPU affinity and niceness 10. Final FPKs and SHA-256 sidecars are written directly into output/. Logs, package provenance, screenshots and verification reports stay under .build/<run-id>/; .build/last-success.json identifies the verified artifacts. A failure preserves previous successful packages and their pointer. The shared display shows the current nested action, target and elapsed time, including quiet scans and packaging work. Captured registry data stays in the build log; expected negative checks do not mark the whole build as failed.

project.json is the source of the application package version. Interactive builds show the current version and let you select a stable x.x.x or test x.x.x-xx build. Staying in the same channel increments the stable patch or test suffix; switching channels keeps the base version: 0.0.1 becomes 0.0.1-01, and 0.0.1-02 becomes 0.0.1. The selected value is written back under the shared build lock before the application plan loads. The installed version is displayed as information. Failed, cancelled or unpublished candidates are retried by default; only a committed successful publication consumes a version. A successful stable 0.0.1 resets the internal test serial to zero, and the first test candidate is 0.0.1-01. Noninteractive builds can use ./build.sh --next-version --channel stable, or select an exact value with --build-version 0.0.1.

This package version is independent of upstream's release version. Each new build still resolves the default branch's latest HEAD once and records its SHA; choosing a stable package channel does not switch source selection to releases. Both architectures share the selected package version and source SHA. Select architecture targets through build.architectures. The installed application ID remains tuios and the display name remains FnTuiOS.

Choose the FPK for the device architecture and install it through fnOS App Center. The runtime requires Bash, flock and PTY support; it does not require Go or Docker. Click FnTuiOS from the NAS desktop after login. The same NAS URL is used with FN Connect; actual direct and relay routes depend on the deployed NAS gateway and must be checked on that device.

Application stop waits for each user's daemon to save sessions before stopping its web process. Closing the iframe disconnects the browser and keeps its user instance available. Stopping or upgrading ends running shell jobs; restored session history does not resume killed processes. Legacy shared tuios data is retained in place and is not copied into users' sessions.

See runtime configuration and security, localization review, phone interaction and build verification.

The shared runtime panel can be dragged and docks half-hidden at any edge. It controls only the current NAS user’s backend: start, stop, and restart. Stopping ends running terminal jobs after the daemon saves its session history; retained history does not resume terminated jobs. Reloading a manually stopped page keeps it stopped and offers a start action. The lightweight gateway remains available; use App Center to stop the entire application. A service restart clears the in-memory manual pause. “终端显示” opens the upstream sip display settings; the adjacent “复制文本” opens a selectable plain-text snapshot of the current pane. The panel closes and half-hides after five idle seconds, immediately on close, or three seconds after a closed-panel drag. See mobile controls and text copying.

About

基于 TuiOS 的飞牛 fnOS 原生终端应用

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages