{"id":18105378,"url":"https://github.com/bjesus/air","last_synced_at":"2025-04-13T19:31:02.355Z","repository":{"id":49522901,"uuid":"495573182","full_name":"bjesus/air","owner":"bjesus","description":"Awesome Interface for e-Readers","archived":false,"fork":false,"pushed_at":"2024-10-27T16:09:49.000Z","size":538,"stargazers_count":52,"open_issues_count":2,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-06T08:06:06.407Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","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/bjesus.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":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-23T21:04:37.000Z","updated_at":"2025-02-17T13:41:08.000Z","dependencies_parsed_at":"2024-10-27T17:36:56.716Z","dependency_job_id":"cd2074da-5d89-4fa8-ae95-60678f4bc529","html_url":"https://github.com/bjesus/air","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/bjesus%2Fair","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjesus%2Fair/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjesus%2Fair/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjesus%2Fair/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bjesus","download_url":"https://codeload.github.com/bjesus/air/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248767853,"owners_count":21158544,"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-10-31T22:18:29.039Z","updated_at":"2025-04-13T19:31:02.084Z","avatar_url":"https://github.com/bjesus.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"# Awesome Interface for e-Readers\n\n![AIR screenshot](https://user-images.githubusercontent.com/55081/172224765-9f0efab0-f555-45b5-a053-186d2300373a.png)\n\nAIR is a graphical interface for e-readers that heavily relies on AwesomeWM. It's tested on the Kobo Clara HD using PostmarketOS, but perhaps it can be used elsewhere. It is a work in progress.\n\nAIR was created because most Linux graphical interfaces don't work very well with e-ink tablet out of the box. They often require keyboard or mouse to configure things. Sometimes, unique features such as cold \u0026 warm brightness cannot be easily controls. Lastly, things like proper suspend and resume can require some [hacks](suspend.sh). AIR aims to make these things Just Work ™️. \n\n## Features\n\n- Tilling interface\n- Brightness control\n- WiFi toggling\n- Suspend / Resume\n- Touch gestures\n- On screen keyboard\n\nYou can use any Linux application with it, for example:\n\n- KOReader or Foliate for ebooks\n- Firefox for (slow) web\n- Castor for Gopher and Gemini\n- St for terminal\n\n## Setup\n\nAIR isn't nicely packed as it's actually just a collection of different tools, together with an AwesomeWM configuration. Setting up takes a couple of steps:\n\n0. `cd ~/.config \u0026\u0026 git clone https://github.com/bjesus/air.git awesome`\n\n1. Install all needed packages: `sudo apk add awesome util-linux-misc svkbd lisgd network-manager-applet pm-utils brightnessctl upower adwaita-icon-theme font-inter xrandr`\n\n2. If you want, install the additional optional software: `sudo apk add foliate castor mobile-config-firefox sxmo-st`\n\n3. Place your background image at `~/.config/awesome/bg.jpg`\n\n4. Set your default desktop environment: `sudo tinydm-set-session -f -s /usr/share/xsessions/awesome.desktop`\n\n5. Allow password-less rfkill, suspend and poweroff by adding this to `/etc/sudoers`:\n```\nYOUR_USERNAME ALL=NOPASSWD: /usr/sbin/rfkill\nYOUR_USERNAME ALL=NOPASSWD: /usr/sbin/pm-suspend\nYOUR_USERNAME ALL=NOPASSWD: /sbin/poweroff\nYOUR_USERNAME ALL=NOPASSWD: /usr/sbin/chroot\nYOUR_USERNAME ALL=NOPASSWD: /bin/mount\nYOUR_USERNAME ALL=NOPASSWD: /usr/bin/tee\n```\n\n6. Set some font-size optimizations by copying `~/.config/awesome/.Xresources` to `~/.Xresources`, and `~/.config/awesome/settings.ini` to `~/.config/gtk-3.0/settings.ini`\n\n7. `chmod +x ~/.config/awesome/suspend.sh`\n\n8. Rotate the touchscreen by creating /etc/X11/xorg.conf.d/rotate.conf with this content:\n```\nSection \"InputClass\"\n            Identifier \"Coordinate Transformation Matrix\"\n            MatchIsTouchscreen \"on\"\n            MatchDevicePath \"/dev/input/event*\"\n            MatchDriver \"libinput\"\n            Option \"CalibrationMatrix\" \"0 -1 1 1 0 0 0 0 1\"\nEndSection\n\nSection \"Monitor\"\n        Identifier \"None-1\"\n        Option \"Rotate\" \"left\"\nEndSection\n```\n\n### KOReader\n\nThe only way I managed to run KOReader is using a Debian chroot. Get the Debian package from [KOReader releases page](https://github.com/koreader/koreader/releases). Creating the chroot is pretty simple:\n\n```\n$ sudo apk add debootstrap xhost\n$ sudo debootstrap testing ~/debian http://http.debian.net/debian/\n$ cp koreader-2023.04-armhf.deb ~/chroot/root \n$ mkdir -p ~/chroot/tmp/.X11-unix\n$ sudo chroot ~/chroot /bin/bash\n\n# inside the chroot:\n$ apt update \u0026\u0026 apt install libsdl2-2.0-0 fonts-noto-hinted fonts-droid-fallback \n$ sudo dpkg -i /root/koreader-2023.04-armhf.deb\n```\n\nYou should now be able to use the koreader.sh script to launch KOReader.\n\n## Usage\n\nThe menu on the bottom left is where you can launch your applications. By default it uses Foliate, Firefox, Castor and St. The bottom right has a gears icon that opens the Settings modal. You can set brightness using it, toggle the WIFI and restart. The keyboard icon toggles the keyboard.\n\n### Gestures\n\nAIR uses lisgd for gestures. By default the following gestures are set:\n\n- Sliding up from the bottom edge toggles the keyboard\n- Sliding down from the top left opens the settings modal\n- Sliding down from the top right shows window controls for the currently focused window (useful for killing an app)\n\n## Known issues\n\n- Battery status reporting could be off\n- GTK header buttons are tiny. Can be fixed by setting `GDK_SCALE` but for me it crashes Foliate.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjesus%2Fair","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbjesus%2Fair","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjesus%2Fair/lists"}