118 lines
3.2 KiB
Bash
Executable File
118 lines
3.2 KiB
Bash
Executable File
#!/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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|