summaryrefslogtreecommitdiff
path: root/README.md
blob: 0cb3f94b03cb38d99a0179e00f2f2906dfe877e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Kanvas

Kanvas is a plasmoid that syncs announcements and assignments from your
university's Canvas®™© LMS to your Plasma desktop. It lacks features and
configs, and I would not say it is not production-ready.

Kanvas is written in QML. It is the first QML application I wrote and
I have not touched JavaScript in two years, so the code sucks.

ight now, it looks like this:

![Screenshot](img/screenshot_0.1.1.png)

## Development

First obviously you need the Plasma framework. If you have zero Plasma
development experience like me, here are some useful links:

- [Techbase: Plasma 5](https://techbase.kde.org/Development/Tutorials/Plasma5)
- [Developer: Plasma Widget Testing](https://develop.kde.org/docs/plasma/widget/testing/)

My workflow as of now is a simple Makefile. Run `make install` to install
the plasmoid to your `~/.local/share/plasma/plasmoids/`, then `make` to
run it in a window (`plasmawindowed`). Each time you `make`, the plasmoid
in `.local/` will be updated.

At startup you will see sample announcement/assignments. They are for
layout tweaking in the early stages of development. Before doing anything
you will need to configure the plasmoid. Right click the "Kanvas" heading
and click "Configure Kanvas". Go to the "Canvas" tab and fill out your
Canvas domain and OAuth2 token. Click "Fetch courses", then follow
instructions on the UI. Click "OK" to save. The configuration will be
saved for plasmawindowed every time you debug, but kept separate from the
rest of Plasma; if you add the widget to your desktop it has to be
configured again.

## Todo

- [ ] Placeholders when machine is offline
- [ ] Sort assignments by urgency
- [ ] More friendly course list in config dialog
- [ ] Consistent order of activities
- [ ] Ignore activity and undo ignore

## Contributing

I am terrible at QML. Help me.

- [KDE GitLab](https://invent.kde.org/fakefred/kanvas)
- [SourceHut](https://git.sr.ht/~fkfd/kanvas), mailing list for git
  send-email: `~fkfd/misc@lists.sr.ht`