вот так это выглядит
Выбранный набор: лист во всё стекло, чужой экран один к одному, паны за
переключателем в шапке, чип связи там же, строка DECKS в рельсе. Слева - твой флот, справа -
чужая дека, и это видно с первого взгляда: другой цвет точки, имя в tailnet, чип с
задержкой. Внизу экрана - подпись жеста, в статус-баре - пульт масштаба.
колесо под ctrl
Масштаб меняется под курсором - место, на которое смотришь, остаётся на
месте, ровно как в Mission Control. Число в баре живое, и 140% здесь не настройка
деки, а состояние этого пана: свой шрифт остался прежним.
ctrl и потянуть
Курсор становится хватом, экран едет за рукой. Панорама - следствие того,
что 120 колонок не влезают: это единственный способ дойти до правого края, не мельча
буквы.
и так - в три других момента
Первый запуск, оборванная связь и пан, закрывшийся на той стороне: три
состояния, которые в тонком клиенте случаются чаще, чем в своём флоте.
1 · где живёт чужая дека
Это окно внутри окна. Вопрос, каким местом деки оно притворяется.
1A
Лист во всё стекло
Как Mission Control: чужая дека занимает всё стекло, рельс остаётся своим. Больше
всего места экрану, ровно та механика листов, что у деки уже есть. Плата: пока лист
открыт, своих панов не видно.
цена: малая - ещё один лист по образцу существующих
1B
Вкладка среди панов
Чужой пан - просто ещё одна вкладка в полосе, с точкой другого цвета. Ctrl+Tab
ходит по ней наравне со своими, переключение стоит одно нажатие. Плата: вкладка
обещает, что это такой же пан - а он не такой же.
цена: средняя - полоса вкладок учится чужому роду
1C
Планшет поверх
Буквально планшет: панель со скруглённой рамкой поверх стекла, свой пан виден
вокруг. Честнее всего называет вещи - это чужая машина, лежащая рядом. Плата:
самое узкое место для экрана и новый род поверхности в деке.
цена: средняя - пятая призываемая поверхность
2 · как показан чужой экран
Хозяин рисует 120×34. Твоя панель другой ширины, и своего resize у
тонкого клиента нет - значит выбор между «мельче», «обрезано» и «прокручивается».
2A
Вписать целиком
Шрифт уменьшается ровно настолько, чтобы все 120 колонок и все 34 строки влезли.
Видно всё и сразу, ничего не прячется. Плата: на узкой панели буквы становятся
мелкими - это чтение с расстояния вытянутой руки, не работа весь день.
цена: малая - один множитель на размер ячейки
2B
Один к одному
Чужие буквы того же размера, что свои, а что не влезло - за краем, с горизонтальной
прокруткой. Читается как родной терминал. Плата: почти всегда видно не весь экран,
и правый край - это скролл, а не конец строки.
цена: малая - смещение и полоса прокрутки
2C
По ширине
Шрифт подбирается так, чтобы ровно 120 колонок легли в ширину панели, а по высоте
что не влезло - прокручивается. Строка всегда целая, и это главное, что нужно от
чужого вывода. Плата: низ экрана - включая курсор - иногда за краем.
цена: малая - множитель по ширине и вертикальный скролл
3 · как выбрать пан
Список панов чужой деки приходит целиком и живой - с агентом, его
состоянием и последней строкой. Вопрос, сколько места он занимает.
3A
Колонка слева
Маленький рельс внутри листа: серверы чужой деки заголовками, паны строками,
состояние агента глифом. Видно сразу, что там работает и что просит рук. Плата:
170 пикселей, которых не будет у экрана.
цена: малая - список по образцу рельса
3B
Полоса чипов
Паны стоят чипами над экраном, как вкладки: занимают одну строку, переключаются
кликом, состояние - точкой на чипе. Экран получает всю ширину. Плата: девять панов в
строку не помещаются, и часть уезжает за край.
цена: малая - полоса чипов с прокруткой
3C
Переключатель в шапке
Одна кнопка с именем текущего пана; список раскрывается по клику. Экрану достаётся
всё окно без остатка - максимум чужого вывода на квадратный сантиметр. Плата: чтобы
увидеть, кто там просит рук, нужно открыть список.
цена: малая - выпадающий список
4 · где видно связь
Чужая дека - за проводом, и провод иногда рвётся. Разница между «всё
хорошо» и «показанное устарело на 40 секунд» должна быть где-то видна.
4A
Чип в шапке листа
В шапке чужого листа - чип: на проводе · 41ms, а при обрыве
переподключаюсь · 3. Фактам место рядом с тем, о чём они. Плата: чип виден
только пока лист открыт.
цена: малая - чип по образцу плашек деки
4B
Строка в статус-баре
Связь стоит там же, где fps и echo - в правом блоке статус-бара, тем же тихим
шрифтом: ▤ STUDIO · сборка · 41ms · 10 к/с. Видно всегда, даже когда лист
закрыт. Плата: ещё один жилец в баре, который мы недавно чистили.
цена: малая - блок инструментов в баре
4C
Молчит до обрыва
Пока всё хорошо - не сказано ничего: экран живой, и это само по себе доказательство.
Рвётся - поверх экрана встаёт плашка с тем, когда оборвалось и какая попытка идёт.
Плата: пока лист открыт и тих, ничто не напоминает, что это чужая машина.
цена: малая - одна плашка на разрыв
5 · что в рельсе
Рельс - это дверь: если чужой деки в нём нет, к ней надо как-то
попадать. Если есть - она обещает то, чего тонкий клиент не даёт.
5A
Ничего
Рельс остаётся строго своим - как обещано в «тише рельс». Чужая дека открывается
чордом и строкой палитры, и никакого долга в рельсе не появляется. Плата: дверь
есть, но её не видно; про неё надо знать.
цена: никакая - строка палитры и чорд
5B
Строка DECKS
Внизу рельса ярус DECKS, в нём по строке на знакомую деку с точкой связи и
числом панов. Клик открывает лист. Дверь видна, а обещания она даёт ровно те, что
выполняет: это дека, а не сервер.
цена: малая - ярус по образцу WATCH и SUBS
5C
Как обычный сервер
Чужая дека раскрывается в рельсе как свой сервер - её серверы, спейсы, паны. Самый
привычный вид. Плата - обман: клик по пану ведёт не в панель деки, а в тонкий лист,
где нет ни своего resize, ни истории, ни создания панов.
цена: средняя - и обещание, которого этот клиент не
держит
6 · пульт масштаба в статус-баре
Кнопки стоят там же, где живут fps, render p50
и echo - в правом блоке бара, тем же тихим шрифтом. Размер своего шрифта деки
при этом не трогается: у него свой пульт в настройках.
6A
Минус, число, плюс
Три знака и ничего лишнего - ровно то, что уже стоит в настройках у размера шрифта
(− 14 px +). Число показывает, где ты сейчас; колесо делает то же самое
быстрее. Плата: вернуться к «влезает целиком» можно только на глаз.
цена: малая - две кнопки по образцу настроек
6B
И ВПИСАТЬ
Четвёртая кнопка возвращает масштаб, при котором чужой экран влезает целиком - это
ровно вариант 2A, доступный одним нажатием. Один жест закрывает вопрос «а что там
справа?». Плата: ещё одно слово в баре, который мы чистили.
цена: малая - кнопка и расчёт масштаба по ширине
6C
Число открывает меню
Клик по числу раскрывает список: 75, 100, 125, 140, ВПИСАТЬ, 1:1 СБРОС. Точный
масштаб выбирается пальцем, а бар остаётся в три знака шириной. Плата: ещё одна
призываемая поверхность ради одного числа.
цена: средняя - выпадающее меню в баре
7 · что запоминается
Масштаб - не настройка деки, а свойство того, что смотришь. Вопрос,
насколько мелко его резать: font_size и space_order уже лежат в
настройках, так что место для этого есть.
7A
Один на деку
У STUDIO один масштаб на все её паны. Просто, предсказуемо, одна строка в файле.
Плата: пан на 80 колонок и пан на 200 требуют разного, а получают одно - и каждое
переключение начинается с колеса.
цена: никакая - одно число на запись деки
7B
На каждый пан
Масштаб помнится на пан: вернулся к сборке - она снова 100%, вернулся к агенту - он
снова 125%. Пан, который видишь впервые, берёт последний масштаб этой деки, так что
пустого места не бывает. Плата: карта в настройках, которую надо подрезать.
цена: малая - карта дека+пан → масштаб с
пределом, как у recent_panes
7C
И место панорамы
Вместе с масштабом помнится и куда ты утащил экран: вернулся - смотришь на тот же
правый край, где остановился. Плата: место в чужой сетке протухает быстрее масштаба -
пан, переехавший в другую геометрию, вернёт тебя не туда.
цена: малая - две координаты рядом с масштабом, и проверка,
что сетка та же
8 · чем сказано, что дальше есть
При масштабе один к одному видно 78 колонок из 120. Экран обязан
сказать, что он не весь: молчащий обрез читается как конец строки.
8A
Полосы прокрутки
Тонкая полоса снизу и мягкая тень у правого края - язык, который знают все. Видно и
что есть дальше, и сколько именно. Плата: полоса - это ещё и приглашение тащить мышью,
а тащим мы Ctrl-ом.
цена: малая - полоса по образцу деки
8B
Миникарта
В углу - прямоугольник всей чужой сетки с рамкой того, что видно: 78 из 120.
Сразу понятно, где ты в чужом экране и сколько осталось. Плата: ещё один живой элемент
поверх вывода, и он всегда на виду.
цена: малая - две вложенные рамки
8C
Затенённые края
Никаких элементов: у краёв вывод просто гаснет в фон - там, где продолжение. Тише
всего и не спорит с текстом. Плата: сколько именно за краем - не сказано, и на тёмном
выводе градиент почти не читается.
цена: никакая - градиент поверх стекла
пульт
Пульт рисует окно дважды: живым и в момент обрыва. Выбирай в
секциях выше или прямо тут - это одно и то же решение, показанное дважды.