Примерно полгода использую NixOS в качестве основной системы. В декларативное управление системой я влюбился настолько, что уже вряд ли вернусь на систему с императивным пакетным менеджером - управление системой с помощью нескольких конфигурационных файлов до того уж удобно.
Систему я использую в разных ситуациях: занимаюсь олимпиадной математикой, иногда программирую, посещаю интернет, изредка смотрю фильмы.
В качестве графического окружения использую Hyprland, однако за полгода использования системы эти анимации, скругления и т. п. настолько надоели, что я сегодня их отключил. Конфиг панели waybar я взял другой (изначально стоял почти такой же, как в скриншоте с freebsd), но потом планирую его модифицировать. Тайлинг считаю невероятно удобной моделью управлению окнами.
Основные приложения:
Терминал - foot
Меню запуска приложений - wmenu (сегодня с wofi перешёл на него)
Браузер - librewolf
Файловый менеджер - ranger, иногда nemo
Читалка PDF - zathura
Всё это стоит на моём Lenovo ThinkPad E14 gen 5 (на amd ryzen 7 7730u). Ноутбук мне нравится (правда, маленький экран не устраивает), особенно я полюбил трэкпоинт - гораздо удобнее тачпада.
На фоне луркования тредов про nixos последнее время неоднократно думал выложить подобный скрин, а недавний пост от Zhbert прямо замотивировал.
Уже много лет как пристрастился к препаратам макоси, многое в ней мне удобно, кроме мышеводства, как бы ни был шикарен макбучный тачпад. И заодно мне достаточно давно была интересна nixos, не с точки зрения использования, как рабочего инструмента, а скорее как концепт нестандартной организации системы. Примерно года полтора назад на каком-то из скринов в r/unixporn автор написал, что использует nix-darwin. Интерес взял верх, полез раскапывать и изучать. Так и пришел к примерно такому десктопу.
На скрине макось какой-то там актуальной на июль версии. Nix 2.15, nixpkgs 23.05-stable. До релиза 23.05 сидел на master, но уж очень там любят что-нибудь сломать (особенно сам nix). Конфиг на flakes (через flake-parts). Весь терминальный софт ставится через home-manager, весь гуевый — через homebrew, которым также рулит home-manager (мне в итоге не понравился nix-darwin, целиком от него отказаться я не могу, но максимально возможную часть нужных мне функций переписал под home-manager).
Из более конкретного со скрина — wezterm, в нем neovim (а в нем кусок конфига lsp), btop и neofetch (да, пекамоны каждый вызов разные). В качестве шелла давненько использую fish. WM — yabai, панелька sketchybar. SIP не выключал. Док скрыт справа, статусбар скрыт сверху. Цветовая схема - catppuccin. Обоину давно не видел, но она вот тут: https://imgur.com/a/N4i0wsD
Вот тебе скриншот моего нынешнего рабочего окружения. Как видишь, 2007 вернулся или даже не заканчивался! На скрине KDE с оформлением в стиле Windows Vista, Hello World на Паскале, который мне задали написать в школе, и настоящий (!) Winamp через Wine.
Всё работает как надо. Уроки я выучил, теперь пойду с друзьяшками кататься на скейте, а после позову свою девушку-эмо на свидание и покажу ей Ubuntu.
будет переработан сетевой стек. (сейчас он дает около 1 млн сообщ/сек между нодами по сети. ожидается улучшение до 15-20 млн);
работа с процессами будет проще и понятней;
вся эрланговская специфика будет вынесена в отдельный пакет (собственно она и была главным шоу-стопером в перформансе).
На скриншоте творческий момент редизайна внутренностей. Сложно удерживать в голове сразу кучу связанных сущностей, посему приходится держать их на виду. Благо экран широкий, позволяет.
Из инструментов — NixOS, NeoVim, Tmux, ViFM, Zsh.
На остальных экранах — всякие браузеры со спотифаями.
Прошло больше месяца моей жизни с этим замечательным дистрибутивом. Рано или поздно необходимо было познакомится с ним. Сразу скажу: все страшилки в виде сложной установки или долгого компилирования после реального опыта кажутся бредом. Установилась не сложнее арча, пакеты собирались после установки относительно быстро (про браузеры позже). Portage меня действительно очень приятно удивил своей мощью и гибкостью.
Правда, на своём железе тяжелые пакеты я компилировать не стал, но нашёл выход в виде использования nixpkgs. Об этом дальше. Базовая система и ядро полностью собраны из исходников. IDE, браузеры, офисы взяты из никса. В какой-то момент я осознал что делаю из генту NixOS, и решил пойти дальше и попробовать NixOS (оно вообще юзабельно на десктопе?).
Нишу Gentoo я для себя определил. Это машины с малым количеством памяти или старым процессором. Я видел чудеса на лоре, когда гента давала новую жизнь очень древним экспонатам 1, 2.
Навёл немного порядка, решил поделиться. С прошлого скриншота визуально мало что изменилось, переехал с bspwm на spectrwm потому как тут в одну строку можно убрать бар со стола с браузером и в целом конфиг проще, с сакуры на alacritty, c ranger на lf, chromium пробую заменить на brave (нравится компактность верхней панели).
После переезда на 38" работать стало комфортней на порядок.
Когда-то не понимал всех радостей от vim, от связки с tmux, но после боли в запястьях прошел процесс переосмысления эргономики - теперь работаю на ergodox, в vim+tmux, попутно оценил все прелести vim-like хоткеев стараюсь использовать их везде. как результат:
в рабочем окружении добавился vifm (как же я раньше без него жил).
в firefox начал пользоваться trydactil (до него использовал vimium)
в zsh стал активнее использовать vim-mode
потихоньку начал использование tig (гитовый консольный клиент). не могу сказать, что активно, но иногда с ним интересней пробежаться по коммитам
изменил дефолтные хоткеи гнома управления окнами на win-[h,j,k,l], а также переключение между приложениями стало удобней с помощью win-[1,2,3…]
если резюмировать - инвестиции в эргономику стоили потраченного времени и на выходе получил невероятно бОльший уровень комфорта.
на экране, кроме браузера со спотифаем и всем привычным htop еще можно увидеть cava - просто нравятся прыгающие «столбики» частот под музыку.
в остальном: Gnome 3.38. Для него установил тему Materia. Шрифт Iosevka везде, не только в терминале.
OS: NixOS. посоветовал на нее посмотреть знакомый еще в прошлом году. проникся. непривычно с первого взгляда, но невероятно крутая по своей идеологии - воспроизводимость конфигурации. теперь установка на другой комп/ноут сводится лишь в git checkout конфигурации и одной командой воспроизводится абсолютно все окружение, автоматически, без лишних копипаст. Если кому будет интересно - https://github.com/halturin/nixos-config/.
На экране - кипит работа над новой фичей, чтобы выпуститься с ней в предстоящем релизе. Надеюсь в феврале. Что это и для чего? это фреймворк, на Golang. Он реализует все дизайн паттерны OTP Erlang , а также его сетевой стек, который дает сетевую прозрачность для общения между процессами с возможностью линковки (когда два процесса связываются и если один умирает, то второй автоматически умирает за ним), мониторинга (когда один процесс хочет получить уведомление, если другой процесс умер), супервизор (когда из процессов выстраивается дерево супервайзинга с разными стратегиями перезапуска). В общем, много чего крутого, что было упущено индустрией в пользу ущербному HTTP. Любопытствующим сюда - https://github.com/halturin/ergo
PS: (для тех, кто в теме) после релиза есть желание взяться за реализацию BEAM виртуальной машины. если есть предложения или желание обсудить https://github.com/halturin/ergo/discussions/28
Данное неприятное глазу окружение как нельзя лучше соответствует карантинному безделью.
А если серьезно, то данное окружение и NixOS — это оксюморон, потому как CDE просто апофеоз FHS-предрассудков, все пути в этом DE просто жестко захардкожены в коде еще со времен древних коммерческих юниксов, а NixOS полностью ломает FHS. И тем не менее оно как-то опакечено и работает.
На скрине можно видеть работу пакетного менеджера Nix, а именно запуск программ без их установки в систему.
Ещё я попробовал попользовать XMonad, особого профита для себя не увидел. Вместо этого просто научился использовать табы в i3.
Внутри я добавил плагинов emacs для своего комфорта, растащил конфиг по отдельным файлам, дописал плагинов для albert, перешёл на rclone с gdrive-ocamlfuse.
Нашёл в чулане старый 4:3 монитор от DELL. Сколько лет он там лежал - я не знаю, но он работает. В связи с околонулевой его стоимостью, решил попробовать сделать из него подвесной настенный монитор для всяких мессенжеров, скайпов и почты. Пока что всё работает, голова не устаёт вверх-вниз поворачиваться :).
Железо
ASUS UX303-U, i3-6600U, встроенная GPU, 12GB RAM, 250GB SSD
ASUS VZ249
DELL E176FP
Logitech K400 вместо клавомыши (да, я извращенец)
JBL какие-то в качестве звукового I/O
Онтопик
NixOS, i3, polybar. Конфиг.
В конфиге я навёл порядок, теперь там нет файлов на 1300 строк.
ПО
emacs с кучей пакетов и настроек, где я попиливаю termNote для собственного пользования
firefox (с парой плагинов для удобной работы с i3)
Mail - trojita
Мессенжеры - vk-messenger (да, я знаю. приходится использовать), telegram-desktop, konversation
Лаунчер - albert
Куча самописных говноплагинов для polybar, которые надо бы переписать на чём-нибудь поприличнее баша, да времени маловато
Всякие кедерастские приложеньки на все случаи жизни.
Внешний вид
Nord
Roboto
Materia с цветами под Nord для GTK, генерится через oomox
Самописная генерация темы для qt (через kdeglobals и qt5ct)
Поменял тему на Nord и сменил цветовую гамму панели на тёмную, дабы не резало глаза, как советовал HTaeD;
Сменил кедерастовский Kate на Emacs православный, пакетами напичканный по рекомендации kaban_lyalya (да, я уже начал писать свой конфиг для XMonad);. На C/C++ всё ещё пишу в KDevelop;
Добавил рамки вокруг окон и небольшие (5px) прогалы между ними из i3-gaps, как советовали BceM_IIpuBeT, KennyMinigun, Actionless, Chelobaka и другие. Прогалы прячутся, если открыто только одно окно, и получается красивый холст;
Скриншот с ноутбука, а не с десктопа.
В целом, как мне кажется, сохранилось ощущение единства всех приложений. Попользуюсь в таком варианте, сравню с предыдущим, возможно оставлю.
Вот, что получается, если некоторое время потратить на настройку nixos. Мне нравится KDE, я люблю тайлинг, и поэтому решил сделать вот такую смесь. Получилось по мнению некоторых «тяжело», по мнению других «неудобно» (жду вашего мнения), но тем не менее меня всё устраивает, а благодаря NixOS + home-manager одна и та же конфигурация оказывается на всех моих машинах автоматически, каждый день в 19:00 (Да, совсем вся, включая приложения, сервисы, темы, расширения и даже список доступных хостов в Dolphin и SSH).
Умудрился таки настроить i3 так, чтобы не попячить панель от плазмы. NixOS работает отлично, девелоперские окружения с python'ом обоих версий и растом крутятся, музяка слушается, радует, что всякие специфичные вещи вроде wireguard и ZFS поддерживаются в конфиге. Обоины нет, ибо собственно root window я вижу чуть реже, чем никогда. Конфигурация Emacs'а взята отсюда и допилена до моих нужд.
Вот мой самый обычный и постоянный десктоп. В терминале конпеляю ядро funtoo, в стиме качаю игрули, а в браузере читаю форум и слушаю музончик.
Иконки: Paper
Тема:Flat Plat Light
DE: xfce4
В качестве дока выступает KDEшная панель. Liberation Sans с легким хинтингом показался мне идеальным для ноутбучного экрана. Тема Qt — QtCurve с закосом под Zukitwo, как и декорации окон. Тема иконок — hycons, по сути, это перепиленный oxygen, из которого убрали убогий глянец. Делал я все это с оглядкой на гном, который стоит на основном ПК с Федорой.
NixOS для меня сейчас на ноуте вполне юзабельна. Вся система конфигурируется декларативным скриптом. Пакеты ставятся в своих изолированных окружениях и можно ставить их из-под обычного пользователя, причем они не конфликтуют с системными. В репозитории системы содержатся пока далеко не все пакеты. Тем не менее, дистрибутив активно пилится, в репозиторий добавляются новые пакеты. Пока что главный недостаток для меня — очень медленный поиск по пакетам. В остальном дистр устраивает полностью.