flea-qml 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +511 -2
- package/THIRD-PARTY-NOTICES.md +29 -0
- package/demos/App.java +5 -0
- package/demos/Dockerfile +4 -0
- package/demos/Main.kt +3 -0
- package/demos/Program.cs +1 -0
- package/demos/README.md +12 -0
- package/demos/app.dart +3 -0
- package/demos/app.deb +0 -0
- package/demos/app.js +1 -0
- package/demos/backup.tar +0 -0
- package/demos/budget.xlsx +0 -0
- package/demos/build.sh +2 -0
- package/demos/bundle.zip +0 -0
- package/demos/clip.mp4 +0 -0
- package/demos/data.sqlite +0 -0
- package/demos/disk.iso +0 -0
- package/demos/engine.cpp +5 -0
- package/demos/firmware.bin +0 -0
- package/demos/flake.nix +4 -0
- package/demos/folder/inside.txt +1 -0
- package/demos/font.ttf +0 -0
- package/demos/index.html +5 -0
- package/demos/index.php +2 -0
- package/demos/init.lua +1 -0
- package/demos/letter.docx +0 -0
- package/demos/lib.rs +3 -0
- package/demos/main.c +6 -0
- package/demos/main.h +3 -0
- package/demos/math-and-diagrams.md +200 -0
- package/demos/notes.tar.gz +0 -0
- package/demos/notes.txt +3 -0
- package/demos/photo.png +0 -0
- package/demos/program +2 -0
- package/demos/report.pdf +32 -0
- package/demos/script.py +1 -0
- package/demos/server.go +7 -0
- package/demos/settings.json +4 -0
- package/demos/slides.pptx +0 -0
- package/demos/song.mp3 +0 -0
- package/demos/style.css +4 -0
- package/demos/tool.rb +1 -0
- package/demos/types.ts +2 -0
- package/docs/pele.md +23 -0
- package/docs/protocol.md +3420 -0
- package/docs/temml.md +63 -0
- package/index.js +107 -0
- package/package.json +34 -4
- package/src/archive.js +407 -0
- package/src/archiveops.js +728 -0
- package/src/backend.js +369 -0
- package/src/bulkrename.js +95 -0
- package/src/clip-host.js +76 -0
- package/src/clip.js +462 -0
- package/src/code.js +168 -0
- package/src/compare.js +74 -0
- package/src/create.js +128 -0
- package/src/dirsize.js +147 -0
- package/src/figure-svg.js +530 -0
- package/src/figure-thread.js +23 -0
- package/src/figure.js +132 -0
- package/src/find.js +55 -0
- package/src/flea.js +39 -0
- package/src/fsinfo.js +39 -0
- package/src/highlight.js +141 -0
- package/src/html.js +52 -0
- package/src/kinds.js +89 -0
- package/src/listing.js +130 -0
- package/src/markdown-html.js +317 -0
- package/src/mathml.js +186 -0
- package/src/menu.js +180 -0
- package/src/meta.js +135 -0
- package/src/office.js +810 -0
- package/src/order.js +100 -0
- package/src/peek.js +49 -0
- package/src/pele-wrapper.js +695 -0
- package/src/permissions.js +180 -0
- package/src/places.js +313 -0
- package/src/preview-language.js +10 -0
- package/src/terminal-server.js +95 -0
- package/src/terminal-shell.js +26 -0
- package/src/transfer.js +669 -0
- package/src/trash-record.js +41 -0
- package/src/trash.js +210 -0
- package/src/trashbrowse.js +327 -0
- package/src/uistate.js +393 -0
- package/src/uistore.js +168 -0
- package/src/vendor/LICENSES/Apache-2.0.txt +202 -0
- package/src/vendor/LICENSES/MIT-katex-2015.txt +27 -0
- package/src/vendor/LICENSES/MIT-katex.txt +21 -0
- package/src/vendor/LICENSES/MIT-mermaid.txt +21 -0
- package/src/vendor/LICENSES/MIT-pele.txt +40 -0
- package/src/vendor/LICENSES/MIT-perseus.txt +18 -0
- package/src/vendor/LICENSES/MIT-temml.txt +21 -0
- package/src/vendor/pele.js +145 -0
- package/src/vendor/temml.mjs +14708 -0
- package/src/watch.js +98 -0
- package/src/wayland/client.js +109 -0
- package/src/wayland/protocol.js +55 -0
- package/src/wayland/protocols/ext-data-control-v1.xml +276 -0
- package/src/wayland/protocols/wayland.xml +3248 -0
- package/src/wayland/protocols/wlr-data-control-unstable-v1.xml +278 -0
- package/src/wayland/resource-io.js +6 -0
- package/src/wayland/socket-discovery.js +26 -0
- package/src/wayland/transport-posix.js +120 -0
- package/src/wayland/transport-win32.js +11 -0
- package/src/wayland/transport.js +3 -0
- package/src/wayland/win32-resources.js +80 -0
- package/src/wayland/win32-wire.js +62 -0
- package/test/archive.test.js +80 -0
- package/test/bench-markdown-scroll.mjs +190 -0
- package/test/clip-host.test.js +113 -0
- package/test/code-preview.test.js +35 -0
- package/test/compare-ui-paths.test.js +24 -0
- package/test/compare.test.js +54 -0
- package/test/delete-trash.test.js +67 -0
- package/test/dirsize.test.js +138 -0
- package/test/file-ops.test.js +307 -0
- package/test/file-url.test.js +24 -0
- package/test/find-contents.test.js +161 -0
- package/test/find-input.test.js +66 -0
- package/test/fixtures/pele-parity.json +1006 -0
- package/test/highlight-launcher.test.js +35 -0
- package/test/html-preview.test.js +22 -0
- package/test/input.test.js +15 -0
- package/test/keymap.test.js +26 -0
- package/test/language-icons.test.js +36 -0
- package/test/launcher.test.js +51 -0
- package/test/manual-archive-here-ui.mjs +47 -0
- package/test/manual-code-scroll.mjs +28 -0
- package/test/manual-column-scroll.mjs +24 -0
- package/test/manual-compare-ui.mjs +20 -0
- package/test/manual-find-status.mjs +37 -0
- package/test/manual-folder-focus.mjs +63 -0
- package/test/manual-html-security.mjs +23 -0
- package/test/manual-html-ui.mjs +30 -0
- package/test/manual-syntax-preview.mjs +26 -0
- package/test/manual-terminal-lifecycle.mjs +42 -0
- package/test/manual-terminal-navigation.mjs +48 -0
- package/test/manual-terminal-ui.mjs +47 -0
- package/test/manual-trash-ui.mjs +86 -0
- package/test/markdown-diagrams.test.js +93 -0
- package/test/markdown-html.test.js +105 -0
- package/test/mathml.test.js +92 -0
- package/test/menu-transfer.test.js +57 -0
- package/test/office-preview.test.js +154 -0
- package/test/pele-parity.test.js +28 -0
- package/test/places.test.js +134 -0
- package/test/preview-keys.test.js +60 -0
- package/test/preview-language.test.js +22 -0
- package/test/status-filename.test.js +20 -0
- package/test/transfer-replace-merge.test.js +187 -0
- package/test/trash-address.test.js +23 -0
- package/test/trash-view.test.js +37 -0
- package/test/trashbrowse.test.js +135 -0
- package/ui/AboutFacts.qml +78 -0
- package/ui/ArchiveCards.qml +95 -0
- package/ui/ArchiveCompressDialog.qml +378 -0
- package/ui/ArchiveHereConfirm.qml +127 -0
- package/ui/ArchivePasswordDialog.qml +257 -0
- package/ui/Backend.qml +775 -0
- package/ui/BulkOldNames.qml +47 -0
- package/ui/BulkRenameDialog.qml +380 -0
- package/ui/CardFrame.qml +67 -0
- package/ui/CardScroll.qml +79 -0
- package/ui/CheckBox.qml +73 -0
- package/ui/ChromeBar.qml +360 -0
- package/ui/ChromeButton.qml +131 -0
- package/ui/ChromeModes.qml +43 -0
- package/ui/CodeLines.qml +256 -0
- package/ui/CodeRefusal.qml +52 -0
- package/ui/CollideConfirm.qml +147 -0
- package/ui/CollideHost.qml +167 -0
- package/ui/ColumnPane.qml +525 -0
- package/ui/ColumnRow.qml +380 -0
- package/ui/ColumnsArea.qml +594 -0
- package/ui/ColumnsLanding.qml +147 -0
- package/ui/CompareView.qml +321 -0
- package/ui/ContextMenu.qml +743 -0
- package/ui/ConvertDialog.qml +456 -0
- package/ui/CountedWorker.qml +7 -0
- package/ui/Crumb.qml +64 -0
- package/ui/CrumbDrop.qml +25 -0
- package/ui/CsvTable.qml +394 -0
- package/ui/CursorMark.qml +41 -0
- package/ui/DefaultClaim.qml +130 -0
- package/ui/DeviceLock.qml +47 -0
- package/ui/DeviceMounts.qml +540 -0
- package/ui/DialogButton.qml +150 -0
- package/ui/DialogField.qml +147 -0
- package/ui/DialogHeader.qml +31 -0
- package/ui/DialogScrim.qml +20 -0
- package/ui/DialogTitle.qml +37 -0
- package/ui/Divider.qml +9 -0
- package/ui/DropInto.qml +126 -0
- package/ui/DropTarget.qml +35 -0
- package/ui/DropboxMark.qml +60 -0
- package/ui/EmptyState.qml +150 -0
- package/ui/EscapeHint.qml +11 -0
- package/ui/FactsTable.qml +54 -0
- package/ui/FastScrollHandler.qml +476 -0
- package/ui/FatNamesConfirm.qml +157 -0
- package/ui/Favourites.qml +143 -0
- package/ui/FigureService.qml +120 -0
- package/ui/FileDrag.qml +267 -0
- package/ui/FilterStrip.qml +133 -0
- package/ui/FitMetrics.qml +22 -0
- package/ui/FlashDriveRows.qml +137 -0
- package/ui/FlashHost.qml +72 -0
- package/ui/FlashImageRow.qml +104 -0
- package/ui/FlashRunner.qml +119 -0
- package/ui/FlashStepRow.qml +172 -0
- package/ui/FlashStrip.qml +38 -0
- package/ui/FlashView.qml +397 -0
- package/ui/FleaMark.qml +88 -0
- package/ui/FlyoutFade.qml +23 -0
- package/ui/FontPane.qml +170 -0
- package/ui/Glass.qml +114 -0
- package/ui/GlassTagger.qml +59 -0
- package/ui/Glyph.qml +64 -0
- package/ui/GlyphSolid.qml +22 -0
- package/ui/GridArea.qml +664 -0
- package/ui/GridTile.qml +325 -0
- package/ui/GvfsBridge.qml +164 -0
- package/ui/Header.qml +433 -0
- package/ui/HoverTimers.qml +39 -0
- package/ui/HtmlClip.qml +30 -0
- package/ui/HtmlPane.qml +63 -0
- package/ui/HyprlandMark.qml +45 -0
- package/ui/Ipc.qml +1005 -0
- package/ui/IpcControls.qml +7 -0
- package/ui/IpcMenuState.qml +48 -0
- package/ui/IpcPreviewState.qml +185 -0
- package/ui/JumpPath.qml +51 -0
- package/ui/KeymapSheet.qml +561 -0
- package/ui/KeymapSheetResult.qml +89 -0
- package/ui/KindStack.qml +40 -0
- package/ui/LangMark.qml +51 -0
- package/ui/LangMarkLoader.qml +26 -0
- package/ui/List.qml +480 -0
- package/ui/LoadingState.qml +54 -0
- package/ui/LocalSend.qml +56 -0
- package/ui/LocalSendMark.qml +73 -0
- package/ui/MarkdownBlockView.qml +311 -0
- package/ui/MarkdownBlocks.qml +35 -0
- package/ui/MarkdownFigure.qml +254 -0
- package/ui/MarkdownImages.qml +72 -0
- package/ui/MarkdownList.qml +81 -0
- package/ui/MarkdownMathsText.qml +97 -0
- package/ui/MarkdownPane.qml +83 -0
- package/ui/MarkdownPictures.qml +41 -0
- package/ui/MarkdownQuote.qml +52 -0
- package/ui/MarkdownRemote.qml +82 -0
- package/ui/MarkdownSource.qml +155 -0
- package/ui/MarkdownTable.qml +222 -0
- package/ui/MarkdownTableScroll.qml +64 -0
- package/ui/MarkdownTableWheel.qml +126 -0
- package/ui/MarkdownText.qml +87 -0
- package/ui/MarkdownWorker.js +132 -0
- package/ui/MatchText.qml +99 -0
- package/ui/MediaSession.qml +38 -0
- package/ui/MediaSound.qml +26 -0
- package/ui/MediaStrip.qml +191 -0
- package/ui/MediaTrack.qml +36 -0
- package/ui/MediaVolume.qml +54 -0
- package/ui/MenuActionDialog.qml +396 -0
- package/ui/MenuEdgeFade.qml +24 -0
- package/ui/MenuHost.qml +227 -0
- package/ui/MenuRow.qml +351 -0
- package/ui/MountListing.qml +100 -0
- package/ui/NetworkDialog.qml +435 -0
- package/ui/NetworkForm.qml +426 -0
- package/ui/NetworkMounts.qml +913 -0
- package/ui/NetworkPlaces.qml +127 -0
- package/ui/OpenWithDialog.qml +613 -0
- package/ui/Opener.qml +95 -0
- package/ui/Pane.qml +1320 -0
- package/ui/PaneMenuActions.qml +527 -0
- package/ui/PanePath.qml +90 -0
- package/ui/PaneRail.qml +268 -0
- package/ui/PaneStates.qml +88 -0
- package/ui/PaneSwap.qml +339 -0
- package/ui/PaneWire.qml +601 -0
- package/ui/ParkedWait.qml +9 -0
- package/ui/PathEntry.qml +186 -0
- package/ui/PathJump.qml +400 -0
- package/ui/PdfViewer.qml +297 -0
- package/ui/PermissionsDialog.qml +658 -0
- package/ui/PermissionsHeadings.qml +31 -0
- package/ui/PhoneMounts.qml +67 -0
- package/ui/PickerAnswers.qml +75 -0
- package/ui/PickerBox.qml +26 -0
- package/ui/PickerChrome.qml +295 -0
- package/ui/PickerFilter.qml +97 -0
- package/ui/PickerGrid.qml +308 -0
- package/ui/PickerHeader.qml +28 -0
- package/ui/PickerLifecycle.qml +27 -0
- package/ui/PickerList.qml +218 -0
- package/ui/PickerListing.qml +149 -0
- package/ui/PickerPathBar.qml +127 -0
- package/ui/PickerPlaces.qml +189 -0
- package/ui/PickerRecent.qml +92 -0
- package/ui/PickerSave.qml +101 -0
- package/ui/PickerSelection.qml +155 -0
- package/ui/PickerWindow.qml +846 -0
- package/ui/PowerSectorsReader.qml +10 -0
- package/ui/PrebuildDriver.qml +146 -0
- package/ui/Preview.qml +1005 -0
- package/ui/PreviewAnimation.qml +24 -0
- package/ui/PreviewArchive.qml +91 -0
- package/ui/PreviewColumn.qml +553 -0
- package/ui/PreviewEdge.qml +63 -0
- package/ui/PreviewFacts.qml +30 -0
- package/ui/PreviewFactsLine.qml +34 -0
- package/ui/PreviewHtml.qml +233 -0
- package/ui/PreviewImage.qml +253 -0
- package/ui/PreviewImagePan.qml +13 -0
- package/ui/PreviewImageSharp.qml +32 -0
- package/ui/PreviewLines.qml +106 -0
- package/ui/PreviewMarkdown.qml +706 -0
- package/ui/PreviewMedia.qml +250 -0
- package/ui/PreviewPdf.qml +482 -0
- package/ui/PreviewScroll.qml +201 -0
- package/ui/PreviewSwap.qml +335 -0
- package/ui/PreviewText.qml +149 -0
- package/ui/ProtocolChip.qml +18 -0
- package/ui/QuickLookArchive.qml +41 -0
- package/ui/QuickLookBar.qml +103 -0
- package/ui/QuickLookPrepare.qml +355 -0
- package/ui/QuickLookSwap.qml +10 -0
- package/ui/QuickLookWarm.qml +65 -0
- package/ui/RailDrop.qml +155 -0
- package/ui/RailHeading.qml +19 -0
- package/ui/RailPlaces.qml +38 -0
- package/ui/RailTrashRow.qml +67 -0
- package/ui/RenameField.qml +353 -0
- package/ui/RendererRetry.qml +11 -0
- package/ui/ResizeHandle.qml +52 -0
- package/ui/Reveal.qml +54 -0
- package/ui/Row.qml +476 -0
- package/ui/RowDrag.qml +213 -0
- package/ui/RowDropTarget.qml +27 -0
- package/ui/RunCard.qml +286 -0
- package/ui/Scripts.qml +65 -0
- package/ui/SearchStrip.qml +232 -0
- package/ui/SelectionBand.qml +140 -0
- package/ui/SelectionPreview.qml +370 -0
- package/ui/SettingsFavourite.qml +122 -0
- package/ui/SettingsGroup.qml +96 -0
- package/ui/SettingsHint.qml +12 -0
- package/ui/SettingsMetrics.qml +29 -0
- package/ui/SettingsPane.qml +178 -0
- package/ui/SettingsPanel.qml +547 -0
- package/ui/SettingsRail.qml +128 -0
- package/ui/SettingsRow.qml +409 -0
- package/ui/SettingsRuler.qml +85 -0
- package/ui/SettingsSegment.qml +85 -0
- package/ui/ShareBrowser.qml +113 -0
- package/ui/ShareLink.qml +67 -0
- package/ui/ShelfPins.qml +101 -0
- package/ui/Sidebar.qml +728 -0
- package/ui/SidebarRow.qml +358 -0
- package/ui/Spinner.qml +60 -0
- package/ui/StableModel.qml +89 -0
- package/ui/StateMessage.qml +84 -0
- package/ui/StatusBar.qml +512 -0
- package/ui/StatusFileName.qml +27 -0
- package/ui/TabBar.qml +673 -0
- package/ui/TabDragGeometry.qml +60 -0
- package/ui/TagMenuMark.qml +52 -0
- package/ui/TagRailSection.qml +53 -0
- package/ui/TagSlot.qml +40 -0
- package/ui/TagState.qml +150 -0
- package/ui/TagSwatch.qml +28 -0
- package/ui/Taildrop.qml +86 -0
- package/ui/TailscaleMark.qml +50 -0
- package/ui/TerminalService.qml +69 -0
- package/ui/TerminalTab.qml +48 -0
- package/ui/TerminalTabs.qml +27 -0
- package/ui/Theme.qml +460 -0
- package/ui/ThemeColors.qml +43 -0
- package/ui/TransferCard.qml +239 -0
- package/ui/TrashConfirm.qml +129 -0
- package/ui/TrashDropHandler.qml +11 -0
- package/ui/TrashHost.qml +202 -0
- package/ui/TrashMonitor.qml +30 -0
- package/ui/TrashToolbar.qml +19 -0
- package/ui/TrashView.qml +492 -0
- package/ui/UnlockDialog.qml +450 -0
- package/ui/UnlockHost.qml +206 -0
- package/ui/UpdateCheck.qml +97 -0
- package/ui/UserDirs.qml +25 -0
- package/ui/ViewState.qml +565 -0
- package/ui/ViewportScrollBar.qml +195 -0
- package/ui/ViewportScrollBars.qml +25 -0
- package/ui/WebPreview.qml +33 -0
- package/ui/WebPreviewView.qml +26 -0
- package/ui/WindowBody.qml +829 -0
- package/ui/WindowDrag.qml +35 -0
- package/ui/boot/Commons/AudioNodes.qml +50 -0
- package/ui/boot/Commons/AudioNodesModel.js +96 -0
- package/ui/boot/Commons/Border.qml +243 -0
- package/ui/boot/Commons/BorderGeometry.js +373 -0
- package/ui/boot/Commons/Color.qml +258 -0
- package/ui/boot/Commons/I18n.qml +118 -0
- package/ui/boot/Commons/InputDevices.qml +112 -0
- package/ui/boot/Commons/InputMethodState.qml +38 -0
- package/ui/boot/Commons/IpcRegistry.qml +77 -0
- package/ui/boot/Commons/Numbers.js +19 -0
- package/ui/boot/Commons/Plural.js +91 -0
- package/ui/boot/Commons/ShellIpc.qml +12 -0
- package/ui/boot/Commons/Style.qml +561 -0
- package/ui/boot/Commons/Translations.qml +100 -0
- package/ui/boot/Commons/UntypedInput.qml +152 -0
- package/ui/boot/Commons/Util.qml +188 -0
- package/ui/boot/Commons/qmldir +13 -0
- package/ui/boot/LICENSE-omarchy +20 -0
- package/ui/boot/Ui/BackgroundMedia.qml +49 -0
- package/ui/boot/Ui/BarIconButton.qml +106 -0
- package/ui/boot/Ui/BarIconContent.qml +38 -0
- package/ui/boot/Ui/BarIndicator.qml +53 -0
- package/ui/boot/Ui/BarWidget.qml +50 -0
- package/ui/boot/Ui/BorderOverlay.qml +54 -0
- package/ui/boot/Ui/BorderSurface.qml +40 -0
- package/ui/boot/Ui/Button.qml +224 -0
- package/ui/boot/Ui/ButtonGroup.qml +131 -0
- package/ui/boot/Ui/ConfirmDialog.qml +134 -0
- package/ui/boot/Ui/CursorSurface.qml +42 -0
- package/ui/boot/Ui/Dropdown.qml +245 -0
- package/ui/boot/Ui/FilterInput.qml +26 -0
- package/ui/boot/Ui/IconContentBounds.qml +141 -0
- package/ui/boot/Ui/KeyboardPanel.qml +453 -0
- package/ui/boot/Ui/MultiSelect.qml +624 -0
- package/ui/boot/Ui/NumberField.qml +86 -0
- package/ui/boot/Ui/OpticalGlyph.qml +68 -0
- package/ui/boot/Ui/OverlayWindow.qml +102 -0
- package/ui/boot/Ui/Panel.qml +60 -0
- package/ui/boot/Ui/PanelActionButton.qml +105 -0
- package/ui/boot/Ui/PanelController.qml +16 -0
- package/ui/boot/Ui/PanelHero.qml +112 -0
- package/ui/boot/Ui/PanelKeyCatcher.qml +100 -0
- package/ui/boot/Ui/PanelSectionHeader.qml +31 -0
- package/ui/boot/Ui/PanelSeparator.qml +19 -0
- package/ui/boot/Ui/PanelSlider.qml +156 -0
- package/ui/boot/Ui/PanelToolTip.qml +50 -0
- package/ui/boot/Ui/PluginBarApi.qml +89 -0
- package/ui/boot/Ui/PointerMoveGate.qml +54 -0
- package/ui/boot/Ui/PopupCard.qml +181 -0
- package/ui/boot/Ui/ScreenMoveRemap.qml +43 -0
- package/ui/boot/Ui/SearchableDropdown.qml +354 -0
- package/ui/boot/Ui/SizedImage.qml +125 -0
- package/ui/boot/Ui/SpeedTestOverlay.qml +412 -0
- package/ui/boot/Ui/TextField.qml +58 -0
- package/ui/boot/Ui/Toggle.qml +118 -0
- package/ui/boot/Ui/ToggleSwitch.qml +115 -0
- package/ui/boot/Ui/WidgetButton.qml +172 -0
- package/ui/boot/Ui/qmldir +41 -0
- package/ui/boot/fleatab.qml +50 -0
- package/ui/boot/picker.qml +39 -0
- package/ui/boot/shell.qml +131 -0
- package/ui/boot/tabtearoff.qml +51 -0
- package/ui/js/Anchor.js +379 -0
- package/ui/js/AnchorHold.js +162 -0
- package/ui/js/Archive.js +157 -0
- package/ui/js/ArchiveCard.js +44 -0
- package/ui/js/ArchiveOps.js +44 -0
- package/ui/js/BackReturn.js +118 -0
- package/ui/js/BulkRename.js +100 -0
- package/ui/js/Buttons.js +54 -0
- package/ui/js/ChromeKeys.js +116 -0
- package/ui/js/ClipMarks.js +73 -0
- package/ui/js/ClipSelection.js +67 -0
- package/ui/js/Clipboard.js +179 -0
- package/ui/js/Cloud.js +97 -0
- package/ui/js/CodeRuns.js +72 -0
- package/ui/js/Collide.js +212 -0
- package/ui/js/ColumnFit.js +28 -0
- package/ui/js/ColumnMenu.js +111 -0
- package/ui/js/Columns.js +298 -0
- package/ui/js/ColumnsCarry.js +103 -0
- package/ui/js/Compare.js +74 -0
- package/ui/js/Contrast.js +157 -0
- package/ui/js/ControlReader.js +42 -0
- package/ui/js/Convert.js +52 -0
- package/ui/js/CopyAs.js +52 -0
- package/ui/js/Crumbs.js +178 -0
- package/ui/js/Csv.js +231 -0
- package/ui/js/Density.js +44 -0
- package/ui/js/Devices.js +440 -0
- package/ui/js/DirSizes.js +180 -0
- package/ui/js/Drag.js +360 -0
- package/ui/js/DragOut.js +166 -0
- package/ui/js/DropDev.js +52 -0
- package/ui/js/Dropbox.js +41 -0
- package/ui/js/Eject.js +217 -0
- package/ui/js/Errors.js +188 -0
- package/ui/js/ExtThumbs.js +115 -0
- package/ui/js/Facts.js +402 -0
- package/ui/js/FigureDate.js +14 -0
- package/ui/js/Filter.js +285 -0
- package/ui/js/Find.js +46 -0
- package/ui/js/Flash.js +184 -0
- package/ui/js/FlashCard.js +79 -0
- package/ui/js/FlashEndings.js +125 -0
- package/ui/js/FlashPane.js +116 -0
- package/ui/js/FleaBin.js +12 -0
- package/ui/js/Focus.js +504 -0
- package/ui/js/FolderSorts.js +108 -0
- package/ui/js/FolderViews.js +44 -0
- package/ui/js/Format.js +314 -0
- package/ui/js/Fuzzy.js +141 -0
- package/ui/js/GlassTag.js +72 -0
- package/ui/js/Grid.js +33 -0
- package/ui/js/GridGeometry.js +90 -0
- package/ui/js/GridNames.js +153 -0
- package/ui/js/GvfsBridge.js +200 -0
- package/ui/js/HostClipboard.js +29 -0
- package/ui/js/Icons.js +218 -0
- package/ui/js/Input.js +50 -0
- package/ui/js/Jump.js +200 -0
- package/ui/js/KeyName.js +64 -0
- package/ui/js/Keymap.js +401 -0
- package/ui/js/Kinds.js +164 -0
- package/ui/js/LICENSES/ISC-lucide.txt +43 -0
- package/ui/js/LangMarkPaths.js +47 -0
- package/ui/js/LangMarks.js +120 -0
- package/ui/js/Lists.js +11 -0
- package/ui/js/LocalSend.js +39 -0
- package/ui/js/LockedMenu.js +63 -0
- package/ui/js/MakeDefault.js +186 -0
- package/ui/js/MarkBox.js +7 -0
- package/ui/js/Markdown.js +119 -0
- package/ui/js/MarkdownLists.js +86 -0
- package/ui/js/MarkdownMaths.js +58 -0
- package/ui/js/MarkdownPictures.js +32 -0
- package/ui/js/MarkdownPrepared.js +139 -0
- package/ui/js/MarkdownTableFit.js +34 -0
- package/ui/js/Marks.js +148 -0
- package/ui/js/Marquee.js +96 -0
- package/ui/js/Match.js +93 -0
- package/ui/js/Material.js +109 -0
- package/ui/js/MdBlocks.js +437 -0
- package/ui/js/MdBreak.js +71 -0
- package/ui/js/MdChunks.js +70 -0
- package/ui/js/MdContainer.js +137 -0
- package/ui/js/MdDocument.js +337 -0
- package/ui/js/MdEmph.js +97 -0
- package/ui/js/MdEntity.js +108 -0
- package/ui/js/MdEntityTable.js +223 -0
- package/ui/js/MdEscape.js +59 -0
- package/ui/js/MdFront.js +37 -0
- package/ui/js/MdHold.js +32 -0
- package/ui/js/MdHtml.js +307 -0
- package/ui/js/MdHtmlBlock.js +290 -0
- package/ui/js/MdHtmlHeading.js +53 -0
- package/ui/js/MdHtmlImage.js +179 -0
- package/ui/js/MdInline.js +154 -0
- package/ui/js/MdItems.js +212 -0
- package/ui/js/MdLeaf.js +309 -0
- package/ui/js/MdLink.js +196 -0
- package/ui/js/MdMath.js +67 -0
- package/ui/js/MdParagraphs.js +138 -0
- package/ui/js/MdRefs.js +232 -0
- package/ui/js/MdResolve.js +226 -0
- package/ui/js/MdRun.js +300 -0
- package/ui/js/MdUrl.js +226 -0
- package/ui/js/Menu.js +514 -0
- package/ui/js/MenuContext.js +85 -0
- package/ui/js/MenuFit.js +13 -0
- package/ui/js/MenuRefresh.js +74 -0
- package/ui/js/MenuWheel.js +35 -0
- package/ui/js/Messages.js +186 -0
- package/ui/js/Motion.js +16 -0
- package/ui/js/Mounts.js +320 -0
- package/ui/js/MouseNav.js +13 -0
- package/ui/js/Nav.js +329 -0
- package/ui/js/NetFs.js +26 -0
- package/ui/js/OpenWith.js +83 -0
- package/ui/js/Ops.js +585 -0
- package/ui/js/Palette.js +33 -0
- package/ui/js/PathBar.js +260 -0
- package/ui/js/Permissions.js +179 -0
- package/ui/js/Phones.js +112 -0
- package/ui/js/Picker.js +353 -0
- package/ui/js/PlaceMenu.js +96 -0
- package/ui/js/Places.js +265 -0
- package/ui/js/PreviewAsk.js +21 -0
- package/ui/js/PreviewKeys.js +155 -0
- package/ui/js/PreviewSettle.js +29 -0
- package/ui/js/PreviewSwap.js +101 -0
- package/ui/js/PropertyFacts.js +144 -0
- package/ui/js/Protocols.js +296 -0
- package/ui/js/QuickLookKinds.js +27 -0
- package/ui/js/QuickLookRect.js +24 -0
- package/ui/js/RailDrop.js +51 -0
- package/ui/js/RailKeys.js +87 -0
- package/ui/js/RailMenu.js +133 -0
- package/ui/js/Recent.js +135 -0
- package/ui/js/RecentMode.js +156 -0
- package/ui/js/Reload.js +60 -0
- package/ui/js/Renderer.js +9 -0
- package/ui/js/RunFile.js +143 -0
- package/ui/js/Scripts.js +28 -0
- package/ui/js/Scroll.js +304 -0
- package/ui/js/ScrollOff.js +69 -0
- package/ui/js/Search.js +478 -0
- package/ui/js/Selection.js +97 -0
- package/ui/js/Settings.js +476 -0
- package/ui/js/SettingsAbout.js +97 -0
- package/ui/js/SettingsShelf.js +52 -0
- package/ui/js/SheetKeys.js +42 -0
- package/ui/js/SheetQuery.js +281 -0
- package/ui/js/ShelfPile.js +27 -0
- package/ui/js/SlowClick.js +53 -0
- package/ui/js/SlowOp.js +6 -0
- package/ui/js/Sort.js +134 -0
- package/ui/js/Startup.js +63 -0
- package/ui/js/StateWords.js +17 -0
- package/ui/js/Status.js +238 -0
- package/ui/js/Swap.js +166 -0
- package/ui/js/TabMove.js +39 -0
- package/ui/js/Tabs.js +751 -0
- package/ui/js/Tags.js +134 -0
- package/ui/js/Taildrop.js +128 -0
- package/ui/js/Tap.js +180 -0
- package/ui/js/TextSize.js +107 -0
- package/ui/js/Thumbs.js +158 -0
- package/ui/js/Transfer.js +172 -0
- package/ui/js/Trash.js +84 -0
- package/ui/js/TrashDates.js +47 -0
- package/ui/js/TrashDrop.js +64 -0
- package/ui/js/UiState.js +438 -0
- package/ui/js/Unlock.js +152 -0
- package/ui/js/Update.js +130 -0
- package/ui/js/UserDirs.js +56 -0
- package/ui/qmldir +230 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 GM
|
|
4
|
+
Copyright (c) 2026 Dr. John (醫者小智)
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,512 @@
|
|
|
1
|
-
#
|
|
1
|
+
# flea-qml
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Flea QML is a cross-platform file manager written in Bun JavaScript & QML. It's an unofficial fork of [Flea](https://github.com/thisisgm/flea), the fast GUI file manager for Omarchy
|
|
4
|
+
|
|
5
|
+
> **Preserve the experience, simplify the implementation, extend the capabilities.**
|
|
6
|
+
|
|
7
|
+
- **Preserve the experience**: Flea's QML interface, its views, keys, cards, previews and wording, carried over
|
|
8
|
+
- **Simplify the implementation**: replace the Rust backend with Bun JavaScript, so the build step isn't mandatory anymore
|
|
9
|
+
- **Extend the capabilities**: run across platforms, on Windows, Linux and
|
|
10
|
+
Android, wherever a QML runtime and a JS engine do, including [buninu-browser](https://github.com/jjtseng93/buninu-browser)'s QML frontend.
|
|
11
|
+
|
|
12
|
+
> [!WARNING]
|
|
13
|
+
> Flea QML is still in early development. Features and APIs may be unstable and may change without notice.
|
|
14
|
+
|
|
15
|
+
## Running it
|
|
16
|
+
|
|
17
|
+
1. Install Bun first, then check that it is available on PATH:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npm i -g bun
|
|
21
|
+
bun --version
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
2. Enter the [Buninu userspace](https://github.com/jjtseng93/buninu)
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
# Run a server & open in a browser
|
|
28
|
+
bunx buninu
|
|
29
|
+
|
|
30
|
+
# Open in the current terminal
|
|
31
|
+
# Kitty graphics support is required if you want to show Flea QML inside it directly
|
|
32
|
+
bunx buninu --local
|
|
33
|
+
|
|
34
|
+
# Or do nothing in a @drxiaozhi/minapk Android App
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
3. Start Flea QML with npx or bunx:
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
npx flea-qml
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Or, from the root of this repository:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
bun index.js
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The launcher queries Kitty graphics support.
|
|
50
|
+
When available it uses buninu-browser's default terminal frontend; otherwise
|
|
51
|
+
Windows uses `--win32`, and Linux/Android use `--wayland`.
|
|
52
|
+
|
|
53
|
+
A first argument starting with `--` (except the information options below) bypasses detection and is forwarded unchanged
|
|
54
|
+
to buninu-browser, which decides how to handle it. There is no frontend allowlist:
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
npx flea-qml --casty
|
|
58
|
+
npx flea-qml --win32
|
|
59
|
+
npx flea-qml --wayland
|
|
60
|
+
npx flea-qml --headless
|
|
61
|
+
npx flea-qml --help
|
|
62
|
+
npx flea-qml --version
|
|
63
|
+
npx flea-qml --readme
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
`--help`/`-h`, `--version`/`-V`, and `--readme` run locally without probing Kitty
|
|
67
|
+
or starting the browser. `--version` also shows the browser version pinned in
|
|
68
|
+
`package.json`. `--readme` always prints coloured ANSI Markdown with
|
|
69
|
+
links, including when its output is redirected.
|
|
70
|
+
|
|
71
|
+
When launched, Flea automatically spawns
|
|
72
|
+
[buninu-browser](https://github.com/jjtseng93/buninu-browser) to display its QML
|
|
73
|
+
interface. The browser version is pinned in `package.json` under
|
|
74
|
+
`scripts.browser`. The launcher reads the package
|
|
75
|
+
specification from this field, while still choosing npx, bunx or bun x as below.
|
|
76
|
+
Changing this field updates the requested version for all three launch methods;
|
|
77
|
+
clearing a cache does not change the pinned version.
|
|
78
|
+
|
|
79
|
+
To reinstall cached packages from scratch, see [Clearing package caches](#clearing-package-caches).
|
|
80
|
+
|
|
81
|
+
The browser receives the absolute, URL-escaped `file://` address of the bundled
|
|
82
|
+
`ui/boot/shell.qml`, including on Windows. Remaining arguments go to the browser.
|
|
83
|
+
Package launch order matches buninu-browser's Casty launcher: npx when both npx
|
|
84
|
+
and Bun are on PATH, then bunx, then `bun x` using Bun on PATH or the running Bun.
|
|
85
|
+
A missing Kitty response falls back after 800 ms; explicit selection skips the
|
|
86
|
+
probe. Wayland requires a running compositor. Other non-Windows platforms also
|
|
87
|
+
fall back to Wayland; no native macOS frontend is selected automatically.
|
|
88
|
+
|
|
89
|
+
The npm package is public and includes the full project, without a `files`
|
|
90
|
+
allowlist or project ignore rules (npm's mandatory exclusions still apply).
|
|
91
|
+
|
|
92
|
+
`FLEA_PATH=/some/folder` opens that folder first; for example, from this
|
|
93
|
+
checkout on Linux/Android:
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
FLEA_PATH="$PWD/demos" bun index.js
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
For development, you can also launch a browser checkout directly from this
|
|
100
|
+
repository root, with a Wayland compositor running:
|
|
101
|
+
|
|
102
|
+
```sh
|
|
103
|
+
bun ../buninu-browser/index.js --quickshell-wayland -p ui/boot/shell.qml
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Keyboard shortcuts
|
|
107
|
+
|
|
108
|
+
These are the implemented bindings for the **default** key preset. Letters are
|
|
109
|
+
case-sensitive (`H` means Shift+H). Listing shortcuts apply when the file list
|
|
110
|
+
has focus, not while typing in a text field. Other presets can change bindings;
|
|
111
|
+
press `?` to view or search the current keymap. A terminal, compositor or browser
|
|
112
|
+
frontend may intercept a shortcut before Flea receives it.
|
|
113
|
+
|
|
114
|
+
### Navigation and views
|
|
115
|
+
|
|
116
|
+
| Keys | Action |
|
|
117
|
+
| --- | --- |
|
|
118
|
+
| Up / Down, `k` / `j` | Move through files |
|
|
119
|
+
| Home / End, `g` / `G` | First / last file |
|
|
120
|
+
| PageUp / PageDown | Move by half the visible rows |
|
|
121
|
+
| Left, Backspace, `h` | Parent folder |
|
|
122
|
+
| Right, `l` | Enter a folder or preview a file |
|
|
123
|
+
| Enter | Open the selected item |
|
|
124
|
+
| `H` / `L` | Back / forward in navigation history |
|
|
125
|
+
| `:` | Edit the folder address |
|
|
126
|
+
| Ctrl+1 / Ctrl+2 / Ctrl+3 / Ctrl+4 | List / columns / grid / dual-pane view |
|
|
127
|
+
| `t` | New Flea tab |
|
|
128
|
+
| Ctrl+Enter | Open the selected folder in a tab |
|
|
129
|
+
| `w`, Ctrl+W | Close the current tab |
|
|
130
|
+
| `[` / `]`, Ctrl+PageUp / Ctrl+PageDown | Previous / next tab |
|
|
131
|
+
| `{` / `}`, Ctrl+Shift+PageUp / Ctrl+Shift+PageDown | Move the current tab left / right |
|
|
132
|
+
| Tab / Shift+Tab | Move focus between available interface areas |
|
|
133
|
+
| Ctrl+B | Toggle the sidebar |
|
|
134
|
+
| `.`, Ctrl+Shift+. | Show / hide hidden files |
|
|
135
|
+
| `s` / `S` | Change sort field / reverse sort order |
|
|
136
|
+
| F4 | Fit list columns to their contents |
|
|
137
|
+
| F5, Ctrl+R | Reload the folder |
|
|
138
|
+
| Ctrl++ / Ctrl+- / Ctrl+0 | Increase / decrease / reset text size (Ctrl+Shift variants also work) |
|
|
139
|
+
| `,`, Ctrl+, | Open settings |
|
|
140
|
+
| `?` | Open the searchable keymap |
|
|
141
|
+
|
|
142
|
+
Enter on an ordinary file invokes `xdg-open` from PATH on every platform,
|
|
143
|
+
including Windows. Install or provide an `xdg-open` command there; Flea does not
|
|
144
|
+
substitute a platform-specific opener. Folders navigate inside Flea and archives
|
|
145
|
+
open the built-in preview (except AppImage). Space uses the built-in preview.
|
|
146
|
+
|
|
147
|
+
### Selection and file operations
|
|
148
|
+
|
|
149
|
+
| Keys | Action |
|
|
150
|
+
| --- | --- |
|
|
151
|
+
| `v` | Toggle the current file's selection |
|
|
152
|
+
| Shift+Up / Shift+Down, `K` / `J` | Extend the selection |
|
|
153
|
+
| Ctrl+A | Select all |
|
|
154
|
+
| `V` | Invert the selection |
|
|
155
|
+
| `y`, Ctrl+C | Copy selected files |
|
|
156
|
+
| `x`, Ctrl+X | Cut selected files |
|
|
157
|
+
| `p`, Ctrl+V | Paste files into the current folder |
|
|
158
|
+
| `Y` | Copy the current folder's path |
|
|
159
|
+
| Ctrl+Shift+C | Copy selected file paths |
|
|
160
|
+
| `c` / `P` | Open Copy as / Paste as options |
|
|
161
|
+
| `r`, F2 | Rename; multiple selected files open Bulk rename |
|
|
162
|
+
| Ctrl+Shift+N | Create a folder |
|
|
163
|
+
| Delete, `dd` (press `d` twice) | Move to Trash; in Trash, request permanent deletion |
|
|
164
|
+
| Shift+Delete | Request permanent deletion with confirmation |
|
|
165
|
+
| `=`, Alt+= | Calculate selected/current folders' sizes / all folders' sizes |
|
|
166
|
+
| `m`, Menu, Shift+F10 | Open the item's context menu |
|
|
167
|
+
|
|
168
|
+
### Find and Filter
|
|
169
|
+
|
|
170
|
+
| Keys | Action |
|
|
171
|
+
| --- | --- |
|
|
172
|
+
| `/` | Filter the current listing by name |
|
|
173
|
+
| `f`, Ctrl+F | Open Find |
|
|
174
|
+
| Ctrl+G | Search file contents; in Find, toggle name/content search |
|
|
175
|
+
| Enter in Find | Start the search |
|
|
176
|
+
| Tab / Shift+Tab in Find | Cycle the search scope |
|
|
177
|
+
| Enter in Filter | Return to the list with the filter applied |
|
|
178
|
+
| Up / Down, PageUp / PageDown in a query | Navigate results |
|
|
179
|
+
| `o` in results | Reveal the current item in its containing folder |
|
|
180
|
+
| Esc in Filter | Close Filter |
|
|
181
|
+
| Esc in Find | Stop a running search; when idle, close Find |
|
|
182
|
+
| Esc in the file list | Dismiss Filter first, then Find on a subsequent press |
|
|
183
|
+
|
|
184
|
+
Find and Filter keep their own text-editing focus. Left/Right move the caret;
|
|
185
|
+
clicking the query returns focus to its input. When either query owns focus,
|
|
186
|
+
Esc acts on that query rather than the other one.
|
|
187
|
+
|
|
188
|
+
### Preview and Quick Look
|
|
189
|
+
|
|
190
|
+
| Keys | Action |
|
|
191
|
+
| --- | --- |
|
|
192
|
+
| Space on a file | Open Quick Look |
|
|
193
|
+
| Space / Esc in Quick Look | Close it (Space does not pause media) |
|
|
194
|
+
| Alt+P | Toggle the preview column |
|
|
195
|
+
| Ctrl+Space | Load the selection's preview |
|
|
196
|
+
| Ctrl+Tab | Focus the preview column; from Quick Look, close Quick Look |
|
|
197
|
+
| `i` | Toggle file facts in the visible preview column |
|
|
198
|
+
| Up / Down, `k` / `j` in Quick Look | Preview the previous / next file |
|
|
199
|
+
| PageUp / PageDown, `B` / `F` | Scroll the preview by a page |
|
|
200
|
+
| `B` / `F` in the file list | Scroll the preview column by a page |
|
|
201
|
+
| `w` in text/code Quick Look | Toggle line wrapping |
|
|
202
|
+
| `r` in document Quick Look | Switch between rendered document and source |
|
|
203
|
+
| `p` in media Quick Look | Play / pause |
|
|
204
|
+
| `m` in media Quick Look | Mute / unmute |
|
|
205
|
+
| Left / Right in media Quick Look | Seek backward / forward by 5 seconds |
|
|
206
|
+
| Left / Right in PDF preview | Previous / next PDF page |
|
|
207
|
+
| `-` / `+` in image, HTML or PDF Quick Look | Zoom out / in |
|
|
208
|
+
| `0` in image Quick Look | Fit the image |
|
|
209
|
+
| `e` in PDF Quick Look | Toggle expanded view |
|
|
210
|
+
| `y` in Compare Quick Look | Copy the diff patch |
|
|
211
|
+
|
|
212
|
+
### Extracting archives
|
|
213
|
+
|
|
214
|
+
Both Quick Look and the right preview column offer **Extract to Folder** and
|
|
215
|
+
**Extract here** for ZIP, TAR, TAR.GZ/TGZ and TAR.ZST/TZST archives. Extract to
|
|
216
|
+
Folder uses the archive name without its extension; existing destinations get
|
|
217
|
+
` copy`, ` copy 2`, and so on. Extract here places the contents beside the archive
|
|
218
|
+
and asks for confirmation when the archive contains more than five top-level items
|
|
219
|
+
(files and directories; nested contents count only toward their top-level folder). Cancel is the default.
|
|
220
|
+
Existing items are kept: colliding names get a copy suffix, and existing folders
|
|
221
|
+
are not merged. Work is prepared under a hidden unique name at the destination,
|
|
222
|
+
not in the system temporary directory, so publication stays on the same filesystem.
|
|
223
|
+
|
|
224
|
+
### Menus and dialogs
|
|
225
|
+
|
|
226
|
+
Use Up/Down (or `k`/`j`) to choose a menu row, Right/`l` to enter a submenu,
|
|
227
|
+
Left/`h` to return, Enter to activate, and Esc to dismiss. In Copy as, `p`, `n`,
|
|
228
|
+
`e`, `f`, `u`, and `s` select path, name, stem, folder path, URI, and shell-quoted
|
|
229
|
+
path respectively. Tab/Shift+Tab move between dialog controls; text fields keep
|
|
230
|
+
normal caret, selection, copy and paste editing.
|
|
231
|
+
|
|
232
|
+
## Runtime and supported features
|
|
233
|
+
|
|
234
|
+
The repository aims to be self-contained, needing only buninu-browser to run.
|
|
235
|
+
The backend reads no system database; the one system file it reads is Linux's
|
|
236
|
+
mount table, for a folder's filesystem name. For the clipboard it speaks
|
|
237
|
+
Wayland data-control itself, loading only libc (kernel32 on Windows) to pass
|
|
238
|
+
file descriptors. Without a usable Wayland data-control connection, the QML
|
|
239
|
+
frontend uses Quickshell's text clipboard instead (buninu-browser prefers xclip,
|
|
240
|
+
then its existing platform fallbacks). Paste reads it on demand, with no polling.
|
|
241
|
+
File paths keep their POSIX single-quoted form on every platform, including
|
|
242
|
+
Windows; a cut adds `""` at both ends. This is a text representation of the file
|
|
243
|
+
selection, not Android's native file clipboard. Syntax highlighting runs
|
|
244
|
+
[jsmdcui](https://github.com/jjtseng93/jsmdcui), for syntax colours in previews,
|
|
245
|
+
found beside this repository as `../jsmdcui` or on PATH as `jmi` or `jsmdcui`;
|
|
246
|
+
without it previews are plain text. Compare also runs `diff` through bunmsh or
|
|
247
|
+
a system provider, as described below. Some interface
|
|
248
|
+
code carried over from upstream and Omarchy still asks Linux tools such as
|
|
249
|
+
`hyprctl`, `lsblk` and `fc-match`, and does without them where they are missing.
|
|
250
|
+
|
|
251
|
+
Ported so far: the backend's `list`, `window`, `sort`, `fsinfo`, `peek`,
|
|
252
|
+
`meta`, `code`, `clipSet`, `clipGet`, `clipClear`, `clipWatch`, `collisions`, `mergecollisions`,
|
|
253
|
+
`transfer`, `transfercancel`, `trash`, `trashbrowse`, `menuaction` (selection snapshots and permanent-delete confirmation),
|
|
254
|
+
`mkdir`, `newfile`, `duplicate`, `bulkrename`, `permissions`, `permissionsBatch`, `formats`, `archive` and `quit`, and `flea --ui-state`, which keeps
|
|
255
|
+
`~/.local/state/flea/ui.json` the way upstream does. A transfer copies and moves
|
|
256
|
+
files, folders and links and answers keep, skip, refuse, replace and merge; it has no undo yet,
|
|
257
|
+
and refuses special files. Replace moves the item already there to flea's Trash first and puts it
|
|
258
|
+
back when the transfer fails; merge folds a folder into the folder already there, asking once
|
|
259
|
+
about the names both hold. Other requests and `flea`
|
|
260
|
+
modes are not ported yet; the interface reports them as failed, as with an
|
|
261
|
+
unreachable backend.
|
|
262
|
+
Setting `FLEA_BIN` to upstream's `flea` binary uses it instead, for what is
|
|
263
|
+
not ported yet.
|
|
264
|
+
|
|
265
|
+
Archive previews list ZIP, tar, tar.gz/tgz and tar.zst/tzst without loading the
|
|
266
|
+
whole archive into memory.
|
|
267
|
+
|
|
268
|
+
Compress writes `.zip`, `.tar`, `.tar.gz` and `.tar.zst`, and Extract reads the
|
|
269
|
+
same four, in JavaScript with `node:zlib`; no `bsdtar` or `7z` runs. Both stream
|
|
270
|
+
member data, work under a hidden `.flea-work-*` name beside the result and publish
|
|
271
|
+
it under the first free name (`pack.zip`, `pack copy.zip`, ...), so a failed or
|
|
272
|
+
cancelled run leaves nothing under a real name. Extraction refuses absolute and
|
|
273
|
+
`..` member names and any member that would be written through a link, applies the
|
|
274
|
+
umask to stored modes, and copies a tar hard-link member's bytes instead of
|
|
275
|
+
linking. Passwords, `.7z`, `.rar`, `.tar.xz`, `.tar.bz2`, packages and the
|
|
276
|
+
free-space check are not ported; those are refused with a sentence.
|
|
277
|
+
|
|
278
|
+
New folder, New file, Duplicate, Bulk rename and Permissions follow upstream's
|
|
279
|
+
rules: names are bare (no separator or NUL), creations are exclusive, a bulk rename
|
|
280
|
+
is checked whole before anything moves and swaps through temporary names, and a
|
|
281
|
+
permissions batch changes every item or puts back what it changed. None of these
|
|
282
|
+
is in an undo journal yet. File tags (`settags`, `tagstates`) are not ported. Compressed tar member data is streamed and discarded;
|
|
283
|
+
metadata records over 1 MiB and malformed or truncated archives are rejected.
|
|
284
|
+
Keyboard hints are enabled by default; an explicitly saved disabled setting is
|
|
285
|
+
preserved.
|
|
286
|
+
|
|
287
|
+
## Where it comes from
|
|
288
|
+
|
|
289
|
+
`ui/` started as upstream's `ui/`, exported from
|
|
290
|
+
[`thisisgm/flea@73f3c23`](https://github.com/thisisgm/flea/commit/73f3c23971106f6d47f78bd758f783af3e5b5c78)
|
|
291
|
+
(0.4.0 plus 7 commits). Upstream has since moved its window to GPUI and no
|
|
292
|
+
longer launches this interface; this fork keeps it as the frontend. Changes
|
|
293
|
+
so far:
|
|
294
|
+
|
|
295
|
+
- A row's icon is the emoji the backend sends; language logos give way to it.
|
|
296
|
+
- The interface runs this repository's `src/flea.js` (`ui/js/FleaBin.js`)
|
|
297
|
+
instead of a `flea` on PATH.
|
|
298
|
+
- Upstream's links to `/usr/share/omarchy/shell` are replaced by a copy of the
|
|
299
|
+
two Omarchy QML modules the interface imports, `ui/boot/Commons` and
|
|
300
|
+
`ui/boot/Ui`, from
|
|
301
|
+
[`omacom/omarchy@3c7027d`](https://github.com/omacom/omarchy/commit/3c7027db2a4fa9fa6a49d7af7f87c27ac48e677d).
|
|
302
|
+
- Markdown formulas are set as MathML by Temml (`src/mathml.js`), and Mermaid
|
|
303
|
+
diagrams are drawn by the backend (`src/figure.js`: Pele in a Bun Worker, one
|
|
304
|
+
diagram at a time under a deadline). The HTML preview embeds each diagram as an
|
|
305
|
+
SVG picture; the block view asks the backend for the same SVG. Upstream's
|
|
306
|
+
sandboxed quickjs figure helper and its figure cache are not used.
|
|
307
|
+
|
|
308
|
+
## Layout
|
|
309
|
+
|
|
310
|
+
| Path | What it is |
|
|
311
|
+
| --- | --- |
|
|
312
|
+
| `ui/` | The QML interface and its JS libraries |
|
|
313
|
+
| `ui/boot/Commons`, `ui/boot/Ui` | Omarchy's `Commons` (theme, colours) and `Ui` (panels, dialogs) modules, where `import qs.Commons` finds them: Quickshell's `qs` is the folder `shell.qml` sits in |
|
|
314
|
+
| `src/flea.js` | The `flea` the interface runs; `--backend` answers `ui/Backend.qml` |
|
|
315
|
+
| `src/` (rest) | The backend: listing, ordering, kinds and emoji, filesystem facts |
|
|
316
|
+
| `docs/protocol.md` | Upstream's description of the backend line protocol |
|
|
317
|
+
| `demos/` | One file for every emoji a row can show, and `math-and-diagrams.md` for formulas and Mermaid |
|
|
318
|
+
|
|
319
|
+
## Sidebar places
|
|
320
|
+
|
|
321
|
+
Sidebar places are found by looking, not read from `user-dirs.dirs` alone or
|
|
322
|
+
asked of `lsblk`: a standard folder (Desktop, Downloads, Documents, Pictures,
|
|
323
|
+
Camera, Screenshots, Music, Videos) is listed once it directly holds a file,
|
|
324
|
+
every system lists its temporary folder, and DEVICES adds each root that can be
|
|
325
|
+
listed (`/`, or the drive letters on Windows) and what is mounted under
|
|
326
|
+
`/Volumes`, `/media` and `/run/media`. Android, recognised by
|
|
327
|
+
`/system/bin/linker64`, always lists `/sdcard` and `/sdcard/Download`, and an
|
|
328
|
+
app whose `$TMPDIR` lies in its private folder also gets that folder and
|
|
329
|
+
`/sdcard/Android/media/PACKAGE`. The backend looks again every five seconds
|
|
330
|
+
only while a sidebar is shown; see `docs/protocol.md` "flea-qml probed places".
|
|
331
|
+
|
|
332
|
+
## Deleting files
|
|
333
|
+
|
|
334
|
+
Trash uses the ordinary file pane: Space opens Quick Look, `/` filters,
|
|
335
|
+
and the existing selection, sorting, copy/cut and folder navigation work on
|
|
336
|
+
its real files. The toolbar adds Restore, Restore all and Empty Trash; deletion
|
|
337
|
+
still requires confirmation. Original locations and deletion dates are shown.
|
|
338
|
+
Returning from a trashed folder restores the Trash collection. Moving a file
|
|
339
|
+
out removes its `.trashinfo`; copying leaves it intact. Renaming updates its
|
|
340
|
+
restoration name and refuses collisions.
|
|
341
|
+
|
|
342
|
+
Trash is a virtual collection across volumes, not a writable directory: open
|
|
343
|
+
a real folder before pasting, creating files or using recursive Find (`f`).
|
|
344
|
+
Filter works directly on the collection. This does not add backend features
|
|
345
|
+
that are otherwise unimplemented (for example bulk rename or undo).
|
|
346
|
+
|
|
347
|
+
`bun test/manual-trash-ui.mjs` exercises the shared pane with the sibling
|
|
348
|
+
buninu-browser, isolated HOME/XDG fixtures, preview, filtering, folder Back,
|
|
349
|
+
selected restore, and deletion review/cancellation. It never activates Empty
|
|
350
|
+
Trash, since mounted-volume trash can exist outside those isolated directories.
|
|
351
|
+
|
|
352
|
+
Move to Trash uses freedesktop-style `Trash/files` and `Trash/info`, without
|
|
353
|
+
invoking `gio`. Windows also uses this private Trash folder, not the Windows
|
|
354
|
+
Recycle Bin. Cross-filesystem copies are not attempted: an unusable Trash leaves
|
|
355
|
+
the source in place. Trash browsing, restore and confirmed permanent deletion/emptying
|
|
356
|
+
are supported; undo is not yet ported. Restore refuses an occupied destination.
|
|
357
|
+
The backend discovers home and mounted-volume Trash folders and remembers the
|
|
358
|
+
per-drive folders it has used. Sidebar counts use filesystem watches with a
|
|
359
|
+
five-second reconciliation for newly available volumes, without GIO processes.
|
|
360
|
+
Same-count replacements also refresh the listing. Deletion reviews reuse the
|
|
361
|
+
bounded, non-following tree checks below, including descendant changes and
|
|
362
|
+
single-use confirmation tokens; cancelling invalidates the review.
|
|
363
|
+
|
|
364
|
+
Permanent deletion requires a fresh confirmation token. Changes to the reviewed
|
|
365
|
+
tree invalidate it; refresh reviews only the originally selected paths. Reviews
|
|
366
|
+
refuse filesystem roots, cross-device subtrees, unreadable entries, and trees
|
|
367
|
+
exceeding 100,000 entries or the two-second walk budget. Review failures never
|
|
368
|
+
pretend to be complete totals. Path-based filesystem checks do not provide
|
|
369
|
+
atomic protection against concurrent renames by other processes.
|
|
370
|
+
|
|
371
|
+
## The clipboard
|
|
372
|
+
|
|
373
|
+
Copied files are offered the way other file managers read them
|
|
374
|
+
(`text/uri-list`, GNOME's and KDE's forms) and, as plain text, shell-quoted on
|
|
375
|
+
one line, so a paste into a shell is ready to use:
|
|
376
|
+
|
|
377
|
+
```sh
|
|
378
|
+
'/home/a/file a' '/home/a/it'\''s' # copied
|
|
379
|
+
""'/home/a/file a' '/home/a/it'\''s'"" # cut: the same words between two empty ""
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
There is no clipboard daemon: the backend owns the selection and gives it up
|
|
383
|
+
when it exits. The plain text is what a compositor such as buninu-land keeps
|
|
384
|
+
after that, so a later Flea still reads it back as a copy or a cut, as long as
|
|
385
|
+
every path in it exists.
|
|
386
|
+
|
|
387
|
+
Text-only Copy as and share links use the QML runtime's clipboard. Query-field
|
|
388
|
+
paste accepts either synchronous Quickshell text or buninu-browser's asynchronous
|
|
389
|
+
host clipboard read. These operations do not require `wl-copy`.
|
|
390
|
+
|
|
391
|
+
## Clearing package caches
|
|
392
|
+
|
|
393
|
+
To reinstall cached packages from scratch:
|
|
394
|
+
|
|
395
|
+
```sh
|
|
396
|
+
# npm 11 or later: list the cache keys and their packages
|
|
397
|
+
npm cache npx ls
|
|
398
|
+
|
|
399
|
+
# Use the keys from your own listing for flea-qml, buninu-browser or Casty.
|
|
400
|
+
# The package specification (including its version) affects the key.
|
|
401
|
+
npm cache npx rm FLEA_KEY BROWSER_KEY CASTY_KEY
|
|
402
|
+
|
|
403
|
+
# Or clear all npx packages, including other tools
|
|
404
|
+
npm cache npx rm --force
|
|
405
|
+
|
|
406
|
+
# For packages launched through bunx or bun x
|
|
407
|
+
bun pm cache rm
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
With an older npm, delete the npx cache directory: `~/.npm/_npx`
|
|
411
|
+
(Windows: `%LocalAppData%\npm-cache\_npx`).
|
|
412
|
+
|
|
413
|
+
## Tests
|
|
414
|
+
|
|
415
|
+
Run `bun test test` for archive bounds, menu identity/transfer lifetime and
|
|
416
|
+
clipboard tests. Fixtures are generated in temporary directories and removed
|
|
417
|
+
afterward; no compositor is required.
|
|
418
|
+
|
|
419
|
+
## License
|
|
420
|
+
|
|
421
|
+
MIT, as upstream. See [LICENSE](LICENSE): GM's copyright notice for Flea is
|
|
422
|
+
kept, followed by Dr. John's (醫者小智) for this fork.
|
|
423
|
+
|
|
424
|
+
The tree also carries Omarchy's QML modules, Lucide icon geometry, Temml (with
|
|
425
|
+
mhchem), Pele, and simple-icons and markdown-mark logos, each under its own licence;
|
|
426
|
+
see [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md).
|
|
427
|
+
|
|
428
|
+
### Preview fallback and syntax audit
|
|
429
|
+
|
|
430
|
+
Unknown file types are previewed as text. Local text previews read at most the
|
|
431
|
+
first 1 MiB, replace binary control bytes with visible control pictures, and split
|
|
432
|
+
lines longer than 4096 characters to bound text layout work. Large files and binary
|
|
433
|
+
content use plain text; a notice in the preview indicates truncation or line splitting.
|
|
434
|
+
Failed image, media, or document previews leave the content area blank.
|
|
435
|
+
|
|
436
|
+
To audit syntax colours using a jsmdcui checkout (HTML is excluded):
|
|
437
|
+
|
|
438
|
+
```sh
|
|
439
|
+
bun test/manual-syntax-preview.mjs ../jsmdcui
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
The script discovers `runtime/syntax/*.yaml`, uses that checkout's
|
|
443
|
+
`tests/syntax-parity/samples`, and runs four jobs at a time. It checks explicit
|
|
444
|
+
language highlighting separately from Flea's automatic file preview. The detailed
|
|
445
|
+
report is `flea-syntax-results.json` in the system temporary directory.
|
|
446
|
+
|
|
447
|
+
The current 158 definitions contain three HTML variants, which are skipped.
|
|
448
|
+
All remaining 155 produce colour with an explicit filetype; 149 have verified
|
|
449
|
+
automatically selected, coloured Flea text previews. Markdown normally uses a
|
|
450
|
+
rendered document instead of source colouring. `default`, V and Jinja2 have no
|
|
451
|
+
filename detector; Objective-C shares extensions with other languages; Privoxy's
|
|
452
|
+
config detector requires a directory although jsmdcui matches the basename.
|
|
453
|
+
These are detection limitations, not missing colour rules. The lexical samples
|
|
454
|
+
prove colour reaches the preview backend, not exhaustive syntax correctness or a
|
|
455
|
+
visual check of every language.
|
|
456
|
+
|
|
457
|
+
Flea additionally recognizes V function declarations in the first 64 KiB of `.v`
|
|
458
|
+
files and requests `-filetype v`. Comments and strings are ignored; a Verilog
|
|
459
|
+
`endmodule` keeps the normal detector. Ambiguous files without such evidence keep
|
|
460
|
+
jsmdcui's existing detection. This hint is implemented in Flea, not jsmdcui.
|
|
461
|
+
To explicitly request a language from jsmdcui yourself, use **one dash**:
|
|
462
|
+
|
|
463
|
+
```sh
|
|
464
|
+
bun ../jsmdcui/src/index.js --cat --edit -filetype v /path/to/main.v
|
|
465
|
+
# Or, with the installed launcher:
|
|
466
|
+
jmi --cat --edit -filetype v /path/to/main.v
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
The value is the YAML definition's `filetype`, not necessarily its filename or
|
|
470
|
+
extension. Flea's internal `highlightFile(path, signal, filetype)` forwards this
|
|
471
|
+
setting as separate arguments; failures still fall back to plain text.
|
|
472
|
+
|
|
473
|
+
The Trash address bar displays `trash:///`. Enter `trash:/`, `trash://`, or
|
|
474
|
+
`trash:///` to open the same collection as the sidebar. These root addresses are
|
|
475
|
+
UI aliases only: stored paths, preview readers, restore and deletion are unchanged.
|
|
476
|
+
Trash item URIs and remote authorities are not supported by these aliases.
|
|
477
|
+
|
|
478
|
+
The bottom status bar shows the selected item's full name after the count/size.
|
|
479
|
+
With multiple marked items it shows the current cursor item; Trash uses its
|
|
480
|
+
original name. Long names scroll horizontally instead of being elided. Notices
|
|
481
|
+
and errors temporarily take priority over the name.
|
|
482
|
+
|
|
483
|
+
HTML previews rebuild a passive fragment with Bun's HTMLRewriter: only fixed
|
|
484
|
+
structural/text tags (including nested `div`) are emitted, never source attributes.
|
|
485
|
+
Text's literal angle brackets are escaped; scripts, styles, embedded documents,
|
|
486
|
+
SVG and MathML subtrees are omitted. No source CSS, images or links are loaded.
|
|
487
|
+
The result uses QML RichText with the current theme and local text reflow, rather
|
|
488
|
+
than an external browser screenshot. Source view remains available. HTML reads
|
|
489
|
+
are limited to 1 MiB; larger documents keep the existing plain-text preview path.
|
|
490
|
+
|
|
491
|
+
`bun test test/html-preview.test.js` tests rebuilding and bounded reads.
|
|
492
|
+
With sibling buninu-browser available,
|
|
493
|
+
`bun test/manual-html-security.mjs` checks adversarial fragments in a live page
|
|
494
|
+
using a harmless script counter, and `bun test/manual-html-ui.mjs` checks the real
|
|
495
|
+
backend/QML preview and scrolling. These are regression checks, not a proof
|
|
496
|
+
against every possible parser discrepancy. Never decode the rebuilt fragment's
|
|
497
|
+
entities before parsing it as HTML.
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
Compare two marked regular files with **m → Compare**. The backend searches
|
|
501
|
+
for the sibling `../bunmsh/index.js` first, then `bunmsh` on PATH, invoking
|
|
502
|
+
`bunmsh -cc builtin diff` (with Bun before the sibling entry). Finally it tries
|
|
503
|
+
`Bun.which("diff")`. All providers receive `-u --label A --label B -- A B`
|
|
504
|
+
as separate arguments, without shell interpolation. Providers that cannot run
|
|
505
|
+
or lack unified support fall back to the next candidate.
|
|
506
|
+
|
|
507
|
+
Comparison retains upstream's 1 MiB per-file limit and binary screening, caps
|
|
508
|
+
patch output at 8 MiB, and terminates a diff after 10 seconds. A superseded
|
|
509
|
+
comparison is cancelled and its reply discarded. Requires a bunmsh version
|
|
510
|
+
with unified diff support or a compatible system diff. Test with
|
|
511
|
+
`bun test test/compare.test.js`; with sibling buninu-browser available,
|
|
512
|
+
`bun test/manual-compare-ui.mjs` checks the real backend and Compare view.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
flea-qml is MIT licensed; see [LICENSE](LICENSE). It carries the following
|
|
4
|
+
work by others, each under its own licence, kept beside it in this tree.
|
|
5
|
+
|
|
6
|
+
| Component | Where | Licence | Text |
|
|
7
|
+
| --- | --- | --- | --- |
|
|
8
|
+
| [Flea](https://github.com/thisisgm/flea), GM | `ui/`, `docs/protocol.md`, `src/pele-wrapper.js` wrapper and diagram test fixtures; `src/order.js` ports its name order | MIT | [LICENSE](LICENSE) |
|
|
9
|
+
| [Omarchy](https://github.com/omacom/omarchy) `shell/Commons` and `shell/Ui`, David Heinemeier Hansson | `ui/boot/Commons/`, `ui/boot/Ui/` | MIT | [ui/boot/LICENSE-omarchy](ui/boot/LICENSE-omarchy) |
|
|
10
|
+
| [Lucide](https://github.com/lucide-icons/lucide) icon geometry, some derived from Feather | `ui/js/Icons.js` | ISC; MIT for the Feather-derived icons | [ui/js/LICENSES/ISC-lucide.txt](ui/js/LICENSES/ISC-lucide.txt) |
|
|
11
|
+
| [Pele](https://github.com/obsidianmd/pele) 1.6.0 | `src/vendor/pele.js`, official npm `dist/pele.js`, unchanged (see [source and wrapper notes](docs/pele.md)) | MIT | [src/vendor/LICENSES/MIT-pele.txt](src/vendor/LICENSES/MIT-pele.txt) |
|
|
12
|
+
| [Mermaid](https://github.com/mermaid-js/mermaid) documentation examples, via Pele and Flea | `test/fixtures/pele-parity.json` | MIT | [src/vendor/LICENSES/MIT-mermaid.txt](src/vendor/LICENSES/MIT-mermaid.txt) |
|
|
13
|
+
| [Temml](https://github.com/ronkok/Temml) 0.14.0, Ron Kok | `src/vendor/temml.mjs`: the npm package's `dist/temml.mjs`, unchanged (SHA-256 `09e55a0c364d35b8ef66be49486b90884240a7e66c463a825e096faf27b0d59d`) | MIT | [src/vendor/LICENSES/MIT-temml.txt](src/vendor/LICENSES/MIT-temml.txt) |
|
|
14
|
+
| [KaTeX](https://github.com/KaTeX/KaTeX), Khan Academy and contributors | inherited implementation within `src/vendor/temml.mjs` | MIT | [MIT-katex.txt](src/vendor/LICENSES/MIT-katex.txt), [historical licence](src/vendor/LICENSES/MIT-katex-2015.txt) |
|
|
15
|
+
| [Perseus](https://github.com/Khan/perseus), Khan Academy, via KaTeX | `findEndOfMath` within `src/vendor/temml.mjs` | MIT | [MIT-perseus.txt](src/vendor/LICENSES/MIT-perseus.txt); [provenance limits](docs/temml.md#katex-and-perseus) |
|
|
16
|
+
| [React](https://github.com/facebook/react/tree/v0.3.0), Facebook | `hyphenate` and `escape` adaptations within `src/vendor/temml.mjs` | Apache-2.0, as credited by Temml | [Apache-2.0.txt](src/vendor/LICENSES/Apache-2.0.txt); [historical sources](docs/temml.md#react-utilities) |
|
|
17
|
+
| [mhchem](https://mhchem.github.io/MathJax-mhchem/) 3.3.0 (The MathJax Consortium, Martin Hensel) and Kolen Cheung's MathJax extension, as adapted inside Temml | within `src/vendor/temml.mjs` | Apache-2.0 | [src/vendor/LICENSES/Apache-2.0.txt](src/vendor/LICENSES/Apache-2.0.txt) |
|
|
18
|
+
| [Wayland](https://gitlab.freedesktop.org/wayland/wayland) `wayland.xml`, Kristian Høgsberg, Intel Corporation, Collabora | `src/wayland/protocols/` | MIT | inside the file |
|
|
19
|
+
| [wayland-protocols](https://gitlab.freedesktop.org/wayland/wayland-protocols) `ext-data-control-v1.xml` and [wlr-protocols](https://gitlab.freedesktop.org/wlroots/wlr-protocols) `wlr-data-control-unstable-v1.xml`, Simon Ser, Ivan Molodetskikh, Neal Gompa | `src/wayland/protocols/` | MIT-style | inside each file |
|
|
20
|
+
| [simple-icons](https://github.com/simple-icons/simple-icons) logo geometry | `ui/js/LangMarkPaths.js` | CC0 1.0 | none required |
|
|
21
|
+
| [markdown-mark](https://github.com/dcurtis/markdown-mark), Dustin Curtis | the Markdown mark in `ui/js/Icons.js` | CC0 1.0 | none required |
|
|
22
|
+
|
|
23
|
+
`src/wayland/` adapts buninu-browser's Wayland transport (MIT, Dr. John, as
|
|
24
|
+
[LICENSE](LICENSE)); the XML files are unchanged.
|
|
25
|
+
|
|
26
|
+
The language marks drawn from simple-icons remain their owners' trademarks.
|
|
27
|
+
|
|
28
|
+
See [Temml source and inherited notices](docs/temml.md) for the verified
|
|
29
|
+
distribution checksum, historical references and attribution limits.
|
package/demos/App.java
ADDED
package/demos/Dockerfile
ADDED
package/demos/Main.kt
ADDED
package/demos/Program.cs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
System.Console.WriteLine("Hello from C#");
|
package/demos/README.md
ADDED
package/demos/app.dart
ADDED
package/demos/app.deb
ADDED
|
Binary file
|
package/demos/app.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
console.log("Hello from JavaScript");
|
package/demos/backup.tar
ADDED
|
Binary file
|
|
Binary file
|
package/demos/build.sh
ADDED
package/demos/bundle.zip
ADDED
|
Binary file
|
package/demos/clip.mp4
ADDED
|
Binary file
|
|
Binary file
|
package/demos/disk.iso
ADDED
|
Binary file
|
package/demos/engine.cpp
ADDED
|
Binary file
|
package/demos/flake.nix
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
A file inside the folder.
|
package/demos/font.ttf
ADDED
|
Binary file
|