Repository navigation
Windows 2000 for X11 1.1.0
A hardening release after a full read of the code, sanitizer runs and fuzzing. Everything in 1.0.0 is still here; this is what changed.
Install
Fresh machine or VM, as root:
curl -sL jacktulli.github.io/w2k | sh
Machine with a desktop already: git clone https://github.com/JackTulli/Linux-explorer && cd Linux-explorer && ./install.sh --xinitrc. See the README.
The tarball is a prebuilt /usr/local tree (x86-64, glibc) for trying the desktop with startx /usr/local/bin/w2k-session; the logon screen w2kdm in it was built without PAM, so for the boot-to-logon setup use the one-command install, which builds on the machine.
Security
- Logon screen: closing the logon dialog from another X client no longer starts a session without a password. Each logon gets a fresh X server and cookie, the cookie never appears on a command line, and the PAM session is attached to the session itself so logind closes it at logoff.
- File names are data: every path handed to the shell is quoted; a file called
a'$(...)'.txtopens, it does not run. "Open with" templates are spliced, not used as printf formats. Archive items are passed as./nameso a name starting with-cannot be read as an option. - Shortcuts: a
.desktopfile is a shortcut only when marked executable, as on every other desktop; anything else with that name is listed by its full name and opens as a file. - Installer: the source checkout stays root-owned; PAM stacks for Fedora/RHEL and Alpine were wrong and are now right.
Robustness
- PNG and BMP loaders no longer read past the end of a corrupt file (found by fuzzing); JPEG errors no longer leak.
- The window manager survives a window closing while it is being dragged, while its system menu or task-button menu is up, or during Alt+Tab.
- Undo of New only removes an empty item and Undo of Copy goes to the Recycle Bin instead of deleting for good; Notepad saves through a temporary file and keeps CRLF endings; Restore never overwrites a newer file.
- Explorer and the Control Panel no longer leave a zombie per launched program; Cancel in an archive progress dialog stops the tool itself.
Behaviour
- Full-screen windows work (
_NET_WM_STATE_FULLSCREEN): mpv, VLC, Firefox's F11. - Text entry is UTF-8: accented and non-Latin keys type, the caret moves by character.
- The Windows key opens the Start menu on release when pressed alone, so Win+E, Win+R and Win+D work.
- The taskbar on the left or right of the screen draws its buttons, tray and clock where they belong; the clock's date tooltip works.
- Dialogs keep the resizability their hints give them and are never minimised into nowhere.
make install PREFIX=...is honoured for skins, cursors and icons;--fulldisables another display manager for the next boot rather than stopping it under you.