wren-linux / data / wrenctl.1
.TH WRENCTL 1 "wren" "wren" "User Commands"
.SH NAME
wrenctl \- set up, update and use the Wren Linux desktop
.SH SYNOPSIS
.B wrenctl
.RI [ OPTION ]
.SH DESCRIPTION
Wren Linux is a set of shell scripts that turn a bare Debian 13 install into a
small, privacy-minded sway desktop.
This command is the one place to use it from: it opens the menu, brings the
scripts up to date and runs the others.
It does nothing a script in the Wren Linux folder does not already do; it only
starts them.
Every option works without its dashes too:
.B wrenctl install vim
is
.BR "wrenctl \-\-install vim" .
.PP
With no option it opens the menu: a window on a sway screen, or right in the
terminal on a text console or over ssh. With no terminal at all it shows the
help.
.SH OPTIONS
.TP
.B \-\-menu
Open the menu: a black-and-gray window under the status bar with your browser,
files, notes, passwords and terminal, named by what you want to do, then the lists
Browse privately, Chat, More apps (Get more apps, the others you have, Remove apps),
Wi-Fi (Choose a network, on or off, Sign-in page), Privacy (Bluetooth, Microphone
and the rest, with their state; choosing one flips it), Settings (Theme, Startup
programs), Is my computer OK? (Update, Status, Back up now), Help, About this
computer and Lock, sleep, shut down.
Arrow keys and Enter choose, or click; Esc goes back from a list, and closes the rest.
Without sway it opens in the terminal it was started from, the same menu
with the keys (no mouse on a text console).
Clicking
.B wrenctl
at the left of the status bar opens the same menu.
.TP
.B \-\-update
Fetch what is new, show every change and ask before bringing it in (only a
plain fast-forward, so your own edits are never overwritten).
Then list the parts and extras that are set up on this computer and use a file
that changed since the last update, and offer to run them again one at a time.
It never runs a script with
.BR \-\-remove .
A part of the base desktop that is new in the update is offered too.
.IP
.B \-\-update \-\-since
.I COMMIT
offers what changed after that commit (for updates made by hand earlier);
.B \-\-update \-\-all
offers everything that is set up.
.TP
.B \-\-apps
Choose optional programs from a list and install them (the extras).
A star marks one that is already set up; choosing it again repairs or updates
it.
.B \-\-apps \-\-list
only prints the list.
.TP
.B \-\-install
.I NAME
Install the extra
.IR NAME ,
a script in the
.I extras
folder (Tab completes the name), or run it again to repair it or bring a
downloaded app up to date.
Only the exact name of an extra is accepted, so nothing else is ever run.
Options after
.I NAME
go to its script, as in
.BR "wrenctl install claude-vm \-\-account work" .
.TP
.B \-\-remove
.I NAME
Remove the extra
.IR NAME .
Your own data (wallets, chats, profiles) stays, and packages another script
still needs are kept.
.TP
.B \-\-manual
.I NAME
Print every step to set up the extra
.I NAME
by hand, and change nothing.
.TP
.B \-\-list
List the extras: what each one is, in three groups from most to least secure,
and which are installed.
.TP
.B \-\-part
.I NAME
Run one part of the base desktop again (a script in the
.I parts
folder), to repair it.
.TP
.B \-\-status
Show what Wren Linux has set up: disk encryption, the base packages, the parts
and the extras.
.TP
.B \-\-git
.RI [ DIR ]
Set git up for you
.RB ( git\-helper.sh ):
the name and email on your commits (for GitHub, your no-reply address,
since GitHub refuses pushes that carry an email kept private), and pushing
to GitHub over ssh, with a key of your own made for it: on a security key, or a
key file with a passphrase that ssh asks for at every push (no ssh-agent holds
it), checked against GitHub's host keys pinned in pins.sh. No token is used or
kept. Fetching stays on the public address.
With no
.IR DIR ,
the repository you are in; outside one, your name and email, and a copy of
Wren Linux from a stick is connected to the published one.
.TP
.B \-\-test
Check that the scripts, packages, downloads and signing keys still work
.RB ( "bash test.sh" ).
.TP
.B \-\-wifi
.RB [ on | off ]
Switch Wi-Fi on or off; with no word, say whether it is on.
This is the radio itself, through
.BR rfkill (8),
so NetworkManager sees it as switched off.
Only computers with a Wi-Fi adapter have it, and the menu lists it only then.
.TP
.B \-\-bluetooth
.RB [ on | off ]
The same for Bluetooth.
.TP
.B \-\-mic
.RB [ on | off ]
The same for the microphone.
It is muted in PipeWire at every login, so it is off until you switch it on.
This is software muting: a program that runs as you can unmute it again; a
hardware switch is the stronger kind.
.TP
.B \-\-camera
.RB [ on | off ]
The same for a USB webcam, with the webcam extra
.RB ( extras/webcam.sh ).
Off disconnects its USB device, as if it were unplugged, and it is off at
every boot and whenever one is plugged in.
A program running as you can switch it on the same way; a cover over the
lens is the stronger kind.
.TP
.B \-\-learn
Learn bash by reading Wren Linux's own scripts: every one, the smallest first,
with a box to check off each one read (Space), opened read-only with Enter or a
click, and the best places to learn bash at the top. Progress is kept in
~/.local/share/wren/bash-learning.progress.
.TP
.B \-\-welcome
Show the key cheat sheet again, the screen that opens at the first login.
Esc closes it.
.TP
.B \-\-version
Print which version of Wren Linux this is.
.TP
.B \-\-dir
Print where the Wren Linux folder is.
.TP
.B \-\-help
Show the short help.
.SH FILES
.TP
.I /usr/share/wren
The Wren Linux folder as the Wren Linux package installs it, owned by root, so no
program running as you can change the scripts that
.B wrenctl
runs with sudo.
When it is there it is used, unless
.B WREN_DIR
says otherwise.
.TP
.I ~/wren
Your own copy of the Wren Linux folder (the scripts, and
.I README.md
and
.IR THREAT-MODEL.md ),
used when the package isn't installed.
.TP
.I ~/.local/bin
Where the commands the scripts install go (Wren Linux, keys, timer, ...).
.TP
.I ~/.local/state/wren/updated-to
The commit the last update brought this computer to.
.TP
.I ~/.local/share/wren/keys.txt
The key cheat sheet.
.TP
.I ~/.local/share/bash-completion/completions/wrenctl
Tab completion for this command (Debian's bash-completion loads it).
.SH ENVIRONMENT
.TP
.B WREN_DIR
Use the Wren Linux folder there, instead of
.I /usr/share/wren
or
.IR ~/wren .
.TP
.B WREN_ESC_WAIT
Seconds the menu waits for the rest of an arrow key after an Esc byte
(default 0.1).
.SH EXIT STATUS
0 on success; 1 if something failed (a script that did not finish, a missing
folder); 2 for an option it does not know.
.SH SEE ALSO
.IR README.md ,
.I THREAT-MODEL.md
(what Wren Linux protects against and what it does not),
.IR docs/ .