forge:~$ man forgeos

From download to daily use: make a USB stick, install, and keep the system up to date.

Download · USB stick · Install · Use · CPU schedulers · Upgrading

Download

No installation image has been published yet.

You need a 64-bit UEFI computer with Secure Boot turned off, at least 24 GiB of disk for forgeOS, an internet connection during installation, and a USB stick of 8 GB or more.

Make a USB stick

Writing the image erases everything on the USB stick.

On Windows, with Rufus

  1. Download Rufus (the portable version is fine) and start it.
  2. Under Device, pick your USB stick.
  3. Under Boot selection, click SELECT and choose the forgeOS ISO.
  4. Click START. When Rufus asks how to write the image, choose Write in DD Image mode.
  5. Confirm that the stick will be erased, wait until it says READY, then eject the stick.

Optional check before writing, in PowerShell (compare with the SHA-256 above):

Get-FileHash .\forgeos-YYYY.MM.DD-iso-XXXXXXXX-x86_64.iso

On Linux, in a terminal

Check the download (both files in one folder):

sha256sum -c forgeos-YYYY.MM.DD-iso-XXXXXXXX-x86_64.iso.sha256

Find the stick's device name (for example sdb), by its size and model:

lsblk -d -o NAME,SIZE,MODEL,TRAN

Write the image, replacing sdX with that name. Use the whole device, not a partition like sdX1:

sudo dd if=forgeos-YYYY.MM.DD-iso-XXXXXXXX-x86_64.iso of=/dev/sdX bs=4M status=progress oflag=direct conv=fsync

To also check the signature (Linux, or Windows with GnuPG):

curl -O https://forgeos.isengard.no/forgeos.gpg
gpg --import forgeos.gpg
gpg --verify forgeos-YYYY.MM.DD-iso-XXXXXXXX-x86_64.iso.sig forgeos-YYYY.MM.DD-iso-XXXXXXXX-x86_64.iso

It should say Good signature from "forgeOS Package Signing" with the fingerprint 9D73 46A8 72CB 485A 896D 1802 9503 3E86 C2FE C5B8.

Install

  1. Boot the stick. Turn off Secure Boot in the firmware settings, then pick the USB stick's UEFI entry in the boot menu (often F12, F8 or Esc at power-on). forgeOS starts a live desktop.
  2. Connect to the internet. Ethernet works right away. For Wi-Fi, click the network icon in the top bar and pick your network.
  3. Start the installer. Press Super+Space and choose Install forgeOS, or open a terminal with Super+Return and run forgeos-install.
  4. Choose your settings. Use the arrow keys and Enter; Esc goes back. Pick the disk, your account and password, language, time zone, keyboard, whether to encrypt the disk, graphics, browsers, Steam and developer tools.
  5. Confirm. The installer downloads and checks all packages first. Only then does it ask Erase /dev/... and install forgeOS? [Y/n]. Nothing on the disk changes before you answer.
  6. Restart. Remove the USB stick when the installer finishes, restart, and log in on the forgeOS login screen.

Disks with something on them already

Use

Super is the Windows key. Super+Shift+/ shows the full list of keys at any time.

Desktop

Super+ReturnTerminal (kitty)
Super+SpaceApp launcher
Super+TabOverview of all windows
Super+B / Super+EBrowser / file manager
Super+QClose window
Super+F / Super+VFullscreen / floating
Super+arrowsMove focus
Super+Shift+arrowsMove window
Super+1..0Workspace 1..10
Super+Shift+1..0Move window to workspace
Super+LLock screen
Super+CClipboard history
Super+Shift+SSnip and annotate a screenshot

Terminal (kitty)

Ctrl+Shift+TNew tab
Ctrl+Shift+PgUp/PgDnPrevious / next tab
Ctrl+Shift+ReturnNew pane
Ctrl+Shift+arrowsMove between panes
Ctrl+Shift+C / VCopy / paste

forge commands

forge system-upgradeUpdate the system, tested first
forge tweaksColors, wallpaper, fonts, sizes
forge tweaks preset NAMESwitch theme from the terminal
forge calendar setupShow your Google Calendar in the bar
nwg-displaysArrange monitors
forge --helpEverything else

CPU schedulers

The kernel runs its own EEVDF scheduler by default. The schedulers from the sched-ext project (scx) are installed and can take over while the system runs. To start the gaming-oriented scx_lavd at every boot, create /etc/scx_loader.toml:

default_sched = "scx_lavd"
default_mode = "Gaming"

then enable it:

sudo systemctl enable --now scx_loader.service

scxtui switches schedulers and modes interactively. To go back to the kernel's scheduler:

sudo systemctl disable --now scx_loader.service

Which scheduler is faster depends on the game and the machine. Try it with your own games before keeping it on.

Upgrading with forge system-upgrade

forgeOS is rolling, like Arch: there are no version jumps, just regular updates. Run this in a terminal every week or two:

forge system-upgrade

It asks for your password, then does the whole upgrade on a copy of your system before it changes anything:

  1. Snapshot. A read-only Btrfs snapshot of the system and a backup of the boot files. This is your way back if an upgrade goes wrong.
  2. Download. It refreshes every repository in /etc/pacman.conf: forgeOS's own packages (kernel, desktop, tools) come from the [forgeos] repository on this site, and everything else from Arch's mirrors. Signatures are checked for both.
  3. Trial. The full upgrade runs in a writable copy of the system, in a container. It checks package consistency, builds the boot images, and verifies the enabled services.
  4. Review. It shows every package that is added, removed or changes version, the results of the checks, and what it could not test.
  5. Approve. Only when you answer y to Real run? [y/N] does it install the exact packages it tested. Anything else leaves your system as it was.

It never restarts the computer on its own: restart when it suits you, especially after a kernel or graphics driver update. If there is nothing to update, it says so and stops.

Old upgrade sessions keep their snapshots. forge system-upgrade --clean removes them after asking, but always keeps the newest snapshot.

Plain sudo pacman -Syu still works, as on any Arch system, but it upgrades the running system directly, without the trial and snapshot.