A native GNOME desktop client for the Spaggiari Classeviva electronic register, built with GTK4 + libadwaita.
| Section | Description |
|---|---|
| Home | Dashboard with grade summary rings, upcoming agenda, unread notices |
| Voti | Grades grouped by subject with per-period averages and circular ring badges; ↑/↓ trend indicators |
| Assenze | Calendar heatmap + statistics (absences / delays / early exits) with justification status |
| Agenda | Day-navigation view with colour-coded subject bars; separate homework/lessons sections |
| Bacheca | Noticeboard with attachment download (marks as read automatically) |
| Materiali | Teacher-uploaded files, grouped by teacher, with one-tap download/open |
| Pagelle | Downloadable PDF report cards + web report viewer with auto-login and PDF export |
- Fully adaptive (works at any window width)
- Respects system dark/light mode via
AdwStyleManager - Circular grade rings drawn with Cairo + Pango
- Credentials stored securely in GNOME Keyring / Secret Service
# Using yay
yay -S linuxviva-git
# Using paru
paru -S linuxviva-gitgit clone https://github.com/giomarco2107/linuxviva.git
cd linuxviva
bash install.shThis installs to ~/.local/ (no root required) and registers the app in your application launcher.
git clone https://github.com/giomarco2107/linuxviva.git
cd linuxviva
meson setup builddir --prefix=/usr
meson compile -C builddir
sudo meson install -C builddir| Package | Arch name | Fedora name | Debian/Ubuntu name |
|---|---|---|---|
| Python 3.11+ | python |
python3 |
python3 |
| PyGObject | python-gobject |
python3-gobject |
python3-gi |
| GTK 4 | gtk4 |
gtk4 |
gir1.2-gtk-4.0 |
| libadwaita | libadwaita |
libadwaita |
gir1.2-adw-1 |
| WebKitGTK 6 | webkitgtk-6.0 |
webkitgtk6.0 |
gir1.2-webkit-6.0 |
| httpx | python-httpx |
python3-httpx |
python3-httpx |
| keyring | python-keyring |
python3-keyring |
python3-keyring |
Quick install (Arch):
sudo pacman -S python python-gobject gtk4 libadwaita webkitgtk-6.0 python-httpx python-keyringQuick install (Fedora):
sudo dnf install python3 python3-gobject gtk4 libadwaita webkitgtk6.0 python3-httpx python3-keyringQuick install (Ubuntu 24.04+):
sudo apt install python3 python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 gir1.2-webkit-6.0 python3-httpx python3-keyringgit clone https://github.com/giomarco2107/linuxviva.git
cd linuxviva
python3 src/main.pylinuxviva/
├── meson.build
├── install.sh ← quick local install (no root needed)
├── PKGBUILD ← AUR package
├── data/
│ ├── linuxviva.in ← launcher wrapper template
│ └── io.github.giomarco2107.LinuxViva.desktop
└── src/
├── main.py
├── application.py
├── api/
│ └── client.py ← HTTP client (httpx) for Spaggiari REST API
├── views/
│ ├── login_view.py
│ ├── main_view.py
│ ├── home_view.py
│ ├── grades_view.py
│ ├── absences_view.py
│ ├── agenda_view.py
│ ├── noticeboard_view.py
│ ├── didactics_view.py
│ └── scrutini_view.py
└── widgets/
└── grade_badge.py ← GradeBadge (pill) + GradeRing (Cairo arc)
Pull requests are welcome! Please open an issue first to discuss what you'd like to change.
GPL-3.0 — © 2024 giomarco2107