Giter Club home page Giter Club logo

intuos4-oled's Introduction

intuos4-oled

Send cool images and text to the Wacom Intuos 4 OLEDs on Linux.

The Intuos4 is an old tablet, but it works well, and you can have fun playing with the small OLED screens. There is built-in support in the Linux kernel, but the access to it is not so obvious (and several pages on the web are outdated). The purpose of this project is to make it easy. It includes text messages, image processing, auto-saving profiles...

usage: intuos4oled.py [-h] [-t TEXT] [-i IMAGE] [-b BUTTON] [-s SPAN]
                      [-f] [--font FONT] [--kr] [--rv] [--id ID] [--lum LUM]
                      [--sync SYNC] [--nosync] command

positional arguments:
  command               update, set, clear, init

optional arguments:
  -h, --help            show this help message and exit
  -t TEXT, --text TEXT  text message
  -i IMAGE, --image IMAGE
                        image file
  -b BUTTON, --button BUTTON
                        button number, between 0 and 7
  -s SPAN, --span SPAN  if the image has to span over several buttons
  -f, --flip            Flip images upside-down (for left-handed)
  --font FONT           Font to use for texts
  --kr                  Keep image ratio
  --rv                  Reverse video
  --id ID               Wacom Tablet product ID
  --lum LUM             Oled luminance, between 0 and 15
  --sync SYNC           Specify the file used to store and synchronize all images
  --nosync              Don't synchronize images with datafile

Examples

intuos4oled.py set -i tux.png -b 0

This will display the "tux.png" icon on the button #0.

intuos4oled.py set -b 7 -i woman64.png -f -s 4

This will display the image "woman64.png" on the tablet, spanning over 4 buttons, flipped in order to fit the left-handed mode. The number '7' here is the top button in the left-handed orientation.

intuos4oled.py set -t "Don't forget\nthe bread" -b 2 --font "Ubuntu-C.ttf"

This will display some text on button #2. Notice how you can insert a line break with '\n', and change the font.

Warning For text to work, you need to install the imagemagick package.

Restore images

After the Tablet has been disconnected, you can easily restore the previous state:

intuos4oled.py update

Installation

You need standard Python and Imagemagick installs. It should work both with Python2 (for instance with Ubuntu 16.4) or Python3. In addition you should install the python-pil packages. In order to react to udev events (plus/unplug) you also need the at scheduler: in Ubuntu, you can do sudo apt install at python-pil.

Installing intuos4oled goes as follows: get the archive, unzip, cd into it and run the install.sh script. That is, open a terminal and type the following lines (RETURN after each line):

cd /tmp
wget https://github.com/sanette/intuos4-oled/archive/master.zip
unzip master.zip
cd intuos4-oled-master
sudo ./install.sh $USER

That's it! You can now plug in the tablet.

If you prefer to do it manually, step by step, here are the explanations:

Quick test

If you downloaded the zip from github, unzipped it, and cd into it, then the script is already executable. But just in case, type:

chmod 755 intuos4oled.py

There is nothing more to do to start testing. You can try:

sudo ./intuos4oled.py set -i tux.png -b 0

Depending on your system, the sudo might not be necessary. If it is, then it's easier to simply do once:

sudo ./intuos4oled.py init

And then for all subsequent calls, you don't need sudo anymore.

Permanent installation

  1. Make sure the script is executable and move it to a location in you $PATH. Here we use /usr/local/bin. This should work for everyone.
sudo cp intuos4oled.py /usr/local/bin/
  1. By using udev rules the initialization will be done automagically every time you plug in the tablet.
sudo mkdir /usr/local/lib/intuos4oled
sudo cp init.sh /usr/local/lib/intuos4oled/
sudo cp 99-wacom.rules /etc/udev/rules.d/99-wacom.rules

(This might require a restart, or instead you can type sudo udevadm control --reload-rules && udevadm trigger)

Make it automatic

To have a perfect installation, you want the OLED images to appear automatically when you plug the tablet in. For this, simply ask your Desktop environment (for instance, KDE, gnome...) to autoload the script intuos4daemon.py at login. (See also ~/.config/autostart if you want to do it manually).

To test this, you may use my sample datafile. Unplug the tablet, re-log into you session, then cp sample.sync ~/.intuos. Then plug the tablet in, and wait 3-4 seconds for the images to appear.

What about mapping keys to buttons?

Well, at this point I don't want to deal with this, because there are already very nice interfaces from the standard Desktop environments. For instance, the Wacom config from KDE is awesome.

kcmshell4 kcm_wacomtablet

More and more

A few things that I should consider because I don't see how to do them with standard tools:

  • write a better daemon (not in python, to reduce memory)

  • automatic switch profile according to the application that has focus (Gimp, Inkscape, Firefox, etc.)

  • Write a game on the OLED screen and use the touch ring to play ;)

Photos

Text is often more useful than images:

test1

But a Haiku and a nice image are good, too:

test2

intuos4-oled's People

Contributors

nekohayo avatar sanette avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.