* Fix sway+nvidia confirmation dialog (#4481) Two bugs in the Sway+Nvidia driver confirmation: 1. The boolean was inverted - confirming "yes, I'm okay with issues" reverted the driver to the previous choice instead of keeping it. 2. The warning triggered for any Nvidia driver, including the open-source nouveau driver which is officially supported by Sway. Add GfxDriver.is_nvidia_proprietary() and is_nvidia_nouveau() methods so the warning fires only for nvidia-open-dkms (proprietary userspace). * Address review feedback (#4485) - Drop is_nvidia_nouveau() helper. It is not called anywhere yet; can be re-added when a consumer lands. - Collapse the Sway+Nvidia confirmation result handling into a single expression now that allow_skip=False guarantees a boolean answer.
This commit is contained in:
parent
e1efa34d8a
commit
8a929f603f
|
|
@ -68,6 +68,19 @@ class GfxDriver(Enum):
|
||||||
case _:
|
case _:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def is_nvidia_proprietary(self) -> bool:
|
||||||
|
"""
|
||||||
|
True for Nvidia drivers that ship proprietary userspace components.
|
||||||
|
Currently only NvidiaOpenKernel (nvidia-open-dkms): open kernel module
|
||||||
|
paired with proprietary userspace. NvidiaOpenSource (nouveau) is fully
|
||||||
|
open and works with Sway, so it is excluded.
|
||||||
|
"""
|
||||||
|
match self:
|
||||||
|
case GfxDriver.NvidiaOpenKernel:
|
||||||
|
return True
|
||||||
|
case _:
|
||||||
|
return False
|
||||||
|
|
||||||
def packages_text(self) -> str:
|
def packages_text(self) -> str:
|
||||||
pkg_names = [p.value for p in self.gfx_packages()]
|
pkg_names = [p.value for p in self.gfx_packages()]
|
||||||
text = tr('Installed packages') + ':\n'
|
text = tr('Installed packages') + ':\n'
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ class ProfileMenu(AbstractSubMenu[ProfileConfiguration]):
|
||||||
driver = await select_driver(preset=preset)
|
driver = await select_driver(preset=preset)
|
||||||
|
|
||||||
if driver and 'Sway' in profile.current_selection_names():
|
if driver and 'Sway' in profile.current_selection_names():
|
||||||
if driver.is_nvidia():
|
if driver.is_nvidia_proprietary():
|
||||||
header = tr('The proprietary Nvidia driver is not supported by Sway.') + '\n'
|
header = tr('The proprietary Nvidia driver is not supported by Sway.') + '\n'
|
||||||
header += tr('It is likely that you will run into issues, are you okay with that?') + '\n'
|
header += tr('It is likely that you will run into issues, are you okay with that?') + '\n'
|
||||||
|
|
||||||
|
|
@ -105,8 +105,7 @@ class ProfileMenu(AbstractSubMenu[ProfileConfiguration]):
|
||||||
preset=False,
|
preset=False,
|
||||||
).show()
|
).show()
|
||||||
|
|
||||||
if result.get_value():
|
return driver if result.get_value() else preset
|
||||||
return preset
|
|
||||||
|
|
||||||
return driver
|
return driver
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue