К компьютеру подключается проектор.
lxrandr оказался для пользователей слишком сложен :))))
Слепил "приложение" с 2мя кнопками - включить и выключить
#!/bin/sh
# слеш в конце делает 3ю строку коментом для wish (Simple windowing shell)\
exec wish "$0" "$@" # sh завершается запуская wish в качестве файла текущий скрипт ($0) остальные аргументы передаем в wish (argc - кол-во параметров, argv0 - имя скрипта, $argv - параметры), сам wish эту строку считает комментом
# My Monitor driver вер. 01
# НАСТРОЙКИ ПРОГРАММЫ ++++++++++++++++++++++++++++++++++++++++++++++++
# переменная - Включить проектор
global proectoron
set proectoron "/usr/bin/xrandr --output DVI-0 --mode 1024x768 --output VGA-0 --mode 1024x768"
# переменная - Выключить проектор
global proectoroff
set proectoroff "/usr/bin/xrandr --output DVI-0 --mode 1600x900 --output VGA-0 --off"
# переменная - цвет фона "grey" "blue" "grey95"
global bgc
set bgc "PapayaWhip"
# Конец НАСТРОЙКИ ПРОГРАММЫ ++++++++++++++++++++++++++++++++++++++++++
# ГЛАВНОЕ ОКНО
# самое верхнее окно получило название
wm title . "Projector driver"
# размеры и положение верхнего окна
wm geometry . 200x100+60+60
# у окна нельзя менять размер
wm resizable . false false
# создал область c названием main
frame .main -width 200 -height 100 -bg $bgc
# разместил ее в окне
pack .main
label .main.lab1 -text "Управление проектором" -fg black -bg $bgc
# поместил созданный текст на область
place .main.lab1 -x 10 -y 0
button .main.onon -text " Включить Проектор " -fg blue -bg $bgc -command pon
place .main.onon -x 10 -y 25
button .main.offoff -text " Выключить Проектор " -fg red -bg $bgc -command poff
place .main.offoff -x 10 -y 55
proc pon {} {
global proectoron
catch {exec sh -c $proectoron } out]
}
proc poff {} {
global proectoroff
catch {exec sh -c $proectoroff } out]
}
Для работы c конкретным проектором правятся переменные
proectoron
proectoroff
Ну я уже на форум скидывал когда-то старую версию, программка для управления сквидом
Ну чтоб учитель мог включить или выключить интренет классу
На компах школьников все через прокси - прописана как глобальный прокси
в файл /etc/sysconfig/network
HTTP_PROXY=http://ip-компа-учителя:порт-сквида
HTTPS_PROXY=https://ip-компа-учителя:порт-сквида
FTP_PROXY=ftp://ip-компа-учителя:порт-сквида
#!/bin/sh
# слеш в конце делает 3ю строку коментом для wish (Simple windowing shell)\
exec wish "$0" "$@" # sh завершается запуская wish в качестве файла текущий скрипт ($0) остальные аргументы передаем в wish (argc - кол-во параметров, argv0 - имя скрипта, $argv - параметры), сам wish эту строку считает комментом
# My SQUID driver вер. 01
# НАСТРОЙКИ ПРОГРАММЫ ++++++++++++++++++++++++++++++++++++++++++++++++
# переменная - название
global mydemon
set mydemon "/usr/sbin/squid"
# переменная - управление сквидом
global mydemonstr
set mydemonstr "/etc/init.d/squid"
# переменная - путь до лога сквида
global mylogpatch
set mylogpatch "/var/log/squid/access.log"
# переменная - цвет фона "grey" "blue" "grey95"
global bgc
set bgc "PapayaWhip"
# Конец НАСТРОЙКИ ПРОГРАММЫ ++++++++++++++++++++++++++++++++++++++++++
global stat
set stat "Сервер выключен..."
# ГЛАВНОЕ ОКНО
# самое верхнее окно получило название
wm title . "offline :: My SQUID driver"
# размеры и положение верхнего окна
wm geometry . 350x200+60+60
# у окна нельзя менять размер
wm resizable . false false
# создал область c названием main
frame .main -width 350 -height 200 -bg $bgc
# разместил ее в окне
pack .main
label .main.lab1 -text "Управление Прокси-сервером Squid" -fg black -bg $bgc
# поместил созданный текст на область
place .main.lab1 -x 10 -y 0
button .main.onon -text " On Line ! " -fg blue -bg $bgc -font -*-*-*-*-*-*-20-*-*-*-*-*-*-* -command bonline
place .main.onon -x 10 -y 25
button .main.offoff -text " Off Line " -fg red -bg $bgc -font -*-*-*-*-*-*-20-*-*-*-*-*-*-* -command boffline
place .main.offoff -x 180 -y 25
label .main.lab2 -text "СТАТУС:" -fg black -bg $bgc
place .main.lab2 -x 10 -y 67
label .main.lab3 -text $stat -fg blue -bg $bgc -font -*-*-*-*-*-*-16-*-*-*-*-*-*-*
place .main.lab3 -x 70 -y 65
label .main.log -text "" -fg white -bg black -justify left -relief ridge -font -*-*-*-*-*-*-8-*-*-*-*-*-*-* -height 11 -width 65
place .main.log -x 10 -y 95
after 0 online
proc online {} {
global mydemon
global bgc
global stat
global mylogpatch
set temp [exec ps ax]
set temp [string first $mydemon $temp]
#tk_messageBox -icon info -type ok -title "Error :)" -parent . -message "$mydemon $temp"
if {$temp == "-1"} {
# выкл
if { $stat != "Сервер выключен..."} {
wm title . "offline :: My SQUID driver"
set stat "Сервер выключен..."
label .main.log2 -text "" -fg white -bg black -justify left -relief ridge -font -*-*-*-*-*-*-8-*-*-*-*-*-*-* -height 11 -width 65
place .main.log2 -x 10 -y 95
destroy .main.log
label .main.log -text "" -fg white -bg black -justify left -relief ridge -font -*-*-*-*-*-*-8-*-*-*-*-*-*-* -height 11 -width 65
place .main.log -x 10 -y 95
destroy .main.log2
label .main.lab4 -text $stat -fg blue -bg $bgc -font -*-*-*-*-*-*-16-*-*-*-*-*-*-*
place .main.lab4 -x 70 -y 65
destroy .main.lab3
label .main.lab3 -text $stat -fg blue -bg $bgc -font -*-*-*-*-*-*-16-*-*-*-*-*-*-*
place .main.lab3 -x 70 -y 65
destroy .main.lab4
}
} else {
# вкл
if { $stat != "Сервер работает..."} {
wm title . "On Line :: My SQUID driver"
set stat "Сервер работает..."
label .main.lab4 -text $stat -fg blue -bg $bgc -font -*-*-*-*-*-*-16-*-*-*-*-*-*-*
place .main.lab4 -x 70 -y 65
destroy .main.lab3
label .main.lab3 -text $stat -fg blue -bg $bgc -font -*-*-*-*-*-*-16-*-*-*-*-*-*-*
place .main.lab3 -x 70 -y 65
destroy .main.lab4
}
#log
set temp [ exec tail $mylogpatch ]
label .main.log2 -text $temp -fg white -bg black -justify left -relief ridge -font -*-*-*-*-*-*-8-*-*-*-*-*-*-* -height 11 -width 65
place .main.log2 -x 10 -y 95
destroy .main.log
label .main.log -text $temp -fg white -bg black -justify left -relief ridge -font -*-*-*-*-*-*-8-*-*-*-*-*-*-* -height 11 -width 65
place .main.log -x 10 -y 95
destroy .main.log2
}
after 1000 online2
}
proc online2 {} {after 500 online}
proc boffline {} {
global mydemonstr
global bgc
global stat
set stat ""
catch {exec sudo $mydemonstr stop } out]
}
proc bonline {} {
global mydemonstr
global bgc
global stat
set stat ""
catch {exec sudo $mydemonstr start } out]
}
для учетки которая может управлять сквидом надо сделать запись в судо настройках
от рута вызываем
visudo
и добавляем
# User privilege specification
#root ALL=(ALL) ALL
Учетная-запись-того-кто-управляет Имя-Компа = NOPASSWD: /etc/init.d/squid
Имя компа можно поглядеть по
hostname
я вписывал только часть имени - до точки.
Чтоб внести правки в vi нажимаем INSERT
Для выхода без сохранения жмем ESC
далее вписываем
:q!
Для выхода с сохранением жмем ESC
далее вписываем
:wq
Ну и соответственно на компе учителя должен стоять и быть настроен сквид