Kanvas
Note: this blogpost may be edited to reflect future changes in the project. Current version is 0.1.1, released 2022-05-05.
Background story
On April 3, 2022, my friend released a Canvas widget for the Wallpaper Engine. That's neat, but there are three reasons I can't use it:
- I have to buy Wallpaper Engine for $4
- I have to own a Steam account
- I have to run Windows
And two more reasons why I don't use it:
- It syncs user data onto his server
- The traffic is unencrypted (He enabled TLS later)
So I went ahead to make one for my desktop environment, KDE Plasma. The latest release is 0.1.1.
Nomenclature: an "activity" is either an announcement or an assignment.
Download
Features
- Automatically fetch course list (configurable)
- Mark an announcement/assignment as finished/important
- Open in browser
- Auto refresh
- Sensible due dates, e.g. Today, Tomorrow, Yesterday (oops), Friday
Functionality
- Toggle a checkbox to strike out an activity.
- Click the eye button to open activity link in browser.
- Toggle warning sign to mark an important activity.
- Click "Refresh" to, you know, refresh.
- Both lists are automatically refreshed at a configurable interval.
Disclaimer
At least once, Kanvas erroneously marked an assignment "Submitted". This
was because the assignment had its has_submitted_submissions
set to true
in Canvas's API response despite the fact that it had never been touched.
I have no idea what is going on inside Canvas. Now that I've warned you,
it is your responsibility to double check whether an assignment is
actually submitted or not.
Configuration
To use Kanvas, first you need to generate an OAuth2 token from Canvas settings.
Fill your Canvas URL and the token into corresponding textboxes under the Canvas config page.
Click "Fetch Courses" and Kanvas will automatically download all courses IDs and codes on record.
The text area is formatted as:
[course id]<space>[course code]
[course id]<space>[course code]
[course id]<space>[course code]
...
where course id
is numerical and course code
may consist of arbitrary
characters.
You can remove courses you don't wish to see, e.g. from a finished semester. You can also rename the course code, for brevity or whatever.
Of course I know this configuration method is far from ideal, but I'm just too inexperienced with QML. I'll add that to my todo list.
As of version 0.1.1, you can set auto refresh interval, and whether to show submitted assignments in the General config page.
FAQ
Q: Did you name it Kanvas with a K for no reason?
A: Yes.