Skip to content

Commit 6c6c8d8

Browse files
authored
Stop installing xorg packages for Wayland profiles (archlinux#4348)
* 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
1 parent 6c9f662 commit 6c6c8d8

File tree

26 files changed

+198
-101
lines changed

26 files changed

+198
-101
lines changed

archinstall/default_profiles/desktop.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import TYPE_CHECKING, Self, override
44

5-
from archinstall.default_profiles.profile import GreeterType, Profile, ProfileType, SelectResult
5+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType, SelectResult
66
from archinstall.lib.menu.helpers import Selection
77
from archinstall.lib.output import info
88
from archinstall.lib.profile.profiles_handler import profile_handler
@@ -95,10 +95,16 @@ def install(self, install_session: Installer) -> None:
9595
# Install common packages for all desktop environments
9696
install_session.add_additional_packages(self.packages)
9797

98+
xorg_installed = False
99+
98100
for profile in self.current_selection:
99101
info(f'Installing profile {profile.name}...')
100102

101103
install_session.add_additional_packages(profile.packages)
102104
install_session.enable_service(profile.services)
103105

106+
if not xorg_installed and profile.display_server == DisplayServerType.Xorg:
107+
install_session.add_additional_packages(['xorg-server', 'xorg-xinit'])
108+
xorg_installed = True
109+
104110
profile.install(install_session)

archinstall/default_profiles/desktops/awesome.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,27 @@
22

33
from typing import TYPE_CHECKING, override
44

5-
from archinstall.default_profiles.profile import ProfileType
6-
from archinstall.default_profiles.xorg import XorgProfile
5+
from archinstall.default_profiles.profile import DisplayServerType, Profile, ProfileType
76

87
if TYPE_CHECKING:
98
from archinstall.lib.installer import Installer
109

1110

12-
class AwesomeProfile(XorgProfile):
11+
class AwesomeProfile(Profile):
1312
def __init__(self) -> None:
14-
super().__init__('Awesome', ProfileType.WindowMgr)
13+
super().__init__(
14+
'Awesome',
15+
ProfileType.WindowMgr,
16+
support_gfx_driver=True,
17+
display_server=DisplayServerType.Xorg,
18+
)
1519

1620
@property
1721
@override
1822
def packages(self) -> list[str]:
19-
return super().packages + [
23+
return [
2024
'awesome',
2125
'alacritty',
22-
'xorg-xinit',
2326
'xorg-xrandr',
2427
'xterm',
2528
'feh',

archinstall/default_profiles/desktops/bspwm.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
from typing import override
22

3-
from archinstall.default_profiles.profile import GreeterType, ProfileType
4-
from archinstall.default_profiles.xorg import XorgProfile
3+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
54

65

7-
class BspwmProfile(XorgProfile):
6+
class BspwmProfile(Profile):
87
def __init__(self) -> None:
9-
super().__init__('Bspwm', ProfileType.WindowMgr)
8+
super().__init__(
9+
'Bspwm',
10+
ProfileType.WindowMgr,
11+
support_gfx_driver=True,
12+
display_server=DisplayServerType.Xorg,
13+
)
1014

1115
@property
1216
@override
1317
def packages(self) -> list[str]:
14-
# return super().packages + [
1518
return [
1619
'bspwm',
1720
'sxhkd',

archinstall/default_profiles/desktops/budgie.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
from typing import override
22

3-
from archinstall.default_profiles.profile import GreeterType, ProfileType
4-
from archinstall.default_profiles.xorg import XorgProfile
3+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
54

65

7-
class BudgieProfile(XorgProfile):
6+
class BudgieProfile(Profile):
87
def __init__(self) -> None:
9-
super().__init__('Budgie', ProfileType.DesktopEnv)
8+
super().__init__(
9+
'Budgie',
10+
ProfileType.DesktopEnv,
11+
support_gfx_driver=True,
12+
display_server=DisplayServerType.Xorg,
13+
)
1014

1115
@property
1216
@override

archinstall/default_profiles/desktops/cinnamon.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
from typing import override
22

3-
from archinstall.default_profiles.profile import GreeterType, ProfileType
4-
from archinstall.default_profiles.xorg import XorgProfile
3+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
54

65

7-
class CinnamonProfile(XorgProfile):
6+
class CinnamonProfile(Profile):
87
def __init__(self) -> None:
9-
super().__init__('Cinnamon', ProfileType.DesktopEnv)
8+
super().__init__(
9+
'Cinnamon',
10+
ProfileType.DesktopEnv,
11+
support_gfx_driver=True,
12+
display_server=DisplayServerType.Xorg,
13+
)
1014

1115
@property
1216
@override

archinstall/default_profiles/desktops/cosmic.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
from typing import override
22

3-
from archinstall.default_profiles.profile import GreeterType, ProfileType
4-
from archinstall.default_profiles.xorg import XorgProfile
3+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
54

65

7-
class CosmicProfile(XorgProfile):
6+
class CosmicProfile(Profile):
87
def __init__(self) -> None:
9-
super().__init__('Cosmic', ProfileType.DesktopEnv)
8+
super().__init__(
9+
'Cosmic',
10+
ProfileType.DesktopEnv,
11+
support_gfx_driver=True,
12+
display_server=DisplayServerType.Wayland,
13+
)
1014

1115
@property
1216
@override

archinstall/default_profiles/desktops/cutefish.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
from typing import override
22

3-
from archinstall.default_profiles.profile import GreeterType, ProfileType
4-
from archinstall.default_profiles.xorg import XorgProfile
3+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
54

65

7-
class CutefishProfile(XorgProfile):
6+
class CutefishProfile(Profile):
87
def __init__(self) -> None:
9-
super().__init__('Cutefish', ProfileType.DesktopEnv)
8+
super().__init__(
9+
'Cutefish',
10+
ProfileType.DesktopEnv,
11+
support_gfx_driver=True,
12+
display_server=DisplayServerType.Xorg,
13+
)
1014

1115
@property
1216
@override

archinstall/default_profiles/desktops/deepin.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
from typing import override
22

3-
from archinstall.default_profiles.profile import GreeterType, ProfileType
4-
from archinstall.default_profiles.xorg import XorgProfile
3+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
54

65

7-
class DeepinProfile(XorgProfile):
6+
class DeepinProfile(Profile):
87
def __init__(self) -> None:
9-
super().__init__('Deepin', ProfileType.DesktopEnv)
8+
super().__init__(
9+
'Deepin',
10+
ProfileType.DesktopEnv,
11+
support_gfx_driver=True,
12+
display_server=DisplayServerType.Xorg,
13+
)
1014

1115
@property
1216
@override

archinstall/default_profiles/desktops/enlightenment.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
from typing import override
22

3-
from archinstall.default_profiles.profile import GreeterType, ProfileType
4-
from archinstall.default_profiles.xorg import XorgProfile
3+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
54

65

7-
class EnlightenmentProfile(XorgProfile):
6+
class EnlightenmentProfile(Profile):
87
def __init__(self) -> None:
9-
super().__init__('Enlightenment', ProfileType.WindowMgr)
8+
super().__init__(
9+
'Enlightenment',
10+
ProfileType.WindowMgr,
11+
support_gfx_driver=True,
12+
display_server=DisplayServerType.Xorg,
13+
)
1014

1115
@property
1216
@override

archinstall/default_profiles/desktops/gnome.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
from typing import override
22

3-
from archinstall.default_profiles.profile import GreeterType, ProfileType
4-
from archinstall.default_profiles.xorg import XorgProfile
3+
from archinstall.default_profiles.profile import DisplayServerType, GreeterType, Profile, ProfileType
54

65

7-
class GnomeProfile(XorgProfile):
6+
class GnomeProfile(Profile):
87
def __init__(self) -> None:
9-
super().__init__('GNOME', ProfileType.DesktopEnv)
8+
super().__init__(
9+
'GNOME',
10+
ProfileType.DesktopEnv,
11+
support_gfx_driver=True,
12+
display_server=DisplayServerType.Wayland,
13+
)
1014

1115
@property
1216
@override

0 commit comments

Comments
 (0)