π₯οΈ The j3w1 workstation β user guide
This site is a working i3 window manager rebuilt in a browser. The windows really tile, split, float and close; the terminal really runs commands; the status bar really reads your machine. This page explains how to drive it β no prior i3 knowledge needed.
π Quick start
Thirty seconds, and you can read everything on the site.
1οΈβ£ Just want to read?
Click the workspace names in the top bar, or press 1β7. That is the whole navigation.
2οΈβ£ Prefer typing?
Press / for the launcher and type what you want β open about, exec neofetch.
3οΈβ£ Forgot a key?
Press ? for the live key map, generated from the real bindings.
π Where is this page?
In the file manager on 1:home, under Places β Wiki. The launcherβs open wiki works from anywhere.
β¨ Worth trying first
- Press / and run
exec neofetchβ the Manjaro screenshot classic, filled with your own machine's details. - In the terminal, type
ls, thencd writing, thencat <name>. The site's content is a filesystem. - Press w to tab the windows together, then e to untile them.
- Hold Alt and drag a window, then drag the thin gap between two tiles to resize them.
- Press f to fullscreen a reader β the nicest way to read a long entry.
π Nothing here can be broken permanently. Closed windows are only hidden, never deleted, and reloading always restores the full desktop. If a layout ever looks wrong, press Shift+R.
π‘ Key points
πͺ It is a real window manager
A live layout tree per workspace: split, tabbed and stacked containers, floating windows, gaps, fullscreen and a scratchpad.
β¨οΈ Keys work bare
No modifier needed for most bindings. Alt+key works too where the browser allows it. Shortcuts pause while you type.
π±οΈ Everything has a click
Every action is in the launcher (/), so you never need a shortcut you do not know.
π± Phones get real i3 tabs
Each workspace becomes an i3 tabbed container β what i3 does when a screen is too narrow to tile.
π§Ύ The status bar is honest
Values your browser does not expose are simply absent, never invented. Nothing is transmitted.
βΏ Readable without any of it
Every window is reachable with Tab alone, and with JavaScript off the site renders as one plain stacked page.
β¨οΈ Hotkeys
Bare keys work on their own; Alt+key does the same where your browser allows it. Bindings pause automatically while your cursor is in a text field.
π§ Moving around
| Key | Action |
|---|---|
| 1β7 | Switch workspace β the same number again goes back to the previous one |
| ` | Workspace back and forth |
| Ctrl+β / β | Previous / next workspace |
| h j k l or arrows | Focus the window left / down / up / right |
| a | Focus the parent container |
| Tab | Ordinary browser focus β reaches every window |
| Enter | Activate the selected row or link |
| / or : | Open the launcher (dmenu) |
| ? | Show the live key map |
| Escape | Leave fullscreen, or close an overlay |
πͺ Arranging windows
| Key | Action |
|---|---|
| H J K L | Move the focused window |
| b / v | Split horizontally / vertically |
| w / s / e | Tabbed layout / stacked layout / toggle split |
| f | Fullscreen the focused window |
| q or Shift+Q | Close the window β it can always come back |
| r | Resize mode: then h j k l, Shift for bigger steps, Escape to leave |
| Shift+G | Gaps mode: i inner or o outer, then + / - / 0, Escape to leave |
| u / y / n | Border none / a one-pixel border / a normal title bar, for the focused window |
| Shift+S | Sticky: keep a floating window on every workspace |
| m | Hide the bar (it returns on hover at the top edge, or when you Tab into it) |
| Alt+Shift+1β7 | Move the window to another workspace and follow it |
| Ctrl+Alt+1β7 | Move the window to another workspace and stay |
| ~ | Move the window to the previous workspace and follow it |
| Alt+Space | Switch focus between tiled and floating windows |
| Alt+Shift+Space | Float or unfloat the focused window |
| - / _ | Show the scratchpad / send a window to it |
| Alt+Enter | Open a new terminal |
π§ Session
| Key | Action |
|---|---|
| Shift+R | Restart in place β default layout, every window back |
| Shift+C | Reload the configuration β gaps, bar and labels re-applied |
| Shift+E | Session menu (i3-nagbar): lock screen, log out, restart i3, suspend, reboot, shut down |
| 0 | System mode, exactly as the original config bound it: lock, exit, switch user, suspend, hibernate, reboot, Shift+S shutdown |
| Ctrl+Space | Close every notification |
π±οΈ Mouse
| Gesture | Action |
|---|---|
| Drag a title bar | Float the window and move it |
| Alt+drag anywhere | The same, from anywhere in the window |
| Drag the gap between tiles | Resize both neighbours |
| Drag a floating window's edge | Resize it |
| Click a tab | Switch to that window |
π‘ Space is only bound together with Alt, on purpose β binding it bare would break using the space bar to scroll.
π» The terminal
The terminal on 1:home is a real shell over the site's own content. Tab completes, β/β walk the history, Ctrl+C clears the line.
| Command | What it does |
|---|---|
ls cd pwd tree | Move around the site as a filesystem |
cat <file> | Read an entry, a project, or a page |
open <name> | Jump to a workspace, an entry, or an external link |
help | Commands and desktop keys, listed separately |
keys | Just the window manager shortcuts |
dmenu | Open the launcher (same as pressing /) |
feh neofetch htop cmatrix | Launch an application |
wiki | Open this guide |
i3-msg <command> | Run a window manager command, e.g. i3-msg layout tabbed; chain with ; |
i3exit <action>, reboot, poweroff | Lock, log out, suspend, hibernate, reboot, shut down |
journalctl -b | This boot's log |
cat ~/.config/i3/config | The original machine's dotfiles β also i3status.conf, ~/.config/dunst/dunstrc, ~/.Xresources, ~/.dmenurc |
xrandr / screenlayout | Your display, and the historical three-monitor layout |
notify-send <text> | A dunst notification |
logout | End the session and return to the login screen |
clear whoami date echo exit | The usual |
β οΈ Desktop shortcuts are not shell commands. Typing / or ? at the prompt will say so β press them outside the terminal, or type dmenu and keys.
π¦ Applications
Launch any of these from the launcher (/ then exec <name>) or by typing the name in the terminal.
π§ neofetch
System information read from your own browser. Anything it cannot see prints unknown.
π htop
The open windows as processes, with real frame timing and heap figures.
πΌοΈ feh
Pick between three wallpapers, drawn entirely in CSS β black by default, carrying the j3w1-i3 wordmark. Remembered.
π© cmatrix
A toy. Static if you have reduced motion enabled.
β¨οΈ urxvt
Another terminal β Alt+Enter.
π conky
The original desk's panel: the date in Chinese, CPU threads, the open windows, memory, uptime. Floating and sticky at the top right, like its config said. exec conky.
π Touch
| Gesture | Action |
|---|---|
| π Swipe left / right | Previous / next workspace |
| π Tap a tab | Switch window |
| β Long-press a title bar | Float the window, then drag it |
Each workspace uses i3's tabbed layout on a phone. Tiling, gutter-dragging and the scratchpad are switched off below 768px; everything else works. Swiping never overrides scrolling β if a table or code block can still scroll sideways, it gets the gesture first.
π Booting, logging in, logging out
The first time you arrive the machine boots β a Manjaro banner, kernel lines and systemd units, about five seconds. Any key or click skips to the end.
Then the LightDM login screen appears and waits for you. The username and password are already filled in; the password is decorative bullets and no password value exists anywhere in the page. Press Enter, or click Log In. Nothing else logs you in β a click on the desktop behind the panel is ignored.
π Logging in is remembered. Come back tomorrow and the desktop appears immediately, with no boot and no login, until you log out.
| To⦠| Do this |
|---|---|
| π Lock the screen | Shift+E β Lock screen, or exec i3lock. Press a key to dismiss it β moving the mouse will not. |
| πͺ Log out | Shift+E β Log out, the launcher's log out, or logout |
| π Log back in | The login panel is already there β press Enter |
| π¬ Watch the boot again | Reboot: 0 then r, Shift+E β Reboot, or reboot in the terminal β systemd stops, the screen goes black, the machine boots, LightDM waits (about ten seconds; any key skips a phase). The launcher's exec lightdm replays only the boot log |
| β» Shut down | 0 then Shift+S, or poweroff. The machine halts to a power button; any key powers it on |
| π€ Suspend or hibernate | 0 then s or h. The screen locks and goes dark; the key that wakes it does not unlock it |
| π€ Switch user | 0 then u β the login panel, with your layout kept |
| βοΈ Never see it again | The launcher's boot off |
The boot and login never appear when you follow a link straight to an entry β a shared link must never land someone on a login screen β nor on a slow or data-saving connection. With reduced motion enabled the animation is skipped and the login panel appears immediately.
βοΈ Settings
All of these are launcher commands (/), and every one is stored in your browser only.
| Command | Effect |
|---|---|
log out | End the session; the login screen returns |
boot off / boot on | Skip or restore the boot and login sequence |
exec lightdm | Replay the boot sequence now |
lock off / lock 10m / lock 30m | Idle screen lock β off, or after 10 or 30 minutes |
exec i3lock | Lock the screen immediately |
notify off / notify on | Silence the corner notifications |
wallpaper black / ember / ridge | Change the wallpaper (black is the default) |
restart | Reset every window and layout to defaults |
gaps inner set 14 / gaps outer set -2 | i3-gaps, as the original machine had them (14 / β2 are the defaults; a lone window gets no gaps) |
bar mode hide / bar mode dock | Hide the bar until hovered or focused, or keep it docked |
bar labels zh / bar labels en | The status bar's labels β Chinese as the original i3status.conf had them (default), or English |
border none / border pixel 1 / border normal | The focused window's border and title bar |
i3-msg β¦ in the terminal | Every launcher entry is an i3 command; workspace 2; layout tabbed chains with semicolons |
π The idle lock is set to ten minutes by default. It never arms on a phone or tablet, never while you are typing or a dialog is open, and never while the tab is in the background.
π Privacy
The status bar and neofetch read your CPU thread count, memory, connection type, battery, screen size, language and time zone from your own browser. None of it is transmitted, stored or logged β this site has no analytics and no backend for the public page.
Where your browser does not expose something, the value is absent rather than guessed. That is why the bar is shorter in Firefox than in Chrome, and why a desktop shows no battery. Your layout, wallpaper and settings live in your browser's local storage and never leave your machine.
π©Ή Troubleshooting
| Problem | Fix |
|---|---|
| π΅ The layout looks wrong | Press Shift+R, or run restart i3 inplace |
| π«₯ A window disappeared | Press Shift+R, or click restore this workspace |
| β¨οΈ Keys do nothing | Your focus is in a text field β press Escape or click elsewhere |
| π€ A shortcut does nothing in the terminal | Desktop keys are not shell commands. Press them outside the terminal, or type keys |
| π Stuck on the login screen | Press Enter |
| π«£ The bar vanished | Press m, or hover the top edge of the screen β it is in hide mode |
| π³οΈ Nothing loads at all | The site works without JavaScript: every workspace renders as one plain stacked document |
βΏ Accessibility
- Every window is reachable with Tab alone β no keybinding is required to read anything.
- Tabbed windows are real ARIA tab lists, with arrow-key support.
- Workspace, mode and window changes are announced to screen readers in plain language.
- Focus is never trapped outside a dialog, and never dropped onto the page body.
- With
prefers-reduced-motionenabled there is no boot animation, no idle lock, no sliding and no animation of any kind. - With JavaScript disabled the whole site renders as one plain, stacked, scrolling document.
π Documentation
The technical documentation lives in the repository.
- wm-usage.md β this guide, as Markdown.
- wm-architecture.md β how the window manager is built and why.
- wm-accessibility.md β the rules the implementation must obey.
- wm-development.md β running it, testing it, extending it.
- j3w1ctl-architecture.md β the content management client and its backend.