Close

Final touches

A project log for hgDeck

wearable (not) voice-controlled cyberdeck

Igor BrkicIgor Brkic 09/30/2022 at 11:490 Comments

The final step was to adjust software. In the end I decided to go with terminal dashboard for the main view (using wtf dashboard https://wtfutil.com/), plain terminal for the terminal view and overlay the pi camera when needed.

After editing ~/.config/openbox/lxde-pi-rc.xml and adding

        <application name="*">
                <decor>no</decor>
                <maximized>yes</maximized>
        </application>

inside the "applications" section, I got all apps to start maximized and without window decorations. Additionally, I added my startup script to ~/.config/lxsession/LXDE-pi/autostart to trigger it on start.

And what does the startup script do? Well, first it runs the microphone waveform on oled display, then it starts two terminals, one with dashboard and another empty one and then it starts the controller.py script which takes care of everything else.

For switching between two lxterminals, I started them with a title parameter which allowed me to use xdotool to simply activate each one with "xdotool search --name windowtitle windowactivate" (shout out to Dobrica for that tip, https://blog.rot13.org/2010/07/focus-window-by-name-using-xdotool-and-awesome-window-manager.html).

The controller.py handles the motor (display open/close) and switches the terminals/camera view.

All of the code (together with 3D files) is available in the repository: https://bitbucket.org/igor_b/cyberdeck/src

So, in the end, is it usable? No. Is it easy to use? No, it's quite heavy and cumbersome. But how does it look? Super awesome!

And a bit more of open/close action:

Discussions