Линукс для писателей: часть I

Dima Neiaglov
Oct 3, 2015 · 6 min read

Год назад или около, мы с Кусо любили рассуждать об интерфейсах чтения и письма. Тогда же я пришел к идее разделения устройств. Вместе эти парадигмы породили интерфейс, который я создал для себя и описываю в этой заметке.

Для экономии места я не буду подробно рассказывать о разделении устройств. С годами я все хуже понимаю, почему аудиоплеер, телефон и фотокамера — один и тот же предмет. Моя аудиожизнь, к примеру, теперь обслуживается плеером Cowon X9 и диктофоном Zoom H2.

И вот, я завел отдельный компьютер для письма и чтения. В нем нет мессенджеров, почты и музыки — только текст. Выбрав одну из старых машин, я поставил на нее Ubuntu 15.04 и начал обустраиваться.

Двухпанельная парадигма

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

Для меня это действительно оказалось чрезвычайно удобно. Вот несколько типичных примеров:

Image for post
Image for post
Слева — текстовый редактор со статьей или переводом, справа — словарь.
Image for post
Image for post
Справа — художественная книга, слева — цитаты и пометы
Image for post
Image for post
Слева — текст в производстве, справа — помощь по системе разметки Markdown.

На месте каждого из окон может стоять любая программа на выбор: браузер, почта, заметка, научная статья, библиография и т.п. Расположением окон на экране занимается программа i3. Она делит экран на части так, что тот становится полностью замощен окнами. Каждый раз как я открываю новое окно, старому приходится уменьшаться в размерах. Такого типа оконные менеджеры называются tiling window managers. Если я открою на экране четыре окна, получится так:

Image for post
Image for post

Любители подобных вещей иногда настраивают очень сложные правила размещения окон; мои же — довольно просты. Все окна открываются в ряд и вертикально. Как только на экране становится больше двух окон, всё становится нечитаемым и вынуждает меня закрыть одно из окон — в чем и состояла исходная цель: иметь ровно два окна.

Управление окнами происходит без мыши. Я перемещаю фокус влево-вправо кнопками Command+Shift+< и Command+Shift+>. Если окно уже в фокусе, я могу сдвинуть его налево, стукнув Command+Shift+m. Я закрываю окна сочетанием Command+Shift+q. Вообще, любые операции с окнами начинаются с Command+Shift.

Запуск программ

Поскольку никаких экранных меню у меня нет вообще, все программы тоже запускаются с клавиатуры. Я могу набрать такую команду в терминале, или стукнуть Option+пробел. На экран вылезет крошечная утилита gmrun, куда я и вобъю нужный текст.

Image for post
Image for post
Маленький gmrun

Для удобства я написал несколько собственных команд. Вот их неполный список:

  • m Привет как дела — ищет текст «Привет как дела» в Мультитране

Есть и системные команды: для управления сетью, к примеру, или для скриншотов.

Image for post
Image for post
Управление сетью

Преимущество этого дела состоит в том, что команды не привязаны ни к какому конкретному приложению. Я могу выделить текст в редакторе и запустить команду, которая переведет его в словаре по моему выбору. Сам редактор даже не будет знать, что полез в словарь; его единственная забота — взять выделенный текст и засунуть его в ту команду, которую я указал.

Разметка и документы

Всё, что я пишу, пишется в разметке Markdown. Тексты, которые потом не уходят на основную машину чтобы быть сверстанными в индизайне, верстаются в html, pdf или почту автоматически, по написанным мной шаблонам.

Документы разложены по папкам с особой системой наименования. Папка logs, к примеру, предназначена для нескольких тематических дневников. Каждому из них посвящена подпапка: скажем, ~/logs/tech — это дневник о технологии. Одна запись в дневник — один markdown-файл в папке. Если я хочу прочесть дневник целиком, я запускаю в директории скрипт diary. Он собирает все файлы в один, упорядочивая их от нового к старому, автоматически верстает все это в html и открывает в браузере. Там я могу полистать дневник или поискать что-нибудь внутри.

Книги тоже хранятся в папках. О книгах и библиографиях я напишу отдельно, здесь только скажу, что каждой книге соответствует одноименный markdown-файл с конспектом. Если книга называется толстой.война-и-мир.epub, конспект будет называться толстой.война-и-мир.md. Это, в частности, означает, что и все конспекты я тоже могу объединить одной командой в большой мегаконспект и поискать там что-нибудь.

Image for post
Image for post
Так выглядит сверстанный конспект (справа)

Так система заметок, конспектов, записок, книг и статей становится полностью оторвана от конкретных программ чтения. У меня есть скрипт bookread, который принимает на вход название книги или статьи и открывает на одном экране ее саму и ее конспект. С конспектами затем можно делать всё, что только возможно делать с текстовыми файлами — и возможности эти весьма широки. Если завтра я сменю текстовый редактор, программу чтения или даже операционную систему, все мои заметки останутся на месте в очень читаемой форме.

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

Набор текста

Я пользуюсь обычной макинтошной раскладкой. Русский и английский переключаются по правому шифту, лампочка капслока служит индикатором русской раскладки. Я не стал повторять систему набора т.н. «типографских» знаков из Mac OS, она не вполне меня удовлетворяет.

Вместо этого я настроил все так: я нажимаю Caps Lock и потом тыкаю в одну или несколько кнопок, которые, в зависимости от сочетания, производят тот или иной символ. Система очень визуальная (Caps Lock сокращаю до CL):

  • CL + < дает «

Это, конечно, совсем не полный список.

Самопомощь

Как только я настраиваю ту или иную вещь, я пишу для себя документацию. Она хранится в папке ~/man. Когда я вызываю, к примеру, команду utfcs (от utf cheat sheet), скрипт берет markdown-файл из этой папки, делает из него красивый html и открывает его рядом с текстом.

Философия

Все это сделано для того, чтобы читать и писать продуктивно. В некотором отношении вся система задает кучу ограничений разного характера — от невозможности пользоваться мессенджерами до обязательности конспектирования любых книг и лекций. Это, конечно, сделано нарочно. В макоси документы теряются; их перечитываемость очень низка. Они разбросаны по разным приложениям. Внутри самих приложений — по меню.

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

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

Техника

Небольшой список того, как все это сделано.

  • Window manager — i3wm. Простой и быстрый.

Если вам понравилась эта история, поделитесь ей с другими читателями, нажав кнопку “Recommend”

Спасибо! ☺

Ищете больше интересных историй? 
Подписывайтесь на Medium · Twitter · Facebook · VK

Official Russian

Истории и идеи каждого на русском.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store