Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/archinstall
diff options
context:
space:
mode:
Diffstat (limited to 'archinstall')
-rw-r--r--archinstall/__init__.py4
-rw-r--r--archinstall/default_profiles/desktops/awesome.py32
-rw-r--r--archinstall/default_profiles/desktops/bspwm.py22
-rw-r--r--archinstall/default_profiles/desktops/sway.py2
-rw-r--r--archinstall/default_profiles/xorg.py8
-rw-r--r--archinstall/lib/general.py2
6 files changed, 63 insertions, 7 deletions
diff --git a/archinstall/__init__.py b/archinstall/__init__.py
index cfaecd16..56f0b278 100644
--- a/archinstall/__init__.py
+++ b/archinstall/__init__.py
@@ -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:
diff --git a/archinstall/default_profiles/desktops/awesome.py b/archinstall/default_profiles/desktops/awesome.py
index 371e51db..79e0eb71 100644
--- a/archinstall/default_profiles/desktops/awesome.py
+++ b/archinstall/default_profiles/desktops/awesome.py
@@ -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) \ No newline at end of file
diff --git a/archinstall/default_profiles/desktops/bspwm.py b/archinstall/default_profiles/desktops/bspwm.py
index f3bc982d..2a29f41b 100644
--- a/archinstall/default_profiles/desktops/bspwm.py
+++ b/archinstall/default_profiles/desktops/bspwm.py
@@ -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)
diff --git a/archinstall/default_profiles/desktops/sway.py b/archinstall/default_profiles/desktops/sway.py
index ae814e46..25d74a88 100644
--- a/archinstall/default_profiles/desktops/sway.py
+++ b/archinstall/default_profiles/desktops/sway.py
@@ -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):
diff --git a/archinstall/default_profiles/xorg.py b/archinstall/default_profiles/xorg.py
index 553421a4..13154818 100644
--- a/archinstall/default_profiles/xorg.py
+++ b/archinstall/default_profiles/xorg.py
@@ -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'
+ ]
diff --git a/archinstall/lib/general.py b/archinstall/lib/general.py
index 473f85a4..90af25ed 100644
--- a/archinstall/lib/general.py
+++ b/archinstall/lib/general.py
@@ -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()