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.
Files changed (637) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +511 -2
  3. package/THIRD-PARTY-NOTICES.md +29 -0
  4. package/demos/App.java +5 -0
  5. package/demos/Dockerfile +4 -0
  6. package/demos/Main.kt +3 -0
  7. package/demos/Program.cs +1 -0
  8. package/demos/README.md +12 -0
  9. package/demos/app.dart +3 -0
  10. package/demos/app.deb +0 -0
  11. package/demos/app.js +1 -0
  12. package/demos/backup.tar +0 -0
  13. package/demos/budget.xlsx +0 -0
  14. package/demos/build.sh +2 -0
  15. package/demos/bundle.zip +0 -0
  16. package/demos/clip.mp4 +0 -0
  17. package/demos/data.sqlite +0 -0
  18. package/demos/disk.iso +0 -0
  19. package/demos/engine.cpp +5 -0
  20. package/demos/firmware.bin +0 -0
  21. package/demos/flake.nix +4 -0
  22. package/demos/folder/inside.txt +1 -0
  23. package/demos/font.ttf +0 -0
  24. package/demos/index.html +5 -0
  25. package/demos/index.php +2 -0
  26. package/demos/init.lua +1 -0
  27. package/demos/letter.docx +0 -0
  28. package/demos/lib.rs +3 -0
  29. package/demos/main.c +6 -0
  30. package/demos/main.h +3 -0
  31. package/demos/math-and-diagrams.md +200 -0
  32. package/demos/notes.tar.gz +0 -0
  33. package/demos/notes.txt +3 -0
  34. package/demos/photo.png +0 -0
  35. package/demos/program +2 -0
  36. package/demos/report.pdf +32 -0
  37. package/demos/script.py +1 -0
  38. package/demos/server.go +7 -0
  39. package/demos/settings.json +4 -0
  40. package/demos/slides.pptx +0 -0
  41. package/demos/song.mp3 +0 -0
  42. package/demos/style.css +4 -0
  43. package/demos/tool.rb +1 -0
  44. package/demos/types.ts +2 -0
  45. package/docs/pele.md +23 -0
  46. package/docs/protocol.md +3420 -0
  47. package/docs/temml.md +63 -0
  48. package/index.js +107 -0
  49. package/package.json +34 -4
  50. package/src/archive.js +407 -0
  51. package/src/archiveops.js +728 -0
  52. package/src/backend.js +369 -0
  53. package/src/bulkrename.js +95 -0
  54. package/src/clip-host.js +76 -0
  55. package/src/clip.js +462 -0
  56. package/src/code.js +168 -0
  57. package/src/compare.js +74 -0
  58. package/src/create.js +128 -0
  59. package/src/dirsize.js +147 -0
  60. package/src/figure-svg.js +530 -0
  61. package/src/figure-thread.js +23 -0
  62. package/src/figure.js +132 -0
  63. package/src/find.js +55 -0
  64. package/src/flea.js +39 -0
  65. package/src/fsinfo.js +39 -0
  66. package/src/highlight.js +141 -0
  67. package/src/html.js +52 -0
  68. package/src/kinds.js +89 -0
  69. package/src/listing.js +130 -0
  70. package/src/markdown-html.js +317 -0
  71. package/src/mathml.js +186 -0
  72. package/src/menu.js +180 -0
  73. package/src/meta.js +135 -0
  74. package/src/office.js +810 -0
  75. package/src/order.js +100 -0
  76. package/src/peek.js +49 -0
  77. package/src/pele-wrapper.js +695 -0
  78. package/src/permissions.js +180 -0
  79. package/src/places.js +313 -0
  80. package/src/preview-language.js +10 -0
  81. package/src/terminal-server.js +95 -0
  82. package/src/terminal-shell.js +26 -0
  83. package/src/transfer.js +669 -0
  84. package/src/trash-record.js +41 -0
  85. package/src/trash.js +210 -0
  86. package/src/trashbrowse.js +327 -0
  87. package/src/uistate.js +393 -0
  88. package/src/uistore.js +168 -0
  89. package/src/vendor/LICENSES/Apache-2.0.txt +202 -0
  90. package/src/vendor/LICENSES/MIT-katex-2015.txt +27 -0
  91. package/src/vendor/LICENSES/MIT-katex.txt +21 -0
  92. package/src/vendor/LICENSES/MIT-mermaid.txt +21 -0
  93. package/src/vendor/LICENSES/MIT-pele.txt +40 -0
  94. package/src/vendor/LICENSES/MIT-perseus.txt +18 -0
  95. package/src/vendor/LICENSES/MIT-temml.txt +21 -0
  96. package/src/vendor/pele.js +145 -0
  97. package/src/vendor/temml.mjs +14708 -0
  98. package/src/watch.js +98 -0
  99. package/src/wayland/client.js +109 -0
  100. package/src/wayland/protocol.js +55 -0
  101. package/src/wayland/protocols/ext-data-control-v1.xml +276 -0
  102. package/src/wayland/protocols/wayland.xml +3248 -0
  103. package/src/wayland/protocols/wlr-data-control-unstable-v1.xml +278 -0
  104. package/src/wayland/resource-io.js +6 -0
  105. package/src/wayland/socket-discovery.js +26 -0
  106. package/src/wayland/transport-posix.js +120 -0
  107. package/src/wayland/transport-win32.js +11 -0
  108. package/src/wayland/transport.js +3 -0
  109. package/src/wayland/win32-resources.js +80 -0
  110. package/src/wayland/win32-wire.js +62 -0
  111. package/test/archive.test.js +80 -0
  112. package/test/bench-markdown-scroll.mjs +190 -0
  113. package/test/clip-host.test.js +113 -0
  114. package/test/code-preview.test.js +35 -0
  115. package/test/compare-ui-paths.test.js +24 -0
  116. package/test/compare.test.js +54 -0
  117. package/test/delete-trash.test.js +67 -0
  118. package/test/dirsize.test.js +138 -0
  119. package/test/file-ops.test.js +307 -0
  120. package/test/file-url.test.js +24 -0
  121. package/test/find-contents.test.js +161 -0
  122. package/test/find-input.test.js +66 -0
  123. package/test/fixtures/pele-parity.json +1006 -0
  124. package/test/highlight-launcher.test.js +35 -0
  125. package/test/html-preview.test.js +22 -0
  126. package/test/input.test.js +15 -0
  127. package/test/keymap.test.js +26 -0
  128. package/test/language-icons.test.js +36 -0
  129. package/test/launcher.test.js +51 -0
  130. package/test/manual-archive-here-ui.mjs +47 -0
  131. package/test/manual-code-scroll.mjs +28 -0
  132. package/test/manual-column-scroll.mjs +24 -0
  133. package/test/manual-compare-ui.mjs +20 -0
  134. package/test/manual-find-status.mjs +37 -0
  135. package/test/manual-folder-focus.mjs +63 -0
  136. package/test/manual-html-security.mjs +23 -0
  137. package/test/manual-html-ui.mjs +30 -0
  138. package/test/manual-syntax-preview.mjs +26 -0
  139. package/test/manual-terminal-lifecycle.mjs +42 -0
  140. package/test/manual-terminal-navigation.mjs +48 -0
  141. package/test/manual-terminal-ui.mjs +47 -0
  142. package/test/manual-trash-ui.mjs +86 -0
  143. package/test/markdown-diagrams.test.js +93 -0
  144. package/test/markdown-html.test.js +105 -0
  145. package/test/mathml.test.js +92 -0
  146. package/test/menu-transfer.test.js +57 -0
  147. package/test/office-preview.test.js +154 -0
  148. package/test/pele-parity.test.js +28 -0
  149. package/test/places.test.js +134 -0
  150. package/test/preview-keys.test.js +60 -0
  151. package/test/preview-language.test.js +22 -0
  152. package/test/status-filename.test.js +20 -0
  153. package/test/transfer-replace-merge.test.js +187 -0
  154. package/test/trash-address.test.js +23 -0
  155. package/test/trash-view.test.js +37 -0
  156. package/test/trashbrowse.test.js +135 -0
  157. package/ui/AboutFacts.qml +78 -0
  158. package/ui/ArchiveCards.qml +95 -0
  159. package/ui/ArchiveCompressDialog.qml +378 -0
  160. package/ui/ArchiveHereConfirm.qml +127 -0
  161. package/ui/ArchivePasswordDialog.qml +257 -0
  162. package/ui/Backend.qml +775 -0
  163. package/ui/BulkOldNames.qml +47 -0
  164. package/ui/BulkRenameDialog.qml +380 -0
  165. package/ui/CardFrame.qml +67 -0
  166. package/ui/CardScroll.qml +79 -0
  167. package/ui/CheckBox.qml +73 -0
  168. package/ui/ChromeBar.qml +360 -0
  169. package/ui/ChromeButton.qml +131 -0
  170. package/ui/ChromeModes.qml +43 -0
  171. package/ui/CodeLines.qml +256 -0
  172. package/ui/CodeRefusal.qml +52 -0
  173. package/ui/CollideConfirm.qml +147 -0
  174. package/ui/CollideHost.qml +167 -0
  175. package/ui/ColumnPane.qml +525 -0
  176. package/ui/ColumnRow.qml +380 -0
  177. package/ui/ColumnsArea.qml +594 -0
  178. package/ui/ColumnsLanding.qml +147 -0
  179. package/ui/CompareView.qml +321 -0
  180. package/ui/ContextMenu.qml +743 -0
  181. package/ui/ConvertDialog.qml +456 -0
  182. package/ui/CountedWorker.qml +7 -0
  183. package/ui/Crumb.qml +64 -0
  184. package/ui/CrumbDrop.qml +25 -0
  185. package/ui/CsvTable.qml +394 -0
  186. package/ui/CursorMark.qml +41 -0
  187. package/ui/DefaultClaim.qml +130 -0
  188. package/ui/DeviceLock.qml +47 -0
  189. package/ui/DeviceMounts.qml +540 -0
  190. package/ui/DialogButton.qml +150 -0
  191. package/ui/DialogField.qml +147 -0
  192. package/ui/DialogHeader.qml +31 -0
  193. package/ui/DialogScrim.qml +20 -0
  194. package/ui/DialogTitle.qml +37 -0
  195. package/ui/Divider.qml +9 -0
  196. package/ui/DropInto.qml +126 -0
  197. package/ui/DropTarget.qml +35 -0
  198. package/ui/DropboxMark.qml +60 -0
  199. package/ui/EmptyState.qml +150 -0
  200. package/ui/EscapeHint.qml +11 -0
  201. package/ui/FactsTable.qml +54 -0
  202. package/ui/FastScrollHandler.qml +476 -0
  203. package/ui/FatNamesConfirm.qml +157 -0
  204. package/ui/Favourites.qml +143 -0
  205. package/ui/FigureService.qml +120 -0
  206. package/ui/FileDrag.qml +267 -0
  207. package/ui/FilterStrip.qml +133 -0
  208. package/ui/FitMetrics.qml +22 -0
  209. package/ui/FlashDriveRows.qml +137 -0
  210. package/ui/FlashHost.qml +72 -0
  211. package/ui/FlashImageRow.qml +104 -0
  212. package/ui/FlashRunner.qml +119 -0
  213. package/ui/FlashStepRow.qml +172 -0
  214. package/ui/FlashStrip.qml +38 -0
  215. package/ui/FlashView.qml +397 -0
  216. package/ui/FleaMark.qml +88 -0
  217. package/ui/FlyoutFade.qml +23 -0
  218. package/ui/FontPane.qml +170 -0
  219. package/ui/Glass.qml +114 -0
  220. package/ui/GlassTagger.qml +59 -0
  221. package/ui/Glyph.qml +64 -0
  222. package/ui/GlyphSolid.qml +22 -0
  223. package/ui/GridArea.qml +664 -0
  224. package/ui/GridTile.qml +325 -0
  225. package/ui/GvfsBridge.qml +164 -0
  226. package/ui/Header.qml +433 -0
  227. package/ui/HoverTimers.qml +39 -0
  228. package/ui/HtmlClip.qml +30 -0
  229. package/ui/HtmlPane.qml +63 -0
  230. package/ui/HyprlandMark.qml +45 -0
  231. package/ui/Ipc.qml +1005 -0
  232. package/ui/IpcControls.qml +7 -0
  233. package/ui/IpcMenuState.qml +48 -0
  234. package/ui/IpcPreviewState.qml +185 -0
  235. package/ui/JumpPath.qml +51 -0
  236. package/ui/KeymapSheet.qml +561 -0
  237. package/ui/KeymapSheetResult.qml +89 -0
  238. package/ui/KindStack.qml +40 -0
  239. package/ui/LangMark.qml +51 -0
  240. package/ui/LangMarkLoader.qml +26 -0
  241. package/ui/List.qml +480 -0
  242. package/ui/LoadingState.qml +54 -0
  243. package/ui/LocalSend.qml +56 -0
  244. package/ui/LocalSendMark.qml +73 -0
  245. package/ui/MarkdownBlockView.qml +311 -0
  246. package/ui/MarkdownBlocks.qml +35 -0
  247. package/ui/MarkdownFigure.qml +254 -0
  248. package/ui/MarkdownImages.qml +72 -0
  249. package/ui/MarkdownList.qml +81 -0
  250. package/ui/MarkdownMathsText.qml +97 -0
  251. package/ui/MarkdownPane.qml +83 -0
  252. package/ui/MarkdownPictures.qml +41 -0
  253. package/ui/MarkdownQuote.qml +52 -0
  254. package/ui/MarkdownRemote.qml +82 -0
  255. package/ui/MarkdownSource.qml +155 -0
  256. package/ui/MarkdownTable.qml +222 -0
  257. package/ui/MarkdownTableScroll.qml +64 -0
  258. package/ui/MarkdownTableWheel.qml +126 -0
  259. package/ui/MarkdownText.qml +87 -0
  260. package/ui/MarkdownWorker.js +132 -0
  261. package/ui/MatchText.qml +99 -0
  262. package/ui/MediaSession.qml +38 -0
  263. package/ui/MediaSound.qml +26 -0
  264. package/ui/MediaStrip.qml +191 -0
  265. package/ui/MediaTrack.qml +36 -0
  266. package/ui/MediaVolume.qml +54 -0
  267. package/ui/MenuActionDialog.qml +396 -0
  268. package/ui/MenuEdgeFade.qml +24 -0
  269. package/ui/MenuHost.qml +227 -0
  270. package/ui/MenuRow.qml +351 -0
  271. package/ui/MountListing.qml +100 -0
  272. package/ui/NetworkDialog.qml +435 -0
  273. package/ui/NetworkForm.qml +426 -0
  274. package/ui/NetworkMounts.qml +913 -0
  275. package/ui/NetworkPlaces.qml +127 -0
  276. package/ui/OpenWithDialog.qml +613 -0
  277. package/ui/Opener.qml +95 -0
  278. package/ui/Pane.qml +1320 -0
  279. package/ui/PaneMenuActions.qml +527 -0
  280. package/ui/PanePath.qml +90 -0
  281. package/ui/PaneRail.qml +268 -0
  282. package/ui/PaneStates.qml +88 -0
  283. package/ui/PaneSwap.qml +339 -0
  284. package/ui/PaneWire.qml +601 -0
  285. package/ui/ParkedWait.qml +9 -0
  286. package/ui/PathEntry.qml +186 -0
  287. package/ui/PathJump.qml +400 -0
  288. package/ui/PdfViewer.qml +297 -0
  289. package/ui/PermissionsDialog.qml +658 -0
  290. package/ui/PermissionsHeadings.qml +31 -0
  291. package/ui/PhoneMounts.qml +67 -0
  292. package/ui/PickerAnswers.qml +75 -0
  293. package/ui/PickerBox.qml +26 -0
  294. package/ui/PickerChrome.qml +295 -0
  295. package/ui/PickerFilter.qml +97 -0
  296. package/ui/PickerGrid.qml +308 -0
  297. package/ui/PickerHeader.qml +28 -0
  298. package/ui/PickerLifecycle.qml +27 -0
  299. package/ui/PickerList.qml +218 -0
  300. package/ui/PickerListing.qml +149 -0
  301. package/ui/PickerPathBar.qml +127 -0
  302. package/ui/PickerPlaces.qml +189 -0
  303. package/ui/PickerRecent.qml +92 -0
  304. package/ui/PickerSave.qml +101 -0
  305. package/ui/PickerSelection.qml +155 -0
  306. package/ui/PickerWindow.qml +846 -0
  307. package/ui/PowerSectorsReader.qml +10 -0
  308. package/ui/PrebuildDriver.qml +146 -0
  309. package/ui/Preview.qml +1005 -0
  310. package/ui/PreviewAnimation.qml +24 -0
  311. package/ui/PreviewArchive.qml +91 -0
  312. package/ui/PreviewColumn.qml +553 -0
  313. package/ui/PreviewEdge.qml +63 -0
  314. package/ui/PreviewFacts.qml +30 -0
  315. package/ui/PreviewFactsLine.qml +34 -0
  316. package/ui/PreviewHtml.qml +233 -0
  317. package/ui/PreviewImage.qml +253 -0
  318. package/ui/PreviewImagePan.qml +13 -0
  319. package/ui/PreviewImageSharp.qml +32 -0
  320. package/ui/PreviewLines.qml +106 -0
  321. package/ui/PreviewMarkdown.qml +706 -0
  322. package/ui/PreviewMedia.qml +250 -0
  323. package/ui/PreviewPdf.qml +482 -0
  324. package/ui/PreviewScroll.qml +201 -0
  325. package/ui/PreviewSwap.qml +335 -0
  326. package/ui/PreviewText.qml +149 -0
  327. package/ui/ProtocolChip.qml +18 -0
  328. package/ui/QuickLookArchive.qml +41 -0
  329. package/ui/QuickLookBar.qml +103 -0
  330. package/ui/QuickLookPrepare.qml +355 -0
  331. package/ui/QuickLookSwap.qml +10 -0
  332. package/ui/QuickLookWarm.qml +65 -0
  333. package/ui/RailDrop.qml +155 -0
  334. package/ui/RailHeading.qml +19 -0
  335. package/ui/RailPlaces.qml +38 -0
  336. package/ui/RailTrashRow.qml +67 -0
  337. package/ui/RenameField.qml +353 -0
  338. package/ui/RendererRetry.qml +11 -0
  339. package/ui/ResizeHandle.qml +52 -0
  340. package/ui/Reveal.qml +54 -0
  341. package/ui/Row.qml +476 -0
  342. package/ui/RowDrag.qml +213 -0
  343. package/ui/RowDropTarget.qml +27 -0
  344. package/ui/RunCard.qml +286 -0
  345. package/ui/Scripts.qml +65 -0
  346. package/ui/SearchStrip.qml +232 -0
  347. package/ui/SelectionBand.qml +140 -0
  348. package/ui/SelectionPreview.qml +370 -0
  349. package/ui/SettingsFavourite.qml +122 -0
  350. package/ui/SettingsGroup.qml +96 -0
  351. package/ui/SettingsHint.qml +12 -0
  352. package/ui/SettingsMetrics.qml +29 -0
  353. package/ui/SettingsPane.qml +178 -0
  354. package/ui/SettingsPanel.qml +547 -0
  355. package/ui/SettingsRail.qml +128 -0
  356. package/ui/SettingsRow.qml +409 -0
  357. package/ui/SettingsRuler.qml +85 -0
  358. package/ui/SettingsSegment.qml +85 -0
  359. package/ui/ShareBrowser.qml +113 -0
  360. package/ui/ShareLink.qml +67 -0
  361. package/ui/ShelfPins.qml +101 -0
  362. package/ui/Sidebar.qml +728 -0
  363. package/ui/SidebarRow.qml +358 -0
  364. package/ui/Spinner.qml +60 -0
  365. package/ui/StableModel.qml +89 -0
  366. package/ui/StateMessage.qml +84 -0
  367. package/ui/StatusBar.qml +512 -0
  368. package/ui/StatusFileName.qml +27 -0
  369. package/ui/TabBar.qml +673 -0
  370. package/ui/TabDragGeometry.qml +60 -0
  371. package/ui/TagMenuMark.qml +52 -0
  372. package/ui/TagRailSection.qml +53 -0
  373. package/ui/TagSlot.qml +40 -0
  374. package/ui/TagState.qml +150 -0
  375. package/ui/TagSwatch.qml +28 -0
  376. package/ui/Taildrop.qml +86 -0
  377. package/ui/TailscaleMark.qml +50 -0
  378. package/ui/TerminalService.qml +69 -0
  379. package/ui/TerminalTab.qml +48 -0
  380. package/ui/TerminalTabs.qml +27 -0
  381. package/ui/Theme.qml +460 -0
  382. package/ui/ThemeColors.qml +43 -0
  383. package/ui/TransferCard.qml +239 -0
  384. package/ui/TrashConfirm.qml +129 -0
  385. package/ui/TrashDropHandler.qml +11 -0
  386. package/ui/TrashHost.qml +202 -0
  387. package/ui/TrashMonitor.qml +30 -0
  388. package/ui/TrashToolbar.qml +19 -0
  389. package/ui/TrashView.qml +492 -0
  390. package/ui/UnlockDialog.qml +450 -0
  391. package/ui/UnlockHost.qml +206 -0
  392. package/ui/UpdateCheck.qml +97 -0
  393. package/ui/UserDirs.qml +25 -0
  394. package/ui/ViewState.qml +565 -0
  395. package/ui/ViewportScrollBar.qml +195 -0
  396. package/ui/ViewportScrollBars.qml +25 -0
  397. package/ui/WebPreview.qml +33 -0
  398. package/ui/WebPreviewView.qml +26 -0
  399. package/ui/WindowBody.qml +829 -0
  400. package/ui/WindowDrag.qml +35 -0
  401. package/ui/boot/Commons/AudioNodes.qml +50 -0
  402. package/ui/boot/Commons/AudioNodesModel.js +96 -0
  403. package/ui/boot/Commons/Border.qml +243 -0
  404. package/ui/boot/Commons/BorderGeometry.js +373 -0
  405. package/ui/boot/Commons/Color.qml +258 -0
  406. package/ui/boot/Commons/I18n.qml +118 -0
  407. package/ui/boot/Commons/InputDevices.qml +112 -0
  408. package/ui/boot/Commons/InputMethodState.qml +38 -0
  409. package/ui/boot/Commons/IpcRegistry.qml +77 -0
  410. package/ui/boot/Commons/Numbers.js +19 -0
  411. package/ui/boot/Commons/Plural.js +91 -0
  412. package/ui/boot/Commons/ShellIpc.qml +12 -0
  413. package/ui/boot/Commons/Style.qml +561 -0
  414. package/ui/boot/Commons/Translations.qml +100 -0
  415. package/ui/boot/Commons/UntypedInput.qml +152 -0
  416. package/ui/boot/Commons/Util.qml +188 -0
  417. package/ui/boot/Commons/qmldir +13 -0
  418. package/ui/boot/LICENSE-omarchy +20 -0
  419. package/ui/boot/Ui/BackgroundMedia.qml +49 -0
  420. package/ui/boot/Ui/BarIconButton.qml +106 -0
  421. package/ui/boot/Ui/BarIconContent.qml +38 -0
  422. package/ui/boot/Ui/BarIndicator.qml +53 -0
  423. package/ui/boot/Ui/BarWidget.qml +50 -0
  424. package/ui/boot/Ui/BorderOverlay.qml +54 -0
  425. package/ui/boot/Ui/BorderSurface.qml +40 -0
  426. package/ui/boot/Ui/Button.qml +224 -0
  427. package/ui/boot/Ui/ButtonGroup.qml +131 -0
  428. package/ui/boot/Ui/ConfirmDialog.qml +134 -0
  429. package/ui/boot/Ui/CursorSurface.qml +42 -0
  430. package/ui/boot/Ui/Dropdown.qml +245 -0
  431. package/ui/boot/Ui/FilterInput.qml +26 -0
  432. package/ui/boot/Ui/IconContentBounds.qml +141 -0
  433. package/ui/boot/Ui/KeyboardPanel.qml +453 -0
  434. package/ui/boot/Ui/MultiSelect.qml +624 -0
  435. package/ui/boot/Ui/NumberField.qml +86 -0
  436. package/ui/boot/Ui/OpticalGlyph.qml +68 -0
  437. package/ui/boot/Ui/OverlayWindow.qml +102 -0
  438. package/ui/boot/Ui/Panel.qml +60 -0
  439. package/ui/boot/Ui/PanelActionButton.qml +105 -0
  440. package/ui/boot/Ui/PanelController.qml +16 -0
  441. package/ui/boot/Ui/PanelHero.qml +112 -0
  442. package/ui/boot/Ui/PanelKeyCatcher.qml +100 -0
  443. package/ui/boot/Ui/PanelSectionHeader.qml +31 -0
  444. package/ui/boot/Ui/PanelSeparator.qml +19 -0
  445. package/ui/boot/Ui/PanelSlider.qml +156 -0
  446. package/ui/boot/Ui/PanelToolTip.qml +50 -0
  447. package/ui/boot/Ui/PluginBarApi.qml +89 -0
  448. package/ui/boot/Ui/PointerMoveGate.qml +54 -0
  449. package/ui/boot/Ui/PopupCard.qml +181 -0
  450. package/ui/boot/Ui/ScreenMoveRemap.qml +43 -0
  451. package/ui/boot/Ui/SearchableDropdown.qml +354 -0
  452. package/ui/boot/Ui/SizedImage.qml +125 -0
  453. package/ui/boot/Ui/SpeedTestOverlay.qml +412 -0
  454. package/ui/boot/Ui/TextField.qml +58 -0
  455. package/ui/boot/Ui/Toggle.qml +118 -0
  456. package/ui/boot/Ui/ToggleSwitch.qml +115 -0
  457. package/ui/boot/Ui/WidgetButton.qml +172 -0
  458. package/ui/boot/Ui/qmldir +41 -0
  459. package/ui/boot/fleatab.qml +50 -0
  460. package/ui/boot/picker.qml +39 -0
  461. package/ui/boot/shell.qml +131 -0
  462. package/ui/boot/tabtearoff.qml +51 -0
  463. package/ui/js/Anchor.js +379 -0
  464. package/ui/js/AnchorHold.js +162 -0
  465. package/ui/js/Archive.js +157 -0
  466. package/ui/js/ArchiveCard.js +44 -0
  467. package/ui/js/ArchiveOps.js +44 -0
  468. package/ui/js/BackReturn.js +118 -0
  469. package/ui/js/BulkRename.js +100 -0
  470. package/ui/js/Buttons.js +54 -0
  471. package/ui/js/ChromeKeys.js +116 -0
  472. package/ui/js/ClipMarks.js +73 -0
  473. package/ui/js/ClipSelection.js +67 -0
  474. package/ui/js/Clipboard.js +179 -0
  475. package/ui/js/Cloud.js +97 -0
  476. package/ui/js/CodeRuns.js +72 -0
  477. package/ui/js/Collide.js +212 -0
  478. package/ui/js/ColumnFit.js +28 -0
  479. package/ui/js/ColumnMenu.js +111 -0
  480. package/ui/js/Columns.js +298 -0
  481. package/ui/js/ColumnsCarry.js +103 -0
  482. package/ui/js/Compare.js +74 -0
  483. package/ui/js/Contrast.js +157 -0
  484. package/ui/js/ControlReader.js +42 -0
  485. package/ui/js/Convert.js +52 -0
  486. package/ui/js/CopyAs.js +52 -0
  487. package/ui/js/Crumbs.js +178 -0
  488. package/ui/js/Csv.js +231 -0
  489. package/ui/js/Density.js +44 -0
  490. package/ui/js/Devices.js +440 -0
  491. package/ui/js/DirSizes.js +180 -0
  492. package/ui/js/Drag.js +360 -0
  493. package/ui/js/DragOut.js +166 -0
  494. package/ui/js/DropDev.js +52 -0
  495. package/ui/js/Dropbox.js +41 -0
  496. package/ui/js/Eject.js +217 -0
  497. package/ui/js/Errors.js +188 -0
  498. package/ui/js/ExtThumbs.js +115 -0
  499. package/ui/js/Facts.js +402 -0
  500. package/ui/js/FigureDate.js +14 -0
  501. package/ui/js/Filter.js +285 -0
  502. package/ui/js/Find.js +46 -0
  503. package/ui/js/Flash.js +184 -0
  504. package/ui/js/FlashCard.js +79 -0
  505. package/ui/js/FlashEndings.js +125 -0
  506. package/ui/js/FlashPane.js +116 -0
  507. package/ui/js/FleaBin.js +12 -0
  508. package/ui/js/Focus.js +504 -0
  509. package/ui/js/FolderSorts.js +108 -0
  510. package/ui/js/FolderViews.js +44 -0
  511. package/ui/js/Format.js +314 -0
  512. package/ui/js/Fuzzy.js +141 -0
  513. package/ui/js/GlassTag.js +72 -0
  514. package/ui/js/Grid.js +33 -0
  515. package/ui/js/GridGeometry.js +90 -0
  516. package/ui/js/GridNames.js +153 -0
  517. package/ui/js/GvfsBridge.js +200 -0
  518. package/ui/js/HostClipboard.js +29 -0
  519. package/ui/js/Icons.js +218 -0
  520. package/ui/js/Input.js +50 -0
  521. package/ui/js/Jump.js +200 -0
  522. package/ui/js/KeyName.js +64 -0
  523. package/ui/js/Keymap.js +401 -0
  524. package/ui/js/Kinds.js +164 -0
  525. package/ui/js/LICENSES/ISC-lucide.txt +43 -0
  526. package/ui/js/LangMarkPaths.js +47 -0
  527. package/ui/js/LangMarks.js +120 -0
  528. package/ui/js/Lists.js +11 -0
  529. package/ui/js/LocalSend.js +39 -0
  530. package/ui/js/LockedMenu.js +63 -0
  531. package/ui/js/MakeDefault.js +186 -0
  532. package/ui/js/MarkBox.js +7 -0
  533. package/ui/js/Markdown.js +119 -0
  534. package/ui/js/MarkdownLists.js +86 -0
  535. package/ui/js/MarkdownMaths.js +58 -0
  536. package/ui/js/MarkdownPictures.js +32 -0
  537. package/ui/js/MarkdownPrepared.js +139 -0
  538. package/ui/js/MarkdownTableFit.js +34 -0
  539. package/ui/js/Marks.js +148 -0
  540. package/ui/js/Marquee.js +96 -0
  541. package/ui/js/Match.js +93 -0
  542. package/ui/js/Material.js +109 -0
  543. package/ui/js/MdBlocks.js +437 -0
  544. package/ui/js/MdBreak.js +71 -0
  545. package/ui/js/MdChunks.js +70 -0
  546. package/ui/js/MdContainer.js +137 -0
  547. package/ui/js/MdDocument.js +337 -0
  548. package/ui/js/MdEmph.js +97 -0
  549. package/ui/js/MdEntity.js +108 -0
  550. package/ui/js/MdEntityTable.js +223 -0
  551. package/ui/js/MdEscape.js +59 -0
  552. package/ui/js/MdFront.js +37 -0
  553. package/ui/js/MdHold.js +32 -0
  554. package/ui/js/MdHtml.js +307 -0
  555. package/ui/js/MdHtmlBlock.js +290 -0
  556. package/ui/js/MdHtmlHeading.js +53 -0
  557. package/ui/js/MdHtmlImage.js +179 -0
  558. package/ui/js/MdInline.js +154 -0
  559. package/ui/js/MdItems.js +212 -0
  560. package/ui/js/MdLeaf.js +309 -0
  561. package/ui/js/MdLink.js +196 -0
  562. package/ui/js/MdMath.js +67 -0
  563. package/ui/js/MdParagraphs.js +138 -0
  564. package/ui/js/MdRefs.js +232 -0
  565. package/ui/js/MdResolve.js +226 -0
  566. package/ui/js/MdRun.js +300 -0
  567. package/ui/js/MdUrl.js +226 -0
  568. package/ui/js/Menu.js +514 -0
  569. package/ui/js/MenuContext.js +85 -0
  570. package/ui/js/MenuFit.js +13 -0
  571. package/ui/js/MenuRefresh.js +74 -0
  572. package/ui/js/MenuWheel.js +35 -0
  573. package/ui/js/Messages.js +186 -0
  574. package/ui/js/Motion.js +16 -0
  575. package/ui/js/Mounts.js +320 -0
  576. package/ui/js/MouseNav.js +13 -0
  577. package/ui/js/Nav.js +329 -0
  578. package/ui/js/NetFs.js +26 -0
  579. package/ui/js/OpenWith.js +83 -0
  580. package/ui/js/Ops.js +585 -0
  581. package/ui/js/Palette.js +33 -0
  582. package/ui/js/PathBar.js +260 -0
  583. package/ui/js/Permissions.js +179 -0
  584. package/ui/js/Phones.js +112 -0
  585. package/ui/js/Picker.js +353 -0
  586. package/ui/js/PlaceMenu.js +96 -0
  587. package/ui/js/Places.js +265 -0
  588. package/ui/js/PreviewAsk.js +21 -0
  589. package/ui/js/PreviewKeys.js +155 -0
  590. package/ui/js/PreviewSettle.js +29 -0
  591. package/ui/js/PreviewSwap.js +101 -0
  592. package/ui/js/PropertyFacts.js +144 -0
  593. package/ui/js/Protocols.js +296 -0
  594. package/ui/js/QuickLookKinds.js +27 -0
  595. package/ui/js/QuickLookRect.js +24 -0
  596. package/ui/js/RailDrop.js +51 -0
  597. package/ui/js/RailKeys.js +87 -0
  598. package/ui/js/RailMenu.js +133 -0
  599. package/ui/js/Recent.js +135 -0
  600. package/ui/js/RecentMode.js +156 -0
  601. package/ui/js/Reload.js +60 -0
  602. package/ui/js/Renderer.js +9 -0
  603. package/ui/js/RunFile.js +143 -0
  604. package/ui/js/Scripts.js +28 -0
  605. package/ui/js/Scroll.js +304 -0
  606. package/ui/js/ScrollOff.js +69 -0
  607. package/ui/js/Search.js +478 -0
  608. package/ui/js/Selection.js +97 -0
  609. package/ui/js/Settings.js +476 -0
  610. package/ui/js/SettingsAbout.js +97 -0
  611. package/ui/js/SettingsShelf.js +52 -0
  612. package/ui/js/SheetKeys.js +42 -0
  613. package/ui/js/SheetQuery.js +281 -0
  614. package/ui/js/ShelfPile.js +27 -0
  615. package/ui/js/SlowClick.js +53 -0
  616. package/ui/js/SlowOp.js +6 -0
  617. package/ui/js/Sort.js +134 -0
  618. package/ui/js/Startup.js +63 -0
  619. package/ui/js/StateWords.js +17 -0
  620. package/ui/js/Status.js +238 -0
  621. package/ui/js/Swap.js +166 -0
  622. package/ui/js/TabMove.js +39 -0
  623. package/ui/js/Tabs.js +751 -0
  624. package/ui/js/Tags.js +134 -0
  625. package/ui/js/Taildrop.js +128 -0
  626. package/ui/js/Tap.js +180 -0
  627. package/ui/js/TextSize.js +107 -0
  628. package/ui/js/Thumbs.js +158 -0
  629. package/ui/js/Transfer.js +172 -0
  630. package/ui/js/Trash.js +84 -0
  631. package/ui/js/TrashDates.js +47 -0
  632. package/ui/js/TrashDrop.js +64 -0
  633. package/ui/js/UiState.js +438 -0
  634. package/ui/js/Unlock.js +152 -0
  635. package/ui/js/Update.js +130 -0
  636. package/ui/js/UserDirs.js +56 -0
  637. package/ui/qmldir +230 -0
@@ -0,0 +1,401 @@
1
+ .pragma library
2
+
3
+ // Generated from keys.toml by tools/flea-keymap-gen. Do not edit.
4
+ var PRESETS = ["default","vim","mac","windows"]
5
+ var preset = "default"
6
+ var PRESET_KEYS = [
7
+ {"mods":"text","key":"X","keys":"X","action":"carry","frontend":"gui","context":"listing","label":"Carry to another app","preset":"all","code":"","text":"X","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
8
+ {"mods":"ctrl","key":"1","keys":"ctrl-1","action":"viewList","label":"List view","context":"listing","frontend":"all","preset":"default","code":"Key_1","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_1,"mask":(Qt.ControlModifier)},
9
+ {"mods":"ctrl","key":"2","keys":"ctrl-2","action":"viewColumns","label":"Columns view","context":"listing","frontend":"all","preset":"default","code":"Key_2","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_2,"mask":(Qt.ControlModifier)},
10
+ {"mods":"ctrl","key":"3","keys":"ctrl-3","action":"viewGrid","label":"Grid view","context":"listing","frontend":"all","preset":"default","code":"Key_3","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_3,"mask":(Qt.ControlModifier)},
11
+ {"mods":"ctrl","key":"4","keys":"ctrl-4","action":"viewDual","label":"Dual pane","context":"listing","frontend":"all","preset":"default","code":"Key_4","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_4,"mask":(Qt.ControlModifier)},
12
+ {"mods":"ctrl","key":"1","keys":"ctrl-1","action":"viewList","label":"List view","context":"listing","frontend":"all","preset":"vim","code":"Key_1","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_1,"mask":(Qt.ControlModifier)},
13
+ {"mods":"ctrl","key":"2","keys":"ctrl-2","action":"viewColumns","label":"Columns view","context":"listing","frontend":"all","preset":"vim","code":"Key_2","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_2,"mask":(Qt.ControlModifier)},
14
+ {"mods":"ctrl","key":"3","keys":"ctrl-3","action":"viewGrid","label":"Grid view","context":"listing","frontend":"all","preset":"vim","code":"Key_3","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_3,"mask":(Qt.ControlModifier)},
15
+ {"mods":"ctrl","key":"4","keys":"ctrl-4","action":"viewDual","label":"Dual pane","context":"listing","frontend":"all","preset":"vim","code":"Key_4","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_4,"mask":(Qt.ControlModifier)},
16
+ {"mods":"ctrl","key":"1","keys":"ctrl-1","action":"viewList","label":"List view","context":"listing","frontend":"all","preset":"mac","code":"Key_1","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_1,"mask":(Qt.ControlModifier)},
17
+ {"mods":"ctrl","key":"2","keys":"ctrl-2","action":"viewColumns","label":"Columns view","context":"listing","frontend":"all","preset":"mac","code":"Key_2","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_2,"mask":(Qt.ControlModifier)},
18
+ {"mods":"ctrl","key":"3","keys":"ctrl-3","action":"viewGrid","label":"Grid view","context":"listing","frontend":"all","preset":"mac","code":"Key_3","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_3,"mask":(Qt.ControlModifier)},
19
+ {"mods":"ctrl","key":"4","keys":"ctrl-4","action":"viewDual","label":"Dual pane","context":"listing","frontend":"all","preset":"mac","code":"Key_4","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_4,"mask":(Qt.ControlModifier)},
20
+ {"mods":"ctrl","key":"Up","keys":"ctrl-up","action":"parent","label":"up one level","context":"listing","frontend":"all","preset":"mac","code":"Key_Up","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Up,"mask":(Qt.ControlModifier)},
21
+ {"mods":"ctrl","key":"Down","keys":"ctrl-down","action":"open","label":"open","context":"listing","frontend":"all","preset":"mac","code":"Key_Down","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Down,"mask":(Qt.ControlModifier)},
22
+ {"mods":"ctrl","key":"Delete","keys":"ctrl-delete","action":"trash","label":"move to Trash","context":"listing","frontend":"all","preset":"mac","code":"Key_Delete","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Delete,"mask":(Qt.ControlModifier)},
23
+ {"mods":"ctrl","key":"K","keys":"ctrl-k","action":"addNetwork","label":"connect to server","context":"listing","frontend":"all","preset":"mac","code":"Key_K","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_K,"mask":(Qt.ControlModifier)},
24
+ {"mods":"ctrl","key":"H","keys":"ctrl-h","action":"toggleHidden","label":"hidden files","context":"listing","frontend":"all","preset":"windows","code":"Key_H","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_H,"mask":(Qt.ControlModifier)},
25
+ {"mods":"ctrlshift","key":"1","keys":"ctrl-shift-1","action":"viewList","label":"List view","context":"listing","frontend":"all","preset":"windows","code":"Key_1","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_1,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
26
+ {"mods":"ctrlshift","key":"2","keys":"ctrl-shift-2","action":"viewColumns","label":"Columns view","context":"listing","frontend":"all","preset":"windows","code":"Key_2","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_2,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
27
+ {"mods":"ctrlshift","key":"3","keys":"ctrl-shift-3","action":"viewGrid","label":"Grid view","context":"listing","frontend":"all","preset":"windows","code":"Key_3","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_3,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
28
+ {"mods":"ctrlshift","key":"4","keys":"ctrl-shift-4","action":"viewDual","label":"Dual pane","context":"listing","frontend":"all","preset":"windows","code":"Key_4","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_4,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
29
+ {"mods":"ctrl","key":"Right","keys":"ctrl-right","action":"openInPlace","label":"Open in place","context":"listing","frontend":"gui","preset":"all","code":"Key_Right","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Right,"mask":(Qt.ControlModifier)},
30
+ {"mods":"ctrl","key":"Left","keys":"ctrl-left","action":"closeInPlace","label":"Close in place","context":"listing","frontend":"gui","preset":"all","code":"Key_Left","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Left,"mask":(Qt.ControlModifier)},
31
+ {"mods":"ctrl","key":"N","keys":"ctrl-n","action":"windowNew","label":"New window","frontend":"gui","context":"listing,rail","preset":"default","code":"Key_N","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_N,"mask":(Qt.ControlModifier)},
32
+ {"mods":"ctrl","key":"N","keys":"ctrl-n","action":"windowNew","label":"New window","frontend":"gui","context":"listing,rail","preset":"vim","code":"Key_N","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_N,"mask":(Qt.ControlModifier)},
33
+ {"mods":"ctrl","key":"N","keys":"ctrl-n","action":"windowNew","label":"New window","frontend":"gui","context":"listing,rail","preset":"windows","code":"Key_N","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_N,"mask":(Qt.ControlModifier)},
34
+ {"mods":"ctrl","key":"T","keys":"ctrl-t","action":"openTerminal","label":"Open terminal","frontend":"all","context":"listing,rail","preset":"mac","code":"Key_T","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_T,"mask":(Qt.ControlModifier)},
35
+ {"mods":"ctrl","key":"T","keys":"ctrl-t","action":"openTerminal","label":"Open terminal","frontend":"all","context":"listing,rail","preset":"windows","code":"Key_T","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_T,"mask":(Qt.ControlModifier)},
36
+ {"mods":"shift","key":"Delete","keys":"shift-delete","action":"deletePermanently","label":"Delete permanently","frontend":"all","context":"listing","preset":"all","code":"Key_Delete","text":"","ctrl":false,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Delete,"mask":(Qt.ShiftModifier)},
37
+ {"mods":"alt","key":"P","keys":"alt-p","action":"togglePreview","label":"Preview column","frontend":"all","context":"listing","preset":"all","code":"Key_P","text":"","ctrl":false,"shift":false,"alt":true,"super":false,"keycode":Qt.Key_P,"mask":(Qt.AltModifier)},
38
+ {"mods":"ctrl","key":"Space","keys":"ctrl-space","action":"loadPreview","label":"Preview","frontend":"all","context":"listing","preset":"all","code":"Key_Space","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Space,"mask":(Qt.ControlModifier)},
39
+ {"mods":"ctrl","key":"W","keys":"ctrl-w","action":"tabClose","label":"Close tab","frontend":"all","context":"listing,rail","preset":"all","code":"Key_W","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_W,"mask":(Qt.ControlModifier)},
40
+ {"mods":"ctrl","key":"PageDown","keys":"ctrl-pagedown","action":"tabNext","label":"Next tab","frontend":"all","context":"listing,rail","preset":"all","code":"Key_PageDown","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_PageDown,"mask":(Qt.ControlModifier)},
41
+ {"mods":"ctrl","key":"PageUp","keys":"ctrl-pageup","action":"tabPrevious","label":"Previous tab","frontend":"all","context":"listing,rail","preset":"all","code":"Key_PageUp","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_PageUp,"mask":(Qt.ControlModifier)},
42
+ {"mods":"ctrl","key":"Tab","keys":"ctrl-tab","action":"focusPreview","label":"Focus the preview","frontend":"all","context":"listing","preset":"all","code":"Key_Tab","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Tab,"mask":(Qt.ControlModifier)},
43
+ {"mods":"ctrl","key":"Insert","keys":"ctrl-insert","action":"copy","label":"copy","frontend":"tui","context":"listing","preset":"all","code":"Key_Insert","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Insert,"mask":(Qt.ControlModifier)},
44
+ {"mods":"shift","key":"Insert","keys":"shift-insert","action":"paste","label":"paste","frontend":"tui","context":"listing","preset":"all","code":"Key_Insert","text":"","ctrl":false,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Insert,"mask":(Qt.ShiftModifier)},
45
+ {"mods":"text","key":"H","keys":"H","action":"historyBack","label":"Back","frontend":"all","context":"listing","preset":"default","code":"","text":"H","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
46
+ {"mods":"text","key":"H","keys":"H","action":"historyBack","label":"Back","frontend":"all","context":"listing","preset":"vim","code":"","text":"H","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
47
+ {"mods":"text","key":"L","keys":"L","action":"historyForward","label":"Forward","frontend":"all","context":"listing","preset":"default","code":"","text":"L","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
48
+ {"mods":"text","key":"L","keys":"L","action":"historyForward","label":"Forward","frontend":"all","context":"listing","preset":"vim","code":"","text":"L","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
49
+ {"mods":"text","key":"y","keys":"yy","action":"copyArm","label":"copy","frontend":"all","context":"listing","preset":"vim","code":"","text":"y","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
50
+ {"mods":"text","key":"d","keys":"dd","action":"cutArm","label":"cut","frontend":"all","context":"listing","preset":"vim","code":"","text":"d","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
51
+ {"mods":"text","key":"p","keys":"pp","action":"pasteArm","label":"paste","frontend":"all","context":"listing","preset":"vim","code":"","text":"p","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
52
+ {"mods":"text","key":"g","keys":"gg","action":"cursorFirstArm","label":"First item","frontend":"all","context":"listing","preset":"vim","code":"","text":"g","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
53
+ {"mods":"text","key":"D","keys":"D","action":"trash","label":"move to Trash","frontend":"all","context":"listing","preset":"vim","code":"","text":"D","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
54
+ {"mods":"text","key":"u","keys":"u","action":"undo","label":"undo","frontend":"all","context":"listing","preset":"vim","code":"","text":"u","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
55
+ {"mods":"text","key":"l","keys":"l","action":"open","label":"open","frontend":"all","context":"listing","preset":"vim","code":"","text":"l","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
56
+ {"mods":"none","key":"Return","keys":"enter","action":"rename","label":"rename","frontend":"all","context":"listing","preset":"mac","code":"Key_Return","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Return,"mask":(0)},
57
+ {"mods":"none","key":"Enter","keys":"enter","action":"rename","label":"rename","frontend":"all","context":"listing","preset":"mac","code":"Key_Enter","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Enter,"mask":(0)},
58
+ {"mods":"none","key":"Left","keys":"left","action":"parent","label":"up one level","frontend":"all","context":"listing","preset":"mac","code":"Key_Left","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Left,"mask":(0)},
59
+ {"mods":"none","key":"Right","keys":"right","action":"open","label":"open","frontend":"all","context":"listing","preset":"mac","code":"Key_Right","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Right,"mask":(0)},
60
+ {"mods":"ctrl","key":"X","keys":"ctrl-x","action":"","label":"Control+X is inert","frontend":"all","context":"listing","preset":"mac","code":"Key_X","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_X,"mask":(Qt.ControlModifier)},
61
+ {"mods":"super","key":"C","keys":"super-c","action":"copy","label":"copy","frontend":"all","context":"listing","preset":"mac","code":"Key_C","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_C,"mask":(Qt.MetaModifier)},
62
+ {"mods":"super","key":"V","keys":"super-v","action":"paste","label":"paste","frontend":"all","context":"listing","preset":"mac","code":"Key_V","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_V,"mask":(Qt.MetaModifier)},
63
+ {"mods":"superalt","key":"V","keys":"superalt-v","action":"movePaste","label":"Move here","frontend":"all","context":"listing","preset":"mac","code":"Key_V","text":"","ctrl":false,"shift":false,"alt":true,"super":true,"keycode":Qt.Key_V,"mask":(Qt.MetaModifier | Qt.AltModifier)},
64
+ {"mods":"super","key":"D","keys":"super-d","action":"duplicate","label":"Duplicate","frontend":"all","context":"listing","preset":"mac","code":"Key_D","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_D,"mask":(Qt.MetaModifier)},
65
+ {"mods":"super","key":"Z","keys":"super-z","action":"undo","label":"undo","frontend":"all","context":"listing","preset":"mac","code":"Key_Z","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_Z,"mask":(Qt.MetaModifier)},
66
+ {"mods":"ctrlshift","key":"Z","keys":"ctrl-shift-z","action":"redo","label":"Redo","frontend":"all","context":"listing","preset":"default","code":"Key_Z","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Z,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
67
+ {"mods":"supershift","key":"Z","keys":"supershift-z","action":"redo","label":"Redo","frontend":"all","context":"listing","preset":"mac","code":"Key_Z","text":"","ctrl":false,"shift":true,"alt":false,"super":true,"keycode":Qt.Key_Z,"mask":(Qt.MetaModifier | Qt.ShiftModifier)},
68
+ {"mods":"super","key":"A","keys":"super-a","action":"selectAll","label":"Select all","frontend":"all","context":"listing","preset":"mac","code":"Key_A","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_A,"mask":(Qt.MetaModifier)},
69
+ {"mods":"super","key":"I","keys":"super-i","action":"properties","label":"Get info","frontend":"all","context":"listing","preset":"mac","code":"Key_I","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_I,"mask":(Qt.MetaModifier)},
70
+ {"mods":"super","key":"N","keys":"super-n","action":"windowNew","label":"New window","frontend":"gui","context":"listing,rail","preset":"mac","code":"Key_N","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_N,"mask":(Qt.MetaModifier)},
71
+ {"mods":"super","key":"BracketLeft","keys":"super-bracketleft","action":"historyBack","label":"Back","frontend":"all","context":"listing","preset":"mac","code":"Key_BracketLeft","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_BracketLeft,"mask":(Qt.MetaModifier)},
72
+ {"mods":"super","key":"BracketRight","keys":"super-bracketright","action":"historyForward","label":"Forward","frontend":"all","context":"listing","preset":"mac","code":"Key_BracketRight","text":"","ctrl":false,"shift":false,"alt":false,"super":true,"keycode":Qt.Key_BracketRight,"mask":(Qt.MetaModifier)},
73
+ {"mods":"supershift","key":"Period","keys":"supershift-period","action":"toggleHidden","label":"hidden files","frontend":"all","context":"listing","preset":"mac","code":"Key_Period","text":"","ctrl":false,"shift":true,"alt":false,"super":true,"keycode":Qt.Key_Period,"mask":(Qt.MetaModifier | Qt.ShiftModifier)},
74
+ {"mods":"supershift","key":"Greater","keys":"supershift-greater","action":"toggleHidden","label":"hidden files","frontend":"all","context":"listing","preset":"mac","code":"Key_Greater","text":"","ctrl":false,"shift":true,"alt":false,"super":true,"keycode":Qt.Key_Greater,"mask":(Qt.MetaModifier | Qt.ShiftModifier)},
75
+ {"mods":"ctrl","key":"D","keys":"ctrl-d","action":"trash","label":"move to Trash","frontend":"all","context":"listing","preset":"windows","code":"Key_D","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_D,"mask":(Qt.ControlModifier)},
76
+ {"mods":"ctrl","key":"Y","keys":"ctrl-y","action":"redo","label":"Redo","frontend":"all","context":"listing","preset":"windows","code":"Key_Y","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Y,"mask":(Qt.ControlModifier)},
77
+ {"mods":"alt","key":"Return","keys":"alt-return","action":"properties","label":"Get info","frontend":"all","context":"listing","preset":"all","code":"Key_Return","text":"","ctrl":false,"shift":false,"alt":true,"super":false,"keycode":Qt.Key_Return,"mask":(Qt.AltModifier)},
78
+ {"mods":"alt","key":"Enter","keys":"alt-enter","action":"properties","label":"Get info","frontend":"all","context":"listing","preset":"all","code":"Key_Enter","text":"","ctrl":false,"shift":false,"alt":true,"super":false,"keycode":Qt.Key_Enter,"mask":(Qt.AltModifier)},
79
+ {"mods":"alt","key":"Left","keys":"alt-left","action":"historyBack","label":"Back","frontend":"all","context":"listing","preset":"windows","code":"Key_Left","text":"","ctrl":false,"shift":false,"alt":true,"super":false,"keycode":Qt.Key_Left,"mask":(Qt.AltModifier)},
80
+ {"mods":"alt","key":"Right","keys":"alt-right","action":"historyForward","label":"Forward","frontend":"all","context":"listing","preset":"windows","code":"Key_Right","text":"","ctrl":false,"shift":false,"alt":true,"super":false,"keycode":Qt.Key_Right,"mask":(Qt.AltModifier)},
81
+ {"mods":"alt","key":"Up","keys":"alt-up","action":"parent","label":"up one level","frontend":"all","context":"listing","preset":"windows","code":"Key_Up","text":"","ctrl":false,"shift":false,"alt":true,"super":false,"keycode":Qt.Key_Up,"mask":(Qt.AltModifier)},
82
+ {"mods":"none","key":"Escape","keys":"escape","action":"escape","label":"escape","frontend":"all","context":"rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Escape","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Escape,"mask":(0)},
83
+ {"mods":"none","key":"Menu","keys":"menu","action":"menu","label":"context menu","frontend":"all","context":"listing,rail","preset":"all","code":"Key_Menu","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Menu,"mask":(0)},
84
+ {"mods":"none","key":"F4","keys":"f4","action":"autofitColumns","label":"autofit columns","frontend":"gui","context":"listing","preset":"all","code":"Key_F4","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_F4,"mask":(0)},
85
+ {"mods":"shift","key":"F10","keys":"shift-f10","action":"menu","label":"context menu","frontend":"all","context":"listing,rail","preset":"all","code":"Key_F10","text":"","ctrl":false,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_F10,"mask":(Qt.ShiftModifier)},
86
+ {"mods":"none","key":"Down","keys":"down","action":"cursorDown","label":"cursorDown","frontend":"all","context":"rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Down","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Down,"mask":(0)},
87
+ {"mods":"none","key":"Up","keys":"up","action":"cursorUp","label":"cursorUp","frontend":"all","context":"rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Up","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Up,"mask":(0)},
88
+ {"mods":"text","key":"j","keys":"j","action":"cursorDown","label":"cursorDown","frontend":"all","context":"rail,menu,panel,preview,media","preset":"all","code":"","text":"j","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
89
+ {"mods":"text","key":"p","keys":"p","action":"playPause","label":"playPause","frontend":"all","context":"media","preset":"all","code":"","text":"p","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
90
+ {"mods":"text","key":"m","keys":"m","action":"mute","label":"Mute","frontend":"all","context":"media","preset":"all","code":"","text":"m","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
91
+ {"mods":"text","key":"k","keys":"k","action":"cursorUp","label":"cursorUp","frontend":"all","context":"rail,menu,panel,preview,media","preset":"all","code":"","text":"k","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
92
+ {"mods":"none","key":"Return","keys":"return","action":"open","label":"open","frontend":"all","context":"rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Return","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Return,"mask":(0)},
93
+ {"mods":"none","key":"Enter","keys":"enter","action":"open","label":"open","frontend":"all","context":"rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Enter","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Enter,"mask":(0)},
94
+ {"mods":"none","key":"Space","keys":"space","action":"preview","label":"preview","frontend":"all","context":"rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Space","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Space,"mask":(0)},
95
+ {"mods":"none","key":"Tab","keys":"tab","action":"focusNext","label":"focusNext","frontend":"all","context":"rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Tab","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Tab,"mask":(0)},
96
+ {"mods":"shift","key":"Tab","keys":"shift-tab","action":"focusPrevious","label":"Previous area","frontend":"all","context":"listing,rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Tab","text":"","ctrl":false,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Tab,"mask":(Qt.ShiftModifier)},
97
+ {"mods":"shift","key":"Backtab","keys":"shift-backtab","action":"focusPrevious","label":"Previous area","frontend":"all","context":"listing,rail,menu,panel,preview,pdf,media","preset":"all","code":"Key_Backtab","text":"","ctrl":false,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Backtab,"mask":(Qt.ShiftModifier)},
98
+ {"mods":"none","key":"Right","keys":"right","action":"menuRight","label":"menuRight","frontend":"all","context":"menu","preset":"all","code":"Key_Right","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Right,"mask":(0)},
99
+ {"mods":"none","key":"Left","keys":"left","action":"parent","label":"parent","frontend":"all","context":"menu","preset":"all","code":"Key_Left","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Left,"mask":(0)},
100
+ {"mods":"text","key":"l","keys":"l","action":"menuRight","label":"menuRight","frontend":"all","context":"menu","preset":"all","code":"","text":"l","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
101
+ {"mods":"text","key":"1","keys":"1","action":"tag1","label":"tag 1","frontend":"all","context":"menu","preset":"all","code":"","text":"1","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
102
+ {"mods":"text","key":"2","keys":"2","action":"tag2","label":"tag 2","frontend":"all","context":"menu","preset":"all","code":"","text":"2","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
103
+ {"mods":"text","key":"3","keys":"3","action":"tag3","label":"tag 3","frontend":"all","context":"menu","preset":"all","code":"","text":"3","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
104
+ {"mods":"text","key":"4","keys":"4","action":"tag4","label":"tag 4","frontend":"all","context":"menu","preset":"all","code":"","text":"4","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
105
+ {"mods":"text","key":"5","keys":"5","action":"tag5","label":"tag 5","frontend":"all","context":"menu","preset":"all","code":"","text":"5","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
106
+ {"mods":"text","key":"6","keys":"6","action":"tag6","label":"tag 6","frontend":"all","context":"menu","preset":"all","code":"","text":"6","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
107
+ {"mods":"text","key":"7","keys":"7","action":"tag7","label":"tag 7","frontend":"all","context":"menu","preset":"all","code":"","text":"7","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
108
+ {"mods":"text","key":"h","keys":"h","action":"parent","label":"parent","frontend":"all","context":"menu","preset":"all","code":"","text":"h","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
109
+ {"mods":"text","key":"p","keys":"p","action":"copyPath","label":"copy path","frontend":"all","context":"menu","preset":"all","code":"","text":"p","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
110
+ {"mods":"text","key":"n","keys":"n","action":"copyName","label":"copy name","frontend":"all","context":"menu","preset":"all","code":"","text":"n","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
111
+ {"mods":"text","key":"e","keys":"e","action":"copyStem","label":"copy name without extension","frontend":"all","context":"menu","preset":"all","code":"","text":"e","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
112
+ {"mods":"text","key":"f","keys":"f","action":"copydirpath","label":"copy folder path","frontend":"all","context":"menu","preset":"all","code":"","text":"f","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
113
+ {"mods":"text","key":"u","keys":"u","action":"copyUri","label":"copy file URI","frontend":"all","context":"menu","preset":"all","code":"","text":"u","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
114
+ {"mods":"text","key":"s","keys":"s","action":"copyQuoted","label":"copy shell-quoted","frontend":"all","context":"menu","preset":"all","code":"","text":"s","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
115
+ {"mods":"text","key":"L","keys":"L","action":"pasteLink","label":"paste link","frontend":"all","context":"menu","preset":"all","code":"","text":"L","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
116
+ {"mods":"text","key":"a","keys":"a","action":"pasteAbsoluteLink","label":"paste absolute link","frontend":"all","context":"menu","preset":"all","code":"","text":"a","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
117
+ {"mods":"text","key":"H","keys":"H","action":"pasteHardLink","label":"paste hard link","frontend":"all","context":"menu","preset":"all","code":"","text":"H","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
118
+ {"mods":"ctrl","key":"Tab","keys":"ctrl-tab","action":"focusPreview","label":"focus listing","frontend":"all","context":"preview,pdf,media","preset":"all","code":"Key_Tab","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Tab,"mask":(Qt.ControlModifier)},
119
+ {"mods":"none","key":"Left","keys":"left","action":"seekBack","label":"seekBack","frontend":"all","context":"preview,pdf,media","preset":"all","code":"Key_Left","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Left,"mask":(0)},
120
+ {"mods":"none","key":"Right","keys":"right","action":"seekForward","label":"seekForward","frontend":"all","context":"preview,pdf,media","preset":"all","code":"Key_Right","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Right,"mask":(0)},
121
+ {"mods":"text","key":"h","keys":"h","action":"seekBack","label":"seekBack","frontend":"all","context":"preview,pdf,media","preset":"all","code":"","text":"h","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
122
+ {"mods":"text","key":"l","keys":"l","action":"pageForward","label":"pageForward","frontend":"all","context":"preview,pdf,media","preset":"all","code":"","text":"l","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
123
+ {"mods":"text","key":"r","keys":"r","action":"markdownView","label":"rendered/source","frontend":"all","context":"preview","preset":"all","code":"","text":"r","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
124
+ {"mods":"text","key":"w","keys":"w","action":"toggleWrap","label":"wrap","frontend":"all","context":"preview","preset":"all","code":"","text":"w","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
125
+ {"mods":"text","key":"[","keys":"[","action":"previousSheet","label":"previous sheet","frontend":"all","context":"preview,pdf","preset":"all","code":"","text":"[","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
126
+ {"mods":"text","key":"]","keys":"]","action":"nextSheet","label":"next sheet","frontend":"all","context":"preview,pdf","preset":"all","code":"","text":"]","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
127
+ {"mods":"text","key":"y","keys":"y","action":"copyPatch","label":"copy patch","frontend":"all","context":"preview","preset":"all","code":"","text":"y","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
128
+ {"mods":"text","key":"-","keys":"-","action":"zoomOut","label":"zoomOut","frontend":"all","context":"preview,pdf","preset":"all","code":"","text":"-","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
129
+ {"mods":"text","key":"+","keys":"+","action":"zoomIn","label":"zoomIn","frontend":"all","context":"preview,pdf","preset":"all","code":"","text":"+","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
130
+ {"mods":"text","key":"0","keys":"0","action":"zoomFit","label":"zoomFit","frontend":"all","context":"preview","preset":"all","code":"","text":"0","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
131
+ {"mods":"text","key":"e","keys":"e","action":"expand","label":"expand","frontend":"all","context":"pdf","preset":"all","code":"","text":"e","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
132
+ {"mods":"none","key":"Escape","keys":"escape","action":"escape","label":"close editor","frontend":"all","context":"editor","preset":"all","code":"Key_Escape","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Escape,"mask":(0)},
133
+ {"mods":"text","key":"F","keys":"F","action":"previewPageForward","label":"Page preview forward","frontend":"gui","context":"listing,preview,pdf","preset":"all","code":"","text":"F","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
134
+ {"mods":"text","key":"B","keys":"B","action":"previewPageBack","label":"Page preview back","frontend":"gui","context":"listing,preview,pdf","preset":"all","code":"","text":"B","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
135
+ {"mods":"ctrl","key":"D","keys":"ctrl-d","action":"pageDown","label":"Page down","frontend":"gui","context":"preview,pdf","preset":"all","code":"Key_D","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_D,"mask":(Qt.ControlModifier)},
136
+ {"mods":"ctrl","key":"U","keys":"ctrl-u","action":"pageUp","label":"Page up","frontend":"gui","context":"preview,pdf","preset":"all","code":"Key_U","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_U,"mask":(Qt.ControlModifier)},
137
+ {"mods":"none","key":"PageDown","keys":"pagedown","action":"pageDown","label":"Page down","frontend":"gui","context":"preview,pdf","preset":"all","code":"Key_PageDown","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_PageDown,"mask":(0)},
138
+ {"mods":"none","key":"PageUp","keys":"pageup","action":"pageUp","label":"Page up","frontend":"gui","context":"preview,pdf","preset":"all","code":"Key_PageUp","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_PageUp,"mask":(0)},
139
+ ]
140
+ var SHARED_KEYS = [
141
+ {"mods":"ctrlshift","key":"N","keys":"ctrl-shift-n","action":"newFolder","context":"listing","frontend":"all","preset":"all","code":"Key_N","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_N,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
142
+ {"mods":"ctrlshift","key":"Plus","keys":"ctrl-shift-plus","action":"textSizeUp","context":"listing","frontend":"all","preset":"all","code":"Key_Plus","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Plus,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
143
+ {"mods":"ctrlshift","key":"Equal","keys":"ctrl-shift-equal","action":"textSizeUp","context":"listing","frontend":"all","preset":"all","code":"Key_Equal","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Equal,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
144
+ {"mods":"ctrlshift","key":"Minus","keys":"ctrl-shift-minus","action":"textSizeDown","context":"listing","frontend":"all","preset":"all","code":"Key_Minus","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Minus,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
145
+ {"mods":"ctrlshift","key":"Underscore","keys":"ctrl-shift-underscore","action":"textSizeDown","context":"listing","frontend":"all","preset":"all","code":"Key_Underscore","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Underscore,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
146
+ {"mods":"ctrlshift","key":"0","keys":"ctrl-shift-0","action":"textSizeReset","context":"listing","frontend":"all","preset":"all","code":"Key_0","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_0,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
147
+ {"mods":"ctrlshift","key":"Greater","keys":"ctrl-shift-greater","action":"toggleHidden","context":"listing","frontend":"all","preset":"all","code":"Key_Greater","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Greater,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
148
+ {"mods":"ctrlshift","key":"Period","keys":"ctrl-shift-.","action":"toggleHidden","context":"listing","frontend":"all","preset":"all","code":"Key_Period","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Period,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
149
+ {"mods":"ctrlshift","key":"PageUp","keys":"ctrl-shift-pageup","action":"tabMoveLeft","context":"listing","frontend":"all","label":"Move tab left","preset":"all","code":"Key_PageUp","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_PageUp,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
150
+ {"mods":"ctrlshift","key":"PageDown","keys":"ctrl-shift-pagedown","action":"tabMoveRight","context":"listing","frontend":"all","label":"Move tab right","preset":"all","code":"Key_PageDown","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_PageDown,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
151
+ {"mods":"ctrlshift","key":"C","keys":"ctrl-shift-c","action":"copyPath","context":"listing","frontend":"all","label":"Copy path","preset":"all","code":"Key_C","text":"","ctrl":true,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_C,"mask":(Qt.ControlModifier | Qt.ShiftModifier)},
152
+ {"mods":"ctrl","key":"D","keys":"ctrl-d","action":"pageDown","context":"listing","frontend":"all","label":"Page down","preset":"all","code":"Key_D","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_D,"mask":(Qt.ControlModifier)},
153
+ {"mods":"ctrl","key":"U","keys":"ctrl-u","action":"pageUp","context":"listing","frontend":"all","label":"Page up","preset":"all","code":"Key_U","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_U,"mask":(Qt.ControlModifier)},
154
+ {"mods":"ctrl","key":"A","keys":"ctrl-a","action":"selectAll","context":"listing","frontend":"all","label":"Select all","preset":"all","code":"Key_A","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_A,"mask":(Qt.ControlModifier)},
155
+ {"mods":"ctrl","key":"C","keys":"ctrl-c","action":"copy","context":"listing","frontend":"all","preset":"all","code":"Key_C","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_C,"mask":(Qt.ControlModifier)},
156
+ {"mods":"ctrl","key":"V","keys":"ctrl-v","action":"paste","context":"listing","frontend":"all","preset":"all","code":"Key_V","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_V,"mask":(Qt.ControlModifier)},
157
+ {"mods":"ctrl","key":"X","keys":"ctrl-x","action":"cut","context":"listing","frontend":"all","preset":"all","code":"Key_X","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_X,"mask":(Qt.ControlModifier)},
158
+ {"mods":"ctrl","key":"Z","keys":"ctrl-z","action":"undo","context":"listing","frontend":"all","preset":"all","code":"Key_Z","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Z,"mask":(Qt.ControlModifier)},
159
+ {"mods":"ctrl","key":"F","keys":"ctrl-f","action":"search","context":"listing","frontend":"all","preset":"all","code":"Key_F","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_F,"mask":(Qt.ControlModifier)},
160
+ {"mods":"ctrl","key":"G","keys":"ctrl-g","action":"searchContents","context":"listing","frontend":"all","preset":"all","code":"Key_G","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_G,"mask":(Qt.ControlModifier)},
161
+ {"mods":"text","key":"=","keys":"=","action":"measureDirs","context":"listing","frontend":"all","label":"Measure folder size","preset":"all","code":"","text":"=","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
162
+ {"mods":"alt","key":"Equal","keys":"alt-equal","action":"measureAllDirs","context":"listing","frontend":"all","label":"Measure every folder","preset":"all","code":"Key_Equal","text":"","ctrl":false,"shift":false,"alt":true,"super":false,"keycode":Qt.Key_Equal,"mask":(Qt.AltModifier)},
163
+ {"mods":"ctrl","key":"E","keys":"ctrl-e","action":"eject","context":"listing","frontend":"all","preset":"all","code":"Key_E","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_E,"mask":(Qt.ControlModifier)},
164
+ {"mods":"ctrl","key":"B","keys":"ctrl-b","action":"sidebar","context":"listing","frontend":"all","label":"Sidebar","preset":"all","code":"Key_B","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_B,"mask":(Qt.ControlModifier)},
165
+ {"mods":"ctrl","key":"L","keys":"ctrl-l","action":"pathBar","context":"listing","frontend":"all","preset":"all","code":"Key_L","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_L,"mask":(Qt.ControlModifier)},
166
+ {"mods":"ctrl","key":"T","keys":"ctrl-t","action":"openTerminal","context":"listing","frontend":"all","preset":"all","code":"Key_T","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_T,"mask":(Qt.ControlModifier)},
167
+ {"mods":"ctrl","key":"Return","keys":"ctrl-enter","action":"openTab","context":"listing","frontend":"all","preset":"all","code":"Key_Return","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Return,"mask":(Qt.ControlModifier)},
168
+ {"mods":"ctrl","key":"Enter","keys":"ctrl-enter","action":"openTab","context":"listing","frontend":"all","preset":"all","code":"Key_Enter","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Enter,"mask":(Qt.ControlModifier)},
169
+ {"mods":"ctrl","key":"R","keys":"ctrl-r","action":"reload","context":"listing","frontend":"all","preset":"all","code":"Key_R","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_R,"mask":(Qt.ControlModifier)},
170
+ {"mods":"ctrl","key":"Comma","keys":"ctrl-comma","action":"settings","context":"listing","frontend":"all","preset":"all","code":"Key_Comma","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Comma,"mask":(Qt.ControlModifier)},
171
+ {"mods":"ctrl","key":"Plus","keys":"ctrl-plus","action":"textSizeUp","context":"listing","frontend":"all","preset":"all","code":"Key_Plus","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Plus,"mask":(Qt.ControlModifier)},
172
+ {"mods":"ctrl","key":"Equal","keys":"ctrl-equal","action":"textSizeUp","context":"listing","frontend":"all","preset":"all","code":"Key_Equal","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Equal,"mask":(Qt.ControlModifier)},
173
+ {"mods":"ctrl","key":"Minus","keys":"ctrl-minus","action":"textSizeDown","context":"listing","frontend":"all","preset":"all","code":"Key_Minus","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Minus,"mask":(Qt.ControlModifier)},
174
+ {"mods":"ctrl","key":"0","keys":"ctrl-0","action":"textSizeReset","context":"listing","frontend":"all","preset":"all","code":"Key_0","text":"","ctrl":true,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_0,"mask":(Qt.ControlModifier)},
175
+ {"mods":"shift","key":"Down","keys":"shift-down","action":"extendDown","context":"listing","frontend":"all","label":"Extend down","preset":"all","code":"Key_Down","text":"","ctrl":false,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Down,"mask":(Qt.ShiftModifier)},
176
+ {"mods":"shift","key":"Up","keys":"shift-up","action":"extendUp","context":"listing","frontend":"all","label":"Extend up","preset":"all","code":"Key_Up","text":"","ctrl":false,"shift":true,"alt":false,"super":false,"keycode":Qt.Key_Up,"mask":(Qt.ShiftModifier)},
177
+ {"mods":"none","key":"Down","keys":"down","action":"cursorDown","context":"listing","frontend":"all","preset":"all","code":"Key_Down","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Down,"mask":(0)},
178
+ {"mods":"none","key":"Up","keys":"up","action":"cursorUp","context":"listing","frontend":"all","label":"Cursor up","preset":"all","code":"Key_Up","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Up,"mask":(0)},
179
+ {"mods":"none","key":"Home","keys":"home","action":"cursorFirst","context":"listing","frontend":"all","label":"First item","preset":"all","code":"Key_Home","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Home,"mask":(0)},
180
+ {"mods":"none","key":"End","keys":"end","action":"cursorLast","context":"listing","frontend":"all","label":"Last item","preset":"all","code":"Key_End","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_End,"mask":(0)},
181
+ {"mods":"none","key":"PageUp","keys":"pageup","action":"pageUp","context":"listing","frontend":"all","label":"Page up","preset":"all","code":"Key_PageUp","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_PageUp,"mask":(0)},
182
+ {"mods":"none","key":"PageDown","keys":"pagedown","action":"pageDown","context":"listing","frontend":"all","label":"Page down","preset":"all","code":"Key_PageDown","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_PageDown,"mask":(0)},
183
+ {"mods":"none","key":"Return","keys":"enter","action":"open","context":"listing","frontend":"all","preset":"all","code":"Key_Return","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Return,"mask":(0)},
184
+ {"mods":"none","key":"Enter","keys":"enter","action":"open","context":"listing","frontend":"all","preset":"all","code":"Key_Enter","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Enter,"mask":(0)},
185
+ {"mods":"none","key":"Backspace","keys":"backspace","action":"parent","context":"listing","frontend":"all","preset":"all","code":"Key_Backspace","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Backspace,"mask":(0)},
186
+ {"mods":"none","key":"Delete","keys":"delete","action":"trash","context":"listing","frontend":"all","preset":"all","code":"Key_Delete","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Delete,"mask":(0)},
187
+ {"mods":"none","key":"Escape","keys":"escape","action":"escape","context":"listing","frontend":"all","label":"Close or go back","preset":"all","code":"Key_Escape","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Escape,"mask":(0)},
188
+ {"mods":"none","key":"Tab","keys":"tab","action":"focusNext","context":"listing","frontend":"all","preset":"all","code":"Key_Tab","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Tab,"mask":(0)},
189
+ {"mods":"none","key":"Space","keys":"space","action":"preview","context":"listing","frontend":"all","preset":"all","code":"Key_Space","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Space,"mask":(0)},
190
+ {"mods":"none","key":"F2","keys":"f2","action":"rename","context":"listing","frontend":"all","preset":"all","code":"Key_F2","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_F2,"mask":(0)},
191
+ {"mods":"none","key":"F5","keys":"f5","action":"reload","context":"listing","frontend":"all","preset":"all","code":"Key_F5","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_F5,"mask":(0)},
192
+ {"mods":"none","key":"Left","keys":"left","action":"parent","context":"listing","frontend":"all","preset":"all","code":"Key_Left","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Left,"mask":(0)},
193
+ {"mods":"none","key":"Right","keys":"right","action":"pageForward","context":"listing","frontend":"all","preset":"all","code":"Key_Right","text":"","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":Qt.Key_Right,"mask":(0)},
194
+ {"mods":"text","key":"j","keys":"j","action":"cursorDown","context":"listing","frontend":"all","preset":"all","code":"","text":"j","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
195
+ {"mods":"text","key":"k","keys":"k","action":"cursorUp","context":"listing","frontend":"all","label":"Cursor up","preset":"all","code":"","text":"k","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
196
+ {"mods":"text","key":"g","keys":"g","action":"cursorFirst","context":"listing","frontend":"all","label":"First item","preset":"all","code":"","text":"g","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
197
+ {"mods":"text","key":"G","keys":"G","action":"cursorLast","context":"listing","frontend":"all","label":"Last item","preset":"all","code":"","text":"G","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
198
+ {"mods":"text","key":"v","keys":"v","action":"toggleSelect","context":"listing","frontend":"all","preset":"all","code":"","text":"v","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
199
+ {"mods":"text","key":"J","keys":"J","action":"extendDown","context":"listing","frontend":"all","label":"Extend down","preset":"all","code":"","text":"J","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
200
+ {"mods":"text","key":"K","keys":"K","action":"extendUp","context":"listing","frontend":"all","label":"Extend up","preset":"all","code":"","text":"K","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
201
+ {"mods":"text","key":"h","keys":"h","action":"parent","context":"listing","frontend":"all","preset":"all","code":"","text":"h","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
202
+ {"mods":"text","key":"/","keys":"/","action":"filter","context":"listing","frontend":"all","preset":"all","code":"","text":"/","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
203
+ {"mods":"text","key":"f","keys":"f","action":"search","context":"listing","frontend":"all","preset":"all","code":"","text":"f","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
204
+ {"mods":"text","key":"o","keys":"o","action":"reveal","context":"listing","frontend":"all","preset":"all","code":"","text":"o","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
205
+ {"mods":"text","key":":","keys":":","action":"pathBar","context":"listing","frontend":"all","preset":"all","code":"","text":":","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
206
+ {"mods":"text","key":"t","keys":"t","action":"tabNew","context":"listing","frontend":"all","label":"New tab","preset":"all","code":"","text":"t","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
207
+ {"mods":"text","key":"T","keys":"T","action":"tags","context":"listing","frontend":"all","preset":"all","code":"","text":"T","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
208
+ {"mods":"text","key":"i","keys":"i","action":"factsToggle","context":"listing","frontend":"all","preset":"all","code":"","text":"i","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
209
+ {"mods":"text","key":"w","keys":"w","action":"tabClose","context":"listing","frontend":"all","label":"Close tab","preset":"all","code":"","text":"w","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
210
+ {"mods":"text","key":"y","keys":"y","action":"copy","context":"listing","frontend":"all","preset":"all","code":"","text":"y","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
211
+ {"mods":"text","key":"Y","keys":"Y","action":"copydirpath","context":"listing","frontend":"all","preset":"all","code":"","text":"Y","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
212
+ {"mods":"text","key":"x","keys":"x","action":"cut","context":"listing","frontend":"all","preset":"all","code":"","text":"x","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
213
+ {"mods":"text","key":"p","keys":"p","action":"paste","context":"listing","frontend":"all","preset":"all","code":"","text":"p","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
214
+ {"mods":"text","key":"d","keys":"dd","action":"trashArm","context":"listing","frontend":"all","preset":"all","code":"","text":"d","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
215
+ {"mods":"text","key":"r","keys":"r","action":"rename","context":"listing","frontend":"all","preset":"all","code":"","text":"r","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
216
+ {"mods":"text","key":"z","keys":"z","action":"undo","context":"listing","frontend":"all","preset":"all","code":"","text":"z","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
217
+ {"mods":"text","key":"s","keys":"s","action":"sortNext","context":"listing","frontend":"all","preset":"all","code":"","text":"s","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
218
+ {"mods":"text","key":"S","keys":"S","action":"sortReverse","context":"listing","frontend":"all","preset":"all","code":"","text":"S","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
219
+ {"mods":"text","key":".","keys":".","action":"toggleHidden","context":"listing","frontend":"all","preset":"all","code":"","text":".","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
220
+ {"mods":"text","key":"a","keys":"a","action":"addNetwork","context":"listing","frontend":"all","preset":"all","code":"","text":"a","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
221
+ {"mods":"text","key":"A","keys":"A","action":"openAgent","context":"listing","frontend":"all","label":"Open agent here","preset":"all","code":"","text":"A","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
222
+ {"mods":"text","key":"m","keys":"m","action":"menu","context":"listing","frontend":"all","preset":"all","code":"","text":"m","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
223
+ {"mods":"text","key":"c","keys":"c","action":"copyAs","context":"listing","frontend":"all","label":"Copy as","preset":"all","code":"","text":"c","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
224
+ {"mods":"text","key":"P","keys":"P","action":"pasteAs","context":"listing","frontend":"all","label":"Paste as","preset":"all","code":"","text":"P","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
225
+ {"mods":"text","key":"V","keys":"V","action":"invertSelection","context":"listing","frontend":"all","label":"Invert selection","preset":"all","code":"","text":"V","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
226
+ {"mods":"text","key":",","keys":",","action":"settings","context":"listing","frontend":"all","preset":"all","code":"","text":",","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
227
+ {"mods":"text","key":"?","keys":"?","action":"keymapSheet","context":"listing","frontend":"all","preset":"all","code":"","text":"?","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
228
+ {"mods":"text","key":"-","keys":"-","action":"zoomOut","context":"listing","frontend":"all","label":"Zoom out","preset":"all","code":"","text":"-","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
229
+ {"mods":"text","key":"+","keys":"+","action":"zoomIn","context":"listing","frontend":"all","label":"Zoom in","preset":"all","code":"","text":"+","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
230
+ {"mods":"text","key":"e","keys":"e","action":"expand","context":"listing","frontend":"all","label":"Expand","preset":"all","code":"","text":"e","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
231
+ {"mods":"text","key":"l","keys":"l","action":"pageForward","context":"listing","frontend":"all","preset":"all","code":"","text":"l","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
232
+ {"mods":"text","key":"{","keys":"{","action":"tabMoveLeft","context":"listing","frontend":"all","label":"Move tab left","preset":"all","code":"","text":"{","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
233
+ {"mods":"text","key":"}","keys":"}","action":"tabMoveRight","context":"listing","frontend":"all","label":"Move tab right","preset":"all","code":"","text":"}","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
234
+ {"mods":"text","key":"[","keys":"[","action":"tabPrevious","context":"listing","frontend":"all","sheet":false,"label":"Previous tab","preset":"all","code":"","text":"[","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
235
+ {"mods":"text","key":"]","keys":"]","action":"tabNext","context":"listing","frontend":"all","sheet":false,"preset":"all","code":"","text":"]","ctrl":false,"shift":false,"alt":false,"super":false,"keycode":0,"mask":(0)},
236
+ ]
237
+ var POINTER = [{"where":"listing","press":"left","row":"any","does":"selectOnly","label":"put the cursor on the row and drop any other selection"},{"where":"listing","press":"left x2","row":"any","does":"open","label":"open the row"},{"where":"listing","press":"left","row":"result","does":"reveal","label":"go to the file in its own directory, selected"},{"where":"listing","press":"left x2","row":"result","does":"reveal","label":"still the one reveal the first tap made"},{"where":"listing","press":"ctrl left","row":"any","does":"toggleSelect","label":"add the row to the selection"},{"where":"listing","press":"shift left","row":"any","does":"extendSelect","label":"extend the selection to the row"},{"where":"listing","press":"ctrl left x2","row":"any","does":"toggleSelect","label":"still only selects"},{"where":"listing","press":"shift left x2","row":"any","does":"extendSelect","label":"still only selects"},{"where":"listing","press":"left","row":"renaming","does":"commitRename","label":"commit the open rename, then select the row"},{"where":"listing","press":"right","row":"any","does":"menu","label":"open the context menu at the pointer, on the selection the row is in"},{"where":"listing","press":"middle","row":"dir","does":"openTab","label":"open the directory in a new tab"},{"where":"listing","press":"middle","row":"file","does":"nothing","label":"a file has no directory to open in a tab"},{"where":"column","press":"left","row":"dir","does":"open","label":"go into that directory on one tap, as its neighbours do"},{"where":"neighbour","press":"left","row":"dir","does":"reveal","label":"show that directory in the middle column"},{"where":"neighbour","press":"left","row":"file","does":"nothing","label":"no action"},{"where":"neighbour","press":"left x2","row":"file","does":"open","label":"open the file"},{"where":"neighbour","press":"right","row":"any","does":"nothing","label":"a peeked row has no menu"},{"where":"neighbour","press":"middle","row":"dir","does":"openTab","label":"open the peeked directory in a new tab"},{"where":"chrome","press":"left","row":"parent","does":"goToCrumb","label":"open the directory that segment of the path names, on the first tap"},{"where":"chrome","press":"left x2","row":"inert","does":"pathBar","label":"type the path: the current folder's own segment, the collapsed marker or the strip beside the path"},{"where":"window","press":"back","row":"any","does":"backOrParent","label":"go back through the history, or up a directory when there is none"},{"where":"window","press":"forward","row":"any","does":"forward","label":"go forward again through a back, and nothing when there is none"},{"where":"rail","press":"left","row":"any","does":"open","label":"open the place"},{"where":"rail","press":"right","row":"any","does":"menu","label":"eject and unmount"},{"where":"rail","press":"middle","row":"place","does":"openTab","label":"open the place in a new tab"}]
238
+ var BASE_SHEET = [{"keys":"j k","action":"cursorDown","label":"Cursor down"},{"keys":"enter","action":"open","label":"Open"},{"keys":"^enter","action":"openTab","label":"Open in new tab"},{"keys":"h","action":"parent","label":"Parent folder"},{"keys":"l","action":"pageForward","label":"Browse in"},{"keys":"space","action":"preview","label":"Quick Look"},{"keys":"/","action":"filter","label":"Filter"},{"keys":"f","action":"search","label":"Find"},{"keys":"^g","action":"searchContents","label":"Search contents"},{"keys":"=","action":"measureDirs","label":"Measure folder size"},{"keys":"alt-=","action":"measureAllDirs","label":"Measure every folder"},{"keys":"o","action":"reveal","label":"Reveal"},{"keys":"F5 ^r","action":"reload","label":"Reload"},{"keys":"tab","action":"focusNext","label":"Next area"},{"keys":": ^l","action":"pathBar","label":"Go to folder"},{"keys":"y ^c","action":"copy","label":"Copy"},{"keys":"Y","action":"copydirpath","label":"Copy folder path"},{"keys":"x ^x","action":"cut","label":"Cut"},{"keys":"p ^v","action":"paste","label":"Paste"},{"keys":"r","action":"rename","label":"Rename"},{"keys":"F4","action":"autofitColumns","label":"Autofit columns"},{"keys":"dd","action":"trashArm","label":"Move to Trash"},{"keys":"z ^z","action":"undo","label":"Undo"},{"keys":"T","action":"tags","label":"Tags"},{"keys":"i","action":"factsToggle","label":"Facts"},{"keys":"^N","action":"newFolder","label":"New folder"},{"keys":"v","action":"toggleSelect","label":"Select"},{"keys":"s","action":"sortNext","label":"Sort"},{"keys":"S","action":"sortReverse","label":"Reverse sort"},{"keys":". ^>","action":"toggleHidden","label":"Show hidden files"},{"keys":"a","action":"addNetwork","label":"Add network place"},{"keys":"m","action":"menu","label":"Menu"},{"keys":"^e","action":"eject","label":"Eject"},{"keys":"^t","action":"openTerminal","label":"Terminal"},{"keys":"^+","action":"textSizeUp","label":"Larger text"},{"keys":"^-","action":"textSizeDown","label":"Smaller text"},{"keys":"^)","action":"textSizeReset","label":"Reset text size"},{"keys":",","action":"settings","label":"Settings"},{"keys":"?","action":"keymapSheet","label":"Keyboard Shortcuts"}]
239
+ var SHEET_GROUPS = {"move":["cursorDown","cursorUp","cursorFirst","cursorLast","pageDown","pageUp","open","parent","pageForward","historyBack","historyForward","focusNext","focusPrevious","focusPreview","tabNew","openTab","tabClose","tabNext","tabPrevious","tabMoveLeft","tabMoveRight","windowNew","escape","carry"],"look":["viewList","viewColumns","viewGrid","viewDual","togglePreview","factsToggle","loadPreview","preview","previewPageForward","previewPageBack","toggleHidden","measureDirs","measureAllDirs","sidebar","zoomIn","zoomOut","expand","openInPlace","closeInPlace","mute","textSizeUp","textSizeDown","textSizeReset","keymapSheet"],"find":["filter","search","searchContents","reveal","sortNext","sortReverse","pathBar","reload"],"change":["copy","cut","paste","movePaste","duplicate","rename","trash","deletePermanently","undo","redo","newFolder","copydirpath","copyPath","openAgent","toggleSelect","selectAll","extendDown","extendUp","menu","properties","addNetwork","eject","openTerminal","settings","autofitColumns","copyAs","pasteAs","invertSelection","tags"]}
240
+ var SHEET_TIE_PRIORITY = {"all":["left","shift-f10","ctrl-shift-plus","ctrl-shift-minus","ctrl-shift-0"],"default":["ctrl-c","ctrl-v"],"windows":["ctrl-c","ctrl-v"]}
241
+ var SHEET_EXTRA = [{"preset":"all","mods":"text","keys":"m","action":"mute","label":"Mute","context":"media"}]
242
+ var DIGITS = {"from":1,"to":9,"prefix":"tab"}
243
+
244
+ function applies(row, context, frontend) {
245
+ return (row.context.split(",").indexOf(context) >= 0 || row.context === "all")
246
+ && (row.frontend === frontend || row.frontend === "all")
247
+ }
248
+ function matches(row, key, text, modifiers) {
249
+ var mask = modifiers & (Qt.ControlModifier | Qt.ShiftModifier | Qt.AltModifier | Qt.MetaModifier)
250
+ if (row.mods === "text")
251
+ return (mask & ~Qt.ShiftModifier) === 0 && text === row.text
252
+ return mask === row.mask && key === row.keycode
253
+ }
254
+ // A matching empty action suppresses fallback, as Mac Ctrl+X requires.
255
+ function presetMatch(name, key, text, modifiers, context, frontend) {
256
+ for (var pass = 0; pass < 2; pass++) {
257
+ for (var i = 0; i < PRESET_KEYS.length; i++) {
258
+ var row = PRESET_KEYS[i]
259
+ if (row.preset !== (pass === 0 ? name : "all")) continue
260
+ if (matches(row, key, text, modifiers) && applies(row, context, frontend)) return row
261
+ }
262
+ }
263
+ return null
264
+ }
265
+ function lookupFor(name, key, text, modifiers, context, frontend) {
266
+ context = context || "listing"
267
+ frontend = frontend || "gui"
268
+ var row = presetMatch(name, key, text, modifiers, context, frontend)
269
+ if (row) return row.action
270
+ if (context !== "listing" && context !== "rail") return ""
271
+ for (var i = 0; i < SHARED_KEYS.length; i++) {
272
+ if (matches(SHARED_KEYS[i], key, text, modifiers)) return SHARED_KEYS[i].action
273
+ }
274
+ if ((frontend === "tui" || frontend === "gui") && modifiers === 0 && text >= String(DIGITS.from) && text <= String(DIGITS.to))
275
+ return DIGITS.prefix + text
276
+ return ""
277
+ }
278
+ function lookup(key, text, modifiers, context, frontend) {
279
+ return lookupFor(preset, key, text, modifiers, context, frontend)
280
+ }
281
+ function actionGroup(action) {
282
+ var arms = { copyArm: "copy", cutArm: "cut", pasteArm: "paste", cursorFirstArm: "cursorFirst", trashArm: "trash" }
283
+ return arms[action] || action
284
+ }
285
+ function bindingRows(name, frontend, group) {
286
+ var rows = [], candidates = PRESET_KEYS.concat(SHARED_KEYS)
287
+ for (var i = 0; i < candidates.length; i++) {
288
+ var row = candidates[i]
289
+ if ((row.preset !== "all" && row.preset !== name) || (group !== undefined && actionGroup(row.action) !== group)) continue
290
+ if (!applies(row, "listing", frontend || "gui") || !row.action) continue
291
+ if (lookupFor(name, row.keycode, row.text, row.mask, "listing", frontend || "gui") !== row.action) continue
292
+ var duplicate = rows.some(function (kept) { return kept.keys === row.keys && kept.action === row.action })
293
+ if (!duplicate) rows.push(row)
294
+ }
295
+ return rows
296
+ }
297
+ // One action per first ask, never the whole table: the status strip asks for one key while the first window builds.
298
+ function hintFor(action) {
299
+ if (!Object.prototype.hasOwnProperty.call(HINTS, action)) HINTS[action] = hintsFor(preset, action)[action] || ""
300
+ return HINTS[action]
301
+ }
302
+ // How wide a cap may get before a second spelling stops earning its place. The sheet draws two
303
+ // columns of a 300 unit card, so a cap past this elides and the wording beside it has nowhere to go.
304
+ var SHEET_CAP_BUDGET = 16
305
+
306
+ // Actions that answer each other show a second spelling on both members or on neither (width alone gave "]" beside "[ / ctrl-pageup").
307
+ var SHEET_MIRRORS = [["cursorDown", "cursorUp"], ["cursorFirst", "cursorLast"], ["pageDown", "pageUp"],
308
+ ["historyBack", "historyForward"], ["tabNext", "tabPrevious"], ["tabMoveLeft", "tabMoveRight"],
309
+ ["zoomIn", "zoomOut"], ["textSizeUp", "textSizeDown"], ["extendDown", "extendUp"]]
310
+
311
+ // An action id is not wording. A row the base sheet does not name printed its own identifier, so the
312
+ // pane advertised "pageDown" and "textSizeReset" beside sentences like "hidden files".
313
+ function spelledOut(action) {
314
+ return String(action).replace(/([a-z0-9])([A-Z])/g, "$1 $2").toLowerCase()
315
+ }
316
+
317
+ // Which spelling speaks for an action: the preset's own before an inherited one, and a plain key
318
+ // before a chord. setPreset ranks the menu hint the same way, so the sheet and the menus agree.
319
+ function capRank(row, preset) {
320
+ return (row.preset === preset ? 0 : 2) + (row.mods === "text" ? 0 : 1)
321
+ }
322
+
323
+ function tieRank(row, preset) {
324
+ if (row.preset === preset) return Infinity
325
+ var keys = (SHEET_TIE_PRIORITY.all || []).concat(SHEET_TIE_PRIORITY[preset] || [])
326
+ var at = keys.indexOf(row.keys)
327
+ return at < 0 ? Infinity : at
328
+ }
329
+
330
+ function sheetFor(name, frontend) {
331
+ var result = [], groups = {}
332
+ var rows = bindingRows(name, frontend || "gui").concat(SHEET_EXTRA).filter(function (row) { return row.sheet !== false })
333
+ for (var i = 0; i < rows.length; i++) {
334
+ var row = rows[i], action = actionGroup(row.action)
335
+ var group = groups[action]
336
+ if (!group) {
337
+ var label = row.label || spelledOut(action)
338
+ for (var j = 0; j < BASE_SHEET.length; j++)
339
+ if (actionGroup(BASE_SHEET[j].action) === action) label = BASE_SHEET[j].label
340
+ group = { action: action, label: label, keys: "", context: row.context || "listing", spellings: [] }
341
+ result.push(group)
342
+ groups[action] = group
343
+ }
344
+ group.spellings.push(row)
345
+ }
346
+ // One cap names one key. Joining every spelling an action answers to built caps of 40 characters
347
+ // on the default preset and 78 on mac, wider than the whole card, so the pane drew them across
348
+ // the column beside it. The best spelling always shows, a second only while both still fit.
349
+ for (var g = 0; g < result.length; g++) {
350
+ var spellings = result[g].spellings.slice()
351
+ // Qt's sort need not preserve equal ranks, so table order is the final tie breaker.
352
+ spellings.sort(function (left, right) {
353
+ var rank = capRank(left, name) - capRank(right, name)
354
+ if (rank) return rank
355
+ var a = tieRank(left, name), b = tieRank(right, name)
356
+ return a !== b ? a - b : rows.indexOf(left) - rows.indexOf(right)
357
+ })
358
+ var keys = spellings.length ? spellings[0].keys : ""
359
+ result[g].alone = keys
360
+ for (var k = 1; k < spellings.length; k++) {
361
+ var both = keys + " / " + spellings[k].keys
362
+ if (spellings[k].keys === keys || both.length > SHEET_CAP_BUDGET) continue
363
+ keys = both
364
+ break
365
+ }
366
+ result[g].keys = keys
367
+ }
368
+ // A pair shows a second spelling only when both members have one that fits.
369
+ for (var m = 0; m < SHEET_MIRRORS.length; m++) {
370
+ var first = groups[SHEET_MIRRORS[m][0]], second = groups[SHEET_MIRRORS[m][1]]
371
+ if (!first || !second) continue
372
+ if ((first.keys !== first.alone) === (second.keys !== second.alone)) continue
373
+ first.keys = first.alone
374
+ second.keys = second.alone
375
+ }
376
+ for (var d = 0; d < result.length; d++) {
377
+ delete result[d].spellings
378
+ delete result[d].alone
379
+ }
380
+ return result
381
+ }
382
+ function hintsFor(name, group) {
383
+ var hints = {}, ranks = {}, rows = bindingRows(name, "gui", group)
384
+ for (var i = 0; i < rows.length; i++) {
385
+ var row = rows[i]
386
+ if (row.mods !== "text" && row.mods !== "none" && row.mods !== "shift") continue
387
+ var action = actionGroup(row.action), rank = (row.preset === name ? 0 : 2) + (row.mods === "text" ? 0 : row.mods === "none" ? 1 : 4)
388
+ if (ranks[action] !== undefined && ranks[action] <= rank) continue
389
+ // A menu hint is the key the operator presses: Menus.html and the OpenWith board
390
+ // both draw Move to Trash with d; a shift chord fills an action no plain key names. The full dd chord stays on the sheet below.
391
+ hints[action] = row.mods === "text" ? row.key : row.keys
392
+ ranks[action] = rank
393
+ }
394
+ return hints
395
+ }
396
+ function setPreset(name) {
397
+ preset = PRESETS.indexOf(name) >= 0 ? name : "default"
398
+ HINTS = {}
399
+ }
400
+ var HINTS = {}
401
+ setPreset("default")