Hacker News Digest

Тег: #terminal

Постов: 6

WorldTUI: I trained a 360M model to pretend to be a terminal (simedw.com) 🔥 Горячее 💬 Длинная дискуссия

Разработчик дообучил языковую модель Qwen2.5-Coder-0.5B на 360 млн параметров, чтобы она вела себя как настоящий терминал. За демонстрацией нет ни оболочки, ни файловой системы: каждое нажатие клавиши подаётся на вход, а модель предсказывает, как изменится экран. Она умеет создавать файлы, запускать vim и tmux, играть в «змейку» и обычно помнит, что вы вводили несколько команд назад. Наберите pythoon — и увидите, что это не настоящая оболочка.

Терминал представлен сеткой символов, а не пикселей, поэтому обучающие данные можно генерировать в неограниченном объёме, запуская реальные программы в Docker. Модель не видит сетку напрямую — она получает последовательность токенов с содержимым экрана, позицией курсора и изменениями. Вместо потока текста она предсказывает, какие строки перерисовать и куда переместится курсор. Время тоже подаётся на вход: если ничего не нажато, приходит токен ожидания с длительностью — так «змейка» движется сама. Главные удачи — обучение модели исправлять собственные ошибки и параллельное декодирование строк экрана.

Демонстрация рассчитана на настольный браузер с WebGPU и физической клавиатурой, лучше всего работает в Chrome или Edge. Это загрузка на 208 МБ, всё выполняется локально. В планах — обучение на тысячах случайно сгенерированных приложений, чтобы проверить, сможет ли модель предсказывать поведение программы, которую никогда не видела. Веса обещают выложить позже.

by alphax314 • 22 октября 2026 г. в 02:18 • 531 points

Оригинал • HN

#chrome#docker#edge#python#qwen2.5-coder-0.5b#snake#terminal#tmux#vim#webgpu

Комментарии (165)

Обсуждение дополняет статью идеями применения проекта, сравнением с аналогами и первыми отзывами. @donperignon отмечает, что в реальных тестах модель работает нестабильнее, чем в демо: она ошибается при создании папок и теряет состояние. @Meleagris и @gdevenyi предлагают использовать модель для создания интерактивных honeypots. @amelius советует развивать идею в сторону симуляции конкретного пользователя или интернета (через lynx) вместо общего терминала. @thorum и @aurareturn видят в этом будущем интерфейсов, где локальные модели генерируют UI в реальном времени. Проект сравнивают с vibeSH (@rowbin), Voidware (@ohadpr) и симуляцией Quake II от Microsoft (@psandor). По мнению @andai, выбор Qwen2.5-Coder в качестве базы оправдан её знакомством с синтаксисом CLI.

Nordwand Mono – A monospace font for coders and adventurers (github.com) 🔥 Горячее

Разработчик, не нашедший «идеальный» шрифт для терминала и Neovim, спроектировал собственный с нуля на Python. Nordwand Mono — компактный моноширинный неогротеск, переносящий элементы классического «Univers» Адриана Фрутигера в пропорции «JetBrains Mono». Название отсылает к Швейцарии и её типографике, а также к суровой атмосфере северных стен Альп. Среди источников вдохновения также указаны «SF Pro» и «SF Mono» от Apple, «Alpes Mono» от Sharp Type и «Ubuntu Mono» от Dalton Maag.

Шрифт предлагает альтернативные начертания отдельных символов, переключаемые через теги OpenType, и всего две минимальные лигатуры — для «->» и «=>»; полный набор лигатур автор обещает, возможно, добавить позже, но сам пользоваться ими не собирается. Поскольку каждый глиф рисуется Python-классом с внедряемым контекстом отрисовки, можно менять метрики — например, высоту строчных или прописных знаков — через файл конфигурации: отдельные глифы просматриваются командой python -m visualize, а полный шрифт собирается командой python -m generate_font в папку ./custom-fonts. Автор предупреждает: при изменении метрик вид шрифта не гарантирован, а некоторые глифы потребуют ручной правки.

В репозитории есть образцы символов, начертаний и примеры кода на Python, C++ и Haskell, а также альтернативный кириллический алфавит.

by noriax86 • 18 октября 2026 г. в 14:48 • 314 points

Оригинал • HN

#c++#font#github#haskell#neovim#opentype#python#terminal

Комментарии (96)

Обсуждение дополняет статью практическими отзывами. Пользователи rootlocus, delta_p_delta_x и pookieinc считают Nordwand Mono почти идентичным JetBrains Mono или Berkeley Mono, отмечая различия лишь в отдельных знаках ($ и &). @fercircularbuf указывает на схожесть круглых и квадратных скобок, что затрудняет чтение кода. @bronlund ценит наличие минимального набора лигатур (→ и ⇒), так как остальные обычно отключают для разгрузки визуального потока. @JoshTriplett отмечает комфортный межсимвольный интервал, схожий с DejaVu Mono, в отличие от многих современных узких шрифтов. @abainbridge добавляет, что на мониторах с 100 DPI предпочитает bitmap-шрифты с ручным антиалиасингом для более резкой картинки и компактности текста.

The terminal of the future (jyn.dev) 🔥 Горячее

Современные терминалы ограничены решениями, принятыми ещё в 1980-х, и состоят из четырёх компонентов: эмулятора терминала, псевдотерминала (PTY), оболочки (shell) и запускаемых программ. Автор отмечает, что внутренняя структура терминалов — это "куча", где многие решения невозможно изменить из-за исторического наследия. В качестве примера приводится цитата Джулии Эванс: "Внутренности терминалов — это беспорядок. Большая часть этого именно такая, потому что так кто-то решил в 80-х, и теперь это невозможно изменить".

В качестве альтернативы традиционному терминалу автор предлагает использовать Jupyter Notebook как модель для будущего терминала, предлагающую такие возможности, как высококачественное рендеринг изображений, функцию "перезапустить с начала" и возможность редактирования представлений кода и вывода. Статья описывает четыре этапа создания такого терминала: транзакционную семантику, постоянные сессии, структурированный RPC и интерфейс, похожий на Jupyter.

by miguelraz • 11 ноября 2025 г. в 20:11 • 282 points

Оригинал • HN

#jupyter#pty#rpc#shell#terminal

Комментарии (146)

  • Обсуждение охватывает широкий спектр тем: от философских вопросов о том, что такое терминал и каким он должен быть, до конкретных технических деталей, таких как поддержка изображений, буферов и сессий.
  • Участники обсуждают, какие функции действительно необходимы, и какие являются излишеством, и как они могли бы быть реализованы без нарушения обратной совместимости.
  • Обсуждаются такие темы как встроенная поддержка редактора, возможность встроенной поддержки графики и мультимедиа, и как эти функции могли бы быть реализованы без нарушения существующих стандартов.
  • Участники также обсуждают, какие функции могли бы быть реализованы в будущем, и какие из них уже реализованы в других системах, таких как Jupyter и Emacs.
  • Обсуждается, какие функции могли бы быть реализованы в будущем, и какие из них уже реализованы в других системах, таких как Jupyter и Emacs.

Ratatui – App Showcase (ratatui.rs) 🔥 Горячее 💬 Длинная дискуссия

Ratatui — библиотека для создания терминальных интерфейсов (TUI) на Rust, предлагающая инструменты для построения интерактивных консольных приложений. Она предоставляет богатый набор виджетов (таблицы, графики, календари, списки), гибкие системы компоновки и стилизации, а также поддержку различных архитектурных подходов, включая The Elm Architecture, Component и Flux. Библиотека работает с несколькими бэкендами, поддерживает обработку событий, работу с сырым режимом терминала и захват мыши.

Документация структурирована по разделам: от базовой установки и флагов возможностей до подробных туториалов (создание счётчика, JSON-редактора), примеров приложений и концепций. Особое внимание уделено рецептам решения конкретных задач: компоновка интерфейсов, рендеринг, кастомизация виджетов, тестирование и разработка приложений. Проект активно развивается, с активным сообществом в Discord, Matrix и других платформах.

by AbuAssar • 06 ноября 2025 г. в 02:50 • 662 points

Оригинал • HN

#elm#flux#json#rust#terminal#tui

Комментарии (189)

  • Rust-разработчики выбирают TUI, потому что в Rust нет приемлемого GUI-решения, а Ratatui «просто работает».
  • Сообщество в основном согласно, что Qt в Rust нет и не предвидится, и что это не проблема, которую можно решить внешним крейтом.
  • Терминальные приложения в Rust-экосистеме в основном используют Ratatui, потому что он «просто работает» и не требует сложной настройки.
  • Несколько участников поделились ссылками на свои проекты, в которых используется Ratatui, включая игру Rebels in the Sky и чат-клиент termchat.
  • Обсуждение также коснулось того, что TUI-инструменты в Rust-экосистеме в основном используют Ratatui, потому что он «просто работает» и не требует сложной настройки.

Libghostty is coming (mitchellh.com) 🔥 Горячее 💬 Длинная дискуссия

Разработчик Mitchell Hashimoto анонсировал libghostty — библиотеку для встраивания полнофункционального терминала в любые приложения. Первым компонентом станет libghostty-vt: легковесная библиотека без зависимостей (включая libc) для парсинга терминальных последовательностей и управления состоянием терминала. Она извлечена из ядра Ghostty и предлагает оптимизированную обработку Unicode, поддержку SIMD и совместимость с продвинутыми протоколами вроде Kitty Graphics.

Проблема в том, что многие проекты (редакторы, веб-консоли, хостинги) реализуют эмуляцию терминала с нуля, часто с ошибками и неполной функциональностью. Libghostty-vt устраняет эту избыточность, предоставляя единое корректное и быстрое решение. Библиотека будет портирована на macOS, Linux, Windows, embedded-устройства и WASM, что шире, чем охват самого Ghostty.

by kingori • 23 сентября 2025 г. в 13:56 • 768 points

Оригинал • HN

#embedded#ghostty#kitty#libghostty#terminal#tmux#unicode#wasm#zig

Комментарии (239)

  • Пользователи высоко оценивают Ghostty за его производительность, минималистичный дизайн и поддержку Zig, но отмечают отсутствие некоторых ключевых функций, таких как поиск (Cmd+F) и проблемы с рендерингом шрифтов.
  • Многие выражают восхищение разработчиком Mitchell Hashimoto, его предыдущими проектами (Vagrant) и его подходом к созданию простых и эффективных систем.
  • Анонс библиотеки libghostty вызвал интерес для использования в embedded-сценариях (игры, кастомные приложения, веб-терминалы) и как потенциальная замена существующим библиотекам.
  • Некоторые пользователи столкнулись с проблемами совместимости, особенно с tmux и графическими протоколами, что мешает им полностью перейти с iTerm2 или других терминалов.
  • Обсуждаются технические детали, такие как лицензирование (MIT vs LGPL), поддержка Unicode и сравнение с другими терминалами (Kitty, Alacritty, WezTerm).

Progress towards universal Copy/Paste shortcuts on Linux (mark.stosberg.com)

На Linux Ctrl-C/Ctrl-V в терминале не работают, потому что Ctrl нужен для управляющих кодов. Приходится жать Ctrl+Shift+C/V. К 2025 году появится универсальное решение без лишнего ПО: старые коды клавиш Copy и Paste, которые Linux «знает» с древности.

Как это работает

  1. Клавиатура
    Программируемые клавиатуры (System76 Launch, Framework 16, ZSA Moonlander, Keychron Q10 и др.) позволяют назначить на любую клавишу слой, где C = Copy, V = Paste. Для активации слоя удерживается модификатор (например, «Raise» на моей Corne).

  2. Прошивка и конфигураторы
    Производители дают свои утилиты (System76 Keyboard Configurator), а Vial поддерживает множество моделей. В слое можно вывести Copy/Paste на C/V, стрелки на домашний ряд и прочие удобства.

  3. ПО Linux
    Приложения опираются на GUI-тулкиты GTK и Qt.

    • GTK добавил поддержку Copy/Paste-кодов в январе 2025.
    • Qt внедрит их в версии 6.10 (сентябрь 2025).

Совокупность программируемого «железа» и обновлённых тулкитов даст единые горячие клавиши Copy/Paste во всех приложениях Linux без дополнительных твиков.

by uncircle • 12 августа 2025 г. в 12:00 • 112 points

Оригинал • HN

#keyboard#keyboard-shortcuts#linux#terminal#tmux#vim#x11

Комментарии (135)

  • Участники жалуются на разнообразие клипбордов в Linux (X11, Vim, tmux) и их несогласованность.
  • В терминалах приходится добавлять Shift к Ctrl-C/Ctrl-V, что ломает мышечную память и вызывает ошибки.
  • Apple решает конфликт отдельным Cmd-ключом, но даже там приложения перехватывают сочетания непредсказуемо.
  • Многие используют альтернативы: Ctrl/Shift-Insert, выделение + средняя кнопка мыши, ремап клавиш, покупку программируемых клавиатур.
  • Единого механизма объявления и настройки шорткатов в Linux нет, поэтому Chrome и другие приложения игнорируют системные привязки.