{"id":20477333,"url":"https://github.com/harbaum/touchui","last_synced_at":"2025-04-13T12:51:27.822Z","repository":{"id":54310107,"uuid":"61148771","full_name":"harbaum/TouchUI","owner":"harbaum","description":"Touchscreen UI written in PyQt","archived":false,"fork":false,"pushed_at":"2023-10-03T14:56:46.000Z","size":521,"stargazers_count":32,"open_issues_count":2,"forks_count":11,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-27T03:51:22.319Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harbaum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/README.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-14T19:06:51.000Z","updated_at":"2024-07-20T15:51:36.000Z","dependencies_parsed_at":"2024-11-15T15:28:58.216Z","dependency_job_id":"a68c0873-c4ce-40ec-ab4a-ba1d07cbd563","html_url":"https://github.com/harbaum/TouchUI","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2FTouchUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2FTouchUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2FTouchUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2FTouchUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harbaum","download_url":"https://codeload.github.com/harbaum/TouchUI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248717251,"owners_count":21150388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T15:27:35.731Z","updated_at":"2025-04-13T12:51:27.804Z","avatar_url":"https://github.com/harbaum.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![Logo](https://raw.githubusercontent.com/harbaum/TouchUI/master/screenshots/logo.png) TouchUI\n\nThe TouchUI was initially started as part of the [ftcommunity-TXT\nproject](https://github.com/ftCommunity/ftcommunity-TXT).  It has now\nbecome a stand-alone GUI project aiming to create a simple yet useful\nuser interface for small touch screen enabled devices like the\nRaspberry Pi using a display module add-on.\n\n![Launcher](https://raw.githubusercontent.com/harbaum/TouchUI/master/screenshots/launcher.png) ![NetInfo App](https://raw.githubusercontent.com/harbaum/TouchUI/master/screenshots/netinfo.png) ![Power App](https://raw.githubusercontent.com/harbaum/TouchUI/master/screenshots/power.png) ![About TouchUI](https://raw.githubusercontent.com/harbaum/TouchUI/master/screenshots/about.png) ![On screen keyboard](https://raw.githubusercontent.com/harbaum/TouchUI/master/screenshots/input.png)\n\nTouchUI is based on Python, Qt and PyQt. It runs on any device\nsupporting these incl. the Raspberry Pi and the Fischertechnik TXT.\nIt's designed for resultions from 240x320 to 480x320 / 320x480\nand is meant to be used with a touchscreen. \n\n## Raspberry Pi installation\n\nInstalling the TouchUI on a raspberry pi is quite simple. The following \ninstructions assume that you have a raspberry pi running raspbian with\na small 3.2 or 3.5 inch LCD.\n\n### Display orientation\n\nThe TouchUI is meant to be used with at least 320 pixel\nvertically. Thus a 320x240 display needs to be configured for portrait\nmode. The exact steps for this differ from display to display. E.g. a\nWaveshare 3.2 inch LCD with 320x240 pixels can be rotated by adding\nthe rotate option like `dtoverlay=waveshare35a,rotate=0` to the file\n`/boot/config.txt`.\n\nFurthermore the touchscreen also needs to be rotated. This is done in the \nfile `/etc/X11/xorg.conf.d/99-calibration.conf` by removing the `SwapAxes` option\nand by exachanging the Calibration values of both axes:\n\n```\nSection \"InputClass\"\n  Identifier   \"calibration\"\n  MatchProduct \"ADS7846 Touchscreen\"\n  Option       \"Calibration\" \"300 3932 294 3801\"\nEndSection\n```\n\nAfterwards the display and touchscreen should work as usual but in upright\norientation.\n\n### Hide mouse cursor and disable screen blanking\n\nThe TouchUI is meant to be used with the finger. This no mouse cursor\nis needed. Also scren blanking is usually not wanted in this case. This\ncan be accomplished by changing the file `/etc/X11/xinit/xserverrc`\nlike this.\n\n```\n#!/bin/sh\nexec /usr/bin/X -s 0 dpms -nocursor -nolisten tcp \"$@\"\n```\n\n### Disable existing GUI\n\nRaspbian comes with the lightdm window manager installed by default.\nYou can simply uninstall it via the command `apt-get remove lightdm`.\n\n### Boot TouchUI\n\nFirst place the entire [touchui directory](https://github.com/harbaum/TouchUI/tree/master/touchui) in the  `/root` directoy.\n\nThen install the [init\nscript](https://github.com/harbaum/TouchUI/blob/master/support/touchui-init)\nunder `/etc/init.d/touchui-init` and the [touch ui start script](https://github.com/harbaum/TouchUI/blob/master/support/touchui) under `/root/touchui/touchui`.\n\nAcivate the init script by executing the following command:\n\n```\nupdate-rc.d touchui-init defaults\n```\n\nMake sure python3, Qt and PyQt are installed on your Pi e.g. with the following command:\n```\napt-get install python3\napt-get install python3-pyqt4 \n```\n\nAfter a reboot the TouchUI should show up.\n\n## PC Demo\n\nThe TouchUI can run an a PC inside a window. The launcher\n([`touchui/launcher.py`](https://github.com/harbaum/TouchUI/blob/master/touchui/launcher.py))\ncan just be started. If apps are being used the enironment variable\n`PYTHONPATH` needs to be set to the directory where\n[`TouchStyle.py`](https://github.com/harbaum/TouchUI/blob/master/touchui/TouchStyle.py)\nis located.\n\nWhen run on a desktop PC the TouchUI runs inside a window. The\nsize of this window can be changed. E.g. the command\n\n```\nSCREEN=480x320 ./launcher.py\n```\n\nwill run the launcher inside a window of 320x480 pixels size:\n\n![Launcher in 320x480](https://raw.githubusercontent.com/harbaum/TouchUI/master/screenshots/launcher_320x480.png)\n           \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharbaum%2Ftouchui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharbaum%2Ftouchui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharbaum%2Ftouchui/lists"}