* Add users to seat group when seatd is selected
When a desktop profile uses seatd for seat access, the user must be
in the seat group for the compositor to access input devices. Without
this, sway/hyprland/niri/labwc fail to start after installation.
* Move seat access provisioning into DesktopProfile.provision()
The four Wayland profiles (Hyprland, Sway, niri, labwc) each duplicated a
provision() override calling provision_seat_access(). Move that into the
base DesktopProfile.provision() loop, which already iterates the selected
profiles, and read CustomSetting.SeatAccess from each. The None check now
lives at the call site (walrus), so provision_seat_access() takes a plain
str. This removes the per-profile overrides and their TYPE_CHECKING imports.
* Use top-level imports in seat access utils
The Installer and User imports were under a TYPE_CHECKING guard, but
they cause no circular import (bspwm.py already imports both at top
level). Move them to module scope per review feedback.
* Add WaylandProfile to avoid installing xorg packages for Wayland compositors
* Refactor: use composition (is_wayland) instead of WaylandProfile inheritance
* Fix X11 profiles to inherit xorg packages from XorgProfile
* Style: use consistent multi-line super().__init__ for Wayland profiles
* Refactor: replace is_wayland with DisplayServerType enum
Add DisplayServerType enum (Xorg/Wayland) to Profile. All profiles
now inherit Profile directly with an explicit display_server param.
desktop.py installs xorg-server and xorg-xinit for Xorg profiles.
XorgProfile remains for standalone Xorg selection.
* Remove unnecessary super().packages from desktop profiles
* feedback
* feedback2
* Refactor for less duplicate code and more conscise logic
Group NM types and handle configurations appropriatly
- For IWD -> Copy from ISO + Disable standalone and configure back-end
- For standard -> Install wpa_supplicant
- For both install applet only when Desktop profile
Added comments for clearer logic
* Rem comments
* Rem copy to ISO
* the one commit to rule them all
* Edit text menu
* Fix alignment
* Scroll functionality
* Fix flake8
* Migrate locales menu
* Fix language translation
* Fix interrupt
* Fix flake8
* Edit mode preset
* Convert print to tui prints
* Fix mypy
* Fix cycling through long menu
* Fix profile view
* Fix scrolling
* Fix scrolling
* Fix mypy
* Fix swiss script
* Display asterisk for passwords
* Corrected a variable usage in the local mirror parsing
* Made sure that curses menu selection on mirrors use url object from mirror.url instead of the class instance
* Fixed mypy type on mirror list
---------
Co-authored-by: Torxed <torxed@archlinux.org>
* Update Spanish translation for 'greeter'
* Moved the os.execve call below the debug logging statement in SysCommandWorker
* Fix call to removed function in DesktopProfile class
* schema.json: Remove dead misspelled i3-gasp profile
* schema.json: Rename KDE Plasma profile to the correct "Plasma" shorthand
* Rename to KDE Plasma in user facing parts and keep the old "Kde" profile for now
* Add back an accidental deleted character
* Backwards compat v2