Jump to content

SoK/2025/StatusReport/Anish Tak

From KDE Community Wiki

Win2Linux-Chooser: An app to help migrate from Windows to Linux

Project Abstract

The project aims to help users migrate from Windows to GNU/Linux by analyzing their system specifications, asking relevant questions, and recommending a ranked list of distributions based on their preferences.

Deliverables

  • A MVP (Minimum Viable Product) that recommends a ranked list of distributions to the users switching from windows to linux

Mentors

  • Joseph P. De Veaugh-Geiss ([@joseph:kde.org])
  • Snehit Sah ([@flyingcakes:kde.org])
  • Aakarsh MJ ([@aakarshmj:matrix.org])

Merge Requests

BLog Post

Weekly Progress

Week 1

  • Discussed criteria for recommending distributions.
  • Decided to ask 4-5 questions without excessive technical details.
  • Explored distributions suitable for beginners, including Kubuntu, Fedora KDE, Linux Mint, and Lubuntu.
  • Started working on the recommendation engine logic.

Week 2

  • Decided on parameters to rate distributions:
 # Ease of installation
 # Old hardware support
 # Good documentation
 # Community support
 # Updates
  • Finalized JSON format for questions and CSV format for distribution weights.
  • Chose local processing over server-side for privacy and efficiency.
  • Decided to use PySide6 + Kirigami for the project.

Week 3

  • Set up the basic repository on KDE Invent.
  • Implemented the basic UI.
  • Worked on hardware detection using WMI and psutil.
  • Discussed filtering methods for the recommendation engine:
 # Agreed on using a cosine similarity model.
 # Treating each distribution as a vector.
 # Calculating similarity with the user preference vector.

Week 4

  • Basic recommendation engine (more detailed breakdown in the blog post) operational using dot product; switching to cosine similarity.
  • Majority of the desktop client UI completed.
  • Improved the questionnaire and refined the algorithm by adding a penalty criterion.
  • Researched driver and external hardware support.

Week 5-6

  • Narrowed the scope to Win102KDE-Chooser to KDE-based distributions.
  • Discussed the driver support, and decided to start with Nvidia driver support and extend it later.
  • Improved questionnaire so that questions directly map to parameters which are predefined in distribution vector
  • Merged the script which extracts hardware info (uses wmi) from the devices

Week 7

  • Implemented the recommendation logic
  • Made adjustments to the parameters to refine the recommendation system.
  • Used a penalty mechanism for categorical questions, to push certain distributions lower in the list which doesn't match user preference
  • Added a mock-ui which shows ranking of distros with there respective scores.

Week 8-9

  • Implemented and integrated hardware detection in the recommendation logic.
  • Implemented a UI for Hardaware Info Page.
  • Begin testing the application on a Windows machine
  • Also added an option to skip hardware detection if needed.
  • Decided to take Blue Angel Specifications as reference
Blue Angel Specifications (Reference System)
* Model: 2015 Esprimo P920  
* CPU: Intel i5-4590 (4 cores, 3.3 GHz)  
* RAM: 4 GB DDR3 (1600 MHz)  
* Storage: 500 GB SATA III HDD (6 Gbit/s)  
* Graphics: Intel HD Graphics 4600