diff options
Diffstat (limited to 'docs/projects/kanvas.md')
-rw-r--r-- | docs/projects/kanvas.md | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/docs/projects/kanvas.md b/docs/projects/kanvas.md new file mode 100644 index 0000000..6d10996 --- /dev/null +++ b/docs/projects/kanvas.md @@ -0,0 +1,86 @@ +# 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. Here's what it looks like as of version 0.1.0 (I +wish I could take some screenshots at 0.1.1, but I'm in the middle of the +spring break so there aren't many announcements or assignments): + +![Rectangular widget split vertically into "Announcements" and +"Assignments". Several announcements are marked important, i.e. bold red. +Several are checked and stricken through. Each assignment has its due +shown underneath.](img/kanvas/screenshot_0.1.0.png) + +Nomenclature: an "activity" is either an announcement or an assignment. + +## 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. + +## Configuration + +To use Kanvas, first you need to generate an OAuth2 token from Canvas +settings. + +![An access token under section heading "Approved Integrations". A button +below is labeled "New Access Token".](img/kanvas/canvas_oauth2.png) + +Fill your Canvas URL and the token into corresponding textboxes under the +Canvas config page. + +![Canvas config page: textboxes labeled "Canvas URL", "OAuth2 Token", +an empty text area labeled "Courses", and a button labeled "Fetch +courses"](img/kanvas/config_canvas_1.png) + +Click "Fetch Courses" and Kanvas will automatically download all courses +IDs and codes on record. + +![Same page as before, but "Courses" is populated by several lines of +text.](img/kanvas/config_canvas_2.png) + +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. + +![This time "Courses" only contains two lines with a course ID and a short +course code each.](img/kanvas/config_kanvas_3.png) + +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. + +![General config page: "Refresh interval" set to 10 minutes, checkbox "Show submitted +assignments"](img/kanvas/config_general.png) |