Repository navigation
HackerOS 2.2.0
New
- Window animations. Windows now open, close, minimize into their taskbar button, restore, maximize and snap with a short fade and scale. The Reduce motion setting turns the animations off, and a theme can change their duration. (#311, 0198-window-animations.md)
- Notification bubbles. Each new notification from the OS or an app now shows as a bubble for 6 seconds, above the taskbar of the first screen or at the top of a phone screen, then stays in the clock panel. Pointing at a bubble keeps it open. A ready update arrives the same way, with its Restart to update button. (#309, 0197-notification-toasts.md)
- Installable local server. The HackerOS server installs on your computer as a service on Windows, Linux and macOS, or as a Docker image, from the archives attached to each release. It listens on this computer only, or also on the local network over HTTPS with a local certificate authority. Settings > Server connection > Local server lists the downloads, tests an address and pairs this device with a one-time code; apps get HackServerConnection.PairAsync and TestAsync. (#308, 0191-installable-local-server.md, installable-server.md)
- Real sites in the browser through the HackerOS server. With a HackerOS server connected, the Browser opens real web sites through its proxy and stays signed in to them (cookies and redirects are kept). An icon at the start of the address bar tells where the page came from, and http pages say Not secure. Apps get HackHttpResponse.Source and the TimedOut and BlockedByAdministrator network errors. (#305, 0210-browser-real-sites-through-the-proxy.md)
- System sounds. The OS plays a sound for notifications, warnings, errors, sign-in and sign-out. Choose the sound theme (HackerOS or Soft), the volume or turn the sounds off in Settings > Sound. Add your own theme in ~/.local/share/sounds (freedesktop.org format, OGG or MP3). (#304, 0204-os-event-sounds.md, system-sounds.md)
- Open a .zip as a folder. A double click on a .zip file in the File Explorer opens it as a read-only folder, with its path in the address bar. A file opened from the archive is extracted to /tmp first. Dragging or pasting items out of the archive extracts them; renaming, deleting or adding inside it is refused. Double-clicking a .zip on the desktop opens it in the File Explorer. (#302, 0185-file-explorer-improvements.md, file-explorer.md)
- Taskbar window previews. Hovering a window's taskbar button shows a small live copy of the window, with a button to close it. Click the preview to bring the window to the front. Rest the pointer on it to see that window alone: the other windows of the screen keep only their outline. (#300, 0199-taskbar-window-previews.md)
- Taskbar context menus. A right click on a window's taskbar button gives New window and the window menu with Other screen. A right click on the rest of the taskbar gives Task manager, Show the desktop, Cascade windows, Tile windows and Taskbar settings, for the windows of that screen. (#289, 0194-taskbar-context-menus.md)
- Start as a guest, then create your account. On a new installation, Start as a Guest opens the desktop without an account. Create my account (sign-in screen, Settings ▸ Users or the Start menu) then makes it a real account with a password, keeping the guest's files or starting over. (#286, 0187-guest-start-and-sign-in-credits.md, guest-account.md)
- The clock shows your local time. The clock, the date command, ls -l and the apps now use your time zone: the device's by default, or one chosen in Settings > Date and time. Apps read it with HackTimeZone and IAppExecutionContext.TimeZone. (#283, 0193-local-time-and-time-zone.md)
- Compress, Download, Copy path and Send to. The File Explorer file menu can compress items, download them, copy their path and send them to another place. (#275, 0185-file-explorer-improvements.md)
- Drag files out of the browser to download them. Drag items from File Explorer to your computer to download them; several items arrive as a .zip. (#275, 0185-file-explorer-improvements.md)
- Credits on the sign-in screen. The sign-in screens and Settings ▸ About show the author and a link to the GitHub project. (#262, 0187-guest-start-and-sign-in-credits.md)
- A taskbar on every screen and an "Other screen" menu. Each screen can have its own taskbar. The window icon and the Maximize button offer to send a window to another screen, and a shortcut identifies each screen. (#238, 0179-per-screen-taskbars-and-other-screen-menus.md)
- Drag a window to another screen. Drag a window by its title bar onto another screen; an outline shows where it will land. (#238, 0183-drag-a-window-between-screens.md)
- Install apps from GitHub with hackpkg. The hackpkg command installs, updates and removes an app from its GitHub repository. App authors build the .hackapp package with HackerOsPack. (#238, 0182-install-apps-from-github.md)
- Mount a computer folder as a network drive. In Chrome and Edge, a folder of your computer can be mounted under /mnt and used like any other drive, with the mount and umount commands. (#238, 0181-host-folder-mounted-as-a-network-drive.md)
- Settings ▸ Screens. A new Settings page lists your screens, opens or closes them, restores them after a restart and remembers where each one goes. (#238, 0180-screen-service-placement-and-memory.md)
- Use several screens. Extend HackerOS to other monitors: each screen gets its own desktop, and windows move from one screen to another. (#238, 0178-extended-screens-in-display-surfaces.md)
- New Folder button in folder dialogs. The Choose folder and Save dialogs have a New Folder button, also used by Open Folder in Code Editor. (#218, 0175-new-folder-in-the-choose-folder-dialog.md)
- Cursor themes. Settings ▸ Appearance ▸ Cursors changes the pointer of the whole OS: System (the device's cursors), HackerOS Neon, Gothic Crimson, or your own theme, a folder of PNG cursors with their hot spot in ~/.config/hackeros/cursors/ or /etc/hackeros/cursors/. Apps need no change. (0205-cursor-themes.md, cursor-themes.md)
- Hack Store: apps open without a restart, signed packages, safe installs. An app installed or updated opens at once when it was not already loaded. Packages from a source with a signing key are verified before install. Installs are transactional: an interrupted one is finished or undone at the next start, and hackpkg repair fixes the rest. The previous version is kept: Go back to in the Store or hackpkg rollback. The app's settings and data are backed up before its first start in a new version. (0214-hack-store-hot-add-signing-transactions.md, app-installation.md)
- Hack Store: browse, install and update apps in one click. The Hack Store is pinned in the Start menu on desktop and mobile. It lists the apps of the reviewed catalogs by category, searches them, shows each app's page (screenshots, description, size, license, capabilities, trust), installs it for you or for everyone, opens, updates and uninstalls it, and offers Restart to finish. It checks for updates at sign-in then every 6 hours, and says what it finds in a notification. hackpkg install installs from the same catalogs, and asks you to choose with catalog:/ when several list the app; the SDK gains HackAppPackages.GetCatalogsAsync, GetUpdatesAsync and RestartToFinishAsync. (0212-hack-store-app-build.md, 0215-hack-store-answers-notification-and-ambiguous-app-id.md, app-installation.md)
- Icon packs. Settings ▸ Appearance can replace the app and file icons with a PNG icon pack. The new Néon pack is included, and packs are read from /usr/share/icons and ~/.local/share/icons. Open windows, the Start menu, the desktop and the File Explorer change their icons at once. (0203-icon-packs.md)
- Image wallpapers. Settings ▸ Appearance ▸ Wallpaper puts a PNG, JPEG or WebP image on the desktop: one of the 4 wallpapers shipped with HackerOS, an image of /usr/share/hackeros/wallpapers or ~/.local/share/hackeros/wallpapers, or any image picked with Browse. With several screens, each screen can have its own. Fit chooses fill, fit, stretch, center or tile. (0202-desktop-wallpaper-images.md)
- Install apps for yourself, trusted sources and block list. An app from a trusted source is now installed for you alone, without an administrator. An install for every user, an untrusted source or an app of the administrator's block list asks every time for an administrator sign-in, then a window that shows the app, its source, its trust level and its capabilities. Administrators manage the sources and the block list in Settings > Sources and block list or with hackpkg sources and hackpkg policy. hackpkg gets --user and --system; --allow-untrusted is gone. (0208-hack-store-sources-trust-build.md, app-installation.md)
- Installed apps load their images, scripts and workers. An app installed with hackpkg now finds the files of its wwwroot/ folder at the same address as an app built into the OS: images, scripts, style sheets, Web Workers and the scripts those workers load. An app that wraps a JavaScript project works once installed. (0206-serve-installed-app-assets.md)
- See what's new since your last visit. Settings ▸ What's new lists the changes of each version with a New badge on the ones you have not seen. After you sign in, a notification tells you how many there are, and a dot on the Start button stays until you have seen them. (change-list.md)
- Theme packs in the Hack Store. The Hack Store has a Themes tab. A .hacktheme pack brings themes, wallpapers, icons, sounds and cursors; install it for yourself without an administrator, or for everyone with the two-step approval, then pick its parts in Settings ▸ Appearance. A pack holds no code: no SVG, no remote address, and every file is checked against the SHA-256 of its manifest. Apps reach packs through HackAppPackages.InstallThemePackAsync, GetInstalledThemePacksAsync and RemoveThemePackAsync. (0213-theme-packs-build.md)
Improved
- Unread notifications dot next to the clock. A dot next to the taskbar clock (on the notification shade handle on a phone) shows unread notifications, and its tooltip gives their count. Opening the panel marks them read. It replaces the unexplained dot on the Applications button; the what's new notification closes by itself once every change has been seen. (#294, 0196-unread-notifications-dot.md)
- The Power button moved to the Start menu. The taskbar's Power button is now at the bottom of the Start menu. Its menu signs out, or restarts: it signs out, then reloads HackerOS from the server. Switch user is shown but not available yet. (#291)
- File Explorer: resizable panel, hover details and folder previews. The Places panel can be resized and keeps its width, hovering an item shows its name, type, size and date, folder icons preview their content, and the empty-folder message appears inside the list. (#275, 0185-file-explorer-improvements.md)
- Network drives refresh by themselves. Folders of a mounted computer folder update when files change on the computer. (#275, 0185-file-explorer-improvements.md)
- Hack Store: no update badge, and hackpkg asks which catalog to use. Available updates are announced by a notification only; the Hack Store's icon no longer carries a count. hackpkg install refuses an app that several catalogs list and names each catalog:/ to choose from. (0215-hack-store-answers-notification-and-ambiguous-app-id.md)
Fixed
- Signing out returns to the sign-in screen. After Sign out, the sign-in screen appears again instead of staying on the boot screen, and the windows of the closed session no longer remain open for the next one. (#286)
- Settings: aligned Server Connection form. In Settings > Server Connection, the Server URL, Username and Password fields each sit on their own row with their label above, on desktop and mobile. (#278)
- File Explorer: network drives aligned left and errors in a message box. Network drive names are aligned left and stay on one line, with a horizontal scroll bar when they are too long. Errors, such as a file no application can open, appear in an error message box instead of red text in the window. (#277)
- Dropping a file outside a drop zone. Dropping a file outside every drop zone no longer opens it in the browser. (#275, 0185-file-explorer-improvements.md)
- Update notice above the taskbar. The "Update ready" notice is no longer hidden under the taskbar. (#258)
- Title bar of maximized and snapped windows. The buttons of a maximized or snapped window stay clickable, dragging the title bar restores the window, and a double-click maximizes it. (#222, 0177-title-bar-of-maximized-and-snapped-windows.md)
- A screen closed by hand is forgotten even after a quick reload. Restoring the screens of the last session no longer rewrites screens.config with the values it already holds, so closing a screen right after is saved at once. The icon packs and sound themes installed in the background are recorded in /var/lib/hackeros/installed: later boots skip them, and an install cut by a reload completes at the next boot. (screen-service.md, icon-packs.md)
- The desktop opens faster after the first sign-in. The Néon icon pack is now copied to /usr/share/icons in the background once the session is open, instead of making the first sign-in wait about ten seconds. (icon-packs.md)
For developers
- SDK: icon on message boxes. MessageBoxIcon (Information, Warning, Error, Question), MessageBoxDialogRequest.Icon and a WindowAppBase.MessageBox overload that takes an icon. (#277, sdk-reference.md)
- Recursive total size in the file API. The file service and the SDK compute the total size of a folder and its content. (#275, 0185-file-explorer-improvements.md)
- HackScreens system API. System apps with the screens.manage capability can list, open, restore, close and identify screens through HackScreens. (#238, 0184-screens-administration-sdk.md)
- HackWhatsNew: read the OS change list from an app. HackWhatsNew.GetAsync returns the changes of each version in the app's language with the ones the user has not seen yet, and MarkSeenAsync removes their New badge. No capability is needed. (change-list.md)
- Release notes and changelogs written from the change list. The GitHub Release text, the release notes of every HackerOs.* NuGet package and CHANGELOG.md / CHANGELOG-fr.md now come from the change list entries. (change-list.md)
- hackeros-solution template: a whole app repository. dotnet new hackeros-solution creates an app repository: the app, a host that runs it in HackerOS, its tests, the HackerOS submodule that gives the version, CI and a workflow that submits the app to the Hack Store catalog on a v* tag. Debug builds HackerOS from the submodule's sources (step into the SDK and the OS); Release uses the nuget.org packages. Every template now has its Visual Studio and Rider labels and icon. (0207-solution-template-implementation.md, app-repository.md)
All versions: CHANGELOG.md