Спецкурс по Linux, весна 2007, 06 лекция (от 30 марта)
Материал из eSyr's wiki.
Предыдущая лекция | Следующая лекция
Авторский вариант: http://uneex.cs.msu.su/uneex/LecturesDistro2007/06_Personal
Содержание |
[править] Удобства
Удобства – понятие асолютно относительное.
Некоторые задачи решаются из коммандной строки, и когда пользователь когда начинает с 4 пунктов меню гнома, он начинает с конца
- Командная строка --- базовый интерфейс, всё начинается с него. --- некий язык, что означает обмен строками, некоторыми тек стовыми последовательностями, и сама модель строчная. КИ получает строку, обрабатывает её и возвращает результат. Два достоинства командной строка:
- вряд ли наёдётся более удобный способ обмена, чем обмен печатным текстом, в случае командной парадигмы --- пользователь командует, машина отчитывает, в отличие от обратного, когда скрепки бегают по экрану, долбятся в монитор, говорят “нажми эту кнопку”
- Мы организуем микропрограммирование, в 2---3 строки, и пользователь принудительно формализует свои действия, диалог не содержит тёмных мест. Причём программы несложные
- Главный недостаток --- мы говорим, что обменивамся с пользователем текстом, и забываем, что это не строка, а телетайп. Ибо человек читает не по букве, а кусками
- Уровень 2 --- терминал. не в смысле терминальное устройство, а терминал как матрица символов. Мы начинаем работать не со строкой, а со страницкй. Это наиболее обросший неожиданными ограничениями, тайнами и легендами кусок интерфейса. Ибо терминалы появидись за долго до того, как стало понятно, зачем они нужны. Терминал --- последняя страница бесконечной ленты, со всеми достоинствами и недостатками
- Можно на лету много чего менять, вплоть до начертания шрифтов
- Есть некая матрица --- можно пользоваться целыми прямоуголдьнками для размещения информации
- Примеры: mc, mutt, vim
- Недостаток --- неизвестно, что уже находится на экране. Это делает не очень удобным получение данных с экрана, с другой стороны это полностью разваязывает руки, ибо можно общаться почти с чем угодно
В чём разница между КС и терминалом: в КС даются команды, и там не нужны знания о прямоугольника, в отличие от терминала, где они требуются (выводить список, показывать курсор)
С помощью терминала реализуются все интерфейсы: менюшки... Сейчас в графич интерфейсе собственно тоже самое --- показывается список, и из этого списка надо выбрать
Проблема --- надо прочитать всю страницу, чтобы сделать выбор. Когда графика, то ишутся какие-то особенности элемента интерфейса (круглое). Проблема с визуальным поиском и выбором
- Грвфическая подсистема --- для задач визуального поиска с выбором. Довольно долго бытовало необычное, но остроймное рещение --- графические терминалы, то есть устройства, предназначенные для независиой передачи, которое может обрабатывать векторную графику. Это было бы неплохое решение, ибо это менее затратно, но память и процессоры дешевели, и растровый подход победил. Граф оболочка решает эту и многие другие задачи. Мы переходим в ситуацию, когда модель мира усложняется. Например, у нас есть устройства для вывода графики, как с ним надо работать? Или есть понятие окно. матрицы точек это недостаточно, ибо каждому приложкеию надо выдать свою матрицу точек. Соответственно, нужно понятие окно. И пр=иложение как-то с ним взаимодействует --- события. Ещё есть понятие фокус --- если фокус у окна, то он получает данные с устройств ввода, иначе не получает
- Достоинства очевидны
- Недостаток --- Надо вводить жёсткие правила пользования этой оболочкой, нарушая которые оказываемся у разбитого корыта --- возвращаемся к понятию матрица точек. В 90-е были течения создания своих интерфейсов
“Чем игривее кнопка, тем игривее в неё будут тыкать”
- Введение графоболочки проблемы юзабилити не решает вообще, даже наоборот. Ибо раньше был один терминал --- одна программа
- Рабочий стол. Понятие трудноопределимое, ибо имеет в качестве одной из составляющих удобство. Ибо РС --- так организованноек пространство, что пользователь решает задачи быстро и качественно.
- Быстрый доступ к элкментарным решениям
- Если есть необъодимость на что-то глядеть, то это что-то должно быть нарисовано
- Оповещения --- если что-то происходит, то нужно в какои-то месте сделать какой-то раздражитель
- Красивый внещний вид, чтобы не тощнило при включении компьютера, а наоборот
Два уровня по два пункта --- назкоуровнувый текстовый интерфейс, высокоуровневый он же, с графикой ситуация та же, но обмен ассимитричный – вводится текствоая информация, обратно графическая.
Вычокойровневый интерфейс --- есть объекты на плоскости
- Воспроизводимость настроек
- Важно
- Что нужно, чтобы она работала
[править] Как это сделано лично у ГВ
[править] Командная строка
Есть одна большая программа, которую надо много и сильно настраивать, и есть несколько небольших программ, и есть много небольших програм
- Выбор --- zsh. Ибо толще, чем bash. Главная причина --- bash собран с libreadline, которая местами сильно уступала zsh. Проблема readline --- ГК приходится много работать с разными машинами с разными типами терминала, и у каждого свои спецсимволы (например, для изменения типа символа, для которого используется специальная последовательность спецсимволов), и есть очень много типов терминалов, все разные. И возникла необходимость удобно настраивать редактор КС, чтобы оно работало на всех терминалов. На zsh это просто, ибо он лезет в базу терминалов. Настроены --- начало/конеч строки, слово вперёд/назад (по pgup/pgdn), и нестандартный autocompletition (insert). Это легко в zsh. В bash это надо делать большим конфигом, с параметрами для каждого терминала. Всякие вкусности: =ls => /bin/ls, при разных способах запуска исполняются разные файлы (старт/стопные профили).
Что касается не шелла, то надо настраивать .inputrc (?), у python есть свой .pythonrc.
Это всё личный выбор.
[править] Терминал
Настройка терминальных програм. Ибо настройка терминала это не нужно.
Надо выбрать группу задач, которые будут решаться в терминальном режиме, то есть где графика не нужна, например, чтение почты (mutt). Его ГК основательно обнастроил, в частности, настроил интерфейс, путём вычитки куска соответствующего мануала: перекрасить. Написать несколько макросов, например, послать спам на ящик и скормить его спам-ассасину, и наоборот, ещё отметить все файлы со спам-рейтингом выше 6. Или ещё есть большой поток писем на george@po.cs.msu.su, и этот поток рассовывается по категориям. Ещё есть привязка к abook, ибо у мути нет принципиально своей адресной книги, зато можно посылать запросы адресной книге.
У ls есть одна настройка --- цвет файлов при выдаче файлов на экран. Есть lscolors, который по вменяемогу файлу раскраски генерит для ls переменную окружения.
mc. ГК не пользуется mc. Он используется в редких случаях, если нужно много архивировать-разархивировать
vim. Самое вылизанное приложение. В нём дикое количество количество настроек, и по всем есть справка. Естесственно, у ГК есть воя раскраска, в виме есть система тестирования и отладки, и для него есть набор команд, они неудобны, и ГК положил их на F7---F8, vim знает про абстракции F7---F8. Единственное что, в виме есть свой xterm.
lynx. Что-то там настраивал, отключение кэша.
[править] Граф оболочка
Настройки Xorg
- Настройка переключения клавиатуры --- на клавишу вызова меню, но это штатная функция, раньше ГК сам её вковыривал
- Раскладка, которая после переключения на русские буквы, и в раскладке на шифтах цифры, а без шифта символы
- Ещё хочется специальные символы для кавычек, длинного тире
.xdefaults --- место для разных настроек для приложений. Там то простых настроек, до перегрухки любого свойства любого виджета. 80% у ГК занимает перекрашивание во все цвета.
Некоторые клавиатурные сокращения.
[править] Рабочий стол
Window-manager --- ctwm. Это один из самых вторых wm. одним из самых мервых был twm, он достаточно много имел с одной стороны, и достаточно человекочитаемый конфиг с другой. ctwm --- twm с декораторами, у него такие трёхмерные рамки, и всякие фичи, готорых не хватало в детстве twm.
Он умеет много чего:
- Клавиатурные сокращения
- Таксбары
- Места для иконок
- Можно сделать много таскбаров (в зависимости от типа приложения)
Есть список программ, которые запускаются с клавиатуры. Есть, которые из меню. ГК считает, что меню должны быть глубиной не больше 1.
То, что сейчас является стандартным меню, которое категоризованно, это нужно только в том случае, когда неизвестно, как называется программа, а только помню, что там лягушка была.
Есть xtoolwait, которое запускается приложение в бэкграунди и ждёт, пока она зарегистрируется в иксах, и тут можно запускать вторую, которая может что-то делать с первой.
Ещё часы, которые ГК долго искал --- долны быть аналоговые, быть видны и занимать много места --- dclock, ужасно древнючая программа
Про ctwm --- ГК использует 4 workspace, и по типу заголовка, приложения, отправляется окно на соотв десктопа:
- Первое по умолчканию
- Второе для веба
- Третье для мкльтимедиа и офиса
- Четвёртое для рута
Не используется:
- картинки на экране
- Иконки
- Квикланчеров
- Документы на рабочем столе
- Не используется иконка с выпадающей менюшкой
[править] Воспроизводимость
почему напрались на те вещи, которые настраиваются вручную --- потому что их можно забэкапить. если вы используете какой-то инструмент для настройки, то настройки фаерфокса нельзя так просто хранить. Для воспроизведения используется система контроля версий --- сначала CVS, после разных граблей перешёл к darcs.
01 02 03 04 05 06 07 08 09 10 11 12
Календарь
Февраль
| 16 | ||||
Март
| 02 | 09 | 16 | 23 | 30 |
Апрель
| 06 | 13 | 20 | 27 | |
Май
| 04 | 11 |
18 мая 2007 года прошёл экзамен по курсу. Краткий конспект экзамена.
22 мая 2007 года прошёл экзамен по курсу для студентов 3 курса и тех, кто не сдал экзамен 18 мая. Подробности здесь.
12 июня 2007 года (вторник) пройдёт экзамен по курсу. Информация об экзамене отсюда.