Etkileşimli eğitim tahtaları için ekran kilidi uygulaması
Features • Installation • Building • Usage • License
ASKilit, etkileşimli eğitim tahtaları için tasarlanmış bir ekran kilidi uygulamasıdır. Öğrencilerin öğretmen izni olmadan tahtayı kullanmasını engeller.
ASKilit is a screen lock application designed for interactive educational boards. It prevents students from using the board without teacher authorization.
| Feature | Description |
|---|---|
| 🔐 EBA QR Login | Teachers can unlock using EBA QR code login |
| 📱 Offline QR | Fallback QR code when internet is not available |
| ⏱️ Auto-lock | Automatic screen lock after 25 minutes of inactivity |
| 👆 Touch Detection | Monitors touch screen for activity |
| 🌍 Multi-language | Turkish and English support with gettext |
| 🔄 Auto-restart | Restarts when network becomes available |
askilit/
├── meson.build # Main build configuration
├── src/ # Source code
│ ├── application.py # GTK Application class
│ ├── window.py # Main lock window
│ ├── utils.py # Utility functions
│ ├── network.py # Network checking
│ ├── qrcode_generator.py # QR code generation
│ ├── touch_handler.py # Touch screen handling
│ ├── dialogs.py # Dialog windows
│ ├── autolock.py # Auto-lock module
│ ├── constants.py # Configuration constants
│ └── i18n.py # Internationalization
├── bin/ # Launcher scripts
├── data/ # Desktop files, icons, images
├── po/ # Translations (tr, en)
└── debian/ # Debian packaging
# Download the latest release
sudo dpkg -i askilit_4.0-1_all.deb
# Install missing dependencies if any
sudo apt-get install -fsudo apt install python3 python3-gi python3-gi-cairo \
gir1.2-gtk-3.0 gir1.2-webkit2-4.1 \
python3-qrcode python3-evdev python3-requests xinput# Debian/Ubuntu/Pardus
sudo apt install meson ninja-build python3 python3-gi \
python3-gi-cairo gir1.2-gtk-3.0 gir1.2-webkit2-4.1 \
python3-qrcode python3-evdev python3-requests xinput gettext# Clone the repository
git clone https://github.com/alpersamur3/askilit.git
cd askilit
# Configure
meson setup build --prefix=/usr
# Build
ninja -C build
# Install (requires root)
sudo ninja -C build install# Install build dependencies
sudo apt install debhelper dh-python meson ninja-build
# Build the package
dpkg-buildpackage -us -uc -b
# The .deb file will be in the parent directoryThe application starts automatically on login via the autostart desktop file.
askilit # Normal start
askilit st # Autostart mode (with loading countdown)For the 25-minute inactivity timer to work properly:
# Find your touch device
xinput list | grep -i touch
# Enable read permission (replace X with your device number)
sudo chmod a+r /dev/input/eventXWithout this setup, the device will lock every 45 minutes instead of 25 minutes of inactivity.
All timing and configuration values can be customized by editing:
/usr/share/askilit/constants.py (after installation)
or
src/constants.py (before building)
| Setting | Default | Description |
|---|---|---|
AUTOLOCK_TIMEOUT |
25 min | Lock after inactivity (with touch device) |
AUTOLOCK_FALLBACK_TIMEOUT |
45 min | Lock after inactivity (without touch device) |
AUTO_POWEROFF_TIMEOUT |
20 min | Auto shutdown if lock screen not unlocked |
NETWORK_CHECK_INTERVAL |
60 sec | How often to check network status |
STARTUP_NETWORK_CHECK_INTERVAL |
20 sec | Network check interval at startup |
# Change autolock to 30 minutes
AUTOLOCK_TIMEOUT = 30 * 60 # 30 minutes in seconds
# Disable auto poweroff (set very high)
AUTO_POWEROFF_TIMEOUT = 24 * 60 * 60 # 24 hours- EBA QR code appears on screen
- Teacher scans with EBA mobile app
- Login with teacher account (roles: 2, 300, 301)
- Screen unlocks automatically
- Random QR code with 6-digit number appears
- Scan QR code with any QR reader
- Enter the 6-digit code using numpad
- Screen unlocks
To update translations:
./update-translations.shTo add a new language:
- Add language code to
po/LINGUAS - Run
./update-translations.sh - Edit the new
.pofile
- Remove postinst script (udev rules load automatically on reboot)
- Fix loading screen disappearing during countdown
- Add udev rules for automatic touch permission
- Fix postinst script for debian package
- Fix QR codes showing together on desktop startup
- Add loading screen for normal startup mode
- Fix UI blocking during network check
- Add udev rules for automatic touch permission
- Add Configuration section to README
- Major refactoring with Meson build system
- Complete code restructuring with proper hierarchy
- All code converted to English with gettext i18n
- Fixed gi.require_version for GTK/WebKit
- Added WebKit2 4.0/4.1 compatibility
- Replaced os.system with subprocess.run
- Initial public release
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Alper Samur
- 📧 Email: alpersamur0705@gmail.com
- 🐙 GitHub: @alpersamur3
- Bayram Karahan öğretmenime, bu projeye ilham verdiği için teşekkürler.
Made with ❤️ for Turkish Education