From db37287f34ac06d68446fdc296c33919c8a6b04a Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Thu, 5 May 2022 14:10:27 +0800 Subject: New post: projects/kanvas --- docs/projects/img/kanvas/canvas_oauth2.png | Bin 0 -> 23066 bytes docs/projects/img/kanvas/config_canvas_1.png | Bin 0 -> 55309 bytes docs/projects/img/kanvas/config_canvas_2.png | Bin 0 -> 81443 bytes docs/projects/img/kanvas/config_canvas_3.png | Bin 0 -> 56940 bytes docs/projects/img/kanvas/config_general.png | Bin 0 -> 40819 bytes docs/projects/img/kanvas/screenshot_0.1.0.png | Bin 0 -> 129152 bytes docs/projects/index.md | 9 +++ docs/projects/kanvas.md | 86 ++++++++++++++++++++++++++ 8 files changed, 95 insertions(+) create mode 100644 docs/projects/img/kanvas/canvas_oauth2.png create mode 100644 docs/projects/img/kanvas/config_canvas_1.png create mode 100644 docs/projects/img/kanvas/config_canvas_2.png create mode 100644 docs/projects/img/kanvas/config_canvas_3.png create mode 100644 docs/projects/img/kanvas/config_general.png create mode 100644 docs/projects/img/kanvas/screenshot_0.1.0.png create mode 100644 docs/projects/kanvas.md diff --git a/docs/projects/img/kanvas/canvas_oauth2.png b/docs/projects/img/kanvas/canvas_oauth2.png new file mode 100644 index 0000000..c6f8d71 Binary files /dev/null and b/docs/projects/img/kanvas/canvas_oauth2.png differ diff --git a/docs/projects/img/kanvas/config_canvas_1.png b/docs/projects/img/kanvas/config_canvas_1.png new file mode 100644 index 0000000..d7d0fa1 Binary files /dev/null and b/docs/projects/img/kanvas/config_canvas_1.png differ diff --git a/docs/projects/img/kanvas/config_canvas_2.png b/docs/projects/img/kanvas/config_canvas_2.png new file mode 100644 index 0000000..10d4c6e Binary files /dev/null and b/docs/projects/img/kanvas/config_canvas_2.png differ diff --git a/docs/projects/img/kanvas/config_canvas_3.png b/docs/projects/img/kanvas/config_canvas_3.png new file mode 100644 index 0000000..473de10 Binary files /dev/null and b/docs/projects/img/kanvas/config_canvas_3.png differ diff --git a/docs/projects/img/kanvas/config_general.png b/docs/projects/img/kanvas/config_general.png new file mode 100644 index 0000000..cac6c17 Binary files /dev/null and b/docs/projects/img/kanvas/config_general.png differ diff --git a/docs/projects/img/kanvas/screenshot_0.1.0.png b/docs/projects/img/kanvas/screenshot_0.1.0.png new file mode 100644 index 0000000..63680b0 Binary files /dev/null and b/docs/projects/img/kanvas/screenshot_0.1.0.png differ diff --git a/docs/projects/index.md b/docs/projects/index.md index ed05b82..529f11d 100644 --- a/docs/projects/index.md +++ b/docs/projects/index.md @@ -8,6 +8,15 @@ MkDocs). But the few that do, are here. Projects below are sorted reverse chronologically (most recent first). +## [Kanvas](kanvas) + +![Screenshot of Kanvas 0.1.0](img/kanvas/screenshot_0.1.0.png) + +In April 2022 my friend released a Canvas LMS desktop widget for the +Wallpaper Engine. I feel happy for him, but I'm disappointed that I can't +use it. So I went ahead and wrote my own Plasma widget (or applet, or +plasmoid). + ## [Bikeblinkers](bikeblinkers) [ 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][course code] +[course id][course code] +[course id][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) -- cgit v1.2.3