-
Notifications
You must be signed in to change notification settings - Fork 675
fix: HW changes / X11 #4057 #3899 #4066
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
603a772
Fix x11 vs wayland
h8d13 cb9dbbc
Issue #3005 and x11 related changes
h8d13 e27370a
ws
h8d13 fb43ca4
Flake check
h8d13 20ff034
Add VM drivers and let ICD loader decide.
h8d13 ed99d8d
icd-loader instead of hardcoding arbitrary pkgs
h8d13 198f48a
Add video accel to VM category
h8d13 93f3e70
n ws
h8d13 75d2f62
bl
h8d13 84ae1cb
remove unused logic for sway + nvidia
h8d13 7f58fcf
Remove more un-used
h8d13 112c082
Final reverts, remove is_supported completly
h8d13 207a23d
Address all svart feedback (thanks)
h8d13 a37d229
Revert issue#3005
h8d13 f12fbff
Oopsies missing 'def'
h8d13 cccc377
One commit to rule them all mypy + pylint
h8d13 fb104d1
Ruff
h8d13 d8086ec
More feedback
h8d13 1822a7b
Inline import
h8d13 22f9646
Ruff
h8d13 ddef9bb
Ws
h8d13 93bd87b
Merge branch 'master' into dot-x11
h8d13 6698967
fix imports
h8d13 807b4a1
Create WaylandProfile Class
h8d13 1441b85
Update comment
h8d13 3939435
Rever xorg change and remove wayland from menu choice
h8d13 3da463f
Add cage profile + greeter
h8d13 7cdd478
Rem
h8d13 8f5988f
niri has seatd in hard deps
h8d13 0688319
Rem import
h8d13 0667d27
Final hw corrections
h8d13 7567c09
Rem imports
h8d13 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,217 +1 @@ | ||
| # from typing import List, Dict, Optional, TYPE_CHECKING, Any | ||
| # | ||
| # from ..lib import menu | ||
| # from archinstall.lib.output import log, FormattedOutput | ||
| # from archinstall.lib.profile.profiles_handler import profile_handler | ||
| # from archinstall.default_profiles.profile import Profile, ProfileType, SelectResult, ProfileInfo, TProfile | ||
| # | ||
| # if TYPE_CHECKING: | ||
| # from archinstall.lib.installer import Installer | ||
| # _: Any | ||
| # | ||
| # | ||
| # class CustomProfileList(menu.ListManager): | ||
| # def __init__(self, prompt: str, profiles: List[TProfile]): | ||
| # self._actions = [ | ||
| # str(_('Add profile')), | ||
| # str(_('Edit profile')), | ||
| # str(_('Delete profile')) | ||
| # ] | ||
| # super().__init__(prompt, profiles, [self._actions[0]], self._actions[1:]) | ||
| # | ||
| # def reformat(self, data: List[TProfile]) -> Dict[str, Optional[TProfile]]: | ||
| # table = FormattedOutput.as_table(data) | ||
| # rows = table.split('\n') | ||
| # | ||
| # # these are the header rows of the table and do not map to any profile obviously | ||
| # # we're adding 2 spaces as prefix because the menu selector '> ' will be put before | ||
| # # the selectable rows so the header has to be aligned | ||
| # display_data: Dict[str, Optional[TProfile]] = {f' {rows[0]}': None, f' {rows[1]}': None} | ||
| # | ||
| # for row, profile in zip(rows[2:], data): | ||
| # row = row.replace('|', '\\|') | ||
| # display_data[row] = profile | ||
| # | ||
| # return display_data | ||
| # | ||
| # def selected_action_display(self, profile: TProfile) -> str: | ||
| # return profile.name | ||
| # | ||
| # def handle_action( | ||
| # self, | ||
| # action: str, | ||
| # entry: Optional['CustomTypeProfile'], | ||
| # data: List['CustomTypeProfile'] | ||
| # ) -> List['CustomTypeProfile']: | ||
| # if action == self._actions[0]: # add | ||
| # new_profile = self._add_profile() | ||
| # if new_profile is not None: | ||
| # # in case a profile with the same name as an existing profile | ||
| # # was created we'll replace the existing one | ||
| # data = [d for d in data if d.name != new_profile.name] | ||
| # data += [new_profile] | ||
| # elif entry is not None: | ||
| # if action == self._actions[1]: # edit | ||
| # new_profile = self._add_profile(entry) | ||
| # if new_profile is not None: | ||
| # # we'll remove the original profile and add the modified version | ||
| # data = [d for d in data if d.name != entry.name and d.name != new_profile.name] | ||
| # data += [new_profile] | ||
| # elif action == self._actions[2]: # delete | ||
| # data = [d for d in data if d != entry] | ||
| # | ||
| # return data | ||
| # | ||
| # def _is_new_profile_name(self, name: str) -> bool: | ||
| # existing_profile = profile_handler.get_profile_by_name(name) | ||
| # if existing_profile is not None and existing_profile.profile_type != ProfileType.CustomType: | ||
| # return False | ||
| # return True | ||
| # | ||
| # def _add_profile(self, editing: Optional['CustomTypeProfile'] = None) -> Optional['CustomTypeProfile']: | ||
| # name_prompt = '\n\n' + str(_('Profile name: ')) | ||
| # | ||
| # while True: | ||
| # profile_name = menu.TextInput(name_prompt, editing.name if editing else '').run().strip() | ||
| # | ||
| # if not profile_name: | ||
| # return None | ||
| # | ||
| # if not self._is_new_profile_name(profile_name): | ||
| # error_prompt = str(_("The profile name you entered is already in use. Try again")) | ||
| # print(error_prompt) | ||
| # else: | ||
| # break | ||
| # | ||
| # packages_prompt = str(_('Packages to be install with this profile (space separated, leave blank to skip): ')) | ||
| # edit_packages = ' '.join(editing.packages) if editing else '' | ||
| # packages = menu.TextInput(packages_prompt, edit_packages).run().strip() | ||
| # | ||
| # services_prompt = str(_('Services to be enabled with this profile (space separated, leave blank to skip): ')) | ||
| # edit_services = ' '.join(editing.services) if editing else '' | ||
| # services = menu.TextInput(services_prompt, edit_services).run().strip() | ||
| # | ||
| # choice = menu.Menu( | ||
| # str(_('Should this profile be enabled for installation?')), | ||
| # menu.Menu.yes_no(), | ||
| # skip=False, | ||
| # default_option=menu.Menu.no(), | ||
| # clear_screen=False, | ||
| # show_search_hint=False | ||
| # ).run() | ||
| # | ||
| # enable_profile = True if choice.value == menu.Menu.yes() else False | ||
| # | ||
| # profile = CustomTypeProfile( | ||
| # profile_name, | ||
| # enabled=enable_profile, | ||
| # packages=packages.split(' '), | ||
| # services=services.split(' ') | ||
| # ) | ||
| # | ||
| # return profile | ||
| # | ||
| # | ||
| # # TODO | ||
| # # Still needs some ironing out | ||
| # class CustomProfile(): | ||
| # def __init__(self): | ||
| # super().__init__( | ||
| # 'Custom', | ||
| # ProfileType.Custom, | ||
| # ) | ||
| # | ||
| # def json(self) -> Dict[str, Any]: | ||
| # data: Dict[str, Any] = {'main': self.name, 'gfx_driver': self.gfx_driver, 'custom': []} | ||
| # | ||
| # for profile in self._current_selection: | ||
| # data['custom'].append({ | ||
| # 'name': profile.name, | ||
| # 'packages': profile.packages, | ||
| # 'services': profile.services, | ||
| # 'enabled': profile.custom_enabled | ||
| # }) | ||
| # | ||
| # return data | ||
| # | ||
| # def do_on_select(self) -> SelectResult: | ||
| # custom_profile_list = CustomProfileList('', profile_handler.get_custom_profiles()) | ||
| # custom_profiles = custom_profile_list.run() | ||
| # | ||
| # # we'll first remove existing custom default_profiles with | ||
| # # the same name and then add the new ones this | ||
| # # will avoid errors of default_profiles with duplicate naming | ||
| # profile_handler.remove_custom_profiles(custom_profiles) | ||
| # profile_handler.add_custom_profiles(custom_profiles) | ||
| # | ||
| # self.set_current_selection(custom_profiles) | ||
| # | ||
| # if custom_profile_list.is_last_choice_cancel(): | ||
| # return SelectResult.SameSelection | ||
| # | ||
| # enabled_profiles = [p for p in self._current_selection if p.custom_enabled] | ||
| # # in case we only created inactive default_profiles we wanna store them but | ||
| # # we want to reset the original setting | ||
| # if not enabled_profiles: | ||
| # return SelectResult.ResetCurrent | ||
| # | ||
| # return SelectResult.NewSelection | ||
| # | ||
| # def post_install(self, install_session: 'Installer'): | ||
| # for profile in self._current_selection: | ||
| # profile.post_install(install_session) | ||
| # | ||
| # def install(self, install_session: 'Installer'): | ||
| # driver_packages = self.gfx_driver_packages() | ||
| # install_session.add_additional_packages(driver_packages) | ||
| # | ||
| # for profile in self._current_selection: | ||
| # if profile.custom_enabled: | ||
| # log(f'Installing custom profile {profile.name}...') | ||
| # | ||
| # install_session.add_additional_packages(profile.packages) | ||
| # install_session.enable_service(profile.services) | ||
| # | ||
| # profile.install(install_session) | ||
| # | ||
| # def info(self) -> Optional[ProfileInfo]: | ||
| # enabled_profiles = [p for p in self._current_selection if p.custom_enabled] | ||
| # if enabled_profiles: | ||
| # details = ', '.join([p.name for p in enabled_profiles]) | ||
| # gfx_driver = self.gfx_driver | ||
| # return ProfileInfo(self.name, details, gfx_driver) | ||
| # | ||
| # return None | ||
| # | ||
| # def reset(self): | ||
| # for profile in self._current_selection: | ||
| # profile.set_enabled(False) | ||
| # | ||
| # self.gfx_driver = None | ||
| # | ||
| # | ||
| # class CustomTypeProfile(Profile): | ||
| # def __init__( | ||
| # self, | ||
| # name: str, | ||
| # enabled: bool = False, | ||
| # packages: List[str] = [], | ||
| # services: List[str] = [] | ||
| # ): | ||
| # super().__init__( | ||
| # name, | ||
| # ProfileType.CustomType, | ||
| # packages=packages, | ||
| # services=services, | ||
| # support_gfx_driver=True | ||
| # ) | ||
| # | ||
| # self.custom_enabled = enabled | ||
| # | ||
| # def json(self) -> Dict[str, Any]: | ||
| # return { | ||
| # 'name': self.name, | ||
| # 'packages': self.packages, | ||
| # 'services': self.services, | ||
| # 'enabled': self.custom_enabled | ||
| # } | ||
| # Placeholder to make your own | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.