Close the hamburger panel on outside click/focus via X11 (xinput/xdotool)
without a fullscreen overlay; point home Email to Roundcube; sync
home-screen-index.html in deploy/install; remove credentials.md from git
and document private LAN-only Gitea usage.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Replace google-chrome with /snap/bin/chromium
- Remove --test-type flag (was triggering Google bot detection/CAPTCHA)
- Add --disable-blink-features=AutomationControlled (hides webdriver flag)
- Move profile dir to /home/jgitta/chromium-kiosk (snap can't write to .config)
- Uninstall google-chrome-stable and its apt repo
QMenu has z-order and event-grab issues under Openbox/X11 — the menu was
being created successfully but either appeared behind Chrome or was
dismissed instantly by the mouse-release event.
Replace with BookmarkPanel: a QWidget using Qt.Tool | WindowStaysOnTopHint
| FramelessWindowHint (same flags as the toolbar itself). Since the toolbar
already stays above Chrome, the panel does too. Features:
- Scrollable list of all bookmarks with folder headers
- Closes when clicking anywhere outside
- Manage Bookmarks entry at the bottom
- Toggle open/close on hamburger button
Roundcube autologin fix:
- Added missing session->regenerate_id(false) and session->set_auth_cookie()
calls after login, matching Roundcube's normal login flow in index.php.
Without these, the roundcube_sessauth cookie was never set, causing every
second request to fail with 'session is invalid or expired'.
Hamburger menu fix:
- Added activateWindow() + raise_() + processEvents() before menu.exec_()
to ensure the toolbar window is active before the QMenu event loop starts.
Without this, WA_ShowWithoutActivating prevents focus from being grabbed
and the menu vanishes immediately.
- Added try/except to surface any silent errors.
- Hamburger menu: calculate explicit QPoint position (right-aligned below
toolbar) instead of relying on Qt overflow logic with bottomRight() anchor.
sizeHint() used for width with 360px fallback.
- Roundcube login: clear mail.jgitta.com session cookie from Chrome's
SQLite Cookies DB on every startup so autologin always fires cleanly
instead of showing 'session is invalid or expired'.
Change menu anchor from bottomLeft() to bottomRight() so Qt's built-in
overflow logic flips the menu leftward when the button is near the right
screen edge. All bookmarks now visible.
- PyQt5 floating toolbar (Back, Forward, HOME, Bookmarks) over Google Chrome
- Scrollable bookmarks bar with nested folder dropdown menus
- Chrome DevTools Protocol (CDP) for navigation control
- Home screen with large senior-friendly buttons (Gmail, Google, Weather, News, Facebook, Messenger, YouTube)
- Automatic GPU/ML cache cleanup on every Chrome launch
- Kiosk hardening: TTY switching blocked, keyboard shortcuts intercepted, auto-restart on crash
- System config files and install script included