Tips & tricks — Интернет каждому дедушке!
Дано
1 компьютер в пользовании n человек — 1 программист, использующий многие возможности компьютера и Интернета, и (n−1) обычный человек, обозревающие веб и жаберы-скайпы понемножку.Надо сделать так, чтобы все могли поочереди пользоваться компом и друг другу не мешали.
С отдельными учётными записями заморачиваться не хотелось, ибо защищать нам друг от друга — а точнее, мне от всех остальных — в общем-то, нечего. К тому же, в семье есть представители старшего, очень старшего поколения, которым пришлось бы долго, очень долго объяснять, что такое пароль и как его вводить, а учётку без пароля заводить некошерно. А поскольку проблема была только с разделением доступа к браузеру, то решено было ограничиться рабочими столами и профилями Firefox.
Задача
Настроить удобное использование n профилей Firefox на n рабочих столах.Предлагаемое решение
На панели Гнома у меня n=4 кнопки для запуска специального скрипта-обёртки над Firefox. Скрипт проверяет, не запущен ли браузер с нужным профилем, если запущен, то переносит пользователя к его окну, если же нет, запускает Firefox на нужном столе.В процессе решения задачи столкнулся с такой особенностью: при типичном использовании Компиза у вас один рабочий стол в терминах X, а все «рабочие столы» Компиза для X выглядят как вьюпорты. Вьюпорт («viewport», не смог подобрать аналог) — это отображаемый на физическом экране в конкретный момент времени кусок логического рабочего стола. Опытные товарищи вспомнят, наверное, как ставили в XF86Config размер рабочего стола больше размера экрана и играли в воображаемую Дюну-2 иконками на десктопе.
Соответственно, в Компизе вместо рабочих столов и граней кубика надо переключать вьюпорты.
Код
Обёрточка firefox-wrapper
Скрипт для перехода к нужному рабочему столу для компизовой «стены»
Скрипт для перехода к нужному рабочему столу для компизового куба (привожу оригинал, хоть он небезглючен; в частности, некорректно определяется размер вьюпорта; более правильное определение см. в моём скрипте выше)
Без Компиза, с нормальными рабочими столами просто `wmctrl -s `.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/bin/bash |
Скрипт для перехода к нужному рабочему столу для компизовой «стены»
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 |
Скрипт для перехода к нужному рабочему столу для компизового куба (привожу оригинал, хоть он небезглючен; в частности, некорректно определяется размер вьюпорта; более правильное определение см. в моём скрипте выше)
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 |
Без Компиза, с нормальными рабочими столами просто `wmctrl -s `.