Видео ролики бесплатно онлайн

Смотреть русский видео

Официальный сайт terra-z 24/7/365

Смотреть видео бесплатно

cblp 27.12.2010 23:50

Tips & tricksИнтернет каждому дедушке!

Дано 1 компьютер в пользовании n человек — 1 программист, использующий многие возможности компьютера и Интернета, и (n?1) обычный человек, обозревающие веб и жаберы-скайпы понемножку.

Надо сделать так, чтобы все могли поочереди пользоваться компом и друг другу не мешали.

С отдельными учётными записями заморачиваться не хотелось, ибо защищать нам друг от друга — а точнее, мне от всех остальных — в общем-то, нечего. К тому же, в семье есть представители старшего, очень старшего поколения, которым пришлось бы долго, очень долго объяснять, что такое пароль и как его вводить, а учётку без пароля заводить некошерно. А поскольку проблема была только с разделением доступа к браузеру, то решено было ограничиться рабочими столами и профилями Firefox.

Задача Настроить удобное использование n профилей Firefox на n рабочих столах.
Предлагаемое решение На панели Гнома у меня n=4 кнопки для запуска специального скрипта-обёртки над Firefox. Скрипт проверяет, не запущен ли браузер с нужным профилем, если запущен, то переносит пользователя к его окну, если же нет, запускает Firefox на нужном столе.

В процессе решения задачи столкнулся с такой особенностью: при типичном использовании Компиза у вас один рабочий стол в терминах X, а все «рабочие столы» Компиза для X выглядят как вьюпорты. Вьюпорт («viewport», не смог подобрать аналог) — это отображаемый на физическом экране в конкретный момент времени кусок логического рабочего стола. Опытные товарищи вспомнят, наверное, как ставили в XF86Config размер рабочего стола больше размера экрана и играли в воображаемую Дюну-2 иконками на десктопе.

Соответственно, в Компизе вместо рабочих столов и граней кубика надо переключать вьюпорты.

Код

Обёрточка firefox-wrapper

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash

viewportX=$1
viewportY=$2
profile=$3

< "_$viewportX" == "_" > && { exit 1; }
< "_$viewportY" == "_" > && { exit 1; }
< "_$profile" == "_" > && { exit 1; }

# check if firefox is already running
pid=$( ps ax | grep "<0-9> /usr/lib/firefox-<0-9\.>\+/firefox-bin -no-remote -P ${profile}" | awk '{print $1}' )
if < "_$pid" != "_" >; then
# if running, find the window and raise it
windowId=$( wmctrl -l -p | awk "{if(\$3==${pid}) print \$1}" )
wmctrl -i -a $windowId
else
# otherwise, go to the specified viewport
compiz-scroll-wmctrl $viewportX $viewportY
# and run firefox there
firefox -no-remote -P $profile &
fi



Скрипт для перехода к нужному рабочему столу для компизовой «стены»

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
#
# compiz-scroll-wmctrl - Scroll the wall using wmctrl
#
# Author: Juri Syrowiecki <[email protected]>
# Based on compiz-rotate-wmctrl by Shang-Feng Yang <storm dot sfyang at gmail dot com>
# Released under GPLv3

VER="1.0"


function scrollTo() {
# The coordinates of the target viewport
targetViewportX=$(( ${targetViewportNumberX} * ${viewportWidth} ))
targetViewportY=$(( ${targetViewportNumberY} * ${viewportHeight} ))

# Change to the target viewport
wmctrl -o ${targetViewportX},${targetViewportY}
}

function usage() {
echo -e "$(basename $0) v${VER}\n"
echo -e "Usage:\n"
echo -e "\t$(basename $0) # # <profile>\n"
echo -e "\tWhere:\n"
echo -e "\t\t# # - scroll to face #,# (begin with 0)\n\n"
echo -e "Author: Yuri Syrowiecki <[email protected]>"
echo -e "Based on compiz-rotate-wmctrl by Shang-Feng Yang <storm dot sfyang at gmail dot com>"
echo -e "Released under GPLv3"
}

targetViewportNumberX=$1
targetViewportNumberY=$2

< "_$targetViewportNumberX" == "_" -o "_$targetViewportNumberY" == "_" > && { usage; exit 1; } || {
case $targetViewportNumberX$targetViewportNumberY in
<0-9>|<0-9><0-9>|<0-9><0-9><0-9>|<0-9><0-9><0-9><0-9>)
;;
*)
usage
exit 1
;;
esac
}


# The informations about the desktop
INFO1=$(wmctrl -d)
INFO2=$(xwininfo -root | grep geometry)
# The width of the desktop
desktopWidth=$(echo "${INFO1}"| awk '{sub(/x<0-9>+/, "", $4); print $4}')
desktopHeight=$(echo "${INFO1}"| awk '{sub(/<0-9>+x/, "", $4); print $4}')
# The sizes of the viewport
viewportWidth=$(echo "${INFO2}"| awk '{gsub("+0", "", $2); sub(/x<0-9>+/, "", $2); print $2}')
viewportHeight=$(echo "${INFO2}"| awk '{gsub("+0", "", $2); sub(/<0-9>+x/, "", $2); print $2}')
# The number of faces on the cube
numberOfViewportsX=$(($desktopWidth/$viewportWidth))
numberOfViewportsY=$(($desktopHeight/$viewportHeight))

scrollTo $targetViewportNumberX $targetViewportNumberY



Скрипт для перехода к нужному рабочему столу для компизового куба (привожу оригинал, хоть он небезглючен; в частности, некорректно определяется размер вьюпорта; более правильное определение см. в моём скрипте выше)

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash
#
# compiz-rotate-wmctrl - Rotate the cube using wmctrl
#
# Author: Shang-Feng Yang
# Released under GPLv3

VER="1.0"


function rotate() {
# The target face number (begins with 0)
TVPN=$(( $1 % ${NF} ))

# The X coordinate of the target viewport
TVPX=$(( ${TVPN} * ${WW} ))

# Change to the target viewport
wmctrl -o ${TVPX},0
}

function usage() {
echo -e "$(basename $0) v${VER}\n"
echo -e "Usage:\n"
echo -e "\t$(basename $0) {left|right|#}\n"
echo -e "\tWhere:\n"
echo -e "\t\tleft - rotate the cube to the left"
echo -e "\t\tright - rotate the cube to the right"
echo -e "\t\t# - rotate to #th face (begins with 0)\n\n"
echo -e "Author: Shang-Feng Yang <storm dot sfyang at gmail dot com>"
echo -e "Released under GPLv3"
}

# The action to be performed. $ACT could be 'left' or 'right' to rotate
# left or right, accordingly. $ACT could also be the number of the face
# to rotate into.
ACT=$(echo $1 |tr '<a-z>' '</a-z><a-z>')

< "x$ACT" == "x" > && { usage; exit 1; } || {
case $ACT in
left|right|<0-9>|<0-9><0-9>)
;;
*)
usage
exit 1
;;
esac
}


# The informations about the desktop
INFO=$(wmctrl -d)
# The width of the desktop
DW=$(echo "${INFO}"| awk '{sub(/x<0-9>+/, "", $4); print $4}')
# The width of the workarea
WW=$(echo "${INFO}"| awk '{sub(/x<0-9>+/, "", $9); print $9}')
# The number of faces on the cube
NF=$(($DW/$WW))
# The X coordinate of the viewport
CVPX=$(echo "${INFO}" |awk '{sub(/,<0-9>+/, "", $6); print $6}')
# Current number of the face in all faces (begins with 0)
CVPN=$(( ${CVPX} / ${WW} ))

< "$ACT" == "right" > && {
ACT=$(( ${CVPN} + 1 ))
} || {
< "$ACT" == "left" > && {
ACT=$(( ${CVPN} - 1 ))
}
}

rotate ${ACT}</a-z>



Без Компиза, с нормальными рабочими столами просто `wmctrl -s `.

Заключение Дедуля мой теперь садится за компьютер, делает всего один клик по своей кнопке и читает новости на Яндексе.
Depends: firefox, gawk, wmctrl, x11-utils


Тэги: compiz Firefox wmctrl браузер дедушка пользователи
+ 7 -
Похожие Поделиться

lastta 28.12.2010 00:04 #
+ 3 -
В итоге, если компьютер выключен, дедуле придется его включить, а значит ему придется "долго, очень долго объяснять, что такое пароль и как его вводить", так как "учётку без пароля заводить некошерно"...
cblp 28.12.2010 00:05 #
+ 0 -
Забыл сказать, что включён он постоянно, а если выключен, то +1 кнопка, потому что автовход.
hate 28.12.2010 00:35 #
+ 3 -
а нельзя было сделать: беспарольный вход, менеджер логинов со списком пользователей (т.е. только выбирать) и простую глобальную комбинацию кнопок, которая переводит на экран логина/выбора активной сессии?
cblp 28.12.2010 06:54 #
+ 0 -
Можно, но это потребовало бы намного больше кликов времени на переключение, а также ресурсов для поддержания нескольких копий X-сервера. Дедушка мой с мышкой-то не всегда управиться может, мимо ссылок то и дело промахивается.

Кроме того, как я писал в посте, выигрыша в безопасности от разделения учётных записей я не вижу.
other.bigmouse 28.12.2010 07:34 #
+ 0 -
если выключен, то +1 кнопка, потому что автовход.

Т.е. выигрыш от автовхода есть?
cblp 28.12.2010 10:51 #
+ 0 -
По сравнению с чем? С отсутствием автовхода? Да, выигрыш в удобстве использования. Проигрыш в безопасности считаю несущественным по сравнению с физической безопасностью компьютера.
coolIce 28.12.2010 09:54 #
+ 1 -
Ты выиграешь не столько в безопасности сколько в надежности. "Каждому пользователю по пользователю" - это логичный подход. Ты научил дедушку нажимать на свою кнопку - это то же самое что нажимать на кнопку переключения юзера+1 клик.
cblp 28.12.2010 10:59 #
+ 1 -
Какие угрозы надёжности? Изменение пользовательской конфигурации и файлов? Пока до этого не доходило. Разве что кто-то случайно промахнётся мимо одной кнопки и нажмёт другую, но все сколь-нибудь критичные функции спрятаны достаточно глубоко.

Зато очень удобно иметь файлы, общие для всех пользователей (для всех реальных = для одного логического).

Знаю, это попахивает виндовсом, но это слишком простая задача для таких сложных методов.
hate 28.12.2010 23:03 #
+ 2 -
есть выигрыш в разделении настроек (профилей). например, всюду крупные буквы, контрастные цвета и т.д.
strk 28.12.2010 10:28 #
+ 5 -
"У меня есть задача, но использовать специально предназначенный для её решения способ я не хочу. Подскажите, как сделать по другому."

1. Каждому своя учётка с логином без запроса пароля. В gdm/kdm/что там у вас - имена обязательно с фотографиями и покрупнее.
2. Настройки учёток и рабочего пространства - отклонировать (можно по крону из "эталонной" учётки копировать изменения, если хочется заморочется)
3. При простое происходит или логофф, или просто возврат к экрану выбора пользователя
4. Вуаля!

Различные учётки - это не только защита, но и разделение настроек.
cblp 28.12.2010 10:49 #
+ 2 -
Разделять настройки нужно только для Firefox, и профили с этим отлично справляются.

Ваше решение — очень хорошее, если вообще думать о разделении учётных записей.
cblp 28.12.2010 11:00 #
+ 0 -
И да, я не просил подсказки, а предлагаю уже готовое решение.
andreas 28.12.2010 11:06 #
+ 2 -
А
жаберы-скайпы
как разделять таким способом? Пиши уж до конца! :-) Если серьёзно, мне разделение учётных записей дома тоже никогда не нравилось, но переключать всё отдельно (firefox, icq, skype, mail) тоже муторно... Сейчас всё решилось само собой покупкой n компьютеров, так что голова больше не болит.
cblp 28.12.2010 11:13 #
+ 2 -
Скайпом я разрешаю изредка попользоваться всем. То есть разрешаю всегда, пользуются изредка.

Для джаббера у нас разные любимые клиенты. Почту все единодушно предпочитают вебовую, т. е. см. Firefox.

Если ситуация ещё немножко усложнится, скорее всего, буду делить учётки или расставлять компы. Купить-то не проблема, в отличие от размещения, энергопотребления и пр.
galaxyman 28.12.2010 20:00 #
+ 2 -
у меня маме 83 - чудно кликает по иконке своего пользователя и вводит пароль
проблема в том, что если у нее что то не получается она топит на все кнопки методом тыка, не понимая что делает,поэтому своя учетка для подобного юзера обязательна иначе можно недосчитаться нужных файлов

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн