Спецкурс по Linux, весна 2007, 06 лекция (от 30 марта)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Предыдущая лекция | Следующая лекция

Авторский вариант: http://uneex.cs.msu.su/uneex/LecturesDistro2007/06_Personal

Содержание

[править] Удобства

Удобства – понятие асолютно относительное.

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

  • Командная строка --- базовый интерфейс, всё начинается с него. --- некий язык, что означает обмен строками, некоторыми тек стовыми последовательностями, и сама модель строчная. КИ получает строку, обрабатывает её и возвращает результат. Два достоинства командной строка:
    • вряд ли наёдётся более удобный способ обмена, чем обмен печатным текстом, в случае командной парадигмы --- пользователь командует, машина отчитывает, в отличие от обратного, когда скрепки бегают по экрану, долбятся в монитор, говорят “нажми эту кнопку”
    • Мы организуем микропрограммирование, в 2---3 строки, и пользователь принудительно формализует свои действия, диалог не содержит тёмных мест. Причём программы несложные
    • Главный недостаток --- мы говорим, что обменивамся с пользователем текстом, и забываем, что это не строка, а телетайп. Ибо человек читает не по букве, а кусками
  • Уровень 2 --- терминал. не в смысле терминальное устройство, а терминал как матрица символов. Мы начинаем работать не со строкой, а со страницкй. Это наиболее обросший неожиданными ограничениями, тайнами и легендами кусок интерфейса. Ибо терминалы появидись за долго до того, как стало понятно, зачем они нужны. Терминал --- последняя страница бесконечной ленты, со всеми достоинствами и недостатками
    • Можно на лету много чего менять, вплоть до начертания шрифтов
    • Есть некая матрица --- можно пользоваться целыми прямоуголдьнками для размещения информации
    • Примеры: mc, mutt, vim
    • Недостаток --- неизвестно, что уже находится на экране. Это делает не очень удобным получение данных с экрана, с другой стороны это полностью разваязывает руки, ибо можно общаться почти с чем угодно

В чём разница между КС и терминалом: в КС даются команды, и там не нужны знания о прямоугольника, в отличие от терминала, где они требуются (выводить список, показывать курсор)

С помощью терминала реализуются все интерфейсы: менюшки... Сейчас в графич интерфейсе собственно тоже самое --- показывается список, и из этого списка надо выбрать

Проблема --- надо прочитать всю страницу, чтобы сделать выбор. Когда графика, то ишутся какие-то особенности элемента интерфейса (круглое). Проблема с визуальным поиском и выбором

  • Грвфическая подсистема --- для задач визуального поиска с выбором. Довольно долго бытовало необычное, но остроймное рещение --- графические терминалы, то есть устройства, предназначенные для независиой передачи, которое может обрабатывать векторную графику. Это было бы неплохое решение, ибо это менее затратно, но память и процессоры дешевели, и растровый подход победил. Граф оболочка решает эту и многие другие задачи. Мы переходим в ситуацию, когда модель мира усложняется. Например, у нас есть устройства для вывода графики, как с ним надо работать? Или есть понятие окно. матрицы точек это недостаточно, ибо каждому приложкеию надо выдать свою матрицу точек. Соответственно, нужно понятие окно. И пр=иложение как-то с ним взаимодействует --- события. Ещё есть понятие фокус --- если фокус у окна, то он получает данные с устройств ввода, иначе не получает
    • Достоинства очевидны
    • Недостаток --- Надо вводить жёсткие правила пользования этой оболочкой, нарушая которые оказываемся у разбитого корыта --- возвращаемся к понятию матрица точек. В 90-е были течения создания своих интерфейсов

“Чем игривее кнопка, тем игривее в неё будут тыкать”

    • Введение графоболочки проблемы юзабилити не решает вообще, даже наоборот. Ибо раньше был один терминал --- одна программа
  • Рабочий стол. Понятие трудноопределимое, ибо имеет в качестве одной из составляющих удобство. Ибо РС --- так организованноек пространство, что пользователь решает задачи быстро и качественно.
    • Быстрый доступ к элкментарным решениям
    • Если есть необъодимость на что-то глядеть, то это что-то должно быть нарисовано
    • Оповещения --- если что-то происходит, то нужно в какои-то месте сделать какой-то раздражитель
    • Красивый внещний вид, чтобы не тощнило при включении компьютера, а наоборот

Два уровня по два пункта --- назкоуровнувый текстовый интерфейс, высокоуровневый он же, с графикой ситуация та же, но обмен ассимитричный – вводится текствоая информация, обратно графическая.

Вычокойровневый интерфейс --- есть объекты на плоскости

  • Воспроизводимость настроек
    • Важно
    • Что нужно, чтобы она работала

[править] Как это сделано лично у ГВ

[править] Командная строка

Есть одна большая программа, которую надо много и сильно настраивать, и есть несколько небольших программ, и есть много небольших програм

  1. Выбор --- 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.


Спецкурс по Linux, весна 2007


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 года (вторник) пройдёт экзамен по курсу. Информация об экзамене отсюда.


Эта статья является конспектом лекции.

Эта статья ещё не вычитана. Пожалуйста, вычитайте её и исправьте ошибки, если они есть.
Личные инструменты
Разделы