{
    "archive_path": "archive/1792102052.885733",
    "base_url": "github.com/fyzugx/DEsk",
    "basename": "DEsk",
    "bookmarked_date": "2026-10-15 22:07",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/github.com/fyzugx/DEsk",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=github.com",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": "github.com/fyzugx/DEsk.html"
    },
    "domain": "github.com",
    "extension": "",
    "hash": "FDTFSM4ZSGX3EJ25EFQW",
    "history": {
        "archive_org": [],
        "dom": [],
        "favicon": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://www.google.com/s2/favicons?domain=github.com"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-15T22:13:05.630383+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1792102052.885733",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-15T22:13:05.180901+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--head",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://github.com/fyzugx/DEsk"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-15T22:13:06.289455+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1792102052.885733",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-15T22:13:05.639193+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [],
        "media": [],
        "mercury": [
            {
                "cmd": [
                    "/app/node_modules/@postlight/parser/cli.js",
                    "https://github.com/fyzugx/DEsk"
                ],
                "cmd_version": "1.0.0",
                "end_ts": "2026-10-15T22:13:26.631461+00:00",
                "index_texts": null,
                "output": "mercury",
                "pwd": "/data/archive/1792102052.885733",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-15T22:13:21.279839+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/app/node_modules/readability-extractor/readability-extractor",
                    "/tmp/tmpu_ql1_al",
                    "https://github.com/fyzugx/DEsk"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-10-15T22:13:21.269829+00:00",
                "index_texts": [
                    "English | \u65e5\u672c\u8a9e\nDEsk\nv0.1.2 (BETA) -- v0.1, the first public release, with fixes and an installer for Fedora. See RELEASE-NOTES.md.\nI've created a Discord server!\nYou can also report bugs and submit ideas for new features here!\nlink : https://discord.gg/xR5f7Xs49\n\nDEsk is Desktop Environment and desk in one word -- a\nname that came from the Reddit community. It used to be called DeskWM:\nthe commands are now desk, desk-session, desk-settings and so on, and\nwhat was set up for DeskWM (its settings, its data, DESKWM_* variables)\ncarries over by itself.\n\nA Wayland desktop for Linux in realistic skeuomorphism -- the kind iOS 6\nhad, where everything on the screen is drawn to look like the real thing.\nHere the desktop is a desk.\nWindows are sheets of paper on a walnut desk. The dock is a drawer, your\napps are filed in binders on a bookshelf behind the desk, notifications\narrive in a post box, and the system controls are a panel built into the\nback of the desk. The room is ray-traced, and one desk lamp lights all of it.\n\n\nStatus: beta. DEsk is used day to day on its author's machines and has\nbeen checked carefully (see docs/ARCHITECTURE.md,\nsection 9), but this is its first release: expect rough edges, and expect\nthings to change. Your settings and data will be carried forward.\n\nInstall\nDownload the latest release from the\nReleases page and unpack it (or\nclone this repository). Then, in its folder, run the line for your system:\nDebian 13\nsudo sh scripts/install_debian.sh\nUbuntu 24.04 / 26.04 (and Linux Mint, Pop!_OS)\nsudo sh scripts/install_ubuntu.sh\nArch Linux (and EndeavourOS, Manjaro)\nsudo sh scripts/install_arch.sh\nFedora 43 / 44 (and Nobara)\nsudo sh scripts/install_fedora.sh\nThen log out and choose DEsk on the login screen.\n\nIt shows what it will install and asks first. --yes takes the suggested\nanswers; --no-apps installs DEsk without the recommended programs.\nThe first login draws the room once: a few seconds on a GPU, longer\nwithout one. After that it starts at once.\nTo update, get the new release and run the same line again. Your settings\nare kept.\nSomething went wrong? See Reporting a problem.\n\nMore options, building by hand and running DEsk in a window are under\nBuild and Run.\nWhat's on the desk\nNothing here is a symbol for a thing on a desk. As in the realistic\nskeuomorphism of iOS 6, each is drawn to look like the real thing set down\nthere -- its material, the light on it, its shadow and the wear of use.\n\nWindows are paper. Each window sits on a cream sheet with real fibre,\nthickness and a dog-eared corner. Hold the pointer on the corner and it\nlifts to show what is printed on the back: Fold (minimize: folded\nlike a letter and left on the desk, under the windows as paper put down\nis), Unfold / Refold (maximize and restore), and Discard (close:\ncrumpled into a ball and tossed).\nDragging an edge pulls more paper out from behind the sheet.\nThe drawer is the dock. Pull the brass handle (or press Super+D).\nIt holds the things you put in it: any app, or a folded window. Out of\nthe box it holds DEsk's standard programs (below) and a screwdriver that\nopens Shell Settings.\nThe bookshelf holds your apps (Super+A, or the ALL APPS plate).\nEach category is a ring binder whose sheets fan from a single ring.\nTake a sheet and it is carried down to the desk, where the app's window\nopens on it. At the end of the row stands an ALL APPS index book:\nevery program from A to Z, with thumb tabs and a line at the top of the\npage to type into (input methods via IBus work).\nThe post box is the notification centre (Super+N). Letters show the\nsender and subject, and a letter taken out lies on the desk.\nThe Control Panel (Super+C) is a valve-era machine built into the\nback of the desk: real meters, a volume knob, network and Bluetooth\nlevers, a fader for the room's lamp and one for the screen's own\nbacklight (on a laptop, through logind; the brightness keys work too),\na key to unlock the power buttons, and the system tray as paper slips\nunder it (more than fit, and the wheel slides the row along).\nA desk calendar, a desk memo pad and a clock stand on the shelf. The\ncalendar has a notebook of plans and to-dos, and notes are peeled off and\nstuck onto the day. The memo pad is taken down the same way and written\non (IBus works there too); its sheets turn over the wire. The clock\nshows the seconds small beside the minutes, under two lamps that light\nonly while a camera or a microphone is in use.\nThe front door is out in the real world. The lock screen's door has\nthe hour's light -- the sun worked out from your time zone's city, the\nporch lamp coming on at dusk -- and, if you let it ask open-meteo.com for\nthat city's weather (only its latitude and longitude are sent), the\nweather: rain darkening the brick and streaking past the lamp, snow\nsettling on what faces up, fog, lightning. And on certain days of the\nyear the door and the clock have something more for you -- there is no\nsetting for it; what it is, you will see on the day (give Shell Settings\nyour birthday, and that is one of them). Esc stops it.\nLight. The room (desk, shelf, console, post box) is ray-traced on the\nGPU (GLES 3), with a CPU tracer as the fallback, and cached per screen\nsize. Everything drawn over it is lit by the same lamp. At login the room\nstarts dark and the lamp comes up as the room is made, while the clock\ncounts how far in glowing red.\nSizes are in points. A bigger screen is a bigger desk, not bigger\nthings.\nMore than one screen. The desk is on one screen; every other shows\nmore of the desk's boards, running on from it, for windows to lie on. A\nnew window comes onto the screen the pointer is on, Unfold and full\nscreen fill the screen the window is on, and nothing the desk's own\nscreen does -- the drawer, turning to the bookshelf -- moves what lies on\nthe others or takes it out of reach. A screen taken away puts its\nwindows on one that is left.\nX11 apps run through Xwayland, and windows that draw their own frames\nsit on paper too.\nThe screen lock is the front door (Super+L, or logind): you walk\nup to it at night, close enough to touch, traced in 3D with its own\nlamps and soft shadows. Your picture and name are on the board hung on\nit, the password goes in at the brass plate, the key beside it; on\nReturn (or a click on the key) you lean in and turn the key. Let in, it\ngoes round, the door swings open, you walk through into the room and sit\ndown at the desk; told no, it will not turn. Locking is the same run\nbackwards -- out of the room, the door shut, the key turned -- from\nSuper+L or the blue LOCK button on the Control Panel. Checked with\nPAM, as at login.\nSeven languages. Everything DEsk prints itself, and the names of\nprograms, are in English, Japanese, Chinese (simplified), Korean,\nSpanish, French or German: the locale's, or language = en | ja | zh | ko | es | fr | de in ~/.config/desk/shell.conf (or the Shell Settings\napp), and switch live. The calendar is printed as one sold there is,\nand Chinese and Korean are set in their own cut of the CJK faces.\n\nStandard programs\nDEsk is meant to be installed as a whole desktop, like GNOME or KDE, so it\npicks a standard program for each job the desk has: a terminal, a web\nbrowser, a file manager and a text editor. The drawer's things and\nSuper+Enter open them. For each job, the first of these that is there:\n\napp.terminal, app.browser, app.files, app.editor in shell.conf\n(a .desktop id),\nthe default-applications lists in the freedesktop.org order:\n~/.config/desk-mimeapps.list (DEsk only), ~/.config/mimeapps.list\n(what Shell Settings' Default programs, xfce4-mime-settings, writes), and\nthe same two in the system's folders, ending with the\ndesk-mimeapps.list installed with DEsk -- the same answers xdg-open\nand GIO give,\nthe standard set, classic GTK programs first: Xfce Terminal, Firefox\nESR, Thunar, Mousepad (then MATE Terminal, Caja, Pluma, and so on),\nany program filed under the right category.\n\nA tour\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe corner of every window: Fold, Unfold, Discard.\nThe drawer: the dock.\n\n\n\n\n\n\nA folded window, lying on the desk under the others.\nThe bookcase behind the desk.\n\n\n\n\n\n\nALL APPS, every program from A to Z ...\n... and a line to type into.\n\n\n\n\n\n\nThe Control Panel.\nThe post box: notifications.\n\n\n\n\n\n\nThe desk calendar and its notes.\nShell Settings.\n\n\n\nDocumentation\n\ndocs/ARCHITECTURE.md -- how DEsk is built: the\nprograms, the compositor, the ray-traced room, threads, files.\ndocs/MODDING.md -- changing DEsk: words and languages,\nsettings, borrowed programs, sounds, the room, things on the desk.\ndocs/CONFIGURATION.md -- every setting, file and\nenvironment variable.\nRELEASE-NOTES.md -- what is in v0.1.2 and what is known\nnot to work yet.\ndocs/design.md -- the full development log (in Japanese).\n\nAs a desktop\nDEsk draws the desk; the work done on it is done with free software that\nalready exists. It reaches completeness by borrowing, and keeps a firm line\nbetween what it makes and what it borrows:\n\n\n\n\nDEsk makes\nboth: DEsk draws it, something else does the work\nborrowed\n\n\n\n\nwhat\nwhat is drawn as the room and handled as its things; what only the compositor can do\n\nprograms, system settings panels, background helpers\n\n\nexamples\nwindows as paper, the drawer, the bookcase, the clock, the Control Panel, the post box, the front door, the calendar and memo pad; keyboard, pointer and their keys (volume and media keys too), the screens and their power, remembering their arrangement, going idle, the lock; Shell Settings\nvolume knob and mute (PipeWire/PulseAudio), brightness (logind), Wi-Fi and Bluetooth levers, the post box (the desk is the notification daemon), the tray's slips (the applets' own items), the clock's MEDIA page (MPRIS), screenshots (grim), the input method (a bridge to IBus)\nnetwork connections, Bluetooth devices, sound devices, display arrangement, printers, the look of other programs, default programs, disks, polkit agent, keyring, portals -- and the programs themselves\n\n\n\nThe rule for new cases: make only what is drawn as part of the room or can\nonly be done inside the compositor; otherwise find an existing program that\nworks as it is under a wlroots compositor, and make something only as a\nlast resort. KDE's System Settings and kcmshell (which do not work outside\nPlasma), Xfce's and MATE's X11-only dialogs, and Xfce's display and\nappearance dialogs (which need xfsettingsd, and xfsettingsd overwrites\nGSettings with Xfce's defaults as it starts) are not used.\nsudo sh scripts/install_debian.sh     # DEsk and the whole set (install_ubuntu.sh, install_arch.sh, install_fedora.sh)\nsh scripts/install-desktop.sh         # only the programs (shows them, then asks for sudo)\nsh scripts/install-desktop.sh --extras   # and the office suite, mail...\ninstall-desktop.sh works with apt, dnf, pacman and zypper. On Debian and\nUbuntu the same set is also one package:\nequivs-build packaging/debian/desk-desktop.equivs.\n\n\n\nFor\nWhat comes\n\n\n\n\nterminal, files, text\nXfce Terminal, Thunar (with tumbler and thunar-volman), Mousepad\n\n\nthe web\nFirefox (Firefox ESR on Debian, the snap on Ubuntu)\n\n\npictures, documents, music and video\nRistretto, Atril, Parole\n\n\ntools\nEngrampa, GNOME Disks\n\n\nnetworks, Bluetooth, sound\nNetworkManager with its applet and editor, Blueman, PipeWire, pavucontrol\n\n\ndisplays, looks, defaults\nwdisplays, nwg-look (GNOME Tweaks on Ubuntu 24.04 and Fedora), Xfce's MIME settings\n\n\nprinting\nsystem-config-printer, CUPS\n\n\nnotices\nudiskie (memory sticks mounted, with a letter), poweralertd (low battery; batsignal on Arch; none on Fedora), package-update-indicator (updates; Debian and Ubuntu)\n\n\nlooking after the machine\nQDirStat (disk usage), LXQt's date and time and users, Mugshot (your name and picture), Seahorse (passwords and keys), gnome-packagekit (adding and removing programs), Back In Time (backups), Xfce Task Manager, hardinfo2 (about this computer); baobab and Deja Dup on Arch; no Mugshot on Fedora\n\n\npasswords\nMATE's polkit agent, GNOME Keyring\n\n\nplumbing\nxdg-desktop-portal (wlr, gtk), Xwayland, xdg-user-dirs, xdg-utils, wl-clipboard, grim, curl\n\n\nlooks\nQt's GTK platform theme, so Qt programs match the GTK ones\n\n\ntyping and fonts\nIBus (and Mozc for Japanese), Noto (CJK, emoji), the URW base 35, Klee One (not on Arch or Fedora)\n\n\n--extras\nLibreOffice (drawn with GTK), Thunderbird, Galculator, Xfce Task Manager, Simple Scan\n\n\n\nThe classic GTK programs of Xfce and MATE come first because they are the\nkind of window the desk's paper is cut for -- a menu bar, plain tools and\nthe document -- and they are light, start quickly and run on Wayland as\nthey are. GTK 3 asks the compositor for its frame through KDE's\nserver-decoration protocol, so they lie on DEsk's paper with its printed\nheading and no GTK title bar. Windows with a header bar (GNOME's programs,\nFirefox) keep their own frame, inside a paper margin.\nShell Settings (desk-settings) holds DEsk's own settings -- windows, the\nsize of things, how much is drawn, language, clock, your birthday and the\nweather, when the screen goes\noff and whether the desk locks then -- on its Shell tab, and on its System\ntab rows that open the borrowed programs (network, Bluetooth, sound, displays, printers, the look\nof other programs, default programs, disks, disk usage, colour profiles, the\ninput method, date and time, your name and picture, users, passwords and keys,\nadding and removing programs, backups, what the computer is doing, and the\nExperience Index), classic-looking programs first, each with the program's\nown icon and its name -- \"Displays (wdisplays)\" -- so you can see what does\nthe setting. A row whose program is not installed is printed faint with the\npackage to install, by this distribution's name. The two tabs sit on the\nsheet like a folder's index tabs, and in each pocket is a wire-bound pad\nwith a sheet to each part of the form and a sticky note on each sheet's\nedge; taking hold of a note turns the sheets over the wire to it, as on the\ndesk calendar (Page Up and Down too). Changing tab (a click, Ctrl+Tab or\nCtrl+Page Up/Down) draws the other pad up out of the folder from below, and\nthe pad comes up the same way when the window opens.\nStarted as a session (desk-session, from a login screen), DEsk tells\nD-Bus and systemd where its display is, runs the XDG autostart entries\n(leaving out the ones that would fight it, such as another notification\ndaemon or an X screen locker), and starts an authentication agent, the\nkeyring, the input method and the network applet with whichever free\nprogram for each is installed. The input method's candidates come up under\nthe text being written -- in a program's window as on the desk's own pages --\nand leave the keys where they are. It turns the screen off when nobody is at the\ndesk (locking first, by default), lets video players keep it on, and\nspeaks wlr-output-management (wdisplays, wlr-randr, kanshi), remembering a\ndisplay tool's arrangement for each set of screens. Logging out, restarting\nand powering off ask every window to close first, so a program with unsaved\nwork can ask about it; a window that does not close holds it up and is put in\nfront.\nShell Settings also sets what only a Wayland compositor can: tap to click,\nnatural scrolling, pointer speed and left-handed buttons (through libinput),\nthe keyboard layout, a second layout and the keys that change to it, and key\nrepeat -- applied at once to what is plugged in.\nHow much the desk draws is a setting too, Graphics: Ultra (the room traced\nfiner, and wider where a GPU can, and nothing drawn coarser while it moves),\nHigh (as made, the default), Medium, Low,\nand 2D Fallback -- for a machine without a GPU or a virtual machine rendering\non its CPU: no shadows, nothing fading, blurred or moving, nothing ray-traced\nas it moves, and the room traced once, small and plain. On two CPU cores\nwithout a GPU the first start goes from nearly ten minutes to about a quarter\nof a minute, and a frame from 2 ms to 0.5 ms. The installer takes a quick look\nat the machine (desk-index --suggest: the graphics, or the processor, for a\ncouple of seconds, the threads and the memory, and how long the processor takes\nto draw a sheet of paper folding) and picks the level for it, as the machine's\ndefault (/etc/xdg/desk/shell.conf); each user's own choice wins.\nWhere the screen is drawn by the processor -- no GPU, a virtual machine without\n3D, a GPU without its driver -- the desk runs in 2D Fallback unless you choose\na level yourself, and says so: a letter in the post box (check the graphics\ndrivers, or the virtual machine's settings) and a line in red beside Graphics\nin Shell Settings. 2D Fallback is the same desk with its effects off, not a\nsecond one, its room traced at a sample a pixel and softened. And a first\nstart, which traces the room from nothing, leaves a letter in the middle of\nthe desk saying it may take a minute or two, more on some machines, and that\nthe desk can be used meanwhile.\nIt is meant to stay light on old machines. Measured on a machine held to\nabout a 2010 laptop's pace (a quarter of a core each on two cores, 2 GB, no\nGPU for the room): a later login shows the desk in under half a second and\nhas the light on in 1.4 s; the very first one, which has to trace the room\non the processor, shows a soft first look and the light within seven\nseconds instead of a minute and a half in the dark; folding a sheet costs\n5 ms a frame at Low. The traced room is kept across updates, and paper in\nmotion is drawn finer or coarser by the level (whole at High, half at Low).\nPrograms on the desk are dressed for it too: DEsk's own icons, drawn to look\nlike the real things set down on the desk, the way iOS 6 drew them -- manila\ncard folders with papers in them, a typed page with its corner turned down, a\nletter signed in blue ink, a ledger, slides in their mounts, instant photos,\na record sliding out of its sleeve, a film slate, a taped carton for an\narchive, a deck of punched cards for a program, a block of wood type for a\nfont, a wire wastebasket you see through, a brass globe for the network, a\ndrive in its aluminium case -- with the grain of paper, card, wood and\nbrushed metal and the shadows they cast; and a GTK theme of paper, ink and\nbrass. They are set in a dconf\nlayer of DEsk's own over the user's, so another desktop on the same machine\nkeeps its look.\nWhen something on the desk gets stuck: Ctrl+Alt+Del twice puts everything\nof the desk's own away and draws it all again (the windows stay as they are);\nthree times logs out. desk-ctl reset and desk-ctl logout do the same from\na terminal or another VT.\nThe DEsk Experience Index\ndesk-index rates the machine at what the desk asks of it, the way the\nWindows Experience Index did: processor, memory, 2D graphics (the desk's\nown drawing), 3D graphics (the room's shader, checked against the CPU) and\ndisk, each 1.0-9.9, on brass-rimmed meters; the base score is the lowest.\ndesk-index --text prints the same in a terminal.\nRequirements\nThe simplest way is the installer for your distribution (below), which\nbrings everything. To build it yourself:\n\nwlroots 0.18 (Debian 13 has it, and Fedora 43 and later as wlroots0.18;\nUbuntu 24.04 has 0.17, Ubuntu 26.04 only 0.19 and Arch only 0.20, so the\ninstallers build 0.18.3 from its release into /opt/desk-wlroots, used by\nDEsk alone through its run path)\nwayland, wayland-protocols, xkbcommon, cairo, pixman, fontconfig, libdrm, PAM\nlibsystemd (optional): the notification daemon and the system tray.\nBuild with -Dpost=disabled to leave them out.\nlibpulse (optional): the desk's sounds (-Dsound=disabled)\nlibinput (optional): touchpad and mouse settings\nEGL, GLES, gbm (optional): ray-trace the room on the GPU. Without them\nthe CPU does it.\nXwayland and xcb (optional): X11-only apps.\nFonts: the URW base 35 (fonts-urw-base35) and Noto CJK\n(fonts-noto-cjk); fonts-klee for the memo pad.\nAt run time: grim for screenshots, curl for the weather at the door.\n\nMinimum and recommended\nMeasured with the CPU, GPU and memory cut down (systemd-run CPUQuota and\nMemoryMax, taskset; nested, 1440x900, the same hand moves every run).\nOnce the room is traced, even one core without a GPU dropped no frames; a\nframe costs about 2 ms. Only the first login traces the room: 6-9 s on a\nGPU, about 10 minutes on two cores without one (then it is cached).\n\n\n\n\nminimum\nrecommended\n\n\n\n\nCPU\n2 x86-64 cores (1 works)\n4 cores or more\n\n\nmemory\n4 GB (DEsk itself 200-450 MB)\n8 GB or more\n\n\nGPU\nnone needed (a long first login)\nOpenGL ES 3.0 with GBM (Mesa Intel, AMD, Nouveau; VMware's SVGA3D)\n\n\nscreen\n1366x768\n1440x900 or more\n\n\ndisk\nabout 1 GB (--bare; --no-apps adds what Shell Settings opens)\n2-2.7 GB with the whole set\n\n\nsystem\nDebian 13, Ubuntu 24.04 / 26.04 LTS, Arch Linux, Fedora 43 / 44\nthe same\n\n\n\nBuild\nmeson setup build\nmeson compile -C build\nRun\nInside your current session, as a window:\n\nAs a session of its own, picked from the login screen (GDM, SDDM, LightDM),\nuse the installer for your system (Install). All four take the\nsame options:\nsudo sh scripts/install_debian.sh              # or install_ubuntu.sh, install_arch.sh, install_fedora.sh\nsudo sh scripts/install_debian.sh --no-apps    # DEsk, what it needs and what Shell Settings opens\nsudo sh scripts/install_debian.sh --bare       # DEsk and what it needs, no programs (containers)\nsudo sh scripts/install_debian.sh --prefix /opt/desk\nsh scripts/install_session.sh picks the right one by itself and keeps what\nit says in ~/.local/state/desk/install.log. Each installer does the same\n(derivatives such as Mint, Pop!_OS, EndeavourOS, Manjaro and Nobara are recognised):\npackages, a release build in build-install, the PAM file, the login entry,\nand the removal of what the old name, DeskWM, left behind (after asking).\nEvery program Shell Settings' System tab opens is installed, --no-apps or\nnot, and at the end desk-settings --check lists what each row opens (or\nwhich package would bring it).\nOn other distributions, install the requirements and run scripts/install.sh.\nOr from a TTY: desk-session.\nTo update, get the new copy and run the installer again the same\nway (\"this updates it\", it says): what is installed is replaced, the last build\nis reused (or made afresh when it cannot be), and your settings and the traced\nroom stay. All the installer says is also kept in\n~/.local/state/desk/install.log (the last run's) -- the thing to look at, or\nsend, if it stops part way. A copy made for passing round carries SHA256SUMS,\nand the installer checks every file against it before building: a copy damaged\non its way says which files are wrong and stops (copy it again; if a fresh copy\nis damaged too, suspect the machine's memory or disk -- memtest86+). A Japanese\nlocale gets the Mozc converter among the suggested programs; IBus itself is\ninstalled for everyone but only runs for languages typed through an input\nmethod, or when one is set up.\nThe first start at a new screen size spends a little while ray-tracing the\nroom, on the GPU the screen is drawn with: the desk first, then the bookcase,\nthe Control Panel and the post box, each there to turn to as soon as its\npicture is, and last the films of the camera moves to them (until a film is\ndone, the move to its view is a cut). Each part is cached as it is done, so a\nfirst start cut short picks up where it stopped. What DEsk says as it runs is\nkept in ~/.local/state/desk/session.log (the session before in\nsession.log.old); its desk: room: lines say what the room was traced on\nand how long each part took -- the thing to send if a start is slow. A GPU\nis tried once, in a child process, before the room is traced on it; one that\nfails says why (failed its trial: ...), and the processor traces the room\ninstead -- at High's quality even where Ultra is chosen, Ultra's being a\nGPU's to trace.\nKeys\n\n\n\nKey\n\n\n\n\n\nSuper+Enter\nterminal\n\n\nSuper+Q / Alt+F4\nclose the focused window\n\n\nSuper+M\nfold / unfold the focused sheet\n\n\nSuper+D\nopen / close the drawer\n\n\nSuper+A\nlook up at the bookshelf\n\n\nSuper+C\nthe Control Panel\n\n\nSuper+N\nthe post box\n\n\nSuper+Tab / Alt+F1\ncycle windows\n\n\nEsc\nback to the desk\n\n\nbrightness keys\nthe screen's backlight (or, with none, the lamp)\n\n\nvolume, mute and media keys\nthe mixer and the player playing (as the clock's MEDIA page)\n\n\nPrint / Alt+Print\nscreenshot of the screen / of the window in front\n\n\nSuper+L\nlock the screen: the front door; type the password, Enter (or click the key)\n\n\nSuper+Esc / Alt+Esc\nlog out (asking the windows to close first)\n\n\n\nReporting a problem\nThe quickest way: run this in a terminal (any desktop, or a console -- DEsk\nneed not start), and attach the file it writes, ~/desk-report.txt:\n\nIt gathers DEsk's version, your Linux, your graphics card and driver, the\nlast session's log and whether DEsk crashed, with your user name, home\nfolder, machine name and network addresses taken out. Read it through before\nsending it. Say too what you did and what happened.\nWithout it (an older DEsk, or one not installed), attach by hand:\n\n~/.local/state/desk/session.log (and session.log.old if the problem was\nin the session before) -- what DEsk said as it ran;\nif the installer stopped, its last lines from the terminal (or\n~/.local/state/desk/install.log when it was run through\ninstall_session.sh).\n\nBoth are plain text; look them over before sending them. If the desk is stuck,\ndesk-ctl reset from a terminal (or another VT) draws everything again\nwithout closing your windows.\nHow it was made\nDEsk was built with the help of AI. Much of the code and the documentation\nwas written by Claude (Anthropic's AI model) under the author's direction:\nthe author decided what DEsk should be and how it should look, tested it on\nreal machines, and reviewed what went in. Reports and patches are welcome\nall the same.\nLicense\nMIT"
                ],
                "output": "readability",
                "pwd": "/data/archive/1792102052.885733",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-15T22:13:17.689979+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--max-time",
                    "120",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) curl/curl 8.14.1 (x86_64-pc-linux-gnu)",
                    "https://github.com/fyzugx/DEsk"
                ],
                "cmd_version": "curl 8.14.1 (x86_64-pc-linux-gnu)",
                "end_ts": "2026-10-15T22:13:17.682380+00:00",
                "index_texts": null,
                "output": "GitHub - fyzugx/DEsk \u00b7 GitHub",
                "pwd": "/data/archive/1792102052.885733",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-15T22:13:17.603011+00:00",
                "status": "succeeded"
            }
        ],
        "wget": [
            {
                "cmd": [
                    "wget",
                    "--no-verbose",
                    "--adjust-extension",
                    "--convert-links",
                    "--force-directories",
                    "--span-hosts",
                    "--no-parent",
                    "-e",
                    "robots=off",
                    "--reject=js,mjs,woff,woff2,ttf,otf,eot,mp4,m4v,mov,webm,ogv,mkv,avi,flv",
                    "--timeout=120",
                    "--restrict-file-names=windows",
                    "--page-requisites",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/0.7.4 (+https://github.com/ArchiveBox/ArchiveBox/) wget/GNU Wget 1.21.3",
                    "--compression=auto",
                    "--timestamping",
                    "https://github.com/fyzugx/DEsk"
                ],
                "cmd_version": "GNU Wget 1.21.3",
                "end_ts": "2026-10-15T22:13:17.585112+00:00",
                "index_texts": null,
                "output": "github.com/fyzugx/DEsk.html",
                "pwd": "/data/archive/1792102052.885733",
                "schema": "ArchiveResult",
                "start_ts": "2026-10-15T22:13:06.301288+00:00",
                "status": "succeeded"
            }
        ]
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": null,
        "dom": null,
        "favicon": "favicon.ico",
        "git": null,
        "media": null,
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "GitHub - fyzugx/DEsk \u00b7 GitHub",
        "warc": null,
        "wget": "github.com/fyzugx/DEsk.html"
    },
    "link_dir": "/data/archive/1792102052.885733",
    "newest_archive_date": "2026-10-15T22:13:21.279839+00:00",
    "num_failures": 0,
    "num_outputs": 6,
    "oldest_archive_date": "2026-10-15T22:13:05.180901+00:00",
    "path": "/fyzugx/DEsk",
    "schema": "Link",
    "scheme": "https",
    "snapshot_id": "1c4aec9b-6df9-442e-a520-cb2a371de50c",
    "sources": [
        "/data/sources/1792102052-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1792102052.885733",
    "title": "GitHub - fyzugx/DEsk \u00b7 GitHub",
    "updated": "2026-10-15T22:13:05.180229+00:00",
    "updated_date": "2026-10-15 22:13",
    "url": "https://github.com/fyzugx/DEsk"
}