Разное: .dotfiles
29.03.2018


Скриншот

За последний месяц я провёл очень много времени в разных дебиановских дистрибутивах Линукса. Тут и сам Debian 8-9-й версий, и какая-то Ubuntu на VPSке, и Armbian на ARMовском одноплатнике. Узнал много нового.

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

Там у меня стоял обычный Debian 8 с Mate'ом и тёмной темой. В принципе, всё было довольно красиво и мне нравилось. Но так уж случилось, что среди знакомых у меня появилось слишком много хардкорных линуксоидов, сидящих на фреймовых оконных менеджерах (дальше я буду их называть также тайловыми и и ВМ от англ. tiling window manager). А потом я наткнулся на этот шикарный плейлист из трёх видео, где рассказывается, как сделать из самого человечного среди других тайловых WM, но всё равно уродливого i3 с дефолтными настройками настоящую конфетку.

Я попробовал настроить его и попользоваться какое-то время на ноутбуке. И влюбился! Это же офигенно, когда можно прописать, чтобы сразу при загрузке компьютера открывался терминал, браузер, мессенжеры, и всё это раскидывалось по отдельным воркспейсам! А чего стоит удобство использования dmenu и отсутствие необходимости тянуться к тачпаду!

Надо заметить, что ещё до этого я сильно подсел на Vim. И этому поспособствовал именно ноутбук, за которым мне время от времени приходится сидеть в не самых удобных местах на разных скамеечках, располагая его на коленях. Когда я в первый раз увидел Vim, то, как у любого нормального человека, реакция была вроде: «Что это за доисторическая и неудобная хрень? Почему так много хайпа среди программистов и сисадминов?». И только когда у тебя отбирают возможность пользоваться мышью, начинаешь понимать, как же это здорово, иметь возможность начать новую строчку, не доводя курсор до конца текущей!

На самом деле ещё раньше Vim очень хорошо проявил себя при администрировании серверов, у которых в принципе нет никаких мышек и графических подсистем. Править более-менее серьёзные конфиги с помощью nano было тем ещё "удовольствием".

По Vim'у не могу дать каких-то конкретных видео, потому что... ну... оно просто учится. Есть отличный пакет vim-tutor, а дальше в дело вступает Викия.

Следующим инструментом современного хакера является zsh — удобная и кастомизируемая командная оболочка с продвинутым автодополнением. Для неё существует множество плагинов и даже целые готорые наборы, один из которых мы рассмотрим далее.

Ну и завершает вступление терминальный мультиплексор tmux, который позволяет открывать множество терминалов в одном окне, причём вся сессия хранится на сервере (то есть можно отключиться, а потом подключиться заново и продолжить работу с того же места!). Должно быть очень удобно для администрирования, но я пока не успел толком распробовать, потому что на обычном ПК с i3 куда быстрее и проще просто открыть ещё один эмулятор терминала, который точно так же растянется на половину экрана.


Репозиторий с конфигами

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

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

Там не описано, какие точно пакеты нужны, потому что для каждого дистрибутива они будут несколько отличатся, но конкретно для Debian'а можно воспользоваться (или посмотреть на код для примера) моим KozConfigurator'ом, который был обновлён аккурат перед опубликованием конфигов и, если я ничего не забыл, содержит установку всех необходимых пакетов (не забудьте указать ключ -i при запуске).

Vim я настраивал полностью с нуля, взяв за основу конфиг знакомого и проекта spf13-vim. Причём одним из обязательных условий поставил перед собой требование, чтобы конфигурация не требовала никаких дополнительно установленных пакетов или, особенно, компиляции каких-либо модулей. Поэтому она просто ставится поверх Vundle'а, который просто клонируется из репозитория и утверждается командой :PluginInstall.

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

Про i3 я уже говорил: взял конфиги из интернета за референсы и долго допиливал под себя. Для tmux'а все строчки взяты из референсных файлов.

Кстати! У меня же ещё есть настройки для cVim! Это расширение для Google Chrome, чтобы управлять браузером без мышки.


Дополнительные замечания

Здесь бы я хотел описать встреченные мной проблемы, не касающиеся конфигов или не решённые в KozConfigurator'е, и указать ссылки на пути их решения. Возможно, пост будет периодически дополняться, если я буду вспоминать новые детали.

  • Во-первых, оказывается, в Linux'е очень легко включить типографскую раскладку. Даже не надо устанавливать никаких дополнительных пакетов!

  • Во-вторых, я столкнулся с неработающим Steam'ом. Решению посвящён отдельный топик на Гитхабе:

    LD_PRELOAD='/usr/1LIB/libstdc++.so.6 /usr/1LIB/libgcc_s.so.1 /usr/1LIB/libxcb.so.1 /usr/1LIB/libgpg-error.so' steam
  • В-третьих, не уверен, что это совсем законно, но можно разными способами скопировать все шрифты с Windows и использовать в Linux'е. Мне, например, очень нравится видеть Segoe UI в IntelliJ-based IDE.