Inside the special workspace the agenda and the calendar could only be reached with Alt-h/j/k/l, which a desktop that binds Alt to its own windows never lets through, and the same keys meant two things: t on the agenda put the whole workspace away, t elsewhere went to it. Three esc buttons, one per tile, all closed everything. Now b, t and C only ever go to their tile, from anywhere. Tab and Shift-Tab walk the tiles, as they walk the spaces elsewhere; l past the board's last list goes on into the agenda, h in the agenda back to the board, j past its end into the calendar. S toggles the workspace, and q and Esc leave it from whichever tile — after leaving fullscreen first. The tile buttons are gone; each tile's head shows its key instead, lit on the one with focus, and the bar has a special pill beside the spaces. A document opened from the workspace — a day of the calendar, an entry of the agenda, today's entry, a card's notes — comes back to the tile it was opened from on q. The board tile shows the board of the space being browsed, or else the last one shown, so coming from the diary, which has none, no longer leaves it empty. Card and list actions follow the board on screen, not the browsed space.
3.3 KiB
Getting started
Run it
You need Rust (1.96 or newer) and bun to build it. The result is one binary with the whole frontend inside, so the machine it runs on needs neither.
git clone https://github.com/narrrl/narl-workspace
cd narl-workspace
cp .env.example .env
Open .env and set three things:
WORKSPACE_USER: the name you log in with.WORKSPACE_PASSWORD: the password. The server will not start while it is stillchange-me.WORKSPACE_SECRET: 32 random characters that sign the login cookie. Make one withopenssl rand -base64 32.
Then build and start it:
make build
./target/release/narl-workspace
and open http://127.0.0.1:4242.
With Docker instead, docker compose up -d --build does the same; see
Deploying. Every other setting has a default that works on
your own machine. Configuration lists them all.
Log in
The workspace has one account, the one in .env. Wrong passwords are answered
more slowly each time. A browser that has logged in before is slowed only by
its own mistakes, so someone guessing from elsewhere cannot lock you out.
Find your way around
A new workspace has three spaces: diary, work and uni. The bar along
the top shows them as numbered pills. 1, 2 and 3 switch between them,
and Tab steps to the next one.
The screen has four parts:
- the bar, at the top: the spaces, where you are in the tree, how many cards are late or due today, and the clock;
- the list, on the left: what is in the folder you are in;
- the tiles, on the right: the documents and files you have open;
- the status line, at the bottom: the mode you are in, and what the last key or command did.
The rail of buttons on the right does the same as the keys, for a mouse.
The first ten minutes
- Press
2to go towork. - Press
o. A new document opens in the editor, in insert mode. Write something. - Press
Escto leave insert mode, then type:name Plans for the weekandEnterto give it a name. There is no need to save: the document is saved a couple of seconds after you stop typing.:wsaves at once anyway. - Type
:qto close it. It is in the list now, under today's date. - Press
O(capital). The command line opens with:mkdiralready typed; add a name and pressEnter.lorEnteron the folder goes into it, andhcomes back up. - Press
c, typetry the board, and pressEnter. That is a card in the inbox of this space's board. Pressbto see the board, andEscto go back. It shares a special workspace with the agenda and the calendar:Sputs it up and away, andTabwalks between them. - Press
T. That is today's diary entry, started for you. - Press
?for the list of every key and command.h/lwalk its columns,/narrows it down, andEsccloses it.
On a phone the same things are buttons: the dock at the bottom has a new
document, a new folder, the board, today's entry, an upload and a search, and
the ⋯ on a row (or a long press on it) has what can be done to that row.
Next
The guide goes through a whole day with the workspace and explains each part as it comes up.

