SoK/2025/StatusReport/Anish Tak
Appearance
< SoK | 2025/StatusReport
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