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
|
||||
None values. This ensures clean mergers during dict.update(args)
|
||||
"""
|
||||
if type(args) == Namespace:
|
||||
if type(args) is Namespace:
|
||||
args = vars(args)
|
||||
|
||||
clean_args = {}
|
||||
for key, val in args.items():
|
||||
if type(val) == dict:
|
||||
if isinstance(val, dict):
|
||||
val = cleanup_empty_args(val)
|
||||
|
||||
if val is not None:
|
||||
|
|
|
|||
|
|
@ -14,9 +14,18 @@ class AwesomeProfile(XorgProfile):
|
|||
|
||||
@property
|
||||
def packages(self) -> List[str]:
|
||||
return [
|
||||
return super().packages + [
|
||||
'awesome',
|
||||
'alacritty'
|
||||
'alacritty',
|
||||
'xorg-xinit',
|
||||
'xorg-xrandr',
|
||||
'xterm',
|
||||
'feh',
|
||||
'slock',
|
||||
'terminus-font',
|
||||
'gnu-free-fonts',
|
||||
'ttf-liberation',
|
||||
'xsel',
|
||||
]
|
||||
|
||||
def preview_text(self) -> Optional[str]:
|
||||
|
|
@ -37,3 +46,22 @@ class AwesomeProfile(XorgProfile):
|
|||
fh.write(awesome_lua)
|
||||
|
||||
# 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
|
||||
def packages(self) -> List[str]:
|
||||
# return super().packages + [
|
||||
return [
|
||||
'bspwm',
|
||||
'sxhkd',
|
||||
|
|
@ -28,3 +29,24 @@ class BspwmProfile(XorgProfile):
|
|||
def preview_text(self) -> Optional[str]:
|
||||
text = str(_('Environment type: {}')).format(self.profile_type.value)
|
||||
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
|
||||
def services(self) -> List[str]:
|
||||
if pref := self.custom_settings.get('seat_access', None):
|
||||
return [pref.value]
|
||||
return [pref]
|
||||
return []
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -19,3 +19,9 @@ class XorgProfile(Profile):
|
|||
description=description,
|
||||
support_gfx_driver=True
|
||||
)
|
||||
|
||||
@property
|
||||
def packages(self) -> List[str]:
|
||||
return [
|
||||
'xorg-server'
|
||||
]
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ class SysCommandWorker:
|
|||
return False
|
||||
|
||||
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()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue