LINUX.ORG.RU

Закос... под NixOS

 , , ,


2

2

На фоне луркования тредов про 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

Кидайте ваши помидоры.

>>> Просмотр (4112x2658, 1812 Kb)

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Красиво. Мне интересно, под что используешь Neovim (lsp). Как тебе Wezterm и почему он?
И чем забита память? 13 гигов что-то слизало ;)

И да, Uptime здорового человека :))

Neuromagus
()
Последнее исправление: Neuromagus (всего исправлений: 1)
Ответ на: комментарий от apt_install_lrzsz

Как-то в этих Европах плохо с толерантностью.

rupert ★★★★★
()
Ответ на: комментарий от Werenter

Как выше уже ответили, fish неплох из коробки там, где в zsh ставится oh-my-zsh и обвешивается плагинами. Из плагинов у меня стоит только более удобный fuzzy finder (сейчас atuin, раньше использовал fzf).

В остальном - разница не очень заметная. Если любите пописать скрипты на шелле - у fish немного синтаксис отличается для всяких for и if, поэтому по серверам я б его не разливал, а для клиентской машины - в самый раз. Из приятных фич - для любителей покурлить все на свете, вроде меня, есть опция игнорирования &, когда он окружен символами с обеих сторон (может в bash/zsh такое тоже есть, не в курсе, не копал).

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от l0stparadise

Ну я свой zsh настраивал в основном копипастой из арчвики + поставил плагины zsh-syntax-highlighting и zsh-autosuggestions. Также есть достаточно годный zsh-newuser-install, который стартует при первом запуске и позволяет настроить все основные параметры. ohmyzsh не нужен, ибо он тормозной и жирный.

Werenter ★★★
()
Ответ на: комментарий от l0stparadise

Если любите пописать скрипты на шелле - у fish немного синтаксис отличается

Всегда считал, что даже перейдя на zsh/fish, скрипты все равно продолжают писать на bash, а альтернативный шелл нужен только для удобства в консоли/терминале. :)

krasnh ★★★
()
Ответ на: комментарий от Neuromagus

Neovim в стадии вечного допиливания, на самом деле. Чаще всего - программирование на ямле :) из сносно настроенного под себя - nix, js, lua, shell, ansible. В каком-то виде настроен питон (я мало на нем пишу, lsp/линтеры стоят, но есть над чем работать). Раньше был нормально настроен go, но после переезда с x86 на arm дебаггер стал странно работать, пока не разобрался, нет задач поговнокодить. Конечная недостижимая цель - полностью заменить jetbrains (недостижимая как минимум потому что для java/kotlin в инфраструктуре неовима все плюс-минус мертворожденное).

Wezterm - неплохо, но уж очень он ресурсы жрет, если начинать использовать всяческие gpu-требовательные параметры. Даже псевдопрозрачность, например, вызывает огромный инпутлаг. Поэтому сейчас чуть ли не единственная причина, по которой не вернулся обратно на iterm - вкладочки в терминальном стиле. Screen/tmux да, могут решить эту проблему, но для них лень переделывать и переучивать гору хоткеев, к которым привык.

Память - терминал, два браузера (личное и рабочее пространство держу в разных), дискорд, тележка, obsidian, notion, royal tsx, слак - из того, что запущено всегда. Но вообще - gnu-утилиты криво отображают память на макоси, на скрине прям видно, что neofetch говорит 13, а btop - 8.

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от krasnh

Ну так и есть :) Если речь идет про что-то комплексное - да, разумеется, пишется сразу на баше. Но условный однострочник for иногда проскакивает прям в терминале - чуть пришлось подучить разницу.

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от l0stparadise

Спасибо, а вот это что - royal tsx?

Это REPL для TS?

полностью заменить jetbrains (недостижимая как минимум потому что для java/kotlin в инфраструктуре неовима все плюс-минус мертворожденное).

Я вот слышал, что работы ведутся. Правда мой личный опыт основан на C# (omnisharp).

И fish. У него другой синтаксис экранирования символов? Или проглатывает команды bash без внимательного редактирования?

Neuromagus
()
Последнее исправление: Neuromagus (всего исправлений: 1)
Ответ на: комментарий от alex1101

Я на catppuccin как раз пересел из-за того, что все цвета пастельно-мягкие и глаза не устают вообще. В дефолтных цветах у того же fish как раз есть вырвиглазно-синий где-то в районе 0000ff, поэтому и искал что-то помягче.

Вообще я больше всего люблю gruvbox цвета, но на околочерном фоне они смотрятся так себе, а от оттенков коричневого вместо фона глаза вытекают уже у меня.

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от l0stparadise

Ваши споры о фоне у меня вызывают недоумение. Ставим 0.9 прозрчность в эмуляторе, в редакторе указываем опцию transparent for best-theme-for-you и вуаля. Заодно понимаем, что картинку на рабочем столе надо сменить на что-то неоновое (как у меня:))

Neuromagus
()
Ответ на: комментарий от Neuromagus

Royal TSX - мультиплексер удаленных соединений (что-то вроде securecrt, multiputty и т.п., но с поддержкой разных протоколов). На работе все сервисы в приватных сетях и используются джампхосты, и если с линуксовыми тачками у меня не вызывает отвращения запускать ssh-сессии друг в друге, то с изредка мелькающей виндой rdp внутри rdp (читай - лагодром в лагадроме) - больно в ноге. В Royal TSX есть функция secure gateway - ему можно указать, что чтобы подключиться к хосту X, надо зайти на хост Y, прокинуть порты и ходить вместо этого на прокинутый порт. Поэтому у меня там набор линуксовых джампхостов, через которые прокидываю rdp-порты для виндовых тачек. Лагов это не уменьшает, но сильно удобнее в использовании.

Я вот слышал, что работы ведутся.

Ведутся то они ведутся, но пока оно не похоже на работоспособное.

У него другой синтаксис экранирования символов? Или проглатывает команды bash без внимательного редактирования?

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

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от krasnh

zsh надо настраивать фичи

Для zsh есть готовые сборки типа oh-my-zsh.

otto ★★★
()
Ответ на: комментарий от l0stparadise

Лагов это не уменьшает, но сильно удобнее в использовании.

Интересный костыль, надо почитать, спасибо за инфо. Я так по старинке…

Neuromagus
()
Ответ на: комментарий от Werenter

Какие плюсы fish перед zsh?

Не требует настройки. Вообще. Можно просто установить и добавить только свои алиасы. При этом быстрый, куча приятных фич.

К сожалению, пришлось от него отказаться с болью в сердце: навертели они много несовместимостей, да так, что ломает даже pkg-config – это было последней каплей. (pkg-config ожидает в качестве разделителя пробел, а fish – перевод строки).

В fish сделаны многие вещи правильно. Например, в bash НЕСКОЛЬКО разных ключевых слов для закрытия циклов и ветвлений: done, end, fi – это что за наркомания вообще?! Как такое можно было высрать (я не пишу «придумать», потому что очевидно не думали)?

Опять же разделитель, из-за которого в bash постоянно приходится плясать при обходе результатов в цикле.

Но проблема в том, что все это надо было делать лет 30 назад. А сейчас уже это все доставляет только боль и раздражение.

Я бы хотел, чтобы fish был чем-то настроенного zsh: все из коробки, но в целом совместим с bash. Но у разработчика другое видение.

MoldAndLimeHoney
()
Ответ на: комментарий от MoldAndLimeHoney

Как такое можно было высрать

У меня такие мысли после каждой задачи по взаимодействию с синтаксисом баша.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от l0stparadise

На работе все сервисы в приватных сетях и используются джампхосты, и если с линуксовыми тачками у меня не вызывает отвращения запускать ssh-сессии друг в друге, то с изредка мелькающей виндой rdp внутри rdp (читай - лагодром в лагадроме) - больно в ноге.

Жесть какая 0__o

hateyoufeel ★★★★★
()
Ответ на: комментарий от MoldAndLimeHoney

Например, в bash НЕСКОЛЬКО разных ключевых слов для закрытия циклов и ветвлений: done, end, fi – это что за наркомания вообще?! Как такое можно было высрать (я не пишу «придумать», потому что очевидно не думали)?

Это… чувак, они просто скопировали с Алгола. Когда sh появился, Алгол был очень в моде.

https://en.wikipedia.org/wiki/ALGOL_68

Если ты спросишь, почему в Алгол такое придумали, ответ прост: его пилили комитетом. Вот примерно как C++ сегодня.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от l0stparadise

Такие были условия ухода на удаленку. Те, кто в офисе, спокойно ходят везде :)

А типа VPN твои перцы не осилили сделать?

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Так вот в том и дело - из впн можно только в dmz, и оттуда уже ходить по другим хостам. Не знаю, чем это помогает против хоть сколько то it-грамотного человека, но сб иначе не разрешили.

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от Werenter

Fish не старается быть POSIX-совместимым, что позволяет закрыть наиболее вопиющие косяки. И в целом старается не делать неожиданного. У zsh идеология противоположная: обшить POSIX невероятным количеством стремного синтаксиса, чтобы было больше стремного синтаксиса, удобно же.

Писать скрипты на fish на порядок приятнее, чем на bash/zsh. Ходит слух, что это мол нельзя, как же их запустит твой друг на HP-UX 6.2, но у меня нет друзей, это упрощает дело.

Предсказуемость и простота скриптов помогают и просто в командной строке. Плюс всякие дополнительные удобства уровня команд типа universal variables и autoloaded functions.

Ну и да, интерактивная часть (редактор, подсветка, комплишн) просто работает, без каких-либо настроек. В zsh есть плагины, которые ставят вообще все, это тупо.

akho
()

nix-darwin

Лучше всё же полноценный NixOS

dukzcry
()
Ответ на: комментарий от l0stparadise

Neovim в стадии вечного допиливания, на самом деле. Чаще всего - программирование на ямле :) из сносно настроенного под себя - nix, js, lua, shell, ansible. В каком-то виде настроен питон (я мало на нем пишу, lsp/линтеры стоят, но есть над чем работать)

Через какой-нибудь nixvim, надеюсь?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Нет, он как раз отдельно лежит из-за желания подтягивать конфиг на системы без nix. Я нагло спер лоадер у folke и весь мой конфиг можно подключить как отдельный плагин. Nix мне только sh-враппер со всеми lsp/линтерами собирает.

l0stparadise ★★★★★
() автор топика
Последнее исправление: l0stparadise (всего исправлений: 1)

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

Xant1k ★★
()
Ответ на: комментарий от alex1101

наличие синевы в цветах это сразу +200 к усталости глаз при долгой работе

Как и зелёного. Впрочем, amber (#FFBF00) терпим, но тоже недолго.

Меньше всего глаз устаёт при низкой контрастности (внезапно) и пониженной глубины цвета (но не grayscale!).

mord0d ★★★★★
()
Ответ на: комментарий от Neuromagus

у макоси память работает по своему, поэтому всегда занята почти вся.

xakup
()
Ответ на: комментарий от mord0d

Как и зелёного

Вот насчёт зелёного не соглашусь, зелёный даже синий нивелирует, цвета в районе морской волны - наверное, самые приятные для глаз в тёмных темах

alex1101
()
Последнее исправление: alex1101 (всего исправлений: 1)
Ответ на: комментарий от alex1101

Понятно, у нас просто по-разному глаза работают. У меня от оттенков морской волны в духе solarized dark как раз глаза очень быстро устают. В light лучше, там болотного фона нет, но светлые темы редко заходят.

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от Antonio88

Не показалось. Об этом и в тегах, и в описании, и в выбросе neofetch вполне написано.

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от alex1101

зелёный даже синий нивелирует

В комбинации с синим — да, но тоже от диапазона зависит.

цвета в районе морской волны - наверное, самые приятные для глаз в тёмных темах

Я экспериментировал, диапазон от maroon до dark-amber глаза терпят дольше всего, если фон от серого до тёмно-серого. С чёрным фоном всё очень плохо, на самом деле, говорю как тот, кто немало времени проводит в tty.

mord0d ★★★★★
()
Ответ на: комментарий от krasnh

Но онож прям тормозит...года 3 назад пробовал - ужс просто

izmena ★★
()
Ответ на: комментарий от intel

А, посомтрел, оно поверх аквы, а не заменяет акву.

Тогда в твоем кейсе не вылазят артефакты аквы, типа панелей?

intel ★★
()

Симпатичный скриншот. Цветовая схема не ощущается слишком мягкой?

Как раз на днях было интересно насколько «красноглазо» может выглядеть рабочий стол современной MacOS. Автору отдельное спасибо за удовлетворённое любопытство.

einszwei
()

Попробовал я на выходных этот nixos, что-то мне не зашло. Мою схему с сокет активацией x-ов оно не сожрало почему-то(xinit и wm как процессы от обычного юзера). Мало того что нужно много телодвижений так ещё теряется вся мякотка с автонастройкой. Он хорош пока ты не отходишь от ген. линии партии. Плюс не понятно как на нем запускать всякое бинарное барахло. В виртуалке ещё попробую конечно, может что-то путное получится но пока выглядит слишком пердолично.

e7z0x1 ★★★★★
()
Ответ на: комментарий от intel

Из того, что помню - в electron-софте тень у менюшек по правой кнопке идет с отступом в пикселей 20. В остальном - больше никаких артефактов не припомню.

И из бытовых проблем - некоторые попап-окна не переводят десктоп туда, где окно вылезло (например, я использую little snitch, и когда он блокирует какой-то порт, уведомление приходится выискивать по всем десктопам - отдельным окном оно не считается и на expose его не видно, пока на конкретный десктоп не зайдешь). Возможно, если отключить SIP, оно заработает нормально, не пробовал.

l0stparadise ★★★★★
() автор топика
Ответ на: комментарий от einszwei

Цветовая схема ощущается слишком мягкой, но это как раз была исходная цель, по которой цветовую схему выбирал.

l0stparadise ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.