Adding pack packages to profiles after they were removed (#1956)
* Added back xinit for awesome, since it can be used without a greeter, as well as other useful tools we've had in previous releases * Fixing xinitrc for awesome profile * Attempting to grab xorg packages when installing the desktop profile * Spelling error on xorg-server * Fixed sway value error on seat selection
This commit is contained in:
parent
29b5280725
commit
a43344c5ae
|
|
@ -145,12 +145,12 @@ def cleanup_empty_args(args: Union[Namespace, Dict]) -> Dict:
|
||||||
Takes arguments (dictionary or argparse Namespace) and removes any
|
Takes arguments (dictionary or argparse Namespace) and removes any
|
||||||
None values. This ensures clean mergers during dict.update(args)
|
None values. This ensures clean mergers during dict.update(args)
|
||||||
"""
|
"""
|
||||||
if type(args) == Namespace:
|
if type(args) is Namespace:
|
||||||
args = vars(args)
|
args = vars(args)
|
||||||
|
|
||||||
clean_args = {}
|
clean_args = {}
|
||||||
for key, val in args.items():
|
for key, val in args.items():
|
||||||
if type(val) == dict:
|
if isinstance(val, dict):
|
||||||
val = cleanup_empty_args(val)
|
val = cleanup_empty_args(val)
|
||||||
|
|
||||||
if val is not None:
|
if val is not None:
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,18 @@ class AwesomeProfile(XorgProfile):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def packages(self) -> List[str]:
|
def packages(self) -> List[str]:
|
||||||
return [
|
return super().packages + [
|
||||||
'awesome',
|
'awesome',
|
||||||
'alacritty'
|
'alacritty',
|
||||||
|
'xorg-xinit',
|
||||||
|
'xorg-xrandr',
|
||||||
|
'xterm',
|
||||||
|
'feh',
|
||||||
|
'slock',
|
||||||
|
'terminus-font',
|
||||||
|
'gnu-free-fonts',
|
||||||
|
'ttf-liberation',
|
||||||
|
'xsel',
|
||||||
]
|
]
|
||||||
|
|
||||||
def preview_text(self) -> Optional[str]:
|
def preview_text(self) -> Optional[str]:
|
||||||
|
|
@ -37,3 +46,22 @@ class AwesomeProfile(XorgProfile):
|
||||||
fh.write(awesome_lua)
|
fh.write(awesome_lua)
|
||||||
|
|
||||||
# TODO: Configure the right-click-menu to contain the above packages that were installed. (as a user config)
|
# TODO: Configure the right-click-menu to contain the above packages that were installed. (as a user config)
|
||||||
|
|
||||||
|
# TODO: check if we selected a greeter,
|
||||||
|
# but for now, awesome is intended to run without one.
|
||||||
|
with open(f"{install_session.target}/etc/X11/xinit/xinitrc", 'r') as xinitrc:
|
||||||
|
xinitrc_data = xinitrc.read()
|
||||||
|
|
||||||
|
for line in xinitrc_data.split('\n'):
|
||||||
|
if "twm &" in line:
|
||||||
|
xinitrc_data = xinitrc_data.replace(line, f"# {line}")
|
||||||
|
if "xclock" in line:
|
||||||
|
xinitrc_data = xinitrc_data.replace(line, f"# {line}")
|
||||||
|
if "xterm" in line:
|
||||||
|
xinitrc_data = xinitrc_data.replace(line, f"# {line}")
|
||||||
|
|
||||||
|
xinitrc_data += '\n'
|
||||||
|
xinitrc_data += 'exec awesome\n'
|
||||||
|
|
||||||
|
with open(f"{install_session.target}/etc/X11/xinit/xinitrc", 'w') as xinitrc:
|
||||||
|
xinitrc.write(xinitrc_data)
|
||||||
|
|
@ -13,6 +13,7 @@ class BspwmProfile(XorgProfile):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def packages(self) -> List[str]:
|
def packages(self) -> List[str]:
|
||||||
|
# return super().packages + [
|
||||||
return [
|
return [
|
||||||
'bspwm',
|
'bspwm',
|
||||||
'sxhkd',
|
'sxhkd',
|
||||||
|
|
@ -28,3 +29,24 @@ class BspwmProfile(XorgProfile):
|
||||||
def preview_text(self) -> Optional[str]:
|
def preview_text(self) -> Optional[str]:
|
||||||
text = str(_('Environment type: {}')).format(self.profile_type.value)
|
text = str(_('Environment type: {}')).format(self.profile_type.value)
|
||||||
return text + '\n' + self.packages_text()
|
return text + '\n' + self.packages_text()
|
||||||
|
|
||||||
|
# The wiki specified xinit, but we already use greeter?
|
||||||
|
# https://wiki.archlinux.org/title/Bspwm#Starting
|
||||||
|
#
|
||||||
|
# # TODO: check if we selected a greeter, else run this:
|
||||||
|
# with open(f"{install_session.target}/etc/X11/xinit/xinitrc", 'r') as xinitrc:
|
||||||
|
# xinitrc_data = xinitrc.read()
|
||||||
|
|
||||||
|
# for line in xinitrc_data.split('\n'):
|
||||||
|
# if "twm &" in line:
|
||||||
|
# xinitrc_data = xinitrc_data.replace(line, f"# {line}")
|
||||||
|
# if "xclock" in line:
|
||||||
|
# xinitrc_data = xinitrc_data.replace(line, f"# {line}")
|
||||||
|
# if "xterm" in line:
|
||||||
|
# xinitrc_data = xinitrc_data.replace(line, f"# {line}")
|
||||||
|
|
||||||
|
# xinitrc_data += '\n'
|
||||||
|
# xinitrc_data += 'exec bspwn\n'
|
||||||
|
|
||||||
|
# with open(f"{install_session.target}/etc/X11/xinit/xinitrc", 'w') as xinitrc:
|
||||||
|
# xinitrc.write(xinitrc_data)
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ class SwayProfile(XorgProfile):
|
||||||
@property
|
@property
|
||||||
def services(self) -> List[str]:
|
def services(self) -> List[str]:
|
||||||
if pref := self.custom_settings.get('seat_access', None):
|
if pref := self.custom_settings.get('seat_access', None):
|
||||||
return [pref.value]
|
return [pref]
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def _ask_seat_access(self):
|
def _ask_seat_access(self):
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from typing import Any, TYPE_CHECKING
|
from typing import Any, TYPE_CHECKING, List
|
||||||
|
|
||||||
from archinstall.default_profiles.profile import Profile, ProfileType
|
from archinstall.default_profiles.profile import Profile, ProfileType
|
||||||
|
|
||||||
|
|
@ -19,3 +19,9 @@ class XorgProfile(Profile):
|
||||||
description=description,
|
description=description,
|
||||||
support_gfx_driver=True
|
support_gfx_driver=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def packages(self) -> List[str]:
|
||||||
|
return [
|
||||||
|
'xorg-server'
|
||||||
|
]
|
||||||
|
|
|
||||||
|
|
@ -211,7 +211,7 @@ class SysCommandWorker:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def write(self, data: bytes, line_ending :bool = True) -> int:
|
def write(self, data: bytes, line_ending :bool = True) -> int:
|
||||||
assert type(data) == bytes # TODO: Maybe we can support str as well and encode it
|
assert isinstance(data, bytes) # TODO: Maybe we can support str as well and encode it
|
||||||
|
|
||||||
self.make_sure_we_are_executing()
|
self.make_sure_we_are_executing()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue