GUIs should be fully keyboard-driven 🔥 Горячее 💬 Длинная дискуссия
Графические интерфейсы не должны уступать терминальным в поддержке клавиатурного управления — это вопрос дизайна, а не технической невозможности. Многие считают, что TUI предпочтительны, потому что они «клавиатурные», но на самом деле проблема в недоработанных GUI, а не в их природе. Современные фреймворки, включая GNOME, явно требуют, чтобы каждое действие в GUI было доступно исключительно через клавиатуру — так же, как и через мышь. Это не дополнительная фича, а базовый стандарт доступности и удобства.
Реализовать полную клавиатурную навигацию в GUI несложно: достаточно продумать логику фокуса, сочетания клавиш и последовательность взаимодействия. Автор создал своё первое GUI-приложение Klisi именно с акцентом на клавиатурное управление — и это повысило его удобство. Клавиатурное управление не заменяет мышь, но делает интерфейс предсказуемым, быстрым и подходящим для пользователей, которые работают в терминале или предпочитают минимизировать движения рук. Решение — не в выборе между GUI и TUI, а в том, чтобы GUI действительно соответствовали стандартам доступности.
Комментарии (469)
Проблема не в природе GUI, а в игнорировании клавиатурной навигации современными фреймворками и разработчиками, что снижает доступность и производительность. В нативных фреймворках (Cocoa/AppKit) она легко реализуется через nextKeyView и системные сочетания, а в Windows 3.1 была стандартом. Современные ненативные фреймворки сознательно от него отказываются, создавая барьеры: пропуск элементов при табуляции, отсутствие индикации фокуса. От клавиатурной навигации зависят пользователи с ограниченными возможностями и опытные пользователи. Идеальный GUI должен давать визуальные подсказки (как Vimium, Tridactyl, StarCraft с подсветкой букв на кнопках), а не прятать сочетания в меню. Microsoft Office — редкий пример высокого уровня: мнемоники, буферизация ввода, минимум нажатий. В HP-40G редактирование выражений через визуальные «коробки» не ломало синтаксис — клавиатура была интегрирована в дизайн, а не просто совместима. Аргумент о кривой обучения для обычных пользователей не оправдывает игнорирование прав доступа и производительности. TUI (Midnight Commander) быстрее не потому, что GUI не могут быть столь же эффективны, а из-за недоработанной реализации. Опытные пользователи предпочитают Vim, потому что он устраняет интерфейсное трение — в иерархии сенсорный экран < мышь < клавиатура он даёт максимальную скорость. Для эффективной клавиатурной навигации в GUI необходимо явно связывать элементы по логическому порядку фокуса, визуально подсвечивать сочетания, проектировать клавиатуру и мышь как равноправные и дополняющие друг друга без переключения контекста. В веб-приложениях — использовать HTML-стандарты и инструменты вроде Vimium вместо кастомных решений. Клавиатурная навигация требует постоянного сопровождения при изменении интерфейса, иначе пользовательский опыт разрушается. Пользователи, перешедшие с терминальных POS-систем на современные GUI, отмечают падение скорости из-за потери привычных горячих клавиш.
Deno Desktop 🔥 Горячее 💬 Длинная дискуссия
Deno’s runtime includes a dedicated section for desktop application development, offering a full suite of tools and APIs to build cross‑platform GUI programs. It walks developers through project setup, backend integration, HTTP serving, framework choices, and OS‑specific packaging, while also covering advanced features such as WebGPU rendering, hot‑module replacement, DevTools, auto‑update mechanisms, error reporting, and distribution pipelines.
The guide is organized into many subsections—configuration, backends, serving, frameworks, Windows, WebGPU, bindings, menus, tray & dock, dialogs, notifications, HMR, DevTools, auto‑update, error reporting, distribution, and comparison—allowing developers to pick the exact capabilities they need. Notable points include built‑in auto‑update support, WebGPU for modern graphics, and a modular architecture that lets you enable only the pieces you use, making large‑scale desktop projects more maintainable. It also details testing approaches, continuous‑integration hooks, and the CLI commands for scaffolding, bundling, and publishing desktop applications. Security is built‑in, requiring explicit permissions for file, network, and environment access, while TypeScript is supported natively. The documentation also compares different frameworks, helping developers choose the most suitable one for their use case.
Комментарии (398)
- Обсуждается внедрение общего CEF‑рантайма для Deno Desktop, чтобы сократить размер бинарников до нескольких мегабайт.
- Планируется интеграция с системой прав Deno, чтобы пользователь мог удобно просматривать и управлять разрешениями.
- Сравнение с Tauri и другими решениями: возможность использования собственного CEF, несколько бекендов (CEF, WebView, raw) и вопросы размера пакетов.
- Текущий размер приложений остаётся высоким (от 15 МБ с сжатием до 40‑440 МБ), вызывают вопросы по оптимизации и будущей поддержке мобильных платформ.
The lazy Git UI you didn't know you need 🔥 Горячее 💬 Длинная дискуссия
Автор случайно обнаружил lazygit во время экспериментов с neovim и настолько впечатлился, что полностью перешёл на него для всех git-работ. Инструмент сочетает простоту и скорость CLI с интерактивностью и наглядностью GUI, что особенно ценно для тех, кто плохо запоминает команды. По данным опроса StackOverflow 2022 года, 83% разработчиков предпочитают CLI для работы с git, но lazygit предлагает компромисс, сохраняя мощь командной строки while делая операции более доступными.
Lazygit выделяется тремя ключевыми особенностями: последовательность интерфейса, удобство навигации и интерактивность. Автор подчёркивает, что несмотря на преимущества GUI, новичкам всё равно следует изучать git CLI, так как он обеспечивает максимальный контроль и необходим для работы в средах без графического интерфейса. Инструмент идеально подходит для разработчиков, ищущих баланс между мощью командной строки и удобством визуального интерфейса.
Комментарии (171)
- Разные инструменты подходят под разные задачи: от легковесных консольных утилит вроде
tigдо полноценных GUI вроде SourceTree или GitKraken. - Некоторые участники отдают предпочтение TUI-решениям вроде lazygit, другие — полноценным GUI, а кто-то вовсе предпочитает консоль.
- Несколько человек упомянули, что используют
jj(Jujutsu) вместо Git, и что это может быть более удобным для новичков. - Некоторые участники поделились ссылками на инструменты, которые могут быть полезны для решения конкретных задач, таких как
git-absorbдля автоматического разбиения коммитов иtigдля просмотра истории. - Были упомянуты такие инструменты, как
lazygit,tig,gitui,gitin,lazygit,fork,lazygitиgitui, каждый из которых имеет свои сильные стороны и может быть полезен в различных ситуациях.
Rust cross-platform GPUI components 🔥 Горячее 💬 Длинная дискуссия
Библиотека Rust GUI компонентов для создания кроссплатформенных десктопных приложений с использованием фреймворка GPUI. Проект предлагает готовые интерфейсные элементы, упрощающие разработку визуальных приложений на Rust. Компоненты обеспечивают единый пользовательский опыт на разных платформах, включая Windows, macOS и Linux.
Библиотека является частью экосистемы GPUI, который позиционируется как современный подход к созданию GUI на Rust с акцентом на производительность и гибкость. Разработчики могут использовать готовые компоненты или создавать собственные, наследуя базовые функциональности. Проект активно поддерживается сообществом и постоянно пополняется новыми элементами интерфейса.
Комментарии (201)
- Сообщество обсуждает, что "native" может означать как отсутствие web-технологий, так и просто нативный виджет ввода текста, и это влияет на выбор инструментов.
- Участники отмечают, что многие open-source проекты спонсируются криптокомпаниями, что вызывает смешанные чувства, но при этом признаётся вклад этих компаний в OSS.
- Обсуждается нехватка готовых компонентов в экосистеме Rust, несмотря на обилие GUI-фреймворков, и сравнивается с другими языками, где такие коллекции есть.
- Поднимается вопрос о размере бинарника (около 10 МБ), который вызывает у людей вопросы о встроенных данных ICU и прочих ресурсах.
- Участники делятся мнением, что хотя фреймворки быстро развиваются, но они всё ещё не покрывают все потребности, и это тормозит более широкое принятие.