Files - andreaderuvo/argus GitHub Wiki

Files

Browsing is always available. Everything that changes a file is off until the server is started with --allow-write.

Getting around

  • Breadcrumbs. The path at the top of the pane is every folder on the way โ€” ~ โ€บ projects โ€บ salmonella-2026 โ€บ runs โ€” each one a click away, from the root it is in (~ for home). When the pane is narrow the middle folds into โ€ฆ, which lists the folders it hides; the root and where you are stay.
  • Type a path where the path is shown. Click the folder you are in (the last breadcrumb), or the empty part of the strip, and it becomes a box: write /mnt/data/โ€ฆ, press Enter, and you are there โ€” no walking three folders a click at a time. ~ means Argus's home โ€” the one you set (hold the home button to move it), else the first configured root; not necessarily your $HOME. Folders are offered as you type, from the folder you are writing into. A path that is not there says so in the box, in red, and the listing under it stays where it was rather than emptying. Escape, or clicking away, cancels; only Enter commits. Copying the path is now a button inside that box โ€” it used to be what clicking the address did, which is a thing wanted rarely and guessable by nobody, while going somewhere by name had no way in at all.
  • Icons, a list, or a tree (below); hidden files on or off. The home button goes home โ€” hold it (or right-click) to pick a place or move home; โ†ป reads the folder again; the split button opens a second pane.
  • Search within a folder, recursively, by file name (not content), skipping hidden directories and the ones nobody means (node_modules, .git, target, .cacheโ€ฆ): at most 12 levels deep, 200 hits, 300,000 entries visited.
  • Favourites, kept on the server so every device sees the same ones. There are three separate lists โ€” main (the Files screen), sidebar, and windows โ€” because a pane in a desk wants different pins from the sidebar. They sit above the listing as a strip of small chips โ€” like a browser's bookmarks bar, so they never read as the folder's own contents; the full path is on hover, and the chip of the folder you are in is outlined. The star pins the folder you are in, the โ‹ฎ on any row pins or unpins that one, and the โœ• on a chip (on hover; always shown on a phone) removes it. After a list's own, each browser also shows the others' favourites, after pinned in Files / pinned in Windows: what you pinned in Files is in the sidebar too, one click away, and its โœ• unpins it from the list it belongs to. Pinning still pins in the list of the place you are in.
  • The starred folders are also a section of the side rail, Folders, under the screens: every list's stars, once each, from any screen โ€” a click opens the folder in Files. Narrow, each is a little folder with the name's first letters; on a phone they are in the menu. A rail longer than the screen scrolls without a scrollbar: a fade at the end that has more, and at the bottom a pill โ€” โ†“ 5 more โ€” that scrolls a page.
  • Two panes side by side, and the second pane is the default destination for a move or a copy.
  • Drag a row where you want it (with --allow-write). Onto the other pane, or onto any folder you can see โ€” in either pane, including the one you are dragging from. The folder under the pointer wins over the pane behind it, which is the commonest move there is and the one every file manager has done since 1984. What is under the pointer is outlined, and the chip travelling with the row says what will happen when you let go.
  • A listing notices files it did not create: a job writing output from tmux never passes through Argus, so the folder is re-read every few seconds and redrawn only when something actually changed. Trees are left to the โ†ป button โ€” re-running one would close every branch you had opened.

File icons

Every file wears the icon of its kind โ€” a PDF, Python, a table, a Dockerfile โ€” from Material Icon Theme, the set VS Code users know, with the light variants in the light theme. What it has nothing for, Argus draws in the same style: sequences (FASTA, FASTQ), alignments (SAM, BAM, CRAM), variants (VCF, BCF), trees (Newick, Nexus, PHYLIP), annotations (GFF, GTF, BED, GenBank) and pipelines (Nextflow, Snakemake, WDL, CWL). A compressed file is its contents first: reads_R1.fastq.gz is a FASTQ. The same icons in Files, the tree, the tiles and Links. Settings โ†’ Files โ†’ Coloured file icons off brings back the line icons with their extension.

Choosing several, like a file manager

  • Ctrl+click (โŒ˜ on a Mac) adds a file to the selection or takes it away; Shift+click takes the range from the last one; dragging on empty space in the listing โ€” under the rows, or round the icons, where only an icon and its name take a press โ€” draws a dashed box and takes everything it touches (Ctrl held: added to what was chosen); Ctrl+A takes them all; Escape, or a plain click, lets go. A plain click still opens, as always.
  • With something chosen, a bar floating at the foot of the listing (it never pushes the rows) says how many and offers Move N toโ€ฆ, Copy N toโ€ฆ (the other pane prefilled), Copy their paths, Download N (files) and Delete Nโ€ฆ.
  • The Delete key deletes the selection โ€” one question naming them; a second one, once, if folders among them are not empty. Not while you are typing, in a terminal or a dialog.
  • A right-click (a long press on a touch screen) opens the actions beside the file, as a menu where the pointer is โ€” Open in a window, Download, Copy path, Rename, Move, Copy, Upload here, favourites, Delete. On a file that is part of the selection, the menu is the selection's. On a phone it is the sheet, whose rows a thumb can hit.

Changing things

Rename, move, copy, delete, new folder, upload. Nothing is ever overwritten silently: a name that already exists is refused rather than replaced, and a delete of a non-empty folder has to be confirmed.

Three of them are on a list row itself, shown when the pointer is over it โ€” copy the path, rename, delete. Everything else lives behind the โ‹ฎ, which is right for moving, copying and downloading: you do those thinking about it. (The โ‹ฎ and these buttons exist with --allow-write; a tree row has the โ‹ฎ only.) These three are not those. They are what you do to the thing you are already looking at, and going through a sheet to reach them is three taps for a two-tap thought.

Only where there is a pointer. On a phone, three targets in a row is a lottery, and the โ‹ฎ is one honest target with all of it behind it.

Copying says that it copied. The clipboard button becomes a tick for a moment, because a button that copies and then looks exactly as it did is a button you press again to be sure. Same everywhere a path is copied โ€” the address bar, the link tray, a desk's link.

A link is also a way to upload. The ๐Ÿ”— button next to โ†‘ takes an address and the machine fetches it straight into the folder you are looking at โ€” no coming down to this device and going back up again, which from a phone is the whole journey twice. It streams to a part-file and renames only when complete, like any other upload, and nothing is ever overwritten.

A link behind a login works: there is a box for headers, one per line, and pasting a whole curl command โ€” the thing every browser's network panel offers as Copy as cURL โ€” fills in the address, the -H headers, -b cookies and -u credentials from it. Nothing is stored; they are used for that one request.

Three arrangements, one choice. Icons, a list, or the tree โ€” three buttons in a set, because only one can be on and being adjacent is the whole explanation.

  • Icons lay a folder out the way every desktop has for forty years: a glyph and a name, in rows that wrap. For finding your way, which is most of what a folder of folders is for โ€” names in a column all look alike, and an eye that knows a project by where its folder sits has nothing to work with.
  • A list is for reading: sizes, dates, forty lines at a glance.
  • The tree expands folders in place, for following a path down without losing where you came from.

The same click in all three. Icons also open their menu with a right-click, or a long press on a touch screen โ€” half a second, with enough slack for a hand that is never quite still, and the tap that would otherwise follow is swallowed so the menu does not also open the folder; list and tree rows have the โ‹ฎ for it. A browser in a window remembers its own arrangement; the panes and the sidebar share one.

Uploading takes drag-and-drop onto a pane, or Upload files (the โ†‘ button) โ€” at most max_upload_bytes a file (2 GiB by default), a cap a fetched link obeys too. Files are streamed to a dotted part-file and renamed into place only once complete, so an interrupted upload never leaves a truncated file wearing the real name.

Dropping onto a session instead of a pane puts the file in one folder the server keeps for that and hands you its absolute path, which is what a terminal wants โ€” see dropping a file onto a session.

Text you have, rather than a file you have, is the Paste a large piece of text and get a path to it button in the folder's tool row (after search, New folder, Upload files and Fetch a link into this folder): it opens a window you paste into, and what you paste is written into this folder as a file, with the path handed back โ€” see text you have, as a file you can name.

Pasting a screenshot โ€” Ctrl+V in a listing โ€” writes the clipboard image into the folder you are looking at (or, with no pane open, into the drop folder), named screenshot-1.png, screenshot-2.png, and hands the path back to the clipboard so you can paste it into a session as the next instruction. The number is the server's: it fills gaps and never overwrites.

What a folder weighs is a button on a list or tree row (not on icons), not a column, because finding out means walking the tree. It stops at 400k entries or twenty seconds and then says "at least" rather than presenting a partial sum as a total. Symlinks are counted as the small things they are and never followed.

What changed (git)

What changed (git) in a folder's menu, or the branch icon on a terminal whose folder is in a repository, opens Changes: the patch of that folder, drawn like any patch.

Not committed everything not in a commit yet, new files included
Last commit what the last commit changed, with its subject
Against the work tree against another branch โ€” a worktree against its main checkout, one executor of a Tournament against the other

Filter the files in the box under it: py (part of the path), *.py or tests/* (a pattern), several at once separated by spaces or commas (any of them), !*.lock to leave some out. It works on the patch already there, so it answers as you type, and the window keeps it.

It follows the folder by itself: a file an agent writes shows up a few seconds later. It only reads โ€” nothing is added, staged or committed โ€” and only what is under the folder it was opened on, so a root inside a bigger repository shows its own part. On a phone it is a screen (#/changes?path=โ€ฆ).

On your own computer

Mount on your computerโ€ฆ, in a folder's โ‹ฎ menu or a starred folder's menu, writes the commands that open the folder in your Finder, Explorer or file manager over SSH โ€” one line to paste that makes the key, lets it in and mounts, or the same steps one by one. See Mounting a folder on your computer.

Editing

Text files open in an editor with a save button. The save is refused if the file changed on disk since it was opened โ€” the normal case when a job is writing to it โ€” and a file too large to have been read whole cannot be saved from a preview, because that preview was only its tail.