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

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

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

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

27.12.10 23:50 cblp

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]')

[ "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}


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

Заключение

Дедуля мой теперь садится за компьютер, делает всего один клик по своей кнопке и читает новости на Яндексе.

Depends:

firefox, gawk, wmctrl, x11-utils



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

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

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

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

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

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

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

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

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

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

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 150)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3004 из 224 городов)
            Топ пользователей Топ блогов
            В сети: ViX, doraneko, shidoh, nvbn, opium_inside

            Новенькие: dragonta, Arkan, ave.vitaliy, Cait Sith, ggrn
            welinux.ru

            В хорошем качестве hd видео

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


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

            Online video HD

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

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

            Full HD video online

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

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

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