Skip to content

LordOS 0.8.3-beta

Pre-release
Pre-release

Choose a tag to compare

@lordbasex lordbasex released this 19 Oct 13:01
· 35 commits to main since this release

Added

  • X11 apps. Programs that only speak X11 (xterm, Java/Swing apps, many games and older tools) now open in LordOS through Xwayland (the xwayland package), with the theme's window frame, their icon in the Dock (matched to their launcher by WM_CLASS), menus and tooltips above everything, fullscreen, minimize and close, and LordOS's cursor. Xwayland only starts when an X11 app connects and stops 10 seconds after the last one closes. LordOS's own X window manager is written in C and speaks the X11 protocol itself, without new libraries in lord-server.
  • Clipboard with X11 apps, both ways, for the normal clipboard and the primary selection (select to copy, middle click to paste); large copies and images included.
  • Primary selection for Wayland apps (middle-click paste between GTK, Qt and other apps).
  • Classic, a second full appearance. The Classic theme is no longer a template: it is a complete desktop for people used to a taskbar layout, with the same apps as Lord Default. A centered taskbar (or aligned to the start, on any side of the screen) with the start button, search, task view, the pinned and open apps and the Trash last; a start menu with a search field that searches like the system search (apps, settings, files, notes, the calculator, Help), a grid of pinned apps you arrange with a right click, recently used apps, every app A–Z, and the user and power button (Lock, Switch User, Log Out, Restart…, Shut Down…); a tray with quick settings (network, Bluetooth, Do Not Disturb, Night Light, dark mode, transparency, volume, what is playing, battery) and a notification panel with a month calendar; notifications above the taskbar; and a window frame with the title at the start and the buttons at the end. Everything is our own design: LordOS icons drawn by the theme, Inter, the LordOS wallpapers and names. Switch between the two in Settings → Appearance → Desktop style, live and without logging out: the windows that were open come back in the new one. Light and dark mode, right-to-left languages and the accent colors work in both. See docs/DESIGN.md, "Classic".
  • Window snapping. In Classic, drag a window to the left or right edge to fill that half of the screen, to a corner for a quarter, or to the top edge to maximize it; a preview shows where it will go. Hovering over the maximize button offers layouts (halves, two thirds and one third, thirds, quarters), and Super+arrows move the window in front between them. Dragging a snapped window away gives it back its size. See docs/WINDOWS.md, "Snapping".
  • Task view. Super+Tab (or the taskbar button) shows every window side by side, live and smaller, over a dimmed desktop: click one to bring it to the front, or close it from there.
  • Themes restyle every app. The shared controls (buttons, fields, segmented controls, sidebars, menus, tooltips, grouped forms, confirmations and the Restart/Shut Down sheet) now take their shape from the theme: corner radii, a light or accent menu highlight, an accent bar or a fill for the selected sidebar row, an underline or a ring on the focused field, and bordered buttons. Lord Default looks as before; Classic uses smaller radii, borders and subtle highlights. Isolated apps (Mail, Calendar, Contacts, Reminders, Passwords) follow it too.
  • Remote desktop: allowlist, blocklist and temporary blocks. Settings → Sharing chooses who may connect: the local network (the default: private and link-local addresses and connections over a VPN of this computer), only these addresses (the allowlist), or any address; keeps a blocklist of addresses and networks that are always refused; and lists the temporarily blocked addresses with the time left, Unblock and Block permanently. You get a notification when an address is blocked.
  • Monitor → Network shows the remote desktop as one more app while it's on: the browsers connected with their traffic, the recent failed sign-ins (address and the name typed, for administrators), the blocks and the lists, with Block and Unblock.

Changed

  • Settings → Desktop & Dock in Classic adds Taskbar alignment (center or start).
  • The lordos package recommends xwayland, and the ISO and the Raspberry Pi 5 image include it, so X11 apps open out of the box.
  • The theme engine paints a scaled window that contains a blurred surface (a translucent Terminal) at its scaled size; its blur then only shows the window's own content. Before, such a window was drawn at full size during the Dock's minimize effect.
  • Scroll bars stay out of the way. Scroll bars across the system are now thin overlay bars drawn at the very edge of a list or panel: hidden until you scroll (mouse wheel, touchpad, keyboard or dragging the bar) or bring the pointer near the edge, 6 px wide and 10 px under the pointer, fading out a second after the last scroll. They no longer take a strip of their own and never cover text. Settings → Appearance → Show scroll bars: Automatically (the default), When scrolling or Always (the persistent bar, for accessibility). With Reduce motion they appear and disappear without a fade; in right-to-left languages they are on the left. The Classic theme draws them with its own squarer style, and the Terminal's history bar matches.
  • Monitor → Network: a tidier detail panel. The right panel's sections (Process, Rule, Connections, Data, Ports and protocols, Destinations, and the summary's) fold with a click on their header and stay folded the next time. App names in "Top apps by traffic", the app list and the panel header wrap to two lines instead of being cut, long destinations wrap too, and the app list gives the name more room (the counts moved next to the traffic bar, the Data and Rule columns are narrower).
  • Debian's smartd stays off. Installing smartmontools from Disks no longer leaves its monitoring daemon polling the disks every 30 minutes; Disks and the Monitor read SMART on demand. Administrators can opt back in (docs/SYSTEM.md, "smartd").
  • Remote desktop now accepts the local network only by default. Connections from public internet addresses are refused unless you choose Any address (or list them) in Settings → Sharing; a VPN of this computer still works. Browsers signed in before the update sign in once more (the sign-in cookie changed).

Security

  • X11 apps run in their app's scope, so per-app firewall rules and the Monitor apply to them.
  • X11 apps never see Wayland apps, LordOS's screen, Passwords or the keyring prompt, nor the keys typed into them; what is copied outside X enters X only while an X window has the keyboard, and passwords copied in Passwords never do. Synthetic input between X11 apps (XTEST) is off. Xwayland runs without network, in its own scope. X11 apps can still see each other, as in any X11 desktop (see the privacy documentation).
  • Apps with device or "no files" restrictions get no X display.
  • Clipboard offers to Wayland apps are bound to the selection they were made for and to the app with the keyboard.
  • The per-app firewall applies to open connections, not only to new ones. A rule change used to leave established TCP connections and connected UDP sockets (QUIC) outside the policy until they closed. lord-netperm's packet filter (the cgroup programs that already counted bytes per app) now takes the same decision as at connect time for every packet of an app whose rules deny something, and lord-netperm destroys those sockets over sock_diag netlink (its unit now also allows AF_NETLINK; it still creates no internet sockets). "No incoming connections" now also cuts connections already accepted. The Raspberry Pi kernel build enables CONFIG_INET_DIAG_DESTROY; on a kernel without it the packets are still dropped.
  • Remote desktop: 3 failed sign-ins block the address. For 15 minutes, then 1 hour, then 24 hours if it happens again within a day (IPv6 counted per /64). Blocked addresses are cut before any TLS work and stay blocked after a restart (/var/lib/lordos/remote/blocklist, root only). Accounts are never locked (that would let anybody lock you out); repeated failures for one account only slow it down. Every failure and block goes to the journal (address and a sanitized user name, never the password).
  • Remote desktop: a full security review and hardening (docs/REMOTE.md). The page and the server check every field strictly (user names a-z 0-9 _ - up to 32, passwords 1–1024 bytes); the request, the form, the cookie, the WebSocket and the input messages are parsed strictly and refused otherwise; a wrong user name and a wrong password take exactly the same time; connections that are slow, too many from one address, or from addresses not allowed are closed early; the sign-in cookie is a __Host- cookie stored only as a hash, tied to the password (a password change or lock ends it) and ended for every browser of a user when that user locks the screen; sign-in and sign-out only accept requests from the page itself; TLS 1.2+ with AEAD ciphers only; the part that serves the desktop runs as the user with no shared state, no other descriptors and no way back to root. root can never sign in remotely.

Fixed

  • Java (AWT/Swing) windows were blank or shifted (non-reparenting window manager).
  • The Passwords and Backups icons sat off center in the Dock and the launcher.
  • Blocking an app now cuts the connections it already has open. Turning an app's rule off in Monitor → Network (or adding a deny rule for a destination or domain, or a restriction such as "no internet") counted its new connections as denied, but what was already open kept flowing: a video kept playing over its established TCP and QUIC connections. Now the matching traffic stops within milliseconds: the kernel drops the packets of those connections and LordOS closes them, so the app sees the connection end instead of a stall. Only what the new rule denies is cut: other destinations, the local network under "no internet", and the clients of a server the app runs keep working. Switching the rule back to allow works again at once. The Monitor counts every cut connection as denied and shows the dropped bytes as "Blocked traffic" in the app's details. See docs/FIREWALL.md, "Existing connections are cut".

Known issues and limitations

  • X11 apps need Debian's xwayland package. New installs from the ISO and the Raspberry Pi 5 image, install.sh and apt upgrade bring it (the lordos package now recommends it). The Store's update installs only what the package depends on, so after updating from the Store, install xwayland from the Store (or sudo apt install xwayland) to open X11 apps; Wayland apps don't need it. For the same reason apt-get upgrade keeps lordos back; apt upgrade (or apt-get install lordos) installs it.
  • Raspberry Pi 5: blocked connections stall instead of closing. The image keeps 0.8.2's LordOS kernel, which was built before CONFIG_INET_DIAG_DESTROY; there the firewall drops the packets of a connection a new rule denies at once, but the app only sees the connection end at its own timeout. The next Pi kernel build closes them like on a PC.
  • X11 apps can see each other, as on any X11 desktop; a separate display for restricted X11 apps, drag and drop between X11 and Wayland apps and sharp X11 apps on HiDPI displays come later.
  • The other known issues of 0.8.2 still apply.

Upgrading

  • From 0.8.2 or 0.8.1: Store → Updates shows "LordOS 0.8.3 is available" with these notes; Update installs it, and a restart finishes it. sudo apt update && sudo apt upgrade does the same. The update runs migration 004 once (it stops Debian's smartd if smartmontools left it running; from 0.8.1, migration 003 runs first); ls /var/lib/lordos/migrations lists the ones applied. Your settings are kept.
  • Remote desktop after the update: connections from public internet addresses are refused unless you choose Any address (or add them to the allowlist) in Settings → Sharing; the local network and a VPN of this computer keep working. Browsers that were signed in before sign in once more.
  • From 0.8.0 (once): run curl -fsSL https://lordos.org/install.sh | sh (a system installed from the 0.8.0 ISO has no curl: run sudo apt update && sudo apt install -y curl first). It upgrades in place to 0.8.3, runs migrations 001 to 004 and adds the LordOS repository; from then on new versions come through Store → Updates.

Downloads

File What it is
lordos-live-0.8.3-amd64.iso Live and installable image for 64-bit PCs (UEFI and BIOS). Write it to a USB stick as is; Secure Boot off.
lordos-0.8.3-rpi5-arm64.img.xz Image for the Raspberry Pi 5, for Raspberry Pi Imager ("Use custom"), an SD card or an NVMe drive.
lordos_0.8.3_amd64.deb The LordOS package for an existing Debian 13 on a PC (installed by install.sh, or with apt install ./…).
lordos_0.8.3_arm64.deb The same package for Debian 13 on arm64.
install.sh The one-line installer for Debian 13: curl -fsSL https://lordos.org/install.sh | sh. It checks the signature before installing.
SHA256SUMS The SHA-256 of every file in this release.
SHA256SUMS.sig The Ed25519 signature of SHA256SUMS with the LordOS release key (base64).
lordos_0.8.3_<arch>.spdx.json Software bill of materials (SPDX 2.3) for each package: what it bundles and the Debian packages it depends on.

Verifying the downloads

The LordOS release public key is lordos-release.pub.pem (in the repository, or at https://lordos.org/lordos-release.pub.pem). Its fingerprint, the SHA-256 of the DER public key, is:

c7155b8e6bbbb180f907381994d06af76d333016cd6f3facf67cadd053ea108e

With OpenSSL 3, in the folder with the downloads:

openssl pkey -pubin -in lordos-release.pub.pem -outform DER | sha256sum   # must match the fingerprint
base64 -d SHA256SUMS.sig > SHA256SUMS.sig.bin
openssl pkeyutl -verify -pubin -inkey lordos-release.pub.pem -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig.bin
sha256sum -c --ignore-missing SHA256SUMS

"Signature Verified Successfully" and "OK" for each downloaded file mean the files are the ones we published. Details: docs/SIGNING.md.

Links