An Arch Linux desktop for laptops and the Raspberry Pi 5: Hyprland, a
Quickshell shell, one nova command, and power management that knows the
machine it runs on. It boots from the firmware logo straight to the lock
screen, uses one theme everywhere, and installs in a few minutes from a USB
stick that can carry your files over.
Supported: the Lenovo ThinkPad P1 Gen 4i, which Nova is tuned for, and the Raspberry Pi 5. Every release is tried on both before it is out. Other x86-64 laptops and desktops with Intel, AMD or NVIDIA graphics work, but are neither tuned nor tested; the Lenovo Legion 5 (RTX 4070) has a first profile, not yet tuned. NVIDIA cards older than the GTX 16 and RTX 20 series get the basic nouveau driver: NVIDIA's own starts with those.
Nova takes the whole disk, of 64 GiB or more, and starts with UEFI. Turn Secure Boot off in the firmware settings first, and download the newest release.
1. Make the stick. On an Arch-based system, run the release's nova-usb:
sudo pacman -S gum # nova-usb asks its questions with gum
bash nova-usb # --dry-run asks everything and writes nothingIt checks the ISO against the release's checksum, and the checksum against
Nova's signing key, then writes the stick. It can also put every package on
it, so the install needs no internet, and carry your SSH keys and the files
and folders you pick from your home, encrypted. Chrome, VS Code, Claude Code
and Codex are the exception: an offline install says so, and
nova apps install; mise install adds them once online.
On any other system, write the ISO as it is with dd or any USB writer. That
stick installs over the network.
2. Boot it and answer the questions: the keyboard layout (a stick from
nova-usb offers the one of the computer it was made on), the passphrase of
what it carries, Wi-Fi when there is no cable, the disk, whether to encrypt
it, your name, user name and password, the computer's name and time zone, and
a fingerprint if there is a reader. Nothing touches the disk until you type
erase.
Encryption is off unless you turn it on. Off, anyone who has the disk can read it; on, the disk asks for its passphrase at every start, and without it nothing on the disk can be read by anyone, you included.
The installer picks the drivers for Intel, AMD and NVIDIA graphics, the
microcode and the firmware. Then take the stick out and restart (reboot):
the computer starts into the lock screen.
The stick's boot menu also has a memory test (memtest86+).
Write the release's nova-<version>-raspberry-pi-5.img.xz to a card, a USB
stick or an NVMe drive, with Raspberry Pi Imager (Use custom) or:
xzcat nova-<version>-raspberry-pi-5.img.xz | sudo dd of=/dev/sdX bs=4M conv=fsync status=progressAt its first start the Pi grows the system to fill the drive, and asks what the PC installer asks: the keyboard layout, the computer's name and time zone (which also sets the country's Wi-Fi channels), Wi-Fi when there is no cable, and your name, user name and password. Then it installs the apps and starts into the lock screen. What differs from a PC is in the Pi's notes.
| Key | Opens or does |
|---|---|
| Super+Space | the menu |
| Super+Alt+Space | the apps |
| Super+Return | a terminal |
| Super+Shift+Return | the browser (Chrome) |
| Super+Shift+F | Files |
| Super+W | close the window (windows have no title-bar buttons) |
| Super+Ctrl+L | lock |
| Super+Ctrl+I | Caffeine |
| Super+D | dictation: hold and speak, or tap for hands-free |
| a screenshot | |
| Super+K | every binding |
- Settings, in the menu: Wi-Fi, Bluetooth, mobile data and sound (also a click away in the bar), the displays (resolution, refresh rate, scale, rotation and arrangement), the battery (its history and charge limit), Performance (the power mode, the discrete GPU and the CPU's undervolt), Screen Time, the theme and background, what the bar shows, the lock screen and fingerprint, default apps, updates and recovery. Settings → Menu Bar adds more to the bar, such as Display for the brightness and the laptop screen.
- Calendar, in the menu and under the bar's clock: events and tasks, in a
week or a month, moved by dragging. An event's bottom edge says when it
ends, and a drag over the empty hours makes one; a task goes onto a day, a
time, or off its day into the list beside. Reminders come as notifications,
and the clock dots the days with anything on them and lists what today has.
It is one iCalendar file on the computer,
~/.local/share/nova/calendar/calendar.ics, synced with nothing.nova calendaropens it. - Dictation: hold Super+D and speak, and the words are pasted where the
cursor is when you let go; a tap listens until the next press, and Esc
cancels. It runs on the computer (NVIDIA's Parakeet, in 25 European
languages), and nothing leaves it: the speech model, 669 MB, is downloaded
once, at the first press, when you say yes. A Raspberry Pi takes longer to
write the words out than a laptop.
nova dictationsays whether it is ready. - Caffeine, the coffee cup in the bar, keeps the screen on: no screensaver, no lock when unused, and on a laptop closing the lid only turns the panel off, without sleeping, locking or dropping the network. It lasts until you turn it off or log out, or, on battery, until the battery is down to 10%.
- The screensaver plays the wordmark in text effects after three minutes
unused, and the screen locks after five; both are in Settings → Lock Screen.
nova screensavershows it now, and~/.config/nova/screensaver.txt, when there is one, is played instead of the wordmark. - Apps: Chrome, VS Code, Nautilus, foot, btop, fastfetch, Claude Code and Codex come installed.
- Keyboard: Caps Lock is the Compose key (Compose, ', e types é), and
both Shifts together are Caps Lock. More layouts, the key repeat and the
scrolling direction are in
~/.config/hypr/input.lua, with examples; there is no Settings page for them yet. - Languages: Nova is in English. Other languages' text shows; Chinese,
Japanese and Korean need
sudo pacman -S noto-fonts-cjk, and have no input method yet. nova helplists the commands.
Nova follows Arch Linux two weeks behind, tested. On the 1st and the 15th of
each month CI builds a release candidate and installs it in a virtual machine;
once it has been tried on real hardware it becomes a release. A notification
says when one is out, once, and the update badge in the bar stays until it is
in. Settings → Updates (or the badge) moves the system to the newest
release, with a bar for how far it is and one password or fingerprint, and a
snapshot before and after (a Raspberry Pi has no snapshots); nova update does
the same in a terminal. Chrome and VS Code update with it. When one's AUR
recipe changed more than its version, Settings shows the change and builds it
once you have read it. Settings → Updates → Test Release Candidates gets the
candidates early.
On a PC, every change to the system's packages takes a snapshot first, an update included. When something is wrong after one:
nova recoveryrestarts into the boot menu (any key in the first second of a boot opens it too). Snapshots lists the system as it was before each of the last three changes, newest first.- A snapshot starts as it was, but what is done in it lives in memory only, and is gone at the next restart: try it out first.
- To keep it, take the notification's Restore now, or run
limine-snapper-restore. The snapshot becomes the system, and it restarts.
Snapshots hold the system, not /home: going back never touches your files,
and nothing backs them up either. A Raspberry Pi has no snapshots.
- The install stops: it says at which step. The whole log is
/var/log/nova-install.log, kept in memory until the installer restarts.nova-install-starttries again from the start without a restart, and keeps the stopped try's log asnova-install.log.1. - A Pi's first start stops: it says at which step, and starts over at the
first question, as it does after a power cut. Its log is
/var/log/nova-first-boot.log. nova doctorlooks the system over and says how to fix what it finds; on a PC,sudo nova doctoralso checks the boot menu's fallback entry.nova recovery, on a PC, restarts into the boot menu: the last snapshots (see Going back), the fallback image and the LTS kernel. Any key in the first second of the boot opens it too.- The boot entries don't check out after an update: it says what is
missing.
sudo limine-updatewrites them again, andnova update --check-bootlooks again before you restart.
make lint # shellcheck, luac, qmllint, actionlint, the name check
make test # the unit tests
cargo test
make DESTDIR=/tmp/nova-root install # the nova package's files, into a scratch rootPackages, ISOs and images are built only by CI. Actions → candidate → Run
builds main into a pre-release, whose ISO is installed and booted in QEMU
before it is published.
| Read | For |
|---|---|
| Architecture | how the pieces fit, and the rules for code |
| The shell and its plugins | the bar, the panels, the lock screen |
| Power and its code | nova power: the GPU, the CPU's limits and the fans |
| Releasing | versions, the signing key, the two-week cycle |
| Packaging | the kernel, the NVIDIA modules, the AUR rebuilds |
| ThinkPad P1 Gen 4i | what was measured on it, and why |
| Raspberry Pi 5 | how Nova runs on it |
MIT, see LICENSE. NOTICE has the licenses of the code Nova builds on.