{"id":15717795,"url":"https://github.com/winesapos/winesapos","last_synced_at":"2025-05-15T03:07:10.613Z","repository":{"id":37684726,"uuid":"288567791","full_name":"winesapOS/winesapOS","owner":"winesapOS","description":"winesapOS - Game with Linux anywhere, no installation required!","archived":false,"fork":false,"pushed_at":"2025-05-09T06:55:41.000Z","size":2281,"stargazers_count":962,"open_issues_count":29,"forks_count":35,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-05-15T03:06:55.930Z","etag":null,"topics":["arch-linux","archlinux","gamescope","gaming","kde","kde-plasma","linux","mac","macos","manjaro","manjaro-linux","plasma","proton","steam","steam-deck","steamos","wine","winesap","winesapos"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winesapOS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-08-18T21:26:17.000Z","updated_at":"2025-05-12T17:46:36.000Z","dependencies_parsed_at":"2023-10-05T07:25:51.846Z","dependency_job_id":"205aa91b-ad3f-447b-8f8e-5a968a9012f0","html_url":"https://github.com/winesapOS/winesapOS","commit_stats":null,"previous_names":["winesapos/winesapos","lukeshortcloud/winesapos"],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winesapOS%2FwinesapOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winesapOS%2FwinesapOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winesapOS%2FwinesapOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winesapOS%2FwinesapOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winesapOS","download_url":"https://codeload.github.com/winesapOS/winesapOS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254264766,"owners_count":22041793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arch-linux","archlinux","gamescope","gaming","kde","kde-plasma","linux","mac","macos","manjaro","manjaro-linux","plasma","proton","steam","steam-deck","steamos","wine","winesap","winesapos"],"created_at":"2024-10-03T21:51:21.520Z","updated_at":"2025-05-15T03:07:05.597Z","avatar_url":"https://github.com/winesapOS.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# winesapOS \u003cimg src=\"https://user-images.githubusercontent.com/10150374/158224898-bdb4ad3a-ad09-478c-a09d-d313feeb8713.png\" width=15% height=15%\u003e\n\n***Game with Linux anywhere, no installation required!***\n\n- ![Image build status for Arch Linux](https://github.com/winesapOS/winesapOS/actions/workflows/image-arch-linux.yml/badge.svg)\n- ![Image build status for Manjaro](https://github.com/winesapOS/winesapOS/actions/workflows/image-manjaro.yml/badge.svg)\n- ![Testing repository build status](https://github.com/winesapOS/winesapOS/actions/workflows/repo-testing.yml/badge.svg)\n\nPerformance image type:\n\n![winesapOS performance image type desktop screenshot](winesapos-desktop-performance.jpg)\n\nMinimal image type:\n\n![winesapOS minimal image type desktop screenshot](winesapos-desktop-minimal.jpg)\n\nwinesapOS makes it easy to setup Linux and play games off an internal or portable external drive.\n\nWhy use winesapOS?\n\n- Portable. Useful for gaming or recovery purposes while traveling.\n- Enhanced hardware support for Apple Macs with Intel processors, ASUS laptops, ASUS ROG Ally handhelds, AYANEO handhelds, Framework computers, Microsoft Surface laptops, and Valve Steam Deck handhelds.\n- Upgrades are fully automated and supported for minor and major versions.\n- All of the features of winesapOS are listed [here](#features).\n\nRelease images can be downloaded [here](https://github.com/winesapOS/winesapOS/releases).\n\nProject goals:\n\n- **Readability.** Anyone can learn how to install and maintain Arch Linux.\n- **Upstream.** Stay as vanilla and upstream as possible.\n- **Portability.** Be the most portable and modern x86_64 operating system.\n\nWant to help support our work? Report any bugs or feature requests to our [GitHub Issues](https://github.com/winesapOS/winesapOS/issues). For developers, our [CONTRIBUTING.md](CONTRIBUTING.md) guide provides all of the information you need to get started as a winesapOS contributor. If you are a Go developer, we need the most help with the [archupgrade-go](https://github.com/winesapOS/archupgrade-go) project.\n\n**TABLE OF CONTENTS**\n\n* [winesapOS](#winesapos)\n   * [macOS Limitations](#macos-limitations)\n   * [Features](#features)\n       * [General](#general)\n       * [Additional Hardware Support](#additional-hardware-support)\n           * [Apple Intel Macs](#apple-intel-macs)\n           * [ASUS Laptops](#asus-laptops)\n           * [ASUS ROG Ally Handhelds](#asus-rog-ally-handhelds)\n           * [AYANEO Handhelds](#ayaneo-handhelds)\n           * [Framework Computers](#framework-computers)\n           * [Lenovo Legion Go](#lenovo-legion-go)\n           * [Microsoft Surface Laptops](#microsoft-surface-laptops)\n           * [OneXPlayer Handhelds](#onexplayer-handhelds)\n           * [Valve Steam Decks](#valve-steam-decks)\n       * [Community Collaboration](#community-collaboration)\n       * [winesapOS Repository](#winesapos-repository)\n       * [Comparison with SteamOS](#comparison-with-steamos)\n   * [Usage](#usage)\n      * [Getting Started](#getting-started)\n          * [Hardware Requirements](#hardware-requirements)\n          * [Image Types](#image-types)\n              * [Secure Image](#secure-image)\n          * [Release Builds](#release-builds)\n          * [Custom Builds](#custom-builds)\n          * [Docker or Podman Container](#docker-or-podman-container)\n          * [Windows Subsystem for Linux](#windows-subsystem-for-linux)\n          * [Passwords](#passwords)\n          * [Mac Boot](#mac-boot)\n          * [Windows Boot](#windows-boot)\n          * [Ventoy](#ventoy)\n          * [Dual-Boot](#dual-boot)\n              * [macOS Dual-Boot Preparation Guide](#macos-dual-boot-preparation-guide)\n              * [Windows Dual-Boot Preparation Guide](#windows-dual-boot-preparation-guide)\n              * [winesapOS Dual-Boot Install Guide](#winesapos-dual-boot-install-guide)\n      * [First-Time Setup](#first-time-setup)\n      * [Upgrades](#upgrades)\n          * [Minor Upgrades](#minor-upgrades)\n          * [Major Upgrades](#major-upgrades)\n      * [Uninstall](#uninstall)\n      * [Convert to winesapOS](#convert-to-winesapos)\n   * [Tips](#tips)\n      * [Windows Games on Steam](#windows-games-on-steam)\n      * [Steam Deck Game Mode](#steam-deck-game-mode)\n      * [No Sound (Muted Audio)](#no-sound-muted-audio)\n      * [Btrfs Backups](#btrfs-backups)\n      * [VPN (ZeroTier)](#vpn-zerotier)\n   * [Troubleshooting](#troubleshooting)\n       * [Release Image Zip Files](#release-image-zip-files)\n       * [winesapOS Not Booting](#winesapos-not-booting)\n       * [Access Boot Menu](#access-boot-menu)\n       * [Root File System Resizing](#root-file-system-resizing)\n       * [Read-Only File System](#read-only-file-system)\n       * [Wi-Fi or Bluetooth Not Working](#wi-fi-or-bluetooth-not-working)\n       * [Available Storage Space is Incorrect](#available-storage-space-is-incorrect)\n       * [First-Time Setup Log Files](#first-time-setup-log-files)\n       * [Two or More Set Ups of winesapOS Cause an Unbootable System](#two-or-more-set-ups-of-winesapos-cause-an-unbootable-system)\n       * [Snapshot Recovery](#snapshot-recovery)\n       * [Reinstalling winesapOS](#reinstalling-winesapos)\n       * [Bad Performance on Battery](#bad-performance-on-battery)\n   * [Frequently Asked Questions (FAQ)](#frequently-asked-questions-faq)\n   * [Contributors](#contributors)\n   * [User Surveys](#user-surveys)\n   * [History](#history)\n   * [License](#license)\n\n## macOS Limitations\n\nThese are reasons why macOS is inferior compared to Linux when it comes to gaming.\n\n- Old and incomplete implementations of [OpenGL 4.1 and OpenCL 1.2](https://support.apple.com/en-us/101525).\n    - On Apple Silicon, OpenGL is only provided by the slow [Metal for WebGL translation layer](https://github.com/KhronosGroup/MoltenVK/issues/203#issuecomment-1525594425).\n- Linux has [kernel-level optimizations](https://www.phoronix.com/news/Linux-6.14-Char-Misc-NTSYNC) for Wine.\n- [CrossOver Mac](https://www.codeweavers.com/crossover), a commercial Wine product, is one of the few ways to run games on macOS. It costs money and requires a new license yearly (or a very expensive lifetime license).\n    - The community fork of Wine from CrossOver [lacks](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/issues/3372#issuecomment-1966481427) support for some game launchers, codecs, and translation layers.\n\n## Features\n\n### General\n\n- **Any computer with an AMD or Intel processor can run winesapOS.**\n- **Portability.**\n    - A drive is bootable on both BIOS and UEFI systems.\n    - Lots of [boot optimizations](https://rootpages.lukeshort.cloud/storage/bootloaders.html#usb-installation-with-both-legacy-bios-and-uefi-support) are made to make winesapOS more portable than most live Linux distributions.\n    - Applications are installed using Flatpaks, a universal package manager for Linux, where possible.\n- **Persistent storage.** Unlike traditional Linux live media, all storage is persistent and kept upon reboots.\n    - Upon the first boot, the root partition is expanded to utilize all available space.\n- **Supportability.** Linux is easy to troubleshoot remotely.\n    - Access:\n        - SSH can be accessed via clients on the same [ZeroTier VPN](https://www.zerotier.com/) network.\n        - [tmate](https://tmate.io/) makes sharing SSH sessions without VPN connections easy.\n    - Tools:\n        - [ClamAV](https://www.clamav.net/), and the GUI front-end [Clamtk](https://github.com/dave-theunsub/clamtk), is an open source anti-virus scanner.\n        - [QDirStat](https://github.com/shundhammer/qdirstat) provides a graphical user interface to view storage space usage.\n- **Usability.** Software for typical day-to-day use is provided.\n    - [AppImagePool](https://github.com/prateekmedia/appimagepool) for a GUI AppImage package manager.\n    - [balenaEtcher](https://www.balena.io/etcher/) for an image flashing utility.\n    - [bauh](https://github.com/vinifmor/bauh) for a GUI AUR and Snap package manager.\n    - [Blueman](https://github.com/blueman-project/blueman) for a Bluetooth pairing client.\n    - [Bottles](https://usebottles.com/) for installing any Windows program.\n    - [Calibre](https://calibre-ebook.com/) for managing ebooks.\n    - [Cheese](https://wiki.gnome.org/Apps/Cheese) for a webcam software.\n    - [CoolerControl](https://gitlab.com/coolercontrol/coolercontrol) for managing computer fans.\n    - [Discord](https://discord.com/) for a gaming chat client.\n    - [Discover](https://apps.kde.org/discover/) for a GUI Flatpak package manager.\n    - [Distrobox](https://github.com/89luca89/distrobox) for managing containers.\n    - [Dolphin](https://apps.kde.org/dolphin/) (KDE Plasma), [Nemo](https://github.com/linuxmint/nemo) (Cinnamon), [cosmic-files](https://github.com/pop-os/cosmic-files) (COSMIC), or [Nautilus](https://wiki.gnome.org/action/show/Apps/Files?action=show\u0026redirect=Apps%2FNautilus) (GNOME) for a file manager.\n    - [FileZilla](https://filezilla-project.org/) for a FTP client.\n    - [Firefox ESR](https://support.mozilla.org/en-US/kb/switch-to-firefox-extended-support-release-esr) for a stable web browser.\n    - [Firewall](https://firewalld.org/) (secure image) provides a GUI for managing firewalld.\n    - [Flatseal](https://github.com/tchx84/Flatseal) for managing Flatpaks.\n    - [Google Chrome](https://www.google.com/chrome/) for a newer web browser.\n    - [GParted](https://gparted.org/) for managing storage partitions.\n    - [Gwenview](https://apps.kde.org/gwenview/) (KDE Plasma), [Pix](https://community.linuxmint.com/software/view/pix) (Cinnamon), [cosmic-files](https://github.com/pop-os/cosmic-files) (COSMIC), or [Eye of GNOME](https://wiki.gnome.org/Apps/EyeOfGnome) (GNOME) for an image gallery application.\n    - [KeePassXC](https://keepassxc.org/) for a cross-platform password manager.\n    - [LibreOffice](https://www.libreoffice.org/) provides an office suite.\n    - [Modem Manager GUI](https://sourceforge.net/projects/modem-manager-gui/) for using cellular modems.\n    - [Open Broadcaster Software (OBS) Studio](https://obsproject.com/) for a recording and streaming utility.\n    - [PeaZip](https://peazip.github.io/) for an archive/compression utility.\n    - [qBittorrent](https://www.qbittorrent.org/) for a torrent client.\n    - [Spectacle](https://apps.kde.org/spectacle/) for a screenshot utility.\n    - [usbmuxd](https://github.com/libimobiledevice/usbmuxd) with backported patches to properly support iPhone file transfers and Internet tethering on T2 Macs.\n    - [Waydroid](https://waydro.id/) for Android app and gaming support.\n    - [VeraCrypt](https://www.veracrypt.fr/en/Home.html) for a cross-platform encryption utility.\n    - [VLC](https://www.videolan.org/) for a media player.\n    - [ZeroTier GUI](https://github.com/tralph3/ZeroTier-GUI) for a VPN utility for online LAN gaming.\n- **Distro-agnostic package managers** for installing a large variety of software.\n    - [Flatpak](https://flatpak.org/)\n    - [Homebrew](https://brew.sh/)\n    - [Nix](https://nixos.org/)\n    - [Snap](https://snapcraft.io/)\n- **Gaming support** out-of-the-box.\n    - Game launchers:\n        - [Steam](https://store.steampowered.com/).\n        - [Heroic Games Launcher](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) for Epic Games Store games.\n        - [Lutris](https://lutris.net/) for all other games.\n        - [Open Gamepad UI](https://github.com/ShadowBlip/OpenGamepadUI) for an open source video game console experience.\n        - [Prism Launcher](https://prismlauncher.org/) for vanilla and modded Minecraft: Java Edition.\n        - [Bottles](https://usebottles.com/) for all Windows programs.\n        - [EmuDeck](https://www.emudeck.com/) for video game console emulators.\n        - [NVIDIA GeForce Now](https://www.nvidia.com/en-us/geforce-now/) for streaming games from NVIDIA servers.\n        - [Xbox Cloud Gaming](https://www.xbox.com/en-US/cloud-gaming) for streaming Xbox games.\n    - Wine:\n        - [Proton](https://github.com/ValveSoftware/Proton) is installed along with Steam for playing Windows games on Linux.\n        - [GE-Proton](https://github.com/GloriousEggroll/proton-ge-custom) is installed along with the ProtonUp-Qt package manager for it. This provides better Windows games compatibility.\n        - [Proton-Sarek (async)](https://github.com/pythonlover02/Proton-Sarek) = A GE-Proton fork optimized for legacy graphics cards.\n        - [umu-launcher](https://github.com/Open-Wine-Components/umu-launcher) for running non-Steam games with Proton.\n    - [Chiaki](https://github.com/streetpea/chiaki-ng) for PS4 and PS5 game streaming.\n    - [DOSBox](https://www.dosbox.com/) for running 16-bit DOS and Windows (via Wine) applications.\n    - [GameMode](https://github.com/FeralInteractive/gamemode) is available to be used to speed up games.\n    - [Gamescope](https://github.com/Plagman/gamescope) for helping play older games with frame rate or resolution issues.\n    - [GOverlay](https://github.com/benjamimgois/goverlay) is a GUI for managing Vulkan overlays including MangoHud and vkBasalt.\n    - [Ludusavi](https://github.com/mtkennerly/ludusavi) is a game save files manager.\n    - [MangoHud](https://github.com/flightlessmango/MangoHud) for benchmarking OpenGL and Vulkan games.\n    - [Moonlight](https://github.com/moonlight-stream/moonlight-qt) and [Sunshine](https://github.com/LizardByte/Sunshine) for game streaming.\n    - [Nexus Mods app](https://github.com/Nexus-Mods/NexusMods.App) for managing mods.\n    - [NonSteamLaunchers](https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck) to manage other game launchers.\n    - [Playtron GameLAB](https://www.playtron.one/contribute) to remotely manage Playtron GameOS devices.\n    - [ProtonUp-Qt](https://github.com/DavidoTek/ProtonUp-Qt) for managing Steam Play compatibility tools.\n    - [ZeroTier VPN](https://www.zerotier.com/) can be used to play LAN-only games online with friends.\n    - Open source OpenGL and Vulkan drivers are installed for AMD, Intel, NVIDIA, VirtualBox, and VMware graphics.\n- **Controller support** for most controllers.\n    - All official PlayStation and Xbox controllers are supported.\n    - All generic DirectInput and XInput controllers are supported.\n    - [AntiMicroX](https://github.com/AntiMicroX/antimicrox) is provided for configuring controller input for non-Steam games.\n    - [game-devices-udev](https://codeberg.org/fabiscafe/game-devices-udev) is provided for more controller support.\n    - [OpenRazer](https://openrazer.github.io/) and [Polychromatic](https://polychromatic.app/) are provided for Razer accessories.\n    - [Oversteer](https://github.com/berarma/oversteer) is provided for managing racing wheels and related accessories.\n- **Steam Deck look and feel**.\n    - [Gamescope Session](https://github.com/ChimeraOS/gamescope-session) is provided to replicate the \"Game Mode\" from the Steam Deck.\n    - KDE Plasma desktop environment is used.\n- **Minimize writes** to the drive to improve its longevity.\n    - Root file system is mounted with the options `noatime` and `nodiratime` to not write the access times for files and directories.\n    - Temporary directories with heavy writes (`/tmp/`, `/var/log/`, and `/var/tmp/`) are mounted as RAM-only file systems.\n    - [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) is configured to use volatile (RAM-only) storage for all system logs.\n    - zram with lz4 compression is used for swap to maximize performance and avoid writing data to a swap file on the storage device.\n        - Alternatively, a swap file can be used instead for hibernation support.\n        - For a swap file, the swappiness level is set to 0.5% (down from the default of 30%) as recommended by CryoByte33's [CryoUtilities](https://github.com/CryoByte33/steam-deck-utilities).\n    - Writes are heavily cached in RAM for faster performance.\n    - Commit file system writes every 600 seconds (10 minutes) to minimize wear and tear.\n    - libeatmydata is used for Firefox ESR and Google Chrome to improve performance and minimize writes.\n        - Despite the name, all data (including bookmarks, history, signed-in profiles, etc.) are kept after exiting the application.\n- **Full backups** via Btrfs.\n    - [Snapper](https://github.com/openSUSE/snapper) takes 6 monthly snapshots of the `/home/` directory.\n    - [snap-pac](https://github.com/wesbarnett/snap-pac) takes a snapshot whenever the `pacman` package manager is used.\n    - [grub-btrfs](https://github.com/Antynea/grub-btrfs) automatically generates a GRUB menu entry for all of the Btrfs backups.\n- **No automatic operating system updates.** Updates should always be intentional and planned.\n- **Most file systems supported.** Access any storage device, anywhere.\n    - APFS\n    - Bcachefs\n    - Boot File System (BFS)\n    - Btrfs\n    - CephFS\n    - CIFS/SMB\n    - eCryptFS\n    - EROFS\n    - ext2, ext3, and ext4\n    - exFAT\n    - F2FS\n    - FAT12, FAT16, and FAT32\n    - GFS2\n    - GlusterFS\n    - HFS and HFS+\n    - JFS\n    - MinIO\n    - MINIX file system\n    - MooseFS\n    - NFS\n    - NILFS2\n    - NTFS\n    - OverlayFS\n    - ReiserFS = Only works with Linux LTS.\n    - SquashFS\n    - SSDFS\n    - SSHFS\n    - UDF\n    - Virtiofs\n    - XFS\n    - ZFS = Only works with Linux LTS.\n- **Battery optimizations.**\n    - The [auto-cpufreq](https://github.com/AdnanHodzic/auto-cpufreq) service provides automatic power management.\n- **Fully automated installation.**\n\n### Additional Hardware Support\n\n#### Apple Intel Macs\n\n**All Intel Macs are supported.** Linux works on most Macs out-of-the-box these days. Drivers are pre-installed for newer hardware where native Linux support is missing.\n\nFor installation onto an internal drive, winesapOS must be installed as a [dual-boot](#dual-boot) alongside macOS. It will not work as the only installed operating system on an Intel Mac.\n\n| Hardware | Supported | Third-Party Driver(s) |\n| -------- | --------- | --------- |\n| Keyboard | Yes | [linux-t2 patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n| Touchpad | Yes | [linux-t2 patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n| NVMe | Yes | [linux-t2 patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n| Sound | Yes | [linux-t2 patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) and [apple-t2-audio-config](https://github.com/kekrby/t2-better-audio) |\n| Fans | Yes | [mbpfan](https://github.com/linux-on-mac/mbpfan) |\n| Bluetooth | Yes | [linux-t2 patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) and [apple-bcm-firmware](https://github.com/NoaHimesaka1873/apple-bcm-firmware) |\n| Wi-Fi | Yes | [broadcom-wl](https://github.com/antoineco/broadcom-wl) and [apple-bcm-firmware](https://github.com/NoaHimesaka1873/apple-bcm-firmware) |\n| Fingerprint scanner | No | |\n| Touch Bar | Yes | [linux-t2 patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n\nNotes about Bluetooth and Wi-Fi support if it is not working out-of-the-box:\n\n-  Macs with the Apple T2 Security Chip (\u003e= 2017)\n    - Follow the t2linux [wiki](https://wiki.t2linux.org/guides/wifi-bluetooth/) for instructions on how to copy firmware files from macOS to Linux.\n-  Macs without the Apple T2 Security Chip (\u003c 2017)\n    -  During the winesapOS First-Time Setup, select \"Yes\" when asked \"Do you want to install the Broadcom proprietary Wi-Fi driver?\"\n\n#### ASUS Laptops\n\n| Hardware | Supported | Third-Party Driver(s) |\n| -------- | --------- | --------- |\n| Keyboard | Yes | [asusctl](https://gitlab.com/asus-linux/asusctl) |\n| Touchpad | Yes | |\n| NVMe | Yes | |\n| Sound | Yes | |\n| Fans | Yes | [asusctl](https://gitlab.com/asus-linux/asusctl) |\n| Bluetooth | Yes | |\n| Wi-Fi | Yes | |\n| Fingerprint scanner | No | |\n\n#### ASUS ROG Ally Handhelds\n\nWe provide support for both the original ASUS ROG Ally and the newer ASUS ROG Ally X.\n\n| Hardware | Supported | Third-Party Driver(s) |\n| -------- | --------- | --------- |\n| Controller | Yes | |\n| NVMe | Yes | |\n| Sound | Yes | |\n| Fans | Yes | [linux-nobara patches](https://github.com/Nobara-Project/rpm-sources/blob/41/baseos/kernel/6.12.8/ROG-ALLY-NCT6775-PLATFORM.patch) |\n| Bluetooth | Yes | |\n| Wi-Fi | Yes | |\n| Fingerprint scanner | No | |\n\n#### AYANEO Handhelds\n\n| Hardware | Supported | Third-Party Driver(s) |\n| -------- | --------- | --------- |\n| Controller | Yes | [ayaneo-platform-dkms-git](https://github.com/ShadowBlip/ayaneo-platform) and [ayaled-updated](https://github.com/luluco250/ayaled) |\n| NVMe | Yes | |\n| Sound | Yes | [aw87559-firmware](https://aur.archlinux.org/packages/aw87559-firmware) |\n| Fans | Yes | |\n| Bluetooth | Yes | |\n| Wi-Fi | Yes | |\n| Fingerprint scanner | No | |\n\n#### Framework Computers\n\nAll [Framework](https://frame.work/) computers are fully supported.\n\n| Hardware | Supported | Notes |\n| -------- | --------- | --------- |\n| Keyboard | Yes |  |\n| Touchpad | Yes | Quirk added to disable when the keyboard is in-use |\n| NVMe | Yes | Power saving mode enabled for deep sleep support  |\n| Sound | Yes | [framework-dsp](https://github.com/cab404/framework-dsp) used for improved audio quality |\n| Fans | Yes | |\n| Bluetooth | Yes | |\n| Wi-Fi | Yes | Region is automatically set to enable Wi-Fi \u003e= 5 |\n| Fingerprint scanner | Yes | |\n| LED matrix | Yes | [inputmodule-control](https://github.com/FrameworkComputer/inputmodule-rs/blob/main/ledmatrix/README.md) used for managing LED matrixes |\n\nFor the Framework Laptop 16, audio support for Linux needs to be enabled in the BIOS.\n\n- (Boot into the BIOS by pressing \"F2\" when turning the device on) \u003e Setup Utility \u003e Advanced \u003e Linux Audio Compatibility: Linux \u003e (Save and exit by pressing \"F10\")\n\n#### Lenovo Legion Go\n\nAs of winesapOS 4.3.0, all drivers are now upstream. No third-party drivers are needed.\n\n#### Microsoft Surface Laptops\n\n| Hardware | Supported | Third-Party Driver(s) |\n| -------- | --------- | --------- |\n| Keyboard | Yes | [linux-surface pathces](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n| Touchpad | Yes | |\n| NVMe | Yes | |\n| Sound | Yes | [linux-surface patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n| Fans | Yes | [linux-surface patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n| Bluetooth | Yes | [linux-surface patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n| Wi-Fi | Yes | [linux-surface patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n| Fingerprint scanner | No | |\n| Touchscreen | Yes | [IPTSD](https://github.com/linux-surface/iptsd), [libwacom-surface](https://github.com/linux-surface/libwacom), and [linux-surface patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) |\n\n#### OneXPlayer Handhelds\n\nAs of winesapOS 4.3.0, all drivers are now upstream. No third-party drivers are needed.\n\n#### Valve Steam Decks\n\nBoth the Steam Deck LCD and OLED models are fully supported.\n\n| Hardware | Supported | Third-Party Driver(s) |\n| -------- | --------- | --------- |\n| Controller | Yes | |\n| Touchpad | Yes | |\n| NVMe | Yes | |\n| Sound | Yes | [linux-nobara patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) and [linux-firmware-valve](https://aur.archlinux.org/packages/linux-firmware-valve) |\n| Fans | Yes | |\n| Bluetooth | Yes | [linux-nobara patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) and [linux-firmware-valve](https://aur.archlinux.org/packages/linux-firmware-valve) |\n| Wi-Fi | Yes | [linux-nobara patches](https://github.com/Nobara-Project/rpm-sources/tree/main/baseos/kernel) and [linux-firmware-valve](https://aur.archlinux.org/packages/linux-firmware-valve) |\n| Touchscreen | Yes | |\n\n### Community Collaboration\n\nWe are actively working alongside these operating system projects to help provide wider Linux gaming support to the masses:\n\n- [Batocera](https://batocera.org/)\n- [ChimeraOS](https://chimeraos.org/)\n- [Garuda Linux](https://garudalinux.org/)\n- [SteamOS: Edge](https://gitlab.com/edgedev1/steamos-edge) (Originally GuestSneezeOS, then Jupiter Linux.)\n- [Nobara](https://nobaraproject.org/)\n- [Playtron GameOS](https://www.playtron.one/)\n- [Universal Blue](https://universal-blue.org/)\n\n### winesapOS Repository\n\nAs of winesapOS 3.1.0, we now provide our own repository with some AUR packages pre-built. This repository works on Arch Linux and Manjaro. It is enabled on winesapOS by default. Depending on what distribution you are on, here is how it can be enabled:\n\n-  Arch Linux and Manjaro:\n    ```\n    sudo sed -i s'/\\[core]/[winesapos]\\nServer = https:\\/\\/winesapos.lukeshort.cloud\\/repo\\/$repo\\/$arch\\n\\n[core]/'g /etc/pacman.conf\n    sudo pacman -S -y -y\n    ```\n\nEnable the GPG key to be used by importing it and then locally signing the key to trust it.\n\n```\nsudo pacman-key --recv-keys 1805E886BECCCEA99EDF55F081CA29E4A4B01239\nsudo pacman-key --init\nsudo pacman-key --lsign-key 1805E886BECCCEA99EDF55F081CA29E4A4B01239\n```\n\n### Comparison with SteamOS\n\n| Features | SteamOS 3 | winesapOS 4 |\n| --- | --- | --- |\n| SteamOS repositories | Yes | No |\n| Arch Linux packages | Old | New |\n| Boot compatibility | UEFI | UEFI and legacy BIOS |\n| Graphics drivers | AMD | AMD, Intel, NVIDIA, Parallels, VirtualBox, and VMware |\n| Audio server | PipeWire | PipeWire |\n| Read-only file system | Yes | No |\n| Encrypted file system | No | Yes (secure image) |\n| File system backup type | A/B partitions | Btrfs snapshots |\n| Number of possible file system backups | 1 | Unlimited |\n| Package managers (CLI) | flatpak and nix | pacman, paru/yay/AUR, flatpak, homebrew, nix, and snap |\n| Preferred package manager (CLI) | flatpak | flatpak |\n| Package managers (GUI) | Discover (flatpak) | Discover (flatpak), bauh (pacman, paru/yay/AUR, flatpak, and snap), and AppImagePool (AppImage) |\n| Update type | Image-based | Package manager |\n| Number of installed packages | Small | Small (minimal image) or Large (performance and secure images) |\n| Game launchers | Steam | Steam, Heroic Games Launcher, Lutris, NVIDIA GeForce Now, Open Gamepad UI, Prism Launcher, and Xbox Cloud Gaming |\n| Linux kernels | Neptune (6.5) | Linux LTS (6.12) and Linux Nobara (Latest) |\n| Additional Apple Intel Mac drivers | No | Yes |\n| Additional ASUS laptop drivers | No | Yes |\n| Additional ASUS ROG Ally handheld drivers | Yes | Yes |\n| Additional AYANEO handheld drivers | No | Yes |\n| Additional Framework Computer drivers | No | Yes |\n| Additional Microsoft Surface laptop drivers | No | Yes |\n| Desktop environment | KDE Plasma 5 | KDE Plasma 6 |\n| Desktop theme | Vapor | Breeze |\n| AMD FSR | Global | Global |\n| Gamescope | Global | Global |\n| Wine | Proton | Proton, GE-Proton, and Proton-Sarek |\n| Game controller support | Medium | Large |\n| exFAT cross-platform storage | No | Yes (16 GiB on the performance and secure images) |\n\nwinesapOS 3 was the first Linux distribution to be based on SteamOS 3. Historically, here are the first forks of SteamOS 3:\n\n| Distro | First Preview | First Public Release |\n| --- | --- | --- |\n| [winesapOS](https://github.com/winesapOS/winesapOS) | [2022-03-06](https://github.com/winesapOS/winesapOS/commit/2488cf702084d414ec5319a55cfbee1b86e2b05b) | [2022-03-10](https://github.com/winesapOS/winesapOS/tree/3.0.0-beta.0) |\n| [SteamOS for PS4](https://wololo.net/2022/03/28/release-steamos-3-0-for-ps4-unofficial/) | [2022-03-09](https://twitter.com/NazkyYT/status/1501670690453438471?cxt=HHwWjoC-oa3igNcpAAAA) | [2022-03-25](https://twitter.com/NazkyYT/status/1507284235765182465?cxt=HHwWgsCjhdnB-eopAAAA) |\n| [HoloISO](https://github.com/HoloISO/holoiso) | [2022-04-21](https://github.com/HoloISO/holoiso/commit/b04bccfb78567c9958f376659703b58e87ecd359) | [2022-05-01](https://github.com/HoloISO/holoiso/releases/tag/beta0) |\n\n## Usage\n\n### Getting Started\n\n#### Hardware Requirements\n\nMinimum:\n\n- Processor = Single-core AMD or Intel processor.\n- RAM = 2 GiB.\n- Graphics = AMD, Intel, or NVIDIA, Parallels Desktop, VirtualBox, or VMware Fusion/Workstation virtual graphics device.\n- Storage\n    - Minimal image = 16 GB USB 3.2 Gen 1 (USB 3.0) flash drive.\n    - Performance image = 64 GB USB 3.2 Gen 1 (USB 3.0) flash drive.\n\nRecommended:\n\n- Processor = Quad-core AMD or Intel processor.\n- RAM = 8 GiB.\n- Graphics = AMD discrete graphics card.\n- Storage\n    - Internal = 512 GB NVMe SSD.\n    - External = 512 GB USB 3.2 Gen 2 (USB 3.1) SSD.\n\n**Important note about external storage!**\n\nOne of the founding goals of winesapOS was for it to be portable. However, most flash drives and SD/TF cards are too slow to run an operating system on and provide a good experience. For the best experience, use one of these [recommended flash drives](https://www.tomshardware.com/best-picks/best-flash-drives), an external USB-C \u003e= 3.1 SSD, or a USB-C \u003e= 3.2 docking station or hub that includes a M.2 NVMe drive slot. SSD and NVMe drives have a longer life-span, more storage, and faster speeds compared to traditional flash storage.\n\n#### Image Types\n\nwinesapOS provides 3 different image types to meet the diverse needs of our users:\n\n- **Minimal** = A small variant of the performance image.\n- **Performance** =  Everything but the kitchen sink, speed, and ease-of-use.\n- **Secure** = Locked down and recommended for advanced Linux users only.\n    - There are no release builds for the secure image. Use a [custom build](#custom-builds) to generate a unique LUKS container encryption key.\n\n| Feature | Minimal | Performance | Secure |\n| ------- | ------- | ----------- | ------ |\n| CPU Mitigations | No | No | Yes |\n| Encryption | No | No | Yes (LUKS) |\n| Firewall | No | No | Yes (Firewalld) |\n| `root` Password Requires Reset | No | No | Yes |\n| 16 GiB exFAT Cross-Platform Storage | No | Yes | Yes |\n| Pre-built release image | Yes | Yes | No |\n\nThe minimal root file system archive (`winesapos-${WINESAPOS_VERSION}-minimal-rootfs.tar.zst`) is the extracted files from the minimal image. It can be used for containers or installing winesapOS in a [Docker or Podman container](#docker-or-podman-container), [dual-boot](#dual-boot), or [WSL 2](#windows-subsystem-for-linux) scenario.\n\n##### Secure Image\n\nIf using the secure image, the default LUKS encryption key is `password` which should be changed after the first boot. Do not do this before the first boot as the default password is used to unlock the partition for it be resized to fill up the entire storage device. Change the LUKS encryption key for the fifth partition.\n\n```\n$ sudo cryptsetup luksChangeKey /dev/\u003cDEVICE\u003e5\n```\n\nThe user account password for `winesap` and `root` are the same as the username. The `root` user are set to expire immediately. Upon first login, you will be prompted to enter a new password. Here is how to change it:\n\n1. Enter the default password of ``winesap``.\n2. The prompt will say \"Changing password for winesap.\" Enter the default password of ``winesap`` again.\n3. The prompt will now say \"New password\". Enter a new password.\n4. The prompt will finally say \"Retype new password\". Enter the new password again. The password has been updated and the KDE Plasma desktop will now load.\n\nThe `root` user account is locked until the password is changed. It is recommended to change this immediately to allow for recovery to work.\n\n```\n$ sudo passwd root\n```\n\n#### Release Builds\n\n0. Refer to the [Mac Boot](#mac-boot) and [Windows Boot](#windows-boot) guides to avoid common issues.\n1. Download the latest release from [here](https://github.com/winesapOS/winesapOS/releases).\n    - External drive\n        - Download one the of the release images and then continue on with this guide.\n            - Performance (recommended) = Requires 31 GiB of free space to download and extract.\n            - Minimal (for users low on storage space or who want control over what is installed) = Requires 13 GiB of free space to download and extract.\n    - Internal drive\n        - Entire drive (PCs only, does not work on Macs)\n            - Use winesapOS to install winesapOS. Start with the minimal image and follow through the next steps (2 and 3) to extract and flash the image to an external drive. Then boot into the storage device and download the image you want to setup. Follow steps 2 and 3 again to flash the image onto an internal storage device.\n                - For balenaEtcher, when you \"Select target\" there is an option to \"Show hidden\" storage devices. It will let you flash an image to any drive except the one it is physically running on.\n        - Dual-boot (PCs and Intel Macs)\n            - Refer to the [Dual-Boot](#dual-boot) guide.\n    - If you want even more control over the how the image is built, consider doing a [custom build](#custom-builds) instead.\n2. Extract the `winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.img.zip` archive.\n3. Use the image...\n    1. on a PC or Mac.\n        - Flash the image to an internal or external storage device. **WARNING:** This will delete any existing data on that storage device.\n            - On Linux, macOS, and Windows, use either [balenaEtcher](https://www.balena.io/etcher/) or [USBImager](https://bztsrc.gitlab.io/usbimager/) to flash the image.\n            - On Linux and macOS, the `dd` CLI utility can be used to flash the image.\n    2. with GNOME Boxes on Linux.\n        - Resize the winesapOS image to at least 32 GiB.\n            ```\n            $ qemu-img resize winesapos*.img +24G\n            ```\n        - GNOME Boxes \u003e + \u003e Install from File \u003e (select the winesapOS image file) \u003e Open \u003e Operating System: Arch Linux, Memory: 4.0 GiB \u003e Create\n    3. with Parallels Desktop on macOS (Intel only).\n        - Convert the raw image to the VDI format. Then convert the VDI image to HDD.\n            - Using the qemu-img and prl_convert CLI:\n                ```\n                qemu-img convert -f raw -O vdi winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.img winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.vdi\n                prl_convert winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.vdi --allow-no-os --stand-alone-disk --dst=winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.hdd\n                ```\n        - Parallels Desktop \u003e Install Windows or another OS from a DVD or image file \u003e Image File \u003e select a file... \u003e (select the winesapOS HDD file) \u003e Continue \u003e Please select your operating system: \u003e More Linux \u003e Other Linux \u003e OK \u003e Name: winesapOS \u003e Create\n    4. with Virtual Machine Manager on Linux.\n        - Resize the winesapOS image to at least 32 GiB.\n            ```\n            $ qemu-img resize winesapos*.img +24G\n            ```\n        - Move the winesapOS image to `/var/lib/libvirt/images/`.\n        - Virtual Machine Manager \u003e File \u003e New Virtual Machine \u003e Import existing disk image \u003e Forward \u003e Browse local \u003e (select the winesapOS image) \u003e Open \u003e Choose the operating system you are installing: Arch Linux (archlinux) \u003e Forward \u003e (if asked to fix permissions, select \"Yes\"), Memory: 4096, CPUs: 2 \u003e Forward \u003e Name: winesapOS, Customize configuration before install: yes \u003e Finish \u003e Overview \u003e Firmware: \"UEFI x86_64: /usr/share/edk2-ovmf/x64/OVMF_CODE.fd\" \u003e Apply \u003e Begin Installation\n    5. with VirtualBox.\n        - Convert the raw image to the VDI format.\n            - Using the VirtualBox CLI:\n                ```\n                VBoxManage convertfromraw --format VDI winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.img winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.vdi\n                ```\n            - Using the qemu-img CLI:\n                ```\n                qemu-img convert -f raw -O vdi winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.img winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.vdi\n                ```\n            - Using [StarWind V2V Converter](https://www.starwindsoftware.com/starwind-v2v-converter) on Windows.\n        - Virtual Box \u003e New \u003e Name: winesapOS, Type: Linux, Version: Arch Linux (64-bit) \u003e Next \u003e Base Memory: 4096 MB, Processors: 2, Enable EFI: Yes \u003e Next \u003e Use an Existing Virtual Hard Disk File \u003e Add \u003e Choose \u003e Next \u003e Finish \u003e File \u003e Tools \u003e Virtual Media Manager \u003e Size: (increase to at least 32 GB) \u003e Apply \u003e OK \u003e winesapOS \u003e Settings \u003e General \u003e Advanced \u003e Shared Clipboard: Bidirectional, Drag'n'Drop: Bidirectional \u003e OK \u003e winesapOS \u003e Settings \u003e Display \u003e Screen \u003e Video Memory: 128 MB, Graphics Controller: VMSVGA, Extended Features: Enable 3D Acceleration\n        - **NOTICE:** VirtualBox 3D acceleration for Linux guests does not fully work. This issue is not specific to winesapOS. Consider using VMware Fusion or VMware Workstation instead.\n\n    6. with VMware Fusion on macOS (Intel only).\n        - Convert the raw image to the VMDK format.\n            - Using the VirtualBox CLI:\n                ```\n                VBoxManage convertfromraw --format VMDK winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.img winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.vmdk\n                ```\n            - Using the qemu-img CLI:\n                ```\n                qemu-img convert -f raw -O vmdk winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.img winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.vmdk\n                ```\n            - Using [StarWind V2V Converter](https://www.starwindsoftware.com/starwind-v2v-converter) on Windows.\n        - VMware Fusion \u003e Virtual Machine Library \u003e + \u003e New... \u003e Create a custom virtual machine \u003e Continue \u003e Linux \u003e Other Linux 5.x kernel 64-bit \u003e Continue \u003e Specify the boot firmware: UEFI \u003e Continue \u003e Use an existing virtual disk \u003e Continue \u003e Custom Settings \u003e Hard Disk (SCSI) \u003e Disk size: (increase to at least 64 GB) \u003e Apply \u003e Show All \u003e Processors \u0026 Memory \u003e Processors: 2 processor cores \u003e Memory: 4096 MB \u003e Show All \u003e Display \u003e Accelerate 3D Graphics: Yes \u003e Shared graphics memory: (set this to the highest possible value)\n    7. with VMware Workstation on Linux or Windows.\n        - Convert the raw image to the VMDK format.\n        - VMware Workstation \u003e Create a New Virtual Machine \u003e Custom (advanced) \u003e Next \u003e Hardware compatibility: (select the latest version) \u003e Next \u003e I will install the operating system later. \u003e Next \u003e Guest Operating System: 2. Linux \u003e Version: Other Linux 5.x kernel 64-bit \u003e Next \u003e Name: winesapOS \u003e Next \u003e Number of processors: 2 \u003e Next \u003e Memory for this virtual machine: 4096 MB \u003e Next \u003e Use network address translation (NAT) \u003e Next \u003e SCSI controller: LSI Logic (Recommended) \u003e Next \u003e Virtual Disk Type: SCSI (Recommended) \u003e Next \u003e Use an existing virtual disk \u003e Next \u003e File name: (select the winesapOS VMDK file) \u003e Keep Existing Format \u003e Customize Hardware... \u003e Hard Disk (SCSI) \u003e Expand Disk... \u003e Maximum disk size (GB): (increase to at least 64 GB) \u003e Expand \u003e OK \u003e Display \u003e Accelerate 3D graphics: Yes \u003e Graphics Memory: (set this to the highest possible value) \u003e Close \u003e Finish \u003e Close\n\nDefault accounts have a password set that mirror the username:\n\n| Username | Password |\n| --- | --- |\n| winesap | winesap |\n| root | root |\n\nUpon first login, the \"winesapOS First-Time Setup\" wizard will launch. It will help set up graphics drivers, the locale, time zone, and more. It is highly recommended to complete this on the first boot. Then reboot before using winesapOS to provide the best experience.\n\nIf using the recommended defaults of the first-time setup and after rebooting, press the enter/return key (the bottom-right key on the virtual keyboard) on the login screen for passwordless login.\n\n#### Custom Builds\n\nInstead of using a release build which is already made, advanced users may want to create a custom build. This only requires 1 GiB of free space to download the live Arch Linux environment. It also allows using environment variables to configure the build differently than the default release builds.\n\n1.  [Download](https://archlinux.org/download/) and setup the latest Arch Linux ISO onto a flash drive that has at least 1 GB of storage.\n\n    1a.  We also support building winesapOS with Manjaro even though we do not provide release images for it. [Download](https://manjaro.org/download/) either the Plasma, Cinnamon, or GNOME desktop edition of Manjaro.\n\n2.  Boot into the flash drive.\n3.  Update the known packages cache and install git.\n\n    ```\n    pacman -S -y\n    pacman -S git\n    ```\n\n4.  Clone the [stable](https://github.com/winesapOS/winesapOS/tree/stable) branch and go to the \"scripts\" directory.\n\n    ```\n    git clone --branch stable https://github.com/winesapos/winesapos.git\n    cd ./winesapos/scripts/\n    ```\n\n5.  Configure [environment variables](https://github.com/winesapOS/winesapOS/blob/stable/CONTRIBUTING.md#environment-variables-for-installation) to customize the build. At the very least, allow the build to work on bare-metal and define what ``/dev/\u003cDEVICE\u003e`` block device to install to. ***BE CAREFUL AS THIS WILL DELETE ALL EXISTING DATA ON THAT DEVICE!***\n\n    ```\n    export WINESAPOS_BUILD_IN_VM_ONLY=false\n    lsblk\n    export WINESAPOS_DEVICE=\u003cDEVICE\u003e\n    ```\n\n6.  By default, the performance image will be built. Alternatively, source the environment variables to configure the build to make the minimal or secure image instead.\n\n    ```\n    . ./env/winesapos-env-minimal.sh\n    ```\n\n    ```\n    . ./env/winesapos-env-secure.sh\n    ```\n\n7.  Run the build.\n\n    ```\n    sudo -E bash ./winesapos-install.sh\n    ```\n\n8.  Check for any test failures (there should be no output from this command).\n\n    ```\n    grep -P 'FAIL$' /winesapos/etc/winesapos/winesapos-install.log\n    ```\n\nFor more detailed information on the build process, we recommend reading the entire [CONTRIBUTING.md](CONTRIBUTING.md) guide.\n\n#### Docker or Podman Container\n\nwinesapOS 4.0.0 and newer minimal images are extracted, archived, and then uploaded as container images to a [Quay.io container registry](https://quay.io/repository/lukeshortcloud/winesapos?tab=tags).\n\n#### Windows Subsystem for Linux\n\nAs of winesapOS 4.1.0, it is supported to be ran as a virtual machine on Windows \u003e= 10 using WSL 2.\n\n- [Install](https://learn.microsoft.com/en-us/windows/wsl/install) WSL 2.\n- Download the [winesapos-wsl.ps1](https://raw.githubusercontent.com/winesapOS/winesapOS/stable/scripts/winesapos-wsl.ps1) script.\n- Open PowerShell and navigate to the downloaded location.\n- Allow and run the PowerShell script.\n\n    ```\n    PS C:\\Users\\user\\Downloads\u003e powershell -ExecutionPolicy Bypass -File .\\winesapos-wsl.ps1\n    ```\n\n- Verify that a new \"winesapOS\" virtual machine appears.\n\n    ```\n    PS C:\\Users\\user\\Downloads\u003e wsl --list\n    ```\n\n- Enter the virtual machine.\n\n    ```\n    PS C:\\Users\\user\\Downloads\u003e wsl --distribution winesapOS\n    ```\n\n- Verify that it is winesapOS.\n\n    ```\n    cat /usr/lib/os-release-winesapos\n    ```\n\n#### Passwords\n\n| Username | Password |\n| -------- | -------- |\n| root | root |\n| winesap | winesap |\n\nOn the secure image, the LUKS encryption key is `password`. The password for LUKS and the `root` account should be changed immediately.\n\n```\n$ sudo cryptsetup luksChangeKey /dev/\u003cDEVICE\u003e5\n$ sudo passwd root\n```\n\n#### Mac Boot\n\nBoot the Mac into an external drive by pressing and releasing the power button. Then hold down the `OPTION` key (or the `ALT` key on a Windows keyboard) to access the Mac bootloader. Select the \"EFI Boot\" device.\n\n**IMPORTANT** Any [Mac with an Apple T2 Security Chip](https://support.apple.com/en-us/HT208862), which are all Macs made in and after 2018, needs to [allow booting from external storage](https://support.apple.com/en-us/HT208198):\n\n1. Turn on the Mac and immediately hold both the `COMMAND` and `r` keys to enter recovery mode.\n2. Utilities \u003e Startup Security Utility\n    - Secure Boot = No Security (Does not enforce any requirements on the bootable OS.)\n    - External Boot = Allow booting from external media (Does not restrict the ability to boot from any devices.)\n\n#### Windows Boot\n\n1. Secure Boot is not supported.\n    - If using Windows and BitLocker is enabled then disable it first.\n    - Then disable Secure Boot in the BIOS.\n2. Disable fast startup and hibernation as these cause issues with booting Linux.\n    - Long-term solution:\n        - Control Panel \u003e Hardware and Sound \u003e Power Options \u003e Change what the power buttons do \u003e Change settings that are currently unavailable \u003e (uncheck \"Turn on fast startup (recommended)\" and \"Hibernate\") \u003e Save changes\n    - Short-term solution:\n        -  Fully shutdown Windows by holding the \"SHIFT\" key while selecting \"Shut down\", selecting to \"Reboot\", or by running the command ``shutdown /s /f /t 0``.\n3. Configure Windows to use [UTC](https://wiki.archlinux.org/title/System_time#UTC_in_Microsoft_Windows) for the hardware clock.\n\n#### Ventoy\n\nAs of winesapOS 4.2.0, [Ventoy](https://www.ventoy.net/en/index.html) is supported. It only works with UEFI boot (not legacy BIOS boot). The winesapOS resize root file system script currently does not work with Ventoy so this is most useful for recovery and troubleshooting purposes.\n\n0. Install Ventoy v1.0.98 or newer onto an external drive.\n1. Rename the image to `winesapos.vtoy`.\n2. Copy the image to the Ventoy drive.\n\n#### Dual-Boot\n\nIt is recommended to follow the [getting started](#getting-started) guide to install winesapOS onto its own internal drive if also using Linux or Windows. Then use the motherboard BIOS to change the boot device. For macOS, the only way to install it to the internal drive is via dual-boot.\n\nHowever, it is possible to install winesapOS onto the same drive as Linux or Windows. That is what this guide will cover in more detail.\n\nOnly UEFI is supported for dual-boot installations of winesapOS. For legacy BIOS boot, [create and flash](#getting-started) a normal portable [release](https://github.com/winesapOS/winesapOS/releases) image such as the minimal or performance. Those all support both legacy BIOS boot and UEFI.\n\nInstall (if necessary) macOS or Windows first. Then proceed with installing winesapOS onto the same drive.\n\n##### macOS Dual-Boot Preparation Guide\n\nOnly Intel Macs are supported.\n\n1. As of Mac OS X 10.11 El Capitan, System Integrity Protection (SIP) was added for additional boot security. It needs to be disabled for rEFInd support.\n    - Enter macOS Recovery mode.\n        - Shutdown the Mac.\n        - Press the power button. Then hold the `command` and `r` keys until the Apple logo appears. Then let go of those two keys.\n    - Utilities \u003e Terminal\n    - Run the command `csrutil disable` to disable SIP.\n2. Follow the [Mac Boot](#mac-boot) guide.\n    - Reboot when done.\n        - (Select the Apple logo in the top-left) \u003e Restart\n3. Install rEFInd. This is an alternative UEFI boot manager that has better compatibility with Linux.\n    - [Download](https://sourceforge.net/projects/refind/) and extract `refind-bin-\u003cVERSION\u003e.zip`.\n    - Open the Terminal app, navigate to the extracted folder, and then run `./refind-install`.\n4. SIP can optionally be re-enabled now that rEFInd is installed.\n5. Create free storage space for winesapOS.\n    - Disk Utility \u003e (select the primary drive) \u003e Partition \u003e + \u003e Add Partition \u003e Name: winesapOS, Format: ExFAT, Size: (enter the amount of space to use for winesapOS) \u003e Apply \u003e Partition \u003e Continue \u003e Done\n\n##### Windows Dual-Boot Preparation Guide\n\n1. Follow the [Windows Boot](#windows-boot) guide.\n2. Create free storage space for winesapOS.\n    - Disk Management (diskmgmt.msc) \u003e (right-click on the \"(C:)\" partition) \u003e Shrink Volume... \u003e Enter the amount of space to shrink in MB: (enter the amount of space to use for winesapOS) \u003e Shrink\n\n##### winesapOS Dual-Boot Install Guide\n\n**Semi-automated steps:**\n\n1. Follow the winesapOS [getting started](#getting-started) guide to get the minimal image onto an external drive.\n2. Boot into winesapOS that is on the external drive.\n3. Use GParted to partition the free storage space. The labels are suffixed with the number zero \"0\" (not the letter \"O\").\n    - For macOS:\n        - (Right-click on the \"exfat\" partition) \u003e Delete\n        - (Right-click on the \"unallocated\" space) \u003e New \u003e New size (MiB): 1000, File system: fat32, Label: WOS-EFI0 \u003e Add\n    - Then for macOS and Windows:\n        - (Right-click on the \"unallocated\" space) \u003e New \u003e New size (MiB): 1000, File system: ext4, Label: winesapos-boot0 \u003e Add\n        - (Right-click on the \"unallocated\" space) \u003e New \u003e File system: btrfs, Label: winesapos-root0 \u003e Add\n    - (Select the green check mark to \"Apply All Operations\") \u003e Apply \u003e Close\n4. Run the \"winesapOS Dual-Boot Installer (Beta)\" desktop shortcut.\n5. Turn off the computer, unplug the winesapOS external drive, and then turn on the computer.\n6. Allow booting the original operating system again.\n\n    - macOS\n        - Hold `command` while booting up. Once booted into macOS, run `./refind-mkdefault` (requires Xcode to be installed).\n    - Windows\n        - Add Windows to the GRUB boot menu.\n            ```\n            # Enable os-prober. It is disabled by default.\n            sudo crudini --ini-options=nospace --set /etc/default/grub \"\" GRUB_DISABLE_OS_PROBER false\n            sudo grub-mkconfig -o /boot/grub/grub.cfg\n            ```\n\n**Manual steps:**\n\n1. Follow the winesapOS [getting started](#getting-started) guide to get the minimal image onto an external drive.\n    - This includes installer tools needed to install winesapOS onto an internal drive.\n    - It also includes an exFAT partition that is accessible from any operating system.\n2. Download the latest `winesapos-${WINESAPOS_VERSION}-minimal-rootfs.tar.zst` [release](https://github.com/winesapOS/winesapOS/releases).\n    - Copy it to the `wos-drive`.\n3. Boot into winesapOS that is on the external drive.\n4. Use GParted to partition the free storage space. The labels are suffixed with the number zero \"0\" (not the letter \"O\").\n    - For macOS:\n        - (Right-click on the \"exfat\" partition) \u003e Delete\n        - (Right-click on the \"unallocated\" space) \u003e New \u003e New size (MiB): 1000, File system: fat32, Label: WOS-EFI0 \u003e Add\n    - Then for macOS and Windows:\n        - (Right-click on the \"unallocated\" space) \u003e New \u003e New size (MiB): 1000, File system: ext4, Label: winesapos-boot0 \u003e Add\n        - (Right-click on the \"unallocated\" space) \u003e New \u003e File system: btrfs, Label: winesapos-root0 \u003e Add\n    - (Select the green check mark to \"Apply All Operations\") \u003e Apply \u003e Close\n5. Mount the new partitions with winesapOS optimizations and features.\n    ```\n    # View hints about each partition.\n    $ lsblk\n    $ sudo mount -t btrfs -o subvol=/,compress-force=zstd:1,discard,noatime,nodiratime -L winesapos-root0 /mnt\n    $ sudo btrfs subvolume create /mnt/.snapshots\n    $ sudo btrfs subvolume create /mnt/home\n    $ sudo mount -t btrfs -o subvol=/home,compress-force=zstd:1,discard,noatime,nodiratime -L winesapos-root0 /mnt/home\n    $ sudo btrfs subvolume create /mnt/home/.snapshots\n    $ sudo btrfs subvolume create /mnt/swap\n    $ sudo mount -t btrfs -o subvol=/swap,compress-force=zstd:1,discard,noatime,nodiratime -L winesapos-root0 /mnt/swap\n    $ sudo mkdir /mnt/boot\n    $ sudo mount --label winesapos-boot0 /mnt/boot\n    $ sudo mkdir /mnt/boot/efi\n    # Mount the FAT32 EFI partition.\n    # On macOS, use the newly created EFI partition.\n    # On Windows, use the existing EFI partition. This is usually the first partition and 100 MiB in size.\n    $ sudo mount /dev/\u003cDEVICE\u003e1 /mnt/boot/efi\n    ```\n6. Extract the winesapOS root file system archive.\n    - Select the \"wos-drive\" drive in the Dolphin file manager to automatically mount it.\n    - Extract the archive.\n        ```\n        $ sudo tar --extract --keep-old-files --verbose --file /run/media/winesap/wos-drive/winesapos-${WINESAPOS_VERSION}-minimal-rootfs.tar.zst --directory /mnt/\n        ```\n7. Configure the bootloader.\n    ```\n    $ grep -v -P \"winesapos|WOS\" /mnt/etc/fstab | sudo tee /mnt/etc/fstab\n    $ genfstab -L /mnt | sudo tee -a /mnt/etc/fstab\n    $ sudo mount --rbind /dev /mnt/dev\n    $ sudo mount --rbind /sys /mnt/sys\n    $ sudo mount -t proc /proc /mnt/proc\n    $ sudo chroot /mnt grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=winesapOS\n    $ sudo chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg\n    $ sudo chroot /mnt mkinitcpio -P\n    $ sudo sync\n    ```\n8. Turn off the computer, unplug the winesapOS external drive, and then turn on the computer.\n9. Allow booting the original operating system again.\n\n    - macOS\n        - Hold `command` while booting up. Once booted into macOS, run `./refind-mkdefault` (requires Xcode to be installed).\n    - Windows\n        - Add Windows to the GRUB boot menu.\n            ```\n            # Enable os-prober. It is disabled by default.\n            $ sudo crudini --ini-options=nospace --set /etc/default/grub \"\" GRUB_DISABLE_OS_PROBER false\n            $ sudo grub-mkconfig -o /boot/grub/grub.cfg\n            ```\n\n### First-Time Setup\n\nAfter logging in for the first time as the `winesap` user, the first-time setup for winesapOS will appear. Users have the option to manually select their choices or go with the recommended defaults below.\n\n| Setup | Recommended Default |\n| --- | --- |\n| Broadcom proprietary Wi-Fi driver | Automatic |\n| Rotate screen | No |\n| Older version of winesapOS | Stop and prompt user |\n| Pacman mirror region | Automatic (GeoIP) |\n| Graphics driver | Mesa |\n| Swap method | zram |\n| Time zone | Automatic (GeoIP) |\n| Recommended productivity apps | Yes |\n| Recommended gaming apps | Yes |\n| Passwordless login\\* | Yes (minimal and performance) and No (secure) |\n| Hide GRUB boot menu | Yes |\n| Upgrade firmware | Yes |\n| Change user password | Yes |\n| Change root password | Yes |\n| Locale | Ask |\n\n\\*Press the enter/return key (the bottom-right key on the virtual keyboard) on the login screen for passwordless login.\n\n### Upgrades\n\n#### Minor Upgrades\n\nUpgrades are supported and recommended between all minor releases of winesapOS. For example, it is supported to go from 3.0.0 to 3.2.1.\n\nWhere it makes sense, features are backported from newer versions of winesapOS. Bug and security fixes are also included to fix problems either with winesapOS itself or with upstream changes in Arch Linux. Even if a user never upgrades winesapOS, users will continue to get regular system upgrades from Arch Linux.\n\nBefore upgrading, please read the full [UPGRADE.md](https://github.com/winesapOS/winesapOS/blob/stable/UPGRADES.md) notes. This showcases what updates will happen automatically and what updates may need to be manually applied.\n\nDevelopment builds do not support upgrades. Here are the releases that we do support upgrades on:\n\n| Release | Upgrades Supported |\n| ------- | ------------------ |\n| Stable | Yes |\n| Release Candidate (RC) | Yes |\n| Beta | No |\n| Alpha | No |\n\nHere is how to upgrade winesapOS. Do **NOT** use \"Applications (bauh)\" for upgrades, only for package installations.\n\n- GUI = Launch the \"winesapOS Upgrade\" desktop shortcut.\n- CLI = Launch the winesapOS upgrade script from the stable branch.\n\n    ```\n    curl https://raw.githubusercontent.com/winesapOS/winesapOS/stable/scripts/winesapos-upgrade.sh | sudo -E bash\n    ```\n\n#### Major Upgrades\n\n- Open `Terminator`.\n- Run a major upgrade of winesapOS.\n    - Mac Linux Gaming Stick 2 to winesapOS 4:\n        ```\n        echo stick \u003e /tmp/winesapos_user_name.txt\n        export WINESAPOS_UPGRADE_FILES=false\n        export WINESAPOS_UPGRADE_VERSION_CHECK=false\n        curl https://raw.githubusercontent.com/winesapOS/winesapOS/stable/scripts/winesapos-upgrade.sh | sudo -E bash\n        ```\n    - winesapOS 3 to winesapOS 4:\n        - GUI = Launch the \"winesapOS Upgrade\" desktop shortcut.\n        - CLI:\n            ```\n            curl https://raw.githubusercontent.com/winesapOS/winesapOS/stable/scripts/winesapos-upgrade.sh | sudo -E bash\n            ```\n\n### Uninstall\n\nIf desired, it is possible to remove winesapOS specific files and configuration and switch back to upstream Arch Linux using an uninstall script. It will not remove anything that is related to improved hardware compatibility.\n\n```\ncurl https://raw.githubusercontent.com/winesapOS/winesapOS/stable/scripts/winesapos-uninstall.sh | sudo -E bash\n```\n\n### Convert to winesapOS\n\nIt is possible to get an experience similar to winesapOS but on a different Linux distribution by installing applications that winesapOS provides.\n\nWhat this conversion script does:\n\n- For Arch Linux and Manjaro only:\n    - Add winesapOS and Chaotic AUR repositories.\n    - Install all AUR packages from winesapOS.\n- For all Linux distributions:\n    - Install all Flatpak packages from winesapOS.\n\nWhat it does NOT do:\n\n- Install all system packages from winesapOS (coming soon).\n- Install support for specific computer hardware.\n- Install desktop environments or tiling window managers.\n- Modify the bootloader.\n\nRun this script to convert to winesapOS:\n\n```\ncurl https://raw.githubusercontent.com/winesapOS/winesapOS/stable/scripts/winesapos-convert.sh | bash\n```\n\n## Tips\n\n### Windows Games on Steam\n\nEnable Proton on Steam to allow installing Windows games on Linux. For more information about Proton, [read this starter guide](https://www.gamingonlinux.com/2019/07/a-simple-guide-to-steam-play-valves-technology-for-playing-windows-games-on-linux). Check the compatibility rating for games on Steam by using [ProtonDB](https://www.protondb.com/).\n\n```\nSettings \u003e Steam Play \u003e Enable Steam Play for Support Titles \u003e Use this tool instead of game-specific selections from Steam \u003e Compatibility tool: \u003e (select the latest \"Proton\" version available) \u003e OK\n```\n\n### Steam Deck Game Mode\n\nOn the SDDM login screen for the \"winesap\" user, the \"Session\" drop-down menu in the top-left can be used to change the session from \"Plasma (Wayland)\" to \"Steam Big Picture (Wayland)\". This provides the same experience as having a Steam Deck in \"Game Mode\" by launching Steam with Gamescope Session.\n\nSwitch from Game Mode to Desktop Mode:\n\n- In Steam, select the \"Power\" menu and then select \"Switch to Desktop\".\n- On the SDDM login page, use the top-left drop-down to select the desired session.\n- Tap the password field to open the virtual keyboard.\n- Press the enter key in the bottom-right of the virtual keyboard to login.\n\nKnown issues:\n\n- A user must first login to the KDE Plasma desktop environment session and go through the winesapOS first-time setup. This will automatically download the Steam client bootstrap files required for the new Big Picture mode. Otherwise, install `steam` and then run \"Steam (Runtime)\" at least once to download the required files.\n- Using this on devices that are not \"Powered by SteamOS\" certified will have varied results.\n    - For example, configuring TDP for other devices will not work.\n- NVIDIA support is still a work-in-progress. Mesa does not work yet. The NVIDIA open kernel module works but it is extremely slow.\n\nAlternatively, Steam can be launched from KDE Plasma using the \"Steam (Runtime)\" desktop shortcut. Then it can be changed to be in the new Big Picture Mode.\n\nThere is also a session for Open Gamepad UI as an open source alternative front-end. Select the \"OpenGamepadUI (Wayland)\" session on the SDDM login screen. It has plugins for Steam, Lutris, and more.\n\n### No Sound (Muted Audio)\n\nWhen Mac hardware is detected, all sound is muted on boot because, on newer Macs, the experimental sound driver is extremely loud. This means that any volume changes will be reset on the next boot. Disable and stop the user (not system) mute service to allow the sound volume to be saved:\n\n```\nsystemctl --user disable --now winesapos-mute.service\n```\n\n### Btrfs Backups\n\nSnapper creates 6 monthly snapshots of the `/home` directory. snap-pac creates a snapshot of the root `/` directory before and after using `pacman`. Both the root and home configurations are set to only use a maximum of 50 GiB each.\n\nDuring boot, GRUB will have a \"winesapOS snapshots\" section that will allow booting from a root directory snapshot. This will not appear on first boot because no backups have been taken yet. After a backup has been taken, the GRUB configuration file needs to be regenerated to scan for the new backups.\n\nManually rebuild the GRUB configuration file to load the latest snapshots:\n\n```\n$ sudo grub-mkconfig -o /boot/grub/grub.cfg\n```\n\nView the available backups:\n\n```\n$ sudo snapper -c root list\n$ sudo snapper -c home list\n```\n\nManually create a new backup:\n\n```\n$ sudo snapper -c \u003cCONFIG\u003e create\n```\n\nManually delete a backup:\n\n```\n$ sudo snapper -c \u003cCONFIG\u003e delete \u003cBACKUP_NUMBER\u003e\n```\n\n### VPN (ZeroTier)\n\nA VPN is required for LAN gaming online. Use the free and open source ZeroTier VPN service for this.\n\n**Host**\n\n1. Only one person needs to create a [ZeroTier account](https://my.zerotier.com/).\n2. They must then create a [ZeroTier network](https://clover.coex.tech/en/zerotier_vpn.html).\n    1. Login to [ZeroTier Central](https://my.zerotier.com/).\n    2. Select \"[Networks](https://my.zerotier.com/network)\".\n    3. Select \"Create A Network\".\n    4. Select the \"Network ID\" or \"Name\" of the new network to modify the settings.\n        - Either (1) set the \"Access Control\" to \"Public\" or (2) use this settings page to manually authorize connected clients to be able to communicate on the network.\n        - Take note of the \"Network ID\". Send this string to your friends who will connect to the VPN.\n\n**Clients**\n\n1. Start the ZeroTier VPN service.\n\n    ```\n    $ sudo systemctl enable --now zerotier-one\n    ```\n\n2. Connect to the ZeroTier network.\n\n    ```\n    $ sudo zerotier-cli join \u003cNETWORK_ID\u003e\n    ```\n\n## Troubleshooting\n\n### Release Image Zip Files\n\n**Challenge: the release image fails to be extracted from the zip file.**\n\n**Solutions:**\n\n1. **Verify the integrity of the downloaded zip files.**\n\n    - Linux:\n\n        ```\n        sha512sum --check winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.sha512sum.txt\n        ```\n\n    - Windows (open Command Prompt as Administrator):\n\n        ```\n        C:\\Windows\\system32\u003eCertUtil.exe -hashfile C:\\Users\\\u003cUSER\u003e\\Downloads\\winesapos-\u003cVERSION\u003e-\u003cTYPE\u003e.sha512sum.txt SHA512\n        ```\n\n2. **Not enough free space.** Ensure you have 13 GiB (minimal image) or 31 GiB (performance image) of free space before downloading the zip files.\n3. **If using PeaZip, it sometimes fails to extract to the current directory.** Try extracting to a different directory.\n\n### winesapOS Not Booting\n\nThere are many different reasons why winesapOS may not be booting.\n\n- Refer to the [Mac Boot](#mac-boot) and [Windows Boot](#windows-boot) guides to avoid common issues.\n- USB mode.\n    - If using a USB Type-C cable, try flipping it upside down (180 degrees).\n        - If using a USB Type-C to Type-A adapter, only one of the USB Type-C sides is full speed so orientation does matter.\n    - If using an external drive, set the USB mode to xHCI instead of DRD in the BIOS.\n    - The USB cable or port may be loose. Try a different cable and port.\n- SATA mode.\n    - If using an internal drive, set the SATA mode to AHCI instead of RAID in the BIOS.\n        - Some NVMe drives use a SATA (not PCIe) connector and also need this setting change.\n- Legacy BIOS boot.\n    - Older motherboards that do not support GPT partition layouts will not be able to boot winesapOS.\n    - Manually converting winesapOS from GPT to MBR and re-installing the GRUB boot loader does not fix this issue.\n\n### Access Boot Menu\n\nIf the recommended defaults of the first-time setup are used, then the GRUB boot menu will be hidden. It can still be accessed by using these keyboard shortcuts:\n\n- UEFI = `SHIFT` + `F1`\n- Legacy BIOS boot = `ESC[APE]` + `F1`\n\n### Root File System Resizing\n\n**Challenge: the root file system does not resize itself to use all available space on the storage device.**\n\n**Solution:**\n\n1. Re-enable the resize service, reboot, and then view the service log. Open up a [GitHub Issue](https://github.com/winesapOS/winesapOS/issues) with the full log output.\n\n    ```\n    sudo systemctl enable winesapos-resize-root-file-system\n    sudo reboot\n    ```\n\n    ```\n    sudo journalctl --unit winesapos-resize-root-file-system\n    ```\n\n### Read-Only File System\n\nIf using an external USB drive, it is possible to get errors about a `Read-only file system`. This is a hardware issue and indicates that the USB drive has been disconnected even if only for a fraction of a second. Short-term, reboot winesapOS to fix these errors. Long-term, try using a different USB port and/or drive and make sure that the drive does not move while in use. For the best experience, we recommend using an internal drive.\n\n### Wi-Fi or Bluetooth Not Working\n\n**Challenge: If Wi-Fi or Bluetooth is not working and Windows is installed, it could be from fast startup being enabled and/or Windows hibernating.**\n\n**Solutions:**\n\n- Macs\n    - Refer to the [Apple Intel Macs](#apple-intel-macs) guide to install the correct driver and/or firmware.\n- Windows\n    - Refer to the [Windows Boot](#windows-boot) guide to disable fast startup and hibernation.\n\n### Available Storage Space is Incorrect\n\n**Challenge: the amount of reported free space seems too small or large.**\n\n**Solutions:**\n\n1. Btrfs is used as the root file system on winesapOS. The most reliable way to view the amount of storage in-use on Btrfs is with this command.\n\n    ```\n    sudo btrfs filesystem df /\n    ```\n\n2. Snapper is used to take Btrfs snapshots (1) every time Pacman installs, upgrades, or removes a package and (2) every month. Refer to the [Btrfs Backups](#btrfs-backups) section for more information on how to manage those snapshots.\n\n### First-Time Setup Log Files\n\nIf the first-time setup fails or needs debugging, the last log file can be found and copied to the desktop by running these two commands:\n\n```\n$ sudo cp \"/etc/winesapos/$(sudo ls -1 /etc/winesapos/ | grep setup | tail -n 1)\" /home/winesap/Desktop/\n$ sudo chown winesap:winesap \"/home/winesap/Desktop/$(ls -1 ~/Desktop/ | grep setup_)\"\n```\n\n### Two or More Set Ups of winesapOS Cause an Unbootable System\n\n**Challenge: winesapOS uses labels for file system mounts which confuses the system if more than one label is found.**\n\n**Solution:**\n\n1. **Change the file system label of at least the root file system** on one of the winesapOS drives. It is recommended to change all of the labels on that same drive. **This can cause an unbootable system.** Manually review the contents of `/etc/fstab` to ensure it is correct.\n\n    ```\n    # Labels can be changed on mounted file systems.\n    lsblk -o name,label\n    export DEVICE=vda\n    sudo -E exfatlabel /dev/${DEVICE}2 wos-drive0\n    sudo -E fatlabel /dev/${DEVICE}3 WOS-EFI0\n    sudo sed -i s'/LABEL=WOS-EFI/LABEL=WOS-EFI0/'g /etc/fstab\n    sudo -E e2label /dev/${DEVICE}4 winesapos-boot0\n    sudo sed -i s'/LABEL=winesapos-boot/LABEL=winesapos-boot0/'g /etc/fstab\n    sudo btrfs filesystem label / winesapos-root0\n    sudo btrfs filesystem show /\n    sudo sed -i s'/LABEL=winesapos-root/LABEL=winesapos-root0/'g /etc/fstab\n    lsblk -o name,label\n    ```\n\n    ```\n    # GRUB needs to be updated with the new /etc/fstab information.\n    sudo chroot \u003cMOUNTED_ROOT_AND_BOOT_DIRECTORY\u003e grub-mkconfig -o /boot/grub/grub.cfg\n    ```\n\n### Snapshot Recovery\n\n**Challenges:**\n\n1. winesapOS upgrade fails.\n2. Old files need to be recovered.\n\n**Solution:**\n\n1. At the GRUB boot menu select \"winesapOS snapshots\" and then the desired backup to load. The filesystem will be read-only by default. It can be set to enable writes with this command:\n\n    ```\n    $ sudo btrfs property set -ts /.snapshots/\u003cBTRFS_SNAPSHOT_ID\u003e ro false\n    ```\n\nFor more advanced recovery using ``overlayfs`` on-top of a read-only filesystem, refer to this [grub-btrfs GitHub issue](https://github.com/Antynea/grub-btrfs/issues/92).\n\n### Reinstalling winesapOS\n\nReinstalling winesapOS on-top of an existing winesapOS installation of the same exact version and image type can cause issues. This is because the partitions are perfectly aligned which leads to overlapping data. Even wiping the partition table is not enough. For the best results, it is recommended to completely wipe at least the first 25 GiB of the storage device. **WARNING:** This will delete any existing data on that storage device.\n\n```\ndd if=/dev/zero of=/dev/\u003cDEVICE\u003e bs=1M count=25000\n```\n\n### Bad Performance on Battery\n\nWhen using a portable device such as a laptop or gaming handheld, the operating system goes into a battery saver mode by default. This can be disabled to get maximum performance.\n\n```\nsudo systemctl disable --now auto-cpufreq\n```\n\n## Frequently Asked Questions (FAQ)\n\n- **Is this the Mac Linux Gaming Stick project?**\n    - Yes. Version 1 and 2 of the project were called Mac Linux Gaming Stick. In version 3, we rebranded to winesapOS.\n- **How do you pronounce winesapOS?**\n    - `wine`-`sap`-`o`-`s`.\n- **What is the relevance of the word \"winesap\" in winesapOS?**\n    - It is a type of apple which signifies how we were originally developing for Intel Macs. It also has the word \"wine\" in it which is the [name](https://www.winehq.org/) of the project used to enable Windows gaming on Linux.\n- **What makes this different than adding persistent storage to a live CD with [Universal USB Installer or YUMI](https://www.pendrivelinux.com/)?**\n    - Having persistent storage work via these hacky methods can be hit-or-miss depending on the distribution. winesapOS was built from the ground-up to have persistent storage. It also features automatic backups, various gaming tools, has support for Macs, and more.\n- **Are Arm Macs supported?**\n    - No. We recommend using [Asahi Linux](https://asahilinux.org/) (Arch Linux), [Fedora Asahi Remix](https://asahilinux.org/fedora/), or [Ubuntu Asahi](https://ubuntuasahi.org/) instead.\n- **Is legacy PC hardware support?**\n    - No. If your PC is too old and winesapOS does not boot on it, we recommend to use the Slackware variant of [Slax](https://www.slax.org/) instead.\n- **Is winesapOS a Linux distribution?**\n    - Yes. We provide customized packages, a package repository, various optimizations, and our own upgrade process. winesapOS is based on Arch Linux with optional support for Manjaro.\n- **Do I have to install winesapOS?**\n    - No. No installation is required. Flash a [release image](https://github.com/winesapOS/winesapOS/releases) to a drive and then boot from it. Everything is already installed and configured.\n- **What if winesapOS was abandoned?**\n    - We have no intentions on ever abandoning winesapOS. Even if that happened, since this is an opinionated installation of an Arch Linux distribution, it will continue to get normal operating system updates. The [uninstall](#uninstall) script can also be used to switch back to upstream Arch Linux.\n- **Can anyone build winesapOS?**\n    - Yes. Refer to the [CONTRIBUTING.md](CONTRIBUTING.md) documentation.\n- **Can winesapOS be built with a different Linux distribution?**\n    - Yes. We support Arch Linux and Manjaro as build targets. As of winesapOS 4, Arch Linux is the default target that is used for our releases.\n- **Is winesapOS affiliated with Valve?**\n    - No. We are an independent project.\n\n## Contributors\n\nHere are community contributors who have helped the winesapOS project.\n\n**Founder:**\n\n- [LukeShortCloud](https://github.com/LukeShortCloud)\n\n**Code:**\n\n- [Mohamed A. Said](https://github.com/SrcEngGuy)\n- [mtkennerly](https://github.com/mtkennerly)\n- [ohaiibuzzle](https://github.com/ohaiibuzzle)\n- [soredake](https://github.com/soredake)\n- [Thijzer](https://github.com/Thijzer)\n- [wallentx](https://github.com/wallentx)\n\n**Financial:**\n\n- Mark Dougherty\n- Mike Artz\n- [Playtron](https://www.playtron.one/)\n\n## User Surveys\n\nThese are anonymous surveys done with Linux gaming community members. Most, but not all, are winesapOS users.\n\n----\n\nFavorite (non-Valve) handheld PC brand:\n\n* AYANEO = 50%\n* GPD = 33.3%\n* ONEXPlayer = 0%\n* Other = 16.7%\n\n6 votes.\n\nThere were no comments about what the \"Other\" brand is so that is unknown.\n\nhttps://twitter.com/LukeShortCloud/status/1649078025634598912\n\n----\n\nFavorite desktop environments:\n\n- GNOME = 40%\n- Plasma by KDE = 40%\n- Xfce = 4%\n- Other = 16%\n\n25 votes.\n\n\"Other\" included specific mentions from the community about Cinnamon (for its similarity to Windows) and Sway (for its tiling features).\n\nhttps://twitter.com/LukeShortCloud/status/1659279345926516737\n\n## History\n\n| Release Version/Tag | Project Name | Operating System | Desktop Environment | Release Images |\n| ------------------- | ------------ | ---------------- | ------------------- | -------------- |\n| 4.2.0 | winesapOS | Arch Linux | KDE Plasma | Performance, Minimal, and Minimal Root File System |\n| 4.1.0 | winesapOS | Arch Linux | KDE Plasma | Performance, Secure, Minimal, and Minimal Root File System |\n| 4.0.0 | winesapOS | Arch Linux | KDE Plasma | Performance, Secure, and Minimal |\n| 3.2.0 | winesapOS | SteamOS 3 | KDE Plasma | Performance, Secure, and Minimal |\n| 3.0.0 | winesapOS | SteamOS 3 | KDE Plasma | Performance and Secure |\n| 2.2.0 | Mac Linux Gaming Stick | Manjaro | Cinnamon | Performance and Secure |\n| 2.0.0 | Mac Linux Gaming Stick | Manjaro | Cinnamon | Performance |\n| 1.0.0 | Mac Linux Gaming Stick | Ubuntu 20.04 | Cinnamon | None |\n\n## License\n\n[GPLv3](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinesapos%2Fwinesapos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinesapos%2Fwinesapos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinesapos%2Fwinesapos/lists"}