summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/projects/img/kanvas/canvas_oauth2.pngbin0 -> 23066 bytes
-rw-r--r--docs/projects/img/kanvas/config_canvas_1.pngbin0 -> 55309 bytes
-rw-r--r--docs/projects/img/kanvas/config_canvas_2.pngbin0 -> 81443 bytes
-rw-r--r--docs/projects/img/kanvas/config_canvas_3.pngbin0 -> 56940 bytes
-rw-r--r--docs/projects/img/kanvas/config_general.pngbin0 -> 40819 bytes
-rw-r--r--docs/projects/img/kanvas/screenshot_0.1.0.pngbin0 -> 129152 bytes
-rw-r--r--docs/projects/index.md9
-rw-r--r--docs/projects/kanvas.md86
8 files changed, 95 insertions, 0 deletions
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
--- /dev/null
+++ b/docs/projects/img/kanvas/canvas_oauth2.png
Binary files 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
--- /dev/null
+++ b/docs/projects/img/kanvas/config_canvas_1.png
Binary files 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
--- /dev/null
+++ b/docs/projects/img/kanvas/config_canvas_2.png
Binary files 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
--- /dev/null
+++ b/docs/projects/img/kanvas/config_canvas_3.png
Binary files 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
--- /dev/null
+++ b/docs/projects/img/kanvas/config_general.png
Binary files 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
--- /dev/null
+++ b/docs/projects/img/kanvas/screenshot_0.1.0.png
Binary files 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]<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)