summaryrefslogtreecommitdiff
path: root/docs/projects/kanvas.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/projects/kanvas.md')
-rw-r--r--docs/projects/kanvas.md86
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)