Initial native Linux parental control application

This commit is contained in:
2026-09-17 12:54:31 +05:00
commit 8b785b5480
15 changed files with 3262 additions and 0 deletions
Executable
+155
View File
@@ -0,0 +1,155 @@
#!/bin/bash
set -e
# ==========================================
# Linux Parental Control Installer
# ==========================================
if [ "$EUID" -ne 0 ]; then
echo "Please run with sudo:"
echo " sudo ./install.sh"
exit 1
fi
INSTALL_DIR="$(cd "$(dirname "$0")" && pwd)"
APP_NAME="Parental Control"
DESKTOP_FILE="/usr/share/applications/parental-control.desktop"
SERVICE_FILE="/etc/systemd/system/parental-control.service"
echo
echo "=========================================="
echo " Linux Parental Control Installer"
echo "=========================================="
echo
echo "Installing from:"
echo " $INSTALL_DIR"
echo
# ------------------------------------------
# 1. System dependencies
# ------------------------------------------
echo "[1/6] Installing system dependencies"
pacman -S --needed --noconfirm \
python \
python-pip
echo
echo "System dependencies installed."
# ------------------------------------------
# 2. Python virtual environment
# ------------------------------------------
echo
echo "[2/6] Creating Python virtual environment"
if [ ! -d "$INSTALL_DIR/.venv" ]; then
python -m venv "$INSTALL_DIR/.venv"
else
echo "Virtual environment already exists."
fi
echo
echo "Virtual environment ready."
# ------------------------------------------
# 3. Python dependencies
# ------------------------------------------
echo
echo "[3/6] Installing Python packages"
"$INSTALL_DIR/.venv/bin/python" -m pip install \
--upgrade pip
"$INSTALL_DIR/.venv/bin/python" -m pip install \
-r "$INSTALL_DIR/requirements.txt"
echo
echo "Python packages installed."
# ------------------------------------------
# 4. Install systemd service
# ------------------------------------------
echo
echo "[4/6] Installing systemd service"
sed \
"s|%INSTALL_DIR%|$INSTALL_DIR|g" \
"$INSTALL_DIR/parental-control.service" \
> "$SERVICE_FILE"
chmod 644 "$SERVICE_FILE"
systemctl daemon-reload
systemctl enable parental-control.service
systemctl restart parental-control.service
echo
echo "Systemd service installed and started."
# ------------------------------------------
# 5. Install desktop application
# ------------------------------------------
echo
echo "[5/6] Installing application launcher"
cat > "$DESKTOP_FILE" <<EOF
[Desktop Entry]
Name=$APP_NAME
Comment=Linux Parental Control Manager
Exec=$INSTALL_DIR/.venv/bin/python -m desktop.main
Path=$INSTALL_DIR
Icon=preferences-system-parental-controls
Terminal=false
Type=Application
Categories=Settings;
StartupNotify=true
EOF
chmod 644 "$DESKTOP_FILE"
echo
echo "Desktop launcher installed:"
echo " $DESKTOP_FILE"
# ------------------------------------------
# 6. Update desktop database
# ------------------------------------------
echo
echo "[6/6] Updating application database"
if command -v update-desktop-database >/dev/null 2>&1; then
update-desktop-database /usr/share/applications
else
echo "update-desktop-database is not installed."
echo "Skipping desktop database update."
fi
# ------------------------------------------
# Verify installation
# ------------------------------------------
echo
echo "=========================================="
echo " Installation complete"
echo "=========================================="
echo
echo "Application:"
echo " $APP_NAME"
echo
echo "Launch it from your application menu."
echo "On your system:"
echo " Super + D"
echo
echo "Service:"
echo " systemctl status parental-control"
echo
echo "=========================================="