#!/bin/bash # Скрипт для настройки двусторонней печати для HP принтера # Использование: ./set-hp-duplex.sh [on|off|long|short] set -e # Найти HP принтер HP_PRINTER=$(lpstat -p 2>/dev/null | grep -i "hp.*m402" | awk '{print $2}' | head -1) if [ -z "$HP_PRINTER" ]; then echo "❌ HP принтер не найден в системе" exit 1 fi echo "🖨️ Найден принтер: $HP_PRINTER" echo "" # Проверить текущую настройку duplex CURRENT_DUPLEX=$(lpoptions -p "$HP_PRINTER" -l 2>/dev/null | grep "Duplex/" | grep -o '\*[^*]*' | sed 's/*//' || echo "None") echo "📄 Текущая настройка двусторонней печати: $CURRENT_DUPLEX" echo "" # Определить целевую настройку из аргумента TARGET_DUPLEX="" DUPLEX_NAME="" if [ "$1" = "on" ] || [ "$1" = "long" ] || [ "$1" = "1" ]; then TARGET_DUPLEX="DuplexNoTumble" DUPLEX_NAME="Двусторонняя (длинная сторона - как книга)" elif [ "$1" = "short" ] || [ "$1" = "2" ]; then TARGET_DUPLEX="DuplexTumble" DUPLEX_NAME="Двусторонняя (короткая сторона - как блокнот)" elif [ "$1" = "off" ] || [ "$1" = "none" ] || [ "$1" = "0" ]; then TARGET_DUPLEX="None" DUPLEX_NAME="Односторонняя" else echo "❌ Неверный аргумент. Использование:" echo " $0 on - включить двустороннюю печать (длинная сторона)" echo " $0 long - включить двустороннюю печать (длинная сторона)" echo " $0 short - включить двустороннюю печать (короткая сторона)" echo " $0 off - отключить двустороннюю печать" exit 1 fi # Если уже установлена нужная настройка if [ "$CURRENT_DUPLEX" = "$TARGET_DUPLEX" ]; then echo "✅ Двусторонняя печать уже установлена: $DUPLEX_NAME" exit 0 fi # Установить новую настройку echo "🔄 Установка: $DUPLEX_NAME..." lpadmin -p "$HP_PRINTER" -o Duplex="$TARGET_DUPLEX" 2>&1 # Проверить результат sleep 1 NEW_DUPLEX=$(lpoptions -p "$HP_PRINTER" -l 2>/dev/null | grep "Duplex/" | grep -o '\*[^*]*' | sed 's/*//' || echo "") if [ "$NEW_DUPLEX" = "$TARGET_DUPLEX" ]; then echo "✅ Настройка успешно установлена: $DUPLEX_NAME" echo "" echo "📋 Текущие настройки:" lpoptions -p "$HP_PRINTER" -l | grep -E "Duplex|InputSlot" echo "" echo "⚠️ ВАЖНО для LibreOffice:" echo " LibreOffice может игнорировать эти настройки." echo " Используйте системный диалог печати:" echo " File → Print → Options → 'Use system dialog'" else echo "⚠️ Настройка может быть не изменена. Проверьте настройки:" lpoptions -p "$HP_PRINTER" -l | grep Duplex exit 1 fi