Awesome
rm-pySAS - Python library for easy development of apps for reMarkable tablet in Python.
The goal of this library is to make it as easy as possible to create applications for reMarkable tablet using Python.
It works as a wrapper around SAS and it must be installed separately.
All types of widgets are assumed from SAS and all have same behavior. It's good idea to read about them before using this library here.
Dependencies
- Simple - SAS (simple app script) package
- Python3
- pip
- display - for reMarkable 2
All dependencies can be install via Toltec with command:
opkg install python3 simple python3-pip #display
Installation
From PIP
pip install rm_pysas
Build from source
-
Download repository and enter it's directory
$ git clone https://github.com/tenJirka/rm-pySAS.git $ cd rm-pySAS
-
Install building package
build
$ python3 -m pip install --upgrade build
-
Create package
$ python3 -m build
Package files will be located in
dist/
file -
Install package
$ python3 -m pip install dist/rm_pysas-*-py3-none-any.whl
Uninstallation
python3 -m pip uninstall rm_pysas
Good to know
This modules tries to edit entered text that will be displayed to prevent Simple from crash or skip letters. See this issue.
It automatically adds .
when text ends with some problem letter and automatically convert upper case problem letters to lower case.
This behavior can't be turn off for now and will removed when this issue will be solved.
Examples
All examples can be found in examples/
directory.
Simple two buttons screen:
from rm_pySAS import *
# Create object representing current scene on display
scene = Scene()
# Add text label to current scene on coordinates x = 500, y = 400, weight = 100 and height = 50
# Text of the label is "Testing scene", font size is 40 and text is alight to center
# All last three parameters are optional
scene.add(Label(500, 400, 100, 50, "Testing scene", fontSize=40, justify="center"))
# Add exit button to current scene with id=exit
# When no fontSize or justify is specified, it assume last value given from previous
# widgets or default SAS will be used.
scene.add(Button(300, 800, 100, 50 , "Exit", id="exit"))
# Create second button, that will do anything.
scene.add(Button(800, 800, 100, 50, "Button that does nothing", id="button"))
# Creating event loops tha will end only when exit button is clicked
while(True):
scene.display()
# scene.input represent output from SAS and is actually scripts input
# It's list of id of widget interacted with and, if exists, value entered.
# When exit button is pressed, the cycle will break.
if scene.input[0] == "exit":
break
On the reMarkable tablet it look like this:
<img src="images/two_buttons_screen.png" style="zoom:75%;" />reGenda
reGenda is agenda app for reMarkable based on this module. You can look at it to see how this module can be used.
Documentation
Documentation can be found here.
Credits
- rmkit - reMarkable app framework on which this library stands