Release version 0.9.7-4: Gesture & Console Improvements
Major Changes: 1. FIXED: Virtual console Ctrl+Alt+F1-F8 key combinations now work properly - Updated configure_virtual_consoles() to modify X11 serverflags - Enable/disable now updates both systemd getty AND X11 VT switching - Added restart lightdm notification for changes to take effect - Fixed initial installation to set X11 VT switching based on user choice - Users who previously enabled consoles must re-enable for keys to work 2. IMPROVED: Simplified hidden tab gesture to single toggle - 3-finger DOWN now toggles hidden tabs (both show AND hide) - Removed separate 3-finger UP gesture (simpler UX) - Updated all gesture handlers in both standard and Jitsi modes - Updated all console.log messages and documentation README Updates: - Updated all version references to 0.9.7-4 - Updated Touch Gesture Quick Reference table - Simplified gesture: 3-finger DOWN = Toggle hidden tabs - Updated hidden tabs documentation to reflect toggle behavior - Added important notes about virtual console fix in 0.9.7-4 - Added instructions to re-enable consoles for existing users - Updated menu system access examples - Updated project status to "Gesture & Console Improvements" This release focuses on fixing the console key combo issue and improving the hidden tab gesture for easier one-handed use.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Ubuntu Based Kiosk (UBK)
|
# Ubuntu Based Kiosk (UBK)
|
||||||
|
|
||||||
**Current Version:** 0.9.7-3 (check script header for latest version)
|
**Current Version:** 0.9.7-4 (check script header for latest version)
|
||||||
**Built with Claude Sonnet 4/.5 AI assistance**
|
**Built with Claude Sonnet 4/.5 AI assistance**
|
||||||
**License:** GPL v3 - Keep derivatives open source
|
**License:** GPL v3 - Keep derivatives open source
|
||||||
**Repository:** https://github.com/outis1one/ubk/
|
**Repository:** https://github.com/outis1one/ubk/
|
||||||
@@ -47,9 +47,9 @@ Home/office kiosk for reusing old hardware, displaying:
|
|||||||
# Enable SSH during installation
|
# Enable SSH during installation
|
||||||
|
|
||||||
# Download and run installer
|
# Download and run installer
|
||||||
wget https://github.com/outis1one/ubk/raw/main/install_kiosk_0.9.7-3.sh
|
wget https://github.com/outis1one/ubk/raw/main/install_kiosk_0.9.7-4.sh
|
||||||
chmod +x install_kiosk_0.9.7-3.sh
|
chmod +x install_kiosk_0.9.7-4.sh
|
||||||
./install_kiosk_0.9.7-3.sh
|
./install_kiosk_0.9.7-4.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
The installer will guide you through configuration during setup.
|
The installer will guide you through configuration during setup.
|
||||||
@@ -365,8 +365,7 @@ smb://WORKGROUP/COMPUTER/PrinterName
|
|||||||
|---------|---------|-----------|--------|
|
|---------|---------|-----------|--------|
|
||||||
| Swipe | 2 | Left/Right | Switch between sites |
|
| Swipe | 2 | Left/Right | Switch between sites |
|
||||||
| Swipe | 1 | Left/Right | Navigate within page (arrow keys) |
|
| Swipe | 1 | Left/Right | Navigate within page (arrow keys) |
|
||||||
| Swipe | 3 | Up | Show hidden tabs (PIN required) |
|
| Swipe | 3 | Down | Toggle hidden tabs (PIN required) |
|
||||||
| Swipe | 3 | Down | Return to normal tabs |
|
|
||||||
|
|
||||||
**Keyboard Shortcuts:**
|
**Keyboard Shortcuts:**
|
||||||
- `Ctrl+Tab` or `Ctrl+]` - Next tab
|
- `Ctrl+Tab` or `Ctrl+]` - Next tab
|
||||||
@@ -383,7 +382,7 @@ smb://WORKGROUP/COMPUTER/PrinterName
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run installer script again to access menu
|
# Run installer script again to access menu
|
||||||
./install_kiosk_0.9.7-3.sh
|
./install_kiosk_0.9.7-4.sh
|
||||||
|
|
||||||
# Menu structure:
|
# Menu structure:
|
||||||
# 1. Core Settings - Sites, WiFi, schedules, passwords, full reinstall, complete uninstall
|
# 1. Core Settings - Sites, WiFi, schedules, passwords, full reinstall, complete uninstall
|
||||||
@@ -478,8 +477,8 @@ echo "NOPIN" | sudo -u kiosk tee /home/kiosk/kiosk-app/.jitsi-pin
|
|||||||
- Triggers inactivity timeout (returns to home after idle time)
|
- Triggers inactivity timeout (returns to home after idle time)
|
||||||
|
|
||||||
**Hidden (duration = -1):**
|
**Hidden (duration = -1):**
|
||||||
- Accessible via 3-finger up swipe + PIN
|
- Toggle visibility via 3-finger down swipe + PIN, or F10 key
|
||||||
- Return to normal tabs via 3-finger down swipe or Escape key
|
- Also use Escape key to return to normal tabs
|
||||||
- PIN stored in `/home/kiosk/kiosk-app/.jitsi-pin`
|
- PIN stored in `/home/kiosk/kiosk-app/.jitsi-pin`
|
||||||
- Default PIN: 1234 (configurable via Sites menu)
|
- Default PIN: 1234 (configurable via Sites menu)
|
||||||
- PIN can be 4-8 digits or disabled completely
|
- PIN can be 4-8 digits or disabled completely
|
||||||
@@ -623,16 +622,24 @@ Virtual consoles provide terminal access via Ctrl+Alt+F1 through F8 keyboard com
|
|||||||
**Post-Install Management:**
|
**Post-Install Management:**
|
||||||
```bash
|
```bash
|
||||||
# Access via menu: Advanced → Virtual Consoles (option 7)
|
# Access via menu: Advanced → Virtual Consoles (option 7)
|
||||||
|
# Note: Changes require restarting the display manager to take effect
|
||||||
|
|
||||||
# Manual enable
|
# Manual enable
|
||||||
for i in {1..8}; do sudo systemctl unmask getty@tty$i.service; done
|
for i in {1..8}; do sudo systemctl unmask getty@tty$i.service; done
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl restart lightdm
|
||||||
|
|
||||||
# Manual disable
|
# Manual disable
|
||||||
for i in {1..8}; do sudo systemctl mask getty@tty$i.service; done
|
for i in {1..8}; do sudo systemctl mask getty@tty$i.service; done
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl restart lightdm
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Important Notes:**
|
||||||
|
- **Version 0.9.7-4** fixed Ctrl+Alt+F1-F8 key combinations (now properly enables/disables X11 VT switching)
|
||||||
|
- If you enabled virtual consoles in an earlier version, you must re-enable them from the menu for keys to work
|
||||||
|
- Changes require restarting lightdm: `sudo systemctl restart lightdm`
|
||||||
|
|
||||||
**Typical TTY Layout:**
|
**Typical TTY Layout:**
|
||||||
- TTY1-6: Login consoles (if enabled)
|
- TTY1-6: Login consoles (if enabled)
|
||||||
- TTY7: Graphical kiosk display (X11/LightDM)
|
- TTY7: Graphical kiosk display (X11/LightDM)
|
||||||
@@ -687,7 +694,7 @@ Full system cleanup that removes all kiosk components and restores the system to
|
|||||||
**Access:**
|
**Access:**
|
||||||
```bash
|
```bash
|
||||||
# Core Settings menu → option 11
|
# Core Settings menu → option 11
|
||||||
./install_kiosk_0.9.7-3.sh
|
./install_kiosk_0.9.7-4.sh
|
||||||
# Choose: Core Settings → Complete Uninstall
|
# Choose: Core Settings → Complete Uninstall
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -849,7 +856,7 @@ See the LICENSE file in the repository for full terms.
|
|||||||
|
|
||||||
## Project Status & Future Plans
|
## Project Status & Future Plans
|
||||||
|
|
||||||
**Current Version:** 0.9.7-3 - Install Improvements & Management Features
|
**Current Version:** 0.9.7-4 - Gesture & Console Improvements
|
||||||
|
|
||||||
**Planned Features:**
|
**Planned Features:**
|
||||||
- Web-based GUI configuration interface
|
- Web-based GUI configuration interface
|
||||||
@@ -892,4 +899,4 @@ Special thanks to the maintainers of all upstream projects that make UBK possibl
|
|||||||
---
|
---
|
||||||
|
|
||||||
*Last Updated: December 2, 2024*
|
*Last Updated: December 2, 2024*
|
||||||
*Version: 0.9.7-3*
|
*Version: 0.9.7-4*
|
||||||
|
|||||||
@@ -998,9 +998,9 @@ configure_hidden_site_pin() {
|
|||||||
echo " ═══ HIDDEN SITE PIN ═══"
|
echo " ═══ HIDDEN SITE PIN ═══"
|
||||||
echo
|
echo
|
||||||
echo "The PIN protects access to hidden sites (duration: -1)"
|
echo "The PIN protects access to hidden sites (duration: -1)"
|
||||||
echo "Hidden sites can be accessed via:"
|
echo "Hidden sites can be toggled via:"
|
||||||
echo " • F10 key"
|
echo " • F10 key"
|
||||||
echo " • 3-finger DOWN swipe"
|
echo " • 3-finger DOWN swipe (shows/hides)"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
local pin_file="$KIOSK_DIR/.jitsi-pin"
|
local pin_file="$KIOSK_DIR/.jitsi-pin"
|
||||||
@@ -5928,8 +5928,7 @@ const {contextBridge,ipcRenderer}=require('electron');
|
|||||||
|
|
||||||
console.log('═════════════════════════════════════════════════════════════');
|
console.log('═════════════════════════════════════════════════════════════');
|
||||||
console.log(' Gestures:');
|
console.log(' Gestures:');
|
||||||
console.log(' 3-finger DOWN: Show hidden tabs (PIN required)');
|
console.log(' 3-finger DOWN: Toggle hidden tabs (PIN required)');
|
||||||
console.log(' 3-finger UP: Return to normal tabs');
|
|
||||||
console.log(' 2-finger HORIZONTAL: Switch between sites');
|
console.log(' 2-finger HORIZONTAL: Switch between sites');
|
||||||
console.log(' Keyboard: Auto-shows on text fields or click icon');
|
console.log(' Keyboard: Auto-shows on text fields or click icon');
|
||||||
console.log('╚═══════════════════════════════════════════════════════════╝');
|
console.log('╚═══════════════════════════════════════════════════════════╝');
|
||||||
@@ -6192,16 +6191,11 @@ window.addEventListener('DOMContentLoaded',()=>{
|
|||||||
const absX=Math.abs(deltaX);
|
const absX=Math.abs(deltaX);
|
||||||
const absY=Math.abs(deltaY);
|
const absY=Math.abs(deltaY);
|
||||||
|
|
||||||
// 3-finger DOWN = show hidden tabs (easier than up)
|
// 3-finger DOWN = toggle hidden tabs (show/hide)
|
||||||
if(fingerCount===3&&absY>SWIPE_THRESHOLD&&absX<SWIPE_TOLERANCE&&deltaY>0){
|
if(fingerCount===3&&absY>SWIPE_THRESHOLD&&absX<SWIPE_TOLERANCE&&deltaY>0){
|
||||||
console.log('[TOUCH] 3-finger DOWN - show hidden tab');
|
console.log('[TOUCH] 3-finger DOWN - toggle hidden tabs');
|
||||||
ipcRenderer.send('toggle-hidden');
|
ipcRenderer.send('toggle-hidden');
|
||||||
}
|
}
|
||||||
// 3-finger UP = return to normal tabs (close hidden)
|
|
||||||
else if(fingerCount===3&&absY>SWIPE_THRESHOLD&&absX<SWIPE_TOLERANCE&&deltaY<0){
|
|
||||||
console.log('[TOUCH] 3-finger UP - return to normal tabs');
|
|
||||||
ipcRenderer.send('return-to-tabs');
|
|
||||||
}
|
|
||||||
// 2-finger HORIZONTAL = change tabs
|
// 2-finger HORIZONTAL = change tabs
|
||||||
else if(fingerCount===2&&absX>SWIPE_THRESHOLD&&absY<SWIPE_TOLERANCE){
|
else if(fingerCount===2&&absX>SWIPE_THRESHOLD&&absY<SWIPE_TOLERANCE){
|
||||||
ipcRenderer.send(deltaX>0?'swipe-right':'swipe-left');
|
ipcRenderer.send(deltaX>0?'swipe-right':'swipe-left');
|
||||||
@@ -8321,17 +8315,10 @@ window.addEventListener('DOMContentLoaded',()=>{
|
|||||||
const absX=Math.abs(deltaX);
|
const absX=Math.abs(deltaX);
|
||||||
const absY=Math.abs(deltaY);
|
const absY=Math.abs(deltaY);
|
||||||
|
|
||||||
// 3-finger gestures for hidden tabs
|
// 3-finger DOWN = toggle hidden tabs (show/hide)
|
||||||
if(fingerCount===3 && absY>SWIPE_THRESHOLD && absX<SWIPE_TOLERANCE){
|
if(fingerCount===3 && absY>SWIPE_THRESHOLD && absX<SWIPE_TOLERANCE && deltaY>0){
|
||||||
if(deltaY>0){
|
console.log('[TOUCH] 3-finger DOWN - toggle hidden tabs');
|
||||||
// 3-finger DOWN = show hidden tabs (easier than up)
|
|
||||||
console.log('[TOUCH] 3-finger DOWN - show hidden tab');
|
|
||||||
ipcRenderer.send('toggle-hidden');
|
ipcRenderer.send('toggle-hidden');
|
||||||
} else if(deltaY<0){
|
|
||||||
// 3-finger UP = return to normal tabs
|
|
||||||
console.log('[TOUCH] 3-finger UP - return to normal tabs');
|
|
||||||
ipcRenderer.send('return-to-tabs');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 2-finger vertical DOWN = keyboard (ALWAYS works, no throttling)
|
// 2-finger vertical DOWN = keyboard (ALWAYS works, no throttling)
|
||||||
else if(fingerCount===2 && absY>SWIPE_THRESHOLD && absX<SWIPE_TOLERANCE && deltaY>0){
|
else if(fingerCount===2 && absY>SWIPE_THRESHOLD && absX<SWIPE_TOLERANCE && deltaY>0){
|
||||||
|
|||||||
Reference in New Issue
Block a user