From 0ea6dbbd7677b94e863b2ab333431716886b5f84 Mon Sep 17 00:00:00 2001
From: Martin <martin@rys.pw>
Date: Fri, 19 Apr 2024 14:47:18 +0200
Subject: [PATCH] Rename "Kde" profile to the correct "KDE Plasma" / "Plasma"
 (#2421)

* schema.json: Remove dead misspelled i3-gasp profile

* schema.json: Rename KDE Plasma profile to the correct "Plasma" shorthand

* Rename to KDE Plasma in user facing parts and keep the old "Kde" profile for now

* Add back an accidental deleted character

* Backwards compat v2
---
 archinstall/default_profiles/desktop.py                     | 2 +-
 archinstall/default_profiles/desktops/{kde.py => plasma.py} | 5 ++---
 archinstall/lib/models/network_configuration.py             | 2 +-
 archinstall/lib/profile/profiles_handler.py                 | 5 +++++
 examples/config-sample.json                                 | 2 +-
 mypy-strict.ini                                             | 4 ++--
 schema.json                                                 | 5 ++---
 7 files changed, 14 insertions(+), 11 deletions(-)
 rename archinstall/default_profiles/desktops/{kde.py => plasma.py} (82%)

diff --git a/archinstall/default_profiles/desktop.py b/archinstall/default_profiles/desktop.py
index 9d92f8223d..417d86d659 100644
--- a/archinstall/default_profiles/desktop.py
+++ b/archinstall/default_profiles/desktop.py
@@ -15,7 +15,7 @@ def __init__(self, current_selection: List[Profile] = []):
 		super().__init__(
 			'Desktop',
 			ProfileType.Desktop,
-			description=str(_('Provides a selection of desktop environments and tiling window managers, e.g. gnome, kde, sway')),
+			description=str(_('Provides a selection of desktop environments and tiling window managers, e.g. GNOME, KDE Plasma, Sway')),
 			current_selection=current_selection,
 			support_greeter=True
 		)
diff --git a/archinstall/default_profiles/desktops/kde.py b/archinstall/default_profiles/desktops/plasma.py
similarity index 82%
rename from archinstall/default_profiles/desktops/kde.py
rename to archinstall/default_profiles/desktops/plasma.py
index 62274d5145..bcc1ea1b2b 100644
--- a/archinstall/default_profiles/desktops/kde.py
+++ b/archinstall/default_profiles/desktops/plasma.py
@@ -6,10 +6,9 @@
 if TYPE_CHECKING:
 	_: Any
 
-
-class KdeProfile(XorgProfile):
+class PlasmaProfile(XorgProfile):
 	def __init__(self):
-		super().__init__('Kde', ProfileType.DesktopEnv, description='')
+		super().__init__('KDE Plasma', ProfileType.DesktopEnv, description='')
 
 	@property
 	def packages(self) -> List[str]:
diff --git a/archinstall/lib/models/network_configuration.py b/archinstall/lib/models/network_configuration.py
index b726bb7303..dfd8b8cbbf 100644
--- a/archinstall/lib/models/network_configuration.py
+++ b/archinstall/lib/models/network_configuration.py
@@ -20,7 +20,7 @@ def display_msg(self) -> str:
 			case NicType.ISO:
 				return str(_('Copy ISO network configuration to installation'))
 			case NicType.NM:
-				return str(_('Use NetworkManager (necessary to configure internet graphically in GNOME and KDE)'))
+				return str(_('Use NetworkManager (necessary to configure internet graphically in GNOME and KDE Plasma)'))
 			case NicType.MANUAL:
 				return str(_('Manual configuration'))
 
diff --git a/archinstall/lib/profile/profiles_handler.py b/archinstall/lib/profile/profiles_handler.py
index 12dcee3f22..b9acb4fe89 100644
--- a/archinstall/lib/profile/profiles_handler.py
+++ b/archinstall/lib/profile/profiles_handler.py
@@ -107,6 +107,11 @@ def parse_profile_config(self, profile_config: Dict[str, Any]) -> Optional[Profi
 
 		if details:
 			for detail in filter(None, details):
+				# [2024-04-19] TODO: Backwards compatibility after naming change: https://github.com/archlinux/archinstall/pull/2421
+				#                    'Kde' is deprecated, remove this block in a future version
+				if detail == 'Kde':
+					detail = 'KDE Plasma'
+
 				if sub_profile := self.get_profile_by_name(detail):
 					valid_sub_profiles.append(sub_profile)
 				else:
diff --git a/examples/config-sample.json b/examples/config-sample.json
index d43f7ea66b..47a4e2e08b 100644
--- a/examples/config-sample.json
+++ b/examples/config-sample.json
@@ -106,7 +106,7 @@
         "greeter": "sddm",
         "profile": {
             "details": [
-                "Kde"
+                "KDE Plasma"
             ],
             "main": "Desktop"
         }
diff --git a/mypy-strict.ini b/mypy-strict.ini
index be7ddf5797..c670bbaae3 100644
--- a/mypy-strict.ini
+++ b/mypy-strict.ini
@@ -66,10 +66,10 @@ exclude = (?x)(
     | ^archinstall/profiles/enlightenment\.py$
     | ^archinstall/profiles/gnome\.py$
     | ^archinstall/profiles/i3\.py$
-    | ^archinstall/profiles/kde\.py$
     | ^archinstall/profiles/lxqt\.py$
     | ^archinstall/profiles/mate\.py$
     | ^archinstall/profiles/minimal\.py$
+    | ^archinstall/profiles/plasma\.py$
     | ^archinstall/profiles/qtile\.py$
     | ^archinstall/profiles/server\.py$
     | ^archinstall/profiles/sway\.py$
@@ -86,10 +86,10 @@ exclude = (?x)(
     | ^profiles/enlightenment\.py$
     | ^profiles/gnome\.py$
     | ^profiles/i3\.py$
-    | ^profiles/kde\.py$
     | ^profiles/lxqt\.py$
     | ^profiles/mate\.py$
     | ^profiles/minimal\.py$
+    | ^profiles/plasma\.py$
     | ^profiles/qtile\.py$
     | ^profiles/server\.py$
     | ^profiles/sway\.py$
diff --git a/schema.json b/schema.json
index 74ecc4d39f..97cb42e1ef 100644
--- a/schema.json
+++ b/schema.json
@@ -129,7 +129,7 @@
                 ]
             },
             "details": {
-                "description": "Specific profile to be installed based on the 'main' selection; these profiles are present in profiles_v2/, use the name of a profile to install it (case insensitive)",
+                "description": "Specific profile to be installed based on the 'main' selection; these profiles are present in default_profiles/, use the file name of a profile without the extension to install it (case insensitive)",
                 "type": "string",
                 "enum": [
                     "awesome",
@@ -142,8 +142,7 @@
                     "enlightenment",
                     "gnome",
                     "i3-wm",
-                    "i3-gasp",
-                    "kde",
+                    "plasma",
                     "lxqt",
                     "mate",
                     "sway",