Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,23 @@ unidesk
src/unidesk/
main.py entry point
home.py main window and all navigation logic
pages.py text content for each informational page
credits.py list of contributors
links.py external links shown in the Links page
academic_institutions.py known universities and their departments
text_data.py loads the text below from the bundled JSON
academic_config.py reads/writes the shared academic profile
assets/text_data/
pages.json body text for each informational page
faq.json FAQ entries as question/answer pairs
credits.json list of contributors
links.json external links shown in the Links page
navigation.json nav button labels and footer links
ui_strings.json buttons, titles and other interface text
academic_institutions.json known universities and their departments
```

To update any page content just open `pages.py` and edit the body text for that page. To add a new contributor open `credits.py`.
All user-facing text lives in `assets/text_data/`. To update page content edit `pages.json`; to add a contributor edit `credits.json`. No Python changes are needed to change copy.

## Academic profile

The footer on the home screen has a **Configure UniOS** button. It opens a page where you pick your university and department from dropdowns, which is saved to `~/.unios/academicConfig.json`. Other UniOS apps (such as UniBackpack) read this file, so the available choices live in `academic_institutions.py` and must stay in sync with those apps. If UniBackpack adds new universities or departments, mirror them in `academic_institutions.py`.
The footer on the home screen has a **Configure UniOS** button. It opens a page where you pick your university and department from dropdowns, which is saved to `~/.unios/academicConfig.json`. Other UniOS apps (such as UniBackpack) read this file, so the available choices live in `assets/text_data/academic_institutions.json` and must stay in sync with those apps. If UniBackpack adds new universities or departments, mirror them in `assets/text_data/academic_institutions.json`.

## Contributing

Expand Down
3 changes: 3 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
# Crucial for the new structure:
package_dir={"": "src"},
packages=find_packages(where="src"),
package_data={
"unidesk.assets.text_data": ["*.json"],
},
install_requires=["PyQt6"],
entry_points={
'console_scripts': [
Expand Down
9 changes: 0 additions & 9 deletions src/unidesk/academic_institutions.py

This file was deleted.

Empty file added src/unidesk/assets/__init__.py
Empty file.
Empty file.
17 changes: 17 additions & 0 deletions src/unidesk/assets/text_data/academic_institutions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"_comment": "This list must stay in sync with UniBackpack's hardcoded values (UniBackpack/src/MainWindow.cpp).",
"universities": {
"Aristotle University of Thessaloniki": [
"Informatics",
"Physics"
],
"University of Western Macedonia": [
"Informatics",
"Mechanical Engineering"
],
"University of Macedonia": [
"Applied Informatics",
"Economics"
]
}
}
48 changes: 48 additions & 0 deletions src/unidesk/assets/text_data/credits.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"people": [
{
"name": "Apostolos Chalis",
"role": "Main Developer",
"projects": [
"UniOS",
"UniBackpack",
"UniDesk"
]
},
{
"name": "Emanuela Goxha",
"role": "Developer & Designer",
"projects": [
"UniMate",
"UniDesk"
]
},
{
"name": "Malamatenia Soulioti",
"role": "Main Designer"
},
{
"name": "Ioannis Michadasis",
"role": "Developer",
"projects": [
"UniOS",
"UniBackpack",
"UniDesk"
]
},
{
"name": "Alexandra Iordanidou",
"role": "Community Moderator",
"projects": [
"UniDesk"
]
},
{
"name": "Konstantina Deligianni",
"role": "Developer",
"projects": [
"UniOS"
]
}
]
}
24 changes: 24 additions & 0 deletions src/unidesk/assets/text_data/faq.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"entries": [
{
"question": "Can I install UniOS alongside Windows?",
"answer": "Yes, the installer supports dual boot."
},
{
"question": "How do I update the system?",
"answer": "Run `sudo apt update && sudo apt upgrade` in a terminal."
},
{
"question": "Something is broken. Where do I report it?",
"answer": "Open an issue on our GitHub repository or reach out on Discord."
},
{
"question": "Can I use UniOS on my personal laptop?",
"answer": "Absolutely - it is designed for any hardware."
},
{
"question": "Is UniOS free?",
"answer": "Yes, UniOS is free as in freedom not as in beer."
}
]
}
32 changes: 32 additions & 0 deletions src/unidesk/assets/text_data/links.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"links": [
{
"label": "Discord Channel",
"url": "https://discord.gg/QA9AxTdppX"
},
{
"label": "Department's software list",
"url": "https://docs.google.com/forms/d/e/1FAIpQLSfX27PSSPFWNH55Uq4GX2pxhh2egHBLEAk_rCPdye5924wz6Q/viewform"
},
{
"label": "Github",
"url": "https://github.com/open-source-uom"
},
{
"label": "UniMate",
"url": "https://open-source-uom.github.io/UniMate/"
},
{
"label": "Uni OS Official Webpage",
"url": "https://open-source-uom.github.io/UniOS-landing-page/"
},
{
"label": "UniOS Docs",
"url": "https://open-source-uom.github.io/UniOS-docs/"
},
{
"label": "Open Source UoM",
"url": "http://opensource.uom.gr/"
}
]
}
28 changes: 28 additions & 0 deletions src/unidesk/assets/text_data/navigation.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"nav_left": [
"Introduction",
"Features",
"Links",
"FAQ"
],
"nav_right": [
"Community",
"Source Code",
"Contribute",
"Credits"
],
"footer_links": [
{
"label": "Discord",
"url": "https://discord.gg/QA9AxTdppX"
},
{
"label": "GitHub",
"url": "https://github.com/open-source-uom"
},
{
"label": "Website",
"url": "https://open-source-uom.github.io/UniOS-landing-page/"
}
]
}
20 changes: 20 additions & 0 deletions src/unidesk/assets/text_data/pages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"Introduction": {
"body": "UniOS is a custom Linux distribution built specifically to be used by students & staff at all Greek Universities.\n\nIt is based on Kubuntu and ships with a carefully selected set of tools for academic work, programming, and everyday use, all pre-configured so you can get started without any manual setup. It's developed and maintained by the Open Source UoM community."
},
"Features": {
"body": "• KDE Plasma desktop, preconfigured with a clean academic theme\n• UniBackpack integration for installing additional software\n• Greek and English language support\n• Lightweight footprint - runs well on older hardware"
},
"FAQ": {
"body_from": "faq"
},
"Community": {
"body": "UniOS is built by students, for students.\n\nJoin the Open Source UoM community to:\n• Get help and support from fellow students\n• Share tips, tweaks, and configurations\n• Participate in workshops and coding events\n• Stay updated on new releases and features\n\nYou can find us on Discord — the invite link is in the footer.\nEveryone is welcome, regardless of experience level."
},
"Source Code": {
"body": "UniOS is fully open source.\n\nAll build scripts and code for the apps are publicly available on GitHub under an open license.\n\nRepositories:\n• UniOS - The Linux distro you are currently using.\n• UniBackpack - software installer tool for all Universities.\n• UniMate - A Webpage that helps you install various Linux apps.\n• UniDesk - this desktop launcher app.\n\nFeel free to fork, study, and adapt the code for your own projects. Pull requests and bug reports are always welcome."
},
"Contribute": {
"body": "Want to help build UniOS? There are many ways to contribute:\n\n• Code - fix bugs, add features, improve scripts\n• Design - UI/UX improvements, icons, wallpapers\n• Documentation - write guides, translate content\n• Testing - try new builds and report issues\n• Community - help other students in Discord\n\nNo contribution is too small. Check our GitHub repositories to get started."
}
}
22 changes: 22 additions & 0 deletions src/unidesk/assets/text_data/ui_strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"window_title": "UniDesk",
"hero_title": "Welcome to UniOS",
"hero_subtitle": "A custom Linux distribution for the modern Greek university",
"back_button": "← Back",
"footer_copyright": "Open Source UoM · 2026",
"open_link_button": "Open Link",
"projects_prefix": "Projects: ",
"autostart_checkbox": "Auto start",
"configure_button": "Configure UniOS",
"credits_page_title": "Credits",
"links_page_title": "Links",
"academic_config_page_title": "Configure UniOS",
"academic_config_intro": "Set your university and department. This profile is shared with other UniOS apps, so pick the entries that match your studies.",
"academic_university_label": "University",
"academic_department_label": "Department",
"academic_university_placeholder": "Select university",
"academic_department_placeholder": "Select department",
"academic_save_button": "Save",
"academic_error_incomplete": "Please select a university and department.",
"academic_saved_template": "Saved: {university} · {department}"
}
33 changes: 0 additions & 33 deletions src/unidesk/credits.py

This file was deleted.

Loading
Loading