返回资讯中心
外部精选
软件工程
#社区热议

Wayland desktop for Linux with skeuomorphic design

v0.1.2 (BETA) -- v0.1, the first public release, with fixes and an installer for Fedora. See RELEASE-NOTES.md.

Hacker NewsFinalDestiny2026/10/15 · 13 天前30 分钟阅读

以下正文同步自 Hacker News,版权归原站所有,已转换为易读排版。

v0.1.2 (BETA) -- v0.1, the first public release, with fixes and an installer for Fedora. See RELEASE-NOTES.md.

I've created a Discord server! You can also report bugs and submit ideas for new features here! link : https://discord.gg/xR5f7Xs49

DEsk is Desktop Environment and desk in one word -- a name that came from the Reddit community. It used to be called DeskWM: the commands are now desk, desk-session, desk-settings and so on, and what was set up for DeskWM (its settings, its data, DESKWM_* variables) carries over by itself.

A Wayland desktop for Linux in realistic skeuomorphism -- the kind iOS 6 had, where everything on the screen is drawn to look like the real thing. Here the desktop is a desk.

Windows are sheets of paper on a walnut desk. The dock is a drawer, your apps are filed in binders on a bookshelf behind the desk, notifications arrive in a post box, and the system controls are a panel built into the back of the desk. The room is ray-traced, and one desk lamp lights all of it.

Status: beta. DEsk is used day to day on its author's machines and has been checked carefully (see docs/ARCHITECTURE.md, section 9), but this is its first release: expect rough edges, and expect things to change. Your settings and data will be carried forward.

Download the latest release from the Releases page and unpack it (or clone this repository). Then, in its folder, run the line for your system:

sudo sh scripts/install_debian.sh

Ubuntu 24.04 / 26.04 (and Linux Mint, Pop!_OS)

sudo sh scripts/install_ubuntu.sh

Arch Linux (and EndeavourOS, Manjaro)

sudo sh scripts/install_arch.sh

Fedora 43 / 44 (and Nobara)

sudo sh scripts/install_fedora.sh

Then log out and choose DEsk on the login screen.

More options, building by hand and running DEsk in a window are under Build and Run.

Nothing here is a symbol for a thing on a desk. As in the realistic skeuomorphism of iOS 6, each is drawn to look like the real thing set down there -- its material, the light on it, its shadow and the wear of use.

DEsk is meant to be installed as a whole desktop, like GNOME or KDE, so it picks a standard program for each job the desk has: a terminal, a web browser, a file manager and a text editor. The drawer's things and Super+Enter open them. For each job, the first of these that is there:

The corner of every window: Fold, Unfold, Discard. The drawer: the dock.

A folded window, lying on the desk under the others. The bookcase behind the desk.

ALL APPS, every program from A to Z ... ... and a line to type into.

The Control Panel. The post box: notifications.

The desk calendar and its notes. Shell Settings.

Documentation

docs/ARCHITECTURE.md -- how DEsk is built: the programs, the compositor, the ray-traced room, threads, files.

docs/MODDING.md -- changing DEsk: words and languages, settings, borrowed programs, sounds, the room, things on the desk.

docs/CONFIGURATION.md -- every setting, file and environment variable.

RELEASE-NOTES.md -- what is in v0.1.2 and what is known not to work yet.

docs/design.md -- the full development log (in Japanese).

As a desktop

DEsk draws the desk; the work done on it is done with free software that already exists. It reaches completeness by borrowing, and keeps a firm line between what it makes and what it borrows:

The rule for new cases: make only what is drawn as part of the room or can only be done inside the compositor; otherwise find an existing program that works as it is under a wlroots compositor, and make something only as a last resort. KDE's System Settings and kcmshell (which do not work outside Plasma), Xfce's and MATE's X11-only dialogs, and Xfce's display and appearance dialogs (which need xfsettingsd, and xfsettingsd overwrites GSettings with Xfce's defaults as it starts) are not used.

sudo sh scripts/install_debian.sh # DEsk and the whole set (install_ubuntu.sh, install_arch.sh, install_fedora.sh) sh scripts/install-desktop.sh # only the programs (shows them, then asks for sudo) sh scripts/install-desktop.sh --extras # and the office suite, mail...

install-desktop.sh works with apt, dnf, pacman and zypper. On Debian and Ubuntu the same set is also one package: equivs-build packaging/debian/desk-desktop.equivs.

The classic GTK programs of Xfce and MATE come first because they are the kind of window the desk's paper is cut for -- a menu bar, plain tools and the document -- and they are light, start quickly and run on Wayland as they are. GTK 3 asks the compositor for its frame through KDE's server-decoration protocol, so they lie on DEsk's paper with its printed heading and no GTK title bar. Windows with a header bar (GNOME's programs, Firefox) keep their own frame, inside a paper margin.

Shell Settings (desk-settings) holds DEsk's own settings -- windows, the size of things, how much is drawn, language, clock, your birthday and the weather, when the screen goes off and whether the desk locks then -- on its Shell tab, and on its System tab rows that open the borrowed programs (network, Bluetooth, sound, displays, printers, the look of other programs, default programs, disks, disk usage, colour profiles, the input method, date and time, your name and picture, users, passwords and keys, adding and removing programs, backups, what the computer is doing, and the Experience Index), classic-looking programs first, each with the program's own icon and its name -- "Displays (wdisplays)" -- so you can see what does the setting. A row whose program is not installed is printed faint with the package to install, by this distribution's name. The two tabs sit on the sheet like a folder's index tabs, and in each pocket is a wire-bound pad with a sheet to each part of the form and a sticky note on each sheet's edge; taking hold of a note turns the sheets over the wire to it, as on the desk calendar (Page Up and Down too). Changing tab (a click, Ctrl+Tab or Ctrl+Page Up/Down) draws the other pad up out of the folder from below, and the pad comes up the same way when the window opens.

Started as a session (desk-session, from a login screen), DEsk tells D-Bus and systemd where its display is, runs the XDG autostart entries (leaving out the ones that would fight it, such as another notification daemon or an X screen locker), and starts an authentication agent, the keyring, the input method and the network applet with whichever free program for each is installed. The input method's candidates come up under the text being written -- in a program's window as on the desk's own pages -- and leave the keys where they are. It turns the screen off when nobody is at the desk (locking first, by default), lets video players keep it on, and speaks wlr-output-management (wdisplays, wlr-randr, kanshi), remembering a display tool's arrangement for each set of screens. Logging out, restarting and powering off ask every window to close first, so a program with unsaved work can ask about it; a window that does not close holds it up and is put in front.

Shell Settings also sets what only a Wayland compositor can: tap to click, natural scrolling, pointer speed and left-handed buttons (through libinput), the keyboard layout, a second layout and the keys that change to it, and key repeat -- applied at once to what is plugged in.

How much the desk draws is a setting too, Graphics: Ultra (the room traced finer, and wider where a GPU can, and nothing drawn coarser while it moves), High (as made, the default), Medium, Low, and 2D Fallback -- for a machine without a GPU or a virtual machine rendering on its CPU: no shadows, nothing fading, blurred or moving, nothing ray-traced as it moves, and the room traced once, small and plain. On two CPU cores without a GPU the first start goes from nearly ten minutes to about a quarter of a minute, and a frame from 2 ms to 0.5 ms. The installer takes a quick look at the machine (desk-index --suggest: the graphics, or the processor, for a couple of seconds, the threads and the memory, and how long the processor takes to draw a sheet of paper folding) and picks the level for it, as the machine's default (/etc/xdg/desk/shell.conf); each user's own choice wins.

Where the screen is drawn by the processor -- no GPU, a virtual machine without 3D, a GPU without its driver -- the desk runs in 2D Fallback unless you choose a level yourself, and says so: a letter in the post box (check the graphics drivers, or the virtual machine's settings) and a line in red beside Graphics in Shell Settings. 2D Fallback is the same desk with its effects off, not a second one, its room traced at a sample a pixel and softened. And a first start, which traces the room from nothing, leaves a letter in the middle of the desk saying it may take a minute or two, more on some machines, and that the desk can be used meanwhile.

It is meant to stay light on old machines. Measured on a machine held to about a 2010 laptop's pace (a quarter of a core each on two cores, 2 GB, no GPU for the room): a later login shows the desk in under half a second and has the light on in 1.4 s; the very first one, which has to trace the room on the processor, shows a soft first look and the light within seven seconds instead of a minute and a half in the dark; folding a sheet costs 5 ms a frame at Low. The traced room is kept across updates, and paper in motion is drawn finer or coarser by the level (whole at High, half at Low).

Programs on the desk are dressed for it too: DEsk's own icons, drawn to look like the real things set down on the desk, the way iOS 6 drew them -- manila card folders with papers in them, a typed page with its corner turned down, a letter signed in blue ink, a ledger, slides in their mounts, instant photos, a record sliding out of its sleeve, a film slate, a taped carton for an archive, a deck of punched cards for a program, a block of wood type for a font, a wire wastebasket you see through, a brass globe for the network, a drive in its aluminium case -- with the grain of paper, card, wood and brushed metal and the shadows they cast; and a GTK theme of paper, ink and brass. They are set in a dconf layer of DEsk's own over the user's, so another desktop on the same machine keeps its look.

When something on the desk gets stuck: Ctrl+Alt+Del twice puts everything of the desk's own away and draws it all again (the windows stay as they are); three times logs out. desk-ctl reset and desk-ctl logout do the same from a terminal or another VT.

desk-index rates the machine at what the desk asks of it, the way the Windows Experience Index did: processor, memory, 2D graphics (the desk's own drawing), 3D graphics (the room's shader, checked against the CPU) and disk, each 1.0-9.9, on brass-rimmed meters; the base score is the lowest. desk-index --text prints the same in a terminal.

The simplest way is the installer for your distribution (below), which brings everything. To build it yourself:

Measured with the CPU, GPU and memory cut down (systemd-run CPUQuota and MemoryMax, taskset; nested, 1440x900, the same hand moves every run). Once the room is traced, even one core without a GPU dropped no frames; a frame costs about 2 ms. Only the first login traces the room: 6-9 s on a GPU, about 10 minutes on two cores without one (then it is cached).

meson setup build meson compile -C build

Run

Inside your current session, as a window:

./build/desk -s foot

As a session of its own, picked from the login screen (GDM, SDDM, LightDM), use the installer for your system (Install). All four take the same options:

sudo sh scripts/install_debian.sh # or install_ubuntu.sh, install_arch.sh, install_fedora.sh sudo sh scripts/install_debian.sh --no-apps # DEsk, what it needs and what Shell Settings opens sudo sh scripts/install_debian.sh --bare # DEsk and what it needs, no programs (containers) sudo sh scripts/install_debian.sh --prefix /opt/desk

sh scripts/install_session.sh picks the right one by itself and keeps what it says in ~/.local/state/desk/install.log. Each installer does t

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →